Releases 16/06/2016 - 10:50

Utilizando AWS para desenvolvimento na nuvem


São Paulo--(DINO - 16 jun, 2016) - No desenvolvimento de soluções para AWS (Amazon Web Services), uma das questões mais importantes que devem ser tratadas diz respeito aos ambientes de desenvolvimento e testes. Por se tratar de um ambiente em nuvem, é possível considerar um ambiente de desenvolvimento e testes também em nuvem, com um máximo de compatibilidade com o ambiente de produção, ou local, teoricamente reduzindo custos e tornando mais simples e direto seu acesso.

A questão do custo, entretanto, aparenta ser mais mito que realidade. A realidade é que os custos de problemas que não sejam detectados logo no ciclo de desenvolvimento tendem a custar mais para serem resolvidos quando o código vai de fato ao ambiente de produção. E para que as estações de trabalho locais possam ser configuradas para contemplar todos os serviços dependentes faz com que os desenvolvedores percam o foco do processo de criação e testes de software.

Na verdade, entretanto, é possível combinar o melhor de dois mundos para um máximo resultado. O uso de ambientes locais para a escrita de código e execução de testes de unidade pode ser uma excelente alternativa, principalmente com o uso de virtualização, que permite a rápida configuração dos ambientes. Por outro lado, o uso um ambiente de desenvolvimento em AWS permite que sejam executados testes de ponta a ponta da aplicação.

Impacto da arquitetura

De acordo com o Puppet Labs 2015 State of DevOps Report, características específicas relacionadas à arquitetura correlacionam-se com alto desempenho em TI. Não por acaso, a Rackspace, líder mundial em nuvem gerenciada, observa que seus clientes mais efetivos implementam integração contínua e entrega contínua (Continuous Integration/Continuous Delivery - CI/CD), além de tratar toda a infraestrutura como código, permitindo um alto grau de escalabilidade e assegurando um alto desempenho.

Tentar implementar integração contínua e entrega contínua do zero, entretanto, pode ser bastante desafiador. É aí que entra um dos benefícios de se trabalhar com provedores em nuvem: existem ofertas pré-definidas que se mostram equivalentes ao que a maioria das pessoas conseguiria conceber. Um excelente exemplo é o Code Pipeline, que permitem aos desenvolvedores trabalhar com seu código nos processos de staging, testes e liberação.

Ferramentas na nuvem

Algumas ferramentas permitem que a nuvem passe a fazer parte de importantes processos no desenvolvimento de software. É o caso de controle de código fonte, que pode ser feito com o uso de Code Commit. E isso permite que se trabalhe com estações locais, conectadas ao serviço através de componentes que fazem uso de APIs em nuvem.

Na verdade, existe uma ampla gama de ferramentas, das mais modernas na indústria, a que se passa a ter acesso com o uso de ambientes de desenvolvimento na Amazon. É o caso, por exemplo, do Packer, que permite a criação de imagens reproduzíveis de VM, inclusive Amazon EC2 AMI (Amazon Machine Images).

Um dos pontos mais interessantes do uso de ambientes de desenvolvimento na nuvem são os tempos de provisionamento: na prática, é muito mais rápido fazer a transferência de todas as dependências de um data center para outro do que entre um data center e uma estação de trabalho em uma rede local. Além disso, com o uso de ferramentas como o Virtual Private Cloud (VPC) da Amazon, a estação local pode acessar as dependências diretamente da nuvem, uma vez que ela pode ser inserida no mesmo segmento de rede dos recursos AWS que utiliza.

Gerenciando a infraestrutura como código

Um dos pontos mais fortes de se utilizar ferramentas da Amazon é a capacidade de se gerenciar a infraestrutura como código. O serviço CloudFormation permite que os recursos AWS sejam provisionados de forma declarativa, e com isso, podem acompanhar as versões do código desenvolvidas.

Com o uso de modelos CloudFormation, é possível criar não só ambientes apropriados aos testes de ponta a ponta, mas que também podem ser utilizados posteriormente para provisionamento dos ambiente de produção. E também se abre a possibilidade de, a partir dos modelos CloudFormation, criarem-se não só ambientes de testes de integração, mas também ambientes locais, que podem ser usados para desenvolvimento e testes de unidade.

O melhor de dois mundos

Com ambientes locais configurados de forma simples e rápida a partir de modelos CloudFormation, é possível a realização de testes de unidade de forma offline. Combinados com testes de integração em ambientes na nuvem, fica mais fácil para as empresas adotarem técnicas importantes de desenvolvimento e testes, como experimentação de testes A/B em um determinado recurso, e estratégias de implantação blue/green.

Clientes Rackspace contam ainda com o Fanatical Support para AWS, facilta o processo de levar seus ambientes de desenvolvimento para a nuvem. Com o auxílio dos arquitetos de soluções certificados em AWS, esses clientes conseguem controlar custos ao aplicar as melhores práticas em desenvolvimento, integrando com maior facilidade desenvolvedores adicionais e encontrando defeitos antes do software ser liberado.

Se você ainda não conhece o Fanatical Support para AWS ou deseja saber mais sobre como o desenvolvimento utilizando a nuvem pode reduzir os custos de sua empresa e melhorar seu desempenho, entre em contato com a Rackspace, por meio de nosso chat ou visitando nossa página.
Website: https://www.rackspace.com/pt-br