Explorar o ciclo de vida do aplicativo DevOps
Embora as práticas de DevOps tenham um escopo vasto, seu destino principal é otimizar o gerenciamento do ciclo de vida do aplicativo. No exemplo fictício da empresa, a migração de um aplicativo existente para um novo aplicativo com recursos atualizados requer a revisitação de todas as fases do ciclo de vida do aplicativo. Dessa forma, saiba como os princípios de DevOps podem alterar significativamente como cada fase é implementada, desde planejamento, desenvolvimento e entrega até operações. Nesta unidade, percorra uma visão geral de alto nível dessas implementações.
Fases do ciclo de vida do aplicativo
As fases do ciclo de vida do aplicativo incluem planejamento, desenvolvimento, entrega e operações.
Planeamento
A fase de planejamento envolve a revisão das necessidades dos clientes para esboçar e definir funcionalidades e capacidades do software a ser desenvolvido. Esse software pode variar de microsserviços individuais a portfólios que consistem em vários produtos. O resultado define requisitos de software, escopo e marcos para o desenvolvimento e a implantação do aplicativo. Da perspectiva de DevOps, as principais considerações durante essa fase incluem agilidade, foco centrado no cliente, alinhamento e visibilidade.
Desenvolvimento
A fase de desenvolvimento abrange todos os aspectos do desenvolvimento do código do aplicativo. Esses aspectos incluem programação, teste e revisões de código. Para cumprir as práticas de DevOps, o código deve residir em um sistema de controle do código-fonte, o que facilita a colaboração e dá suporte ao controle de versão. Uma versão funcional do código é usada para criar artefatos adequados para entrega subsequente. Esses artefatos podem assumir a forma de binários executáveis, bibliotecas de software, imagens de contêiner, pacotes de instalador, arquivos de configuração, scripts de implantação ou até mesmo documentação.
As alterações nessa fase devem ser aplicadas em pequenos incrementos por meio de testes e build automatizados, chamados de CI (integração contínua), o que acelera o processo de desenvolvimento e aumenta a agilidade.
Entrega
A entrega é o processo de implantação dos artefatos criados durante o estágio de desenvolvimento em ambientes de produção de maneira consistente e confiável. Embora o objetivo final nesta fase seja a automação completa por meio de CD (entrega contínua), algumas organizações, especialmente nos estágios iniciais de sua adoção do DevOps, podem optar por implementar aprovações ou verificações manuais. À medida que a confiança nas práticas de DevOps aumenta, normalmente é possível automatizar totalmente essas verificações. Por exemplo, uma verificação bem-sucedida e não supervisionada de uma implantação para um ambiente de teste pode servir como base para a transição para o ambiente de produção. A automação ajuda a tornar os processos de entrega escalonáveis, repetíveis e mais resilientes (minimizando a possibilidade de erro humano). A chave para uma implementação bem-sucedida de tal abordagem é seguir as práticas de DevOps, incluindo testes adequados, o uso de medidas observáveis e o aprendizado contínuo.
A entrega também deve levar em conta o provisionamento e a configuração da infraestrutura do ambiente de destino por meio da IaC. Tratar a infraestrutura como código oferece uma variedade de benefícios, incluindo consistência, reprodutibilidade e agilidade.
Operações
A fase de operações envolve a manutenção, o monitoramento e a solução de problemas de aplicativos em ambientes de produção. Na perspectiva de DevOps, os principais objetivos neste estágio são estabilidade e confiabilidade, resposta rápida a incidentes, segurança e conformidade e satisfação do cliente. Até certo ponto, atingir esses objetivos depende de ter implementado adequadamente resultados mensuráveis. Os processos de DevOps também dependem dos chamados loops de comentários que fornecem dados que refletem o estado atual do aplicativo implantado, como métricas de desempenho, capacidade de resposta e experiência geral do usuário, incluindo funcionalidade aprimorada ou degradada.
Durante essa fase, é importante garantir os níveis máximos de colaboração entre equipes de desenvolvimento, operações e segurança. Essa fase também serve como a fonte essencial de aprendizado contínuo.
Qual é o estágio final do ciclo de vida do aplicativo?
Como o nome indica e a imagem no início desta unidade ilustra, o ciclo de vida do aplicativo é, por design, um processo circular. Há um início determinístico e um fim determinístico no ciclo de vida do aplicativo determinados por seus eventos de início e descomissionamento. No entanto, após a implantação inicial (ou com frequência, até mesmo anterior), os comentários dos usuários e dados de monitoramento informam as atualizações subsequentes e a evolução do aplicativo.
Nota
Tenha em mente que, embora a segurança tenha sido mencionada apenas algumas vezes em toda essa unidade, de acordo com os princípios de DevSecOps, sua função permeia todo o ciclo de vida do aplicativo. Efetivamente, considerações relacionadas à segurança devem ser contabilizados durante cada fase, começando no início do planejamento inicial.