Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O DevOps combina desenvolvimento (Desenvolvimento) e operações (Ops) para unir pessoas, processos e tecnologia no planejamento, desenvolvimento, entrega e operações de aplicativos. O DevOps permite a coordenação e a colaboração entre funções anteriormente siloed, como desenvolvimento, operações de TI, engenharia de qualidade e segurança.
As equipes adotam a cultura, as práticas e as ferramentas do DevOps para aumentar a confiança nos aplicativos que criam, responder melhor às necessidades do cliente e atingir as metas de negócios mais rapidamente. O DevOps ajuda as equipes a fornecer valor continuamente aos clientes, produzindo produtos melhores e mais confiáveis.
DevOps e o ciclo de vida do aplicativo
O DevOps influencia o ciclo de vida do aplicativo em suas fases de planejamento, desenvolvimento, entrega e operações . Cada fase depende das outras fases e as fases não são específicas da função. Uma cultura DevOps envolve todas as funções em cada fase até certo ponto.
O diagrama a seguir ilustra as fases do estilo de vida do aplicativo DevOps:
Metas e benefícios do DevOps
Quando uma equipe adota a cultura, as práticas e as ferramentas do DevOps, ela pode alcançar coisas incríveis:
Acelere o tempo de colocação no mercado
Por meio de maior eficiência, melhor colaboração em equipe, ferramentas de automação e implantação contínua— as equipes são capazes de reduzir rapidamente o tempo desde o início do produto até o lançamento do mercado.
Adaptar-se ao mercado e à concorrência
Uma cultura de DevOps exige que as equipes tenham um foco primeiro no cliente. Ao casar agilidade, colaboração em equipe e foco na experiência do cliente, as equipes podem fornecer valor continuamente aos seus clientes e aumentar sua competitividade no marketplace.
Manter a estabilidade e a confiabilidade do sistema
Ao adotar práticas de melhoria contínua, as equipes são capazes de criar uma maior estabilidade e confiabilidade dos produtos e serviços que implantam. Essas práticas ajudam a reduzir falhas e riscos.
Melhorar o tempo médio de recuperação
O tempo médio para a métrica de recuperação indica quanto tempo leva para se recuperar de uma falha ou violação. Para gerenciar falhas de software, violações de segurança e planos de melhoria contínua, as equipes devem medir e trabalhar para melhorar essa métrica.
Adotar uma cultura de DevOps
Para implementar totalmente o DevOps, você deve adotar uma cultura DevOps. Cultivar uma cultura de DevOps requer mudanças profundas na maneira como as pessoas trabalham e colaboram. Quando as organizações se comprometem com uma cultura DevOps, elas criam um ambiente para que as equipes de alto desempenho evoluam. Ao adotar práticas de DevOps automatiza e otimiza processos por meio da tecnologia, sem uma mudança para uma cultura DevOps dentro da organização e de seu povo, você não obterá todos os benefícios do DevOps.
A imagem a seguir captura os principais aspectos da cultura de site ao vivo da Microsoft.
As práticas a seguir são os principais componentes de uma cultura DevOps:
- Colaboração, visibilidade e alinhamento: uma marca de uma cultura de DevOps íntegra é a colaboração entre as equipes. A colaboração começa com visibilidade. O desenvolvimento, a TI e outras equipes devem compartilhar seus processos, prioridades e preocupações de DevOps entre si. Ao planejar seu trabalho em conjunto, eles estão melhor posicionados para se alinhar em metas e medidas de sucesso à medida que se relacionam com os negócios.
- Mudanças no escopo e na responsabilidade: à medida que as equipes se alinham, elas assumem a propriedade e se envolvem em outras fases do ciclo de vida, não apenas as centrais para suas funções. Por exemplo, os desenvolvedores se tornam responsáveis não apenas pela inovação e qualidade estabelecidas na fase de desenvolvimento, mas também pelo desempenho e estabilidade que suas alterações trazem na fase de operação. Ao mesmo tempo, os operadores de TI certamente incluirão governança, segurança e conformidade no plano e na fase de desenvolvimento.
- Ciclos de versão mais curtos: as equipes de DevOps permanecem ágeis liberando software em ciclos curtos. Ciclos de versão mais curtos facilitam o planejamento e o gerenciamento de riscos, pois o progresso é incremental, o que também reduz o impacto na estabilidade do sistema. Reduzir o ciclo de lançamento também permite que as organizações se adaptem e reajam às necessidades do cliente em evolução e à pressão competitiva.
- Aprendizado contínuo: as equipes de DevOps de alto desempenho estabelecem uma mentalidade de crescimento. Eles falham rapidamente e incorporam aprendizados em seus processos. Eles se esforçam para melhorar continuamente, aumentar a satisfação do cliente e acelerar a inovação e a adaptabilidade do mercado.
Implementar práticas de DevOps
Implemente o DevOps seguindo as práticas de DevOps (descritas nas seções a seguir) durante todo o ciclo de vida do aplicativo. Algumas dessas práticas ajudam a acelerar, automatizar e melhorar uma fase específica. Outras abrangem várias fases, ajudando as equipes a criar processos contínuos que ajudam a melhorar a produtividade.
CI/CD (integração contínua e entrega contínua)
A CI (Integração Contínua) é a prática usada pelas equipes de desenvolvimento para automatizar, mesclar e testar código. A CI ajuda a capturar bugs no início do ciclo de desenvolvimento, o que os torna mais baratos de corrigir. Os testes automatizados são executados como parte do processo de CI para garantir a qualidade. Os sistemas de CI produzem artefatos e os alimentam em processos de liberação para conduzir implantações frequentes.
A CD (Entrega Contínua) é um processo pelo qual o código é compilado, testado e implantado em um ou mais ambientes de teste e produção. Implantar e testar em vários ambientes aumenta a qualidade. Os sistemas de CD produzem artefatos implantáveis, incluindo infraestrutura e aplicativos. Os processos de versão automatizados consomem esses artefatos para liberar novas versões e correções em sistemas existentes. Os sistemas que monitoram e enviam alertas são executados continuamente para gerar visibilidade em todo o processo de CD.
Controle de versão
O controle de versão é a prática de gerenciar o código em versões — acompanhar revisões e histórico de alterações para facilitar a revisão e a recuperação do código. Essa prática geralmente é implementada usando sistemas de controle de versão, como o Git, que permitem que vários desenvolvedores colaborem na criação de código. Esses sistemas fornecem um processo claro para mesclar alterações de código que ocorrem nos mesmos arquivos, lidar com conflitos e reverter alterações em estados anteriores.
O uso do controle de versão é uma prática fundamental do DevOps, ajudando as equipes de desenvolvimento a trabalhar em conjunto, dividir tarefas de codificação entre os membros da equipe e armazenar todo o código para facilitar a recuperação, se necessário. O controle de versão também é um elemento necessário em outras práticas, como integração contínua e infraestrutura como código.
Desenvolvimento de software agile
O Agile é uma abordagem de desenvolvimento de software que enfatiza a colaboração de equipe, os comentários do cliente e do usuário e a alta adaptabilidade para alterar por meio de ciclos de lançamento curtos. As equipes que praticam o Agile fornecem alterações e melhorias contínuas aos clientes, coletam seus comentários e, em seguida, aprendem e se ajustam com base nas necessidades e nas necessidades dos clientes. Agile é substancialmente diferente de outras estruturas mais tradicionais, como cascata, que inclui ciclos de lançamento longos definidos por fases sequenciais. Kanban e Scrum são duas estruturas populares associadas ao Agile.
Infraestrutura como código
A infraestrutura como código define os recursos e topologias do sistema de maneira descritiva que permite que as equipes gerenciem esses recursos como eles codificariam. Essas definições também podem ser armazenadas e atualizadas em sistemas de controle de versão, em que podem ser revisadas e revertidas, novamente como código.
Praticar a infraestrutura como código ajuda as equipes a implantar recursos do sistema de maneira confiável, repetível e controlada. A infraestrutura como código também ajuda a automatizar a implantação e reduz o risco de erro humano, especialmente para ambientes grandes complexos. Essa solução repetível e confiável para implantação de ambiente permite que as equipes mantenham ambientes de desenvolvimento e teste idênticos à produção. A duplicação de ambientes para diferentes data centers e plataformas de nuvem também se torna mais simples e eficiente.
Gerenciamento de configuração
O gerenciamento de configuração refere-se ao gerenciamento do estado dos recursos em um sistema, incluindo servidores, máquinas virtuais e bancos de dados. Usando ferramentas de gerenciamento de configuração, as equipes podem implementar alterações de forma controlada e sistemática, reduzindo os riscos de modificar a configuração do sistema. O Teams usa ferramentas de gerenciamento de configuração para acompanhar o estado do sistema e ajudar a evitar o descompasso de configuração, que é como a configuração de um recurso do sistema se desvia ao longo do tempo do estado desejado definido para ele.
Junto com a infraestrutura como código, é fácil modelar e automatizar a definição e a configuração do sistema, que ajudam as equipes a operar ambientes complexos em escala.
Monitoramento contínuo
O monitoramento contínuo significa ter visibilidade completa e em tempo real do desempenho e da integridade de toda a pilha de aplicativos. Essa visibilidade varia desde a infraestrutura subjacente que executa o aplicativo até componentes de software de nível superior. A visibilidade é realizada por meio da coleção de telemetria e metadados e configuração de alertas para condições predefinidas que garantem a atenção de um operador. A telemetria inclui dados de eventos e logs coletados de várias partes do sistema, que são armazenados onde podem ser analisados e consultados.
As equipes de DevOps de alto desempenho garantem que elas definam alertas acionáveis e significativos e coletem telemetria avançada para que possam extrair insights de grandes quantidades de dados. Esses insights ajudam a equipe a atenuar problemas em tempo real e a ver como melhorar o aplicativo em ciclos de desenvolvimento futuros.
Planning
Na fase de planejamento, as equipes de DevOps idealizam, definem e descrevem os recursos e as funcionalidades dos aplicativos e sistemas que planejam criar. Equipes acompanham o progresso das tarefas em níveis de granularidade baixos e altos, desde produtos únicos até vários portfólios de produtos. O Teams usa as seguintes práticas de DevOps para planejar com agilidade e visibilidade:
- Criar pendências.
- Rastrear bugs
- Gerenciar o desenvolvimento de software Agile com o Scrum.
- Use placas Kanban.
- Visualizar o progresso com painéis.
Para obter uma visão geral das várias lições aprendidas e práticas que a Microsoft adotou para dar suporte ao planejamento do DevOps entre as equipes de software da empresa, consulte como a Microsoft planeja com o DevOps.
Desenvolvimento
A fase de desenvolvimento inclui todos os aspectos do desenvolvimento de código de software. Nesta fase, as equipes do DevOps fazem as seguintes tarefas:
- Selecione um ambiente de desenvolvimento.
- Escreva, teste, examine e integre o código.
- Compile o código em artefatos para implantar em vários ambientes.
- Use o controle de versão, geralmente Git, para colaborar no código e trabalhar em paralelo.
Para inovar rapidamente sem sacrificar a qualidade, a estabilidade e a produtividade, as equipes do DevOps:
- Use ferramentas altamente produtivas.
- Automatizar tarefas repetitivas e manuais.
- Iterar em pequenos incrementos por meio de teste automatizado e integração contínua (CI).
Para obter uma visão geral das práticas de desenvolvimento que a Microsoft adotou para dar suporte à mudança para o DevOps, confira como a Microsoft se desenvolve com o DevOps.
Entregar
A entrega é o processo de implantação consistente e confiável de aplicativos em ambientes de produção, idealmente por meio de CD (entrega contínua).
Na fase de entrega, as equipes do DevOps:
- Defina um processo de gerenciamento de versão com estágios de aprovação manuais claros.
- Defina portões automatizados para mover aplicativos entre estágios até a versão final para os clientes.
- Automatize os processos de entrega para torná-los escalonáveis, repetíveis, controlados e bem testados.
A entrega também inclui a implantação e a configuração da infraestrutura fundamental do ambiente de entrega. As equipes de DevOps usam tecnologias como IaC (infraestrutura como código),contêineres e microsserviços para fornecer ambientes de infraestrutura totalmente controlados.
As práticas de implantação seguras podem identificar problemas antes de afetarem a experiência do cliente. Essas práticas ajudam as equipes do DevOps a oferecer com frequência facilidade, confiança e paz de espírito.
Os principais princípios e processos do DevOps que a Microsoft evoluiu para fornecer sistemas de entrega eficientes são descritos em Como a Microsoft fornece software com o DevOps.
Operations
A fase de operações envolve a manutenção, o monitoramento e a solução de problemas de aplicativos em ambientes de produção, incluindo nuvens híbridas ou públicas, como o Azure. As equipes de DevOps visam confiabilidade do sistema, alta disponibilidade, segurança forte e tempo de inatividade zero.
A entrega automatizada e as práticas de implantação seguras ajudam as equipes a identificar e atenuar problemas rapidamente quando eles ocorrem. A manutenção da vigilância requer telemetria avançada, alertas acionáveis e visibilidade total de aplicativos e sistemas subjacentes.
As práticas que a Microsoft usa para operar plataformas online complexas são descritas em Como a Microsoft opera sistemas confiáveis com o DevOps.
Próximas etapas
- Planejar cargas de trabalho eficientes com o DevOps
- Desenvolver software moderno com o DevOps
- Fornecer serviços de qualidade com DevOps
- Operar sistemas confiáveis com DevOps
Outros recursos
- Soluções de DevOps no Azure
- O percurso de DevOps na Microsoft
- Começar a fazer o DevOps com o Azure
- Segurança no DevOps (DevSecOps)
- O que é engenharia de plataforma?
Treinamento e certificações
- Introdução ao Azure DevOps
- Apresentar o DevOps Dojo: criar eficiências que dão suporte à sua empresa
- AZ-400: Introdução a uma jornada de transformação do DevOps
- Facilitar a comunicação e a colaboração
- Exame AZ-400: Projetando e implementando soluções do Microsoft DevOps
- AZ-400: implementar a segurança e validar bases de código para conformidade