DevOps de Dispositivo Móvel

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

Atualmente, a computação móvel é provavelmente o assunto mais corrente entre as equipes de desenvolvimento e operações. Funcionários de empresas de pequeno e grande porte possuem vários dispositivos móveis, muitos deles pessoais, que utilizam no trabalho. Empresas em todo o mundo querem usar o mercado de dispositivos móveis fornecendo aos clientes e usuários aplicativos que facilitam a computação móvel. Portanto, é importante que as empresas pensem não apenas no desenvolvimento de um recurso de dispositivo móvel, mas também em como ele será implementado e como podem assegurar sua continuidade, já que eles mudam ao longo do tempo. Este artigo aborda o modo como o DevOps (desenvolvimento e operações) ajuda a lidar com os problemas de implementação de diferentes versões de aplicativos a diversos dispositivos.

Michael Rowe, Rational Strategist, IBM

Michael Rowe faz parte da equipe de estratégia de negócios da IBM e, há mais de quatro anos, sua prioridade é a integração entre o desenvolvimento e operações no Rational. Nos últimos quatro anos, ele analisou a interseção entre o fenômeno de aplicativos de dispositivo móvel e a infraestrutura de TI existente no contexto de como gerenciar o desenvolvimento e a implementação desses aplicativos na infraestrutura.



31/Jul/2013

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

Aprender

Obter produtos e tecnologias

  • 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.

Discutir

  • Participe da comunidade do developerWorks. Conecte-se a outros usuários do developerWorks enquanto estiver explorando os blogs, fóruns, grupos e wikis direcionados a desenvolvedores.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


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