Conteúdo


DevOps de Dispositivo Móvel

Integrar o desenvolvimento e as operações de qualidade e entrega contínua a diversas plataformas

Comments

Leia uma transcrição do vídeo acima.

Aplicativos de dispositivo móvel: Novos processos e comportamento de reflexão

No espaço de dispositivo móvel, há uma infinidade de possíveis plataformas de implementação. De alguma forma, ele é semelhante à situação no desenvolvimento tradicional de desktop, há muitos anos, quando havia diversos padrões concorrentes. A diferença é que não há apenas diversos sistemas operacionais concorrentes, como Android, iOS, BlackBerry e Windows, mas também diversas características de dispositivos: resoluções de tela, processadores, recursos gráficos, recursos de rede, entre outros. Cada uma delas inclui uma camada potencial à complexidade de implementar para ambientes de dispositivos móveis.

Consequentemente, as empresas precisam utilizar diferentes processos e comportamentos de reflexão ao desenvolver e projetar dispositivos móveis. Por exemplo, uma abordagem atualmente utilizada por muitas empresas é se concentrar em aplicativos de dispositivo móvel ativados pela web. Equipes de desenvolvimento que já estão trabalhando em portais e recursos da web simplesmente os estendem a dispositivos móveis utilizando o HTML5.

No entanto, a desvantagem dessa abordagem é que não é possível explorar toda a eficiência e os recursos das diferentes plataformas de dispositivo móvel. Inevitavelmente, os usuários requerem uma melhor integração à funcionalidade nativa existente nesse dispositivo, como o aplicativo de calendário. Atender a essas demandas requer aplicativos nativos, caso a plataforma não exponha APIs para acessar os recursos — e é nesse ponto que começarão a serem questionadas quais e quantas plataformas serão suportadas. Além disso, quantas versões da plataforma você suportará? Considerando que grande parte dos clientes manterá um dispositivo apenas por alguns anos, quanto risco está envolvido na exclusão de uma versão e na escolha de não suportar esses clientes? Você suporta ou exclui toda uma plataforma, como o iOS? Uma versão do Android, como a 3.2? Você estende todos os recursos do Jelly Bean, a versão mais recente do Android?

A "consumerização" da TI é outro desafio do desenvolvimento e da implementação de dispositivo móvel. Cada vez mais, os funcionários e clientes estão trazendo seus próprios dispositivos para o ambiente corporativo. Por exemplo, na IBM, em janeiro, havia aproximadamente 10.000 iPads em funcionamento dentro da empresa e mais de 30.000 outros dispositivos iOS. Isso significa que uma empresa não pode mais ter um padrão corporativo que declara que eles suportarão somente o iOS versão 4, pois os clientes estão adquirindo iPhones ou Samsumg Galaxies atualizados, além de tablets e outros smartphones. Embora existam vantagens quando as empresas utilizam os dispositivos de seus funcionários, a customerização cria um conjunto bastante amplo de ambientes de destino, o que aumenta os custos tanto de desenvolvimento quanto de gerenciamento.

As armadilhas da implementação de aplicativos de dispositivo móvel

Uma das principais armadilhas do desenvolvimento e da implementação de aplicativos de dispositivo móvel é o empacotamento de muitas mudanças em uma grande implementação. Esse modelo em cascata tradicional de desenvolvimento também é predominante no desenvolvimento de aplicativos corporativos. Uma empresa passa de seis a oito meses trabalhando em requisitos, seis a oito meses desenvolvendo, seis a oito meses testando e, em seguida, seu aplicativo massivo é colocado em produção. O problema é que, durante todo esse tempo, as equipes envolvidas provavelmente perderão requisitos, perderão o controle dos componentes e até romperão parte do build. Portanto, para reduzir esse risco, a empresa implementa um processo de controle rigoroso e complexo.

As empresas geralmente querem adotar essa mesma abordagem no desenvolvimento e na implementação de dispositivo móvel, pois elas querem que seu recurso móvel introduzido no mercado, tanto para sua base de uso quanto para os funcionários, seja perfeito. Na realidade, o aplicativo não precisa ser perfeito, ele simplesmente tem que ser utilizável e intuitivo. No entanto, grande parte das empresas não percebe isso, portanto, elas gastam muito tempo e esforço no que pode se tornar um empenho de alto custo — e, frequentemente, tardio. A maioria dos aplicativos que são resultado do desenvolvimento em cascata é introduzida tardiamente no mercado e geralmente não atende às necessidades de seus usuários.

O DevOps é uma nova maneira de abordar os desafios da implementação de diversos sistemas operacionais, dispositivos e da consumerização, estendendo a metodologia de desenvolvimento ágil para a rápida implementação da funcionalidade necessária para aplicativos de dispositivo móvel bem-sucedidos.

A eficiência do DevOps

O DevOps basicamente aborda a necessidade de implementar um aplicativo em execução com os recursos mais recentes, diretamente do ambiente de produção, a qualquer momento. Essa é uma abordagem ágil, na qual uma metodologia de desenvolvimento em cascata não funcionará. É importante definir seus requisitos e desenvolvê-los em pequenas partes funcionais de valor de negócios. Toda noite, a cada 15 minutos ou toda vez que uma mudança for verificada no sistema de gerenciamento do código fonte, é necessário se certificar de que é possível desenvolver a função do produto ou dos negócios. Esse é o recurso de integração contínuo do DevOps. Além disso, considerando a complexidade dos aplicativos móveis corporativos, não se trata somente da compilação do código para o dispositivo móvel. Aplicativos corporativos aproveitam sistemas backend, que também podem precisar incluir novas funcionalidades.

A captura do build e sua implementação nos vários ambientes requerem um conjunto robusto de recursos de entrega contínua que pode realizar o push dos aplicativos:

  • A partir do desktop do desenvolvedor com um simulador executando no Android, iOS ou outra plataforma móvel
  • Para o ambiente de teste que pode envolver um terceiro testando diferentes telefones portáteis
  • Para os sistemas backend que expõem serviços a serem consumidos por dispositivos móveis
  • E para um ambiente de produção no qual ele é entregue a vários dispositivos

Cada plataforma possui características diferentes a partir de uma perspectiva de implementação; no entanto, independentemente da plataforma, a fim de que a entrega seja bem-sucedida, é preciso identificar, controlar, capturar e testar todas as mudanças. Isso requer uma abordagem disciplinada que aproxima as equipes de desenvolvimento e operações a fim de assegurar entregas de software frequentes, confiáveis e de alta qualidade. As equipes de desenvolvimento e operações trabalham juntas visando um objetivo comum: a entrega contínua de aplicativos funcionais móveis sem que ninguém seja culpado nem invente desculpas. A automação é fundamental.

É por isso que o DevOps é tão eficiente para o desenvolvimento e a implementação de aplicativos de dispositivo móvel. Ele pode:

  • Capturar mudanças
  • Automatizar o modo como essas mudanças ocorrem
  • Automatizar o teste
  • Manter as mudanças pequenas o suficiente para reduzir o risco aos negócios ao serem transferidas para um ambiente de produção
  • Certifique-se de que, em todos os estágios ao longo do pipeline, funções de negócios adequadamente empacotadas sejam replicadas e avançadas

Com o DevOps, uma abordagem disciplinada e automatizada é utilizada, implementando pequenos aprimoramentos funcionais que podem, com o tempo, se tornar um recurso bastante amplo e complexo. Ele realiza o push de seus aplicativos e atualizações por meio de seus recursos de fornecimento aos vários dispositivos de terminal em seu ecossistema móvel. DevOps também significa transparência às mudanças, a fim de que todas as partes interessadas estejam cientes de como novos recursos são processados, reduzindo, assim, o risco de negócios. As métricas e medidas são capturadas e expostas em painéis, aumentando a transparência e a prestação de contas.

O DevOps é uma abordagem ideal quando também consideramos que o intervalo de tempo para a entrega de aplicativos de dispositivo móvel é bem menor do que para aplicativos corporativos. As empresas precisam começar imediatamente. Portanto, é importante integrar equipes e processos em releases e atualizações de aplicativos de dispositivo móvel e ajudar todos a entender que o objetivo não é perfeição, mas melhoria. Isso inicia tudo da maneira correta e o progresso é melhor e mais rápido. Eficiências ocorrem e processos são melhorados ao mesmo tempo que são automatizados.

Conclusão

Empresas de todo o mundo querem explorar o mercado de dispositivos móveis fornecendo aos clientes e usuários aplicativos que facilitam a computação móvel. Para isso, é importante pensar no desenvolvimento do recurso, como ele será implementado e como é possível assegurar a continuidade de seus recursos conforme eles são alterados ao longo do tempo. O DevOps ajuda a assegurar um ciclo de vida bem-sucedido do aplicativo de dispositivo móvel que leva tudo isso em consideração. Ele considera não apenas a automação, mas também os resultados de negócios, pois reforça o loop de feedback entre desenvolvedores e operações. Os desenvolvedores podem realizar mudanças de forma mais rápida e as organizações podem acelerar o refinamento e as atualizações de seus aplicativos.


Recursos para download


Temas relacionados

  • "Técnicas para o Desenvolvimento Rápido de Soluções Remotas" (developerWorks, maio de 2012) oferece sugestões concretas sobre como até uma pequena equipe local pode desenvolver e implementar um aplicativo de funcionário bem-orientado entre diversas plataformas de forma rápida.
  • Avalie produtos IBM da maneira mais adequada para você: faça download de um produto de avaliação, experimente um produto online, use um produto em um ambiente de nuvem ou passe um tempo no Sandbox da SOA aprendendo como implementar a Arquitetura Orientada a Serviços de forma eficiente.

Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Desenvolvimento móvel, Rational
ArticleID=826276
ArticleTitle=DevOps de Dispositivo Móvel
publish-date=07312013