Como surgiu o DevOps?
Sexta-feira, perto da hora da saída, você, parte do time de operações, recebe um chamado para fazer uma urgente manutenção de aplicação que acabou de ser atualizada. Após analisar o problema, identifica erro no código e orienta ao time de desenvolvimento a resolução do problema. Do outro lado, no time de desenvolvimento, é dito que o problema foi causado por erros de deploy dessa nova versão no servidor, ou seja, erro do time de operações.
Passam-se horas que o expediente acabou e os dois times continuam a “jogar a bola” um para o outro enquanto a aplicação continua indisponível.
Esse tipo de embate é muito comum na esteira de desenvolvimento de qualquer aplicação. Invés dos times trabalharem em conjunto para resolução de um problema, assumem que somente o próprio escopo importa, fazendo que os outros setores se tornem concorrentes dentro do próprio projeto.
Diferentes objetivos e preocupações fazem que esse tipo de problema ocorra, desse modo, a Cultura DevOps surge tentando agregar práticas e ferramentas que ajudem mutualmente esses times e os façam trabalhar em equipe.
O que é então o DevOps?
Resumidamente, o DevOps é uma cultura que tenta facilitar o desenvolvimento de aplicações com automações e boas práticas que impeçam o embate entre times e faça com que eles trabalhem juntos.
Esses problemas que vimos no tópico acima são mitigados com a cultura DevOps, afinal não estamos falando de uma ferramenta em si, mas na verdade de um conjunto de cultura e valores que, por vezes, resultam em ferramentas para automatizar e monitorar nossos ambientes de desenvolvimento da maneira mais eficiente possível.
O conceito de DevOps, na verdade, foi apresentado, pela primeira vez, por John Allspaw e Paul Hammond, durante uma conferência da O’Reilly em 2009. O objetivo foi o de unir desenvolvedores e administradores de sistemas e promover o desenvolvimento e a integração contínua de softwares até a etapa de deploy.
Com 4 pilares principais (Cultura, Automação, Medição e Compartilhamento), um dos principais objetivos da cultura DevOps é incentivar a automação, um aspecto que permite a execução de tarefas e processos, de maneira ágil e sem erros.
No que tange à cultura, a cultura diz que equipes precisam ser colaborativas, desse modo é necessária uma mudança de comportamento para atingir eficiência e uma boa relação as diferentes áreas de um negócio. Esse aspecto evita que alguns colaboradores fiquem com responsabilidades centralizadas, uma vez que o foco se volta para o desenvolvimento de equipes multidisciplinares.
O que a AWS me oferece para DevOps?
A AWS é sem dúvidas uma nuvem orientada ao DevOps. Vemos diversas ferramentas que atendem aos requisitos e todas respeitam a lógica da nuvem de preços sob demanda, alta disponibilidade, elasticidade e agnosticidade tecnológica.
Por exemplo, as Ferramentas do desenvolvedor da AWS ajudam você a armazenar e a fazer o controle de versão do código-fonte de aplicações com segurança, além de criar, testar e implantar automaticamente aplicações no seu ambiente local ou da AWS.
Para CI/CD (Continuous Integration and Continuous Deployment) existe o AWS CodePipeline para te ajudar a construir um fluxo de trabalho de integração contínua ou de entrega contínua que, por sua vez, usa o AWS CodeBuild, o AWS CodeDeploy e outras ferramentas ou usa cada serviço separadamente.
Algumas das ferramentas de DevOps que fazem parte do portfólio da AWS:
AWS CodeStar – Projetos unificados de CI/CD
O AWS CodeStar permite que você desenvolva, crie e implante rapidamente aplicações na AWS. O AWS CodeStar disponibiliza uma interface de usuário unificada, permitindo que você gerencie facilmente atividades de desenvolvimento de software em um só lugar. Com o AWS CodeStar, é possível configurar toda a sua cadeia de ferramentas de entrega contínua em alguns minutos, possibilitando que você comece a agilizar o lançamento de código.
AWS CodePipeline – Fluxos de trabalho de lançamento de software
O AWS CodePipeline é um serviço de integração contínua e entrega contínua para atualizações rápidas e confiáveis de aplicações e infraestruturas. O CodePipeline cria, testa e implanta código sempre que ocorrer uma alteração de código, de acordo com modelos de processo de lançamento definidos. Isso permite disponibilizar recursos e atualizações de forma rápida e confiável.
AWS CodeBuild – Crie e teste código
O AWS CodeBuild é um serviço totalmente gerenciado que compila o código-fonte, roda testes e produz pacotes de software prontos para implantação. Com o CodeBuild, você não precisa provisionar, gerenciar e escalar seus próprios servidores do build. O CodeBuild escala continuamente e processa múltiplas compilações ao mesmo tempo, o que evita que elas fiquem esperando em uma fila.
AWS CodeDeploy – Automação da implantação
O AWS CodeDeploy automatiza as implantações de código para qualquer instância, inclusive instâncias do Amazon EC2 e servidores locais. O AWS CodeDeploy facilita o lançamento rápido de novos recursos, ajuda a evitar tempo de inatividade durante a implantação de aplicativos e lida com a complexidade de atualizá-los.
Por Pedro Guth
Conte com a dataRain e migre para nuvem agora mesmo.