Mapa mental
DevOps
Contenido del mapa
DevOps
Desenvolvimento x SysAdmin
- A equipe de desenvolvimento geralmente desenvolve novas funcionalidades, traz novas tecnologias e aumenta o número de mudanças e entregas no ambiente de produção. O que cai em contradição com o que geralmente é a função da equipe de sysadmin, que é manter a estabilidade diminuindo o numero de mudanças. É justamente pra conter essa contradição que uma equipe de DevOps atua.
O que é DevOps ?
- DevOps é uma cultura que utiliza práticas e ferramentas para aumentar a capacidade de uma organização de desenvolver e entregar softwares, serviços, aplicativos e demais produtos de tecnologia com alta velocidade, porém, sem pôr em risco a estabilidade.
- Funcionamento do DevOps
- Os sysadmins são envolvidos desde o início do desenvolvimento do software, e os desenvolvedores acompanham o software até o fim, principalmente na parte das entregas e funcionamento do ambiente de produção
- Como desenvolvedor você não precisa conhecer de forma profunda todas as habilidades do sysadmin, mas deve saber o essencial para acompanhar e contribuir com a implantação/operação do software, e o sysadmin deve conhecer o essencial para acompanhar e contribuir com o desenvolvimento do software.
Benefícios da cultutra DevOps
- Aumento da Velocidade de Entrega
- Automação de processos manuais e lentos, contribuindo, assim, para o aumento da frequência e do número de entregas do seu produto. Quanto mais rápido você conseguir entregar, mais rápido identificará possíveis problemas e poderá corrigir os erros com maior agilidade. Vantagem competitiva.
- Escalabilidade
- Automatização da estrutura. Proporciona a possibilidade de gerenciar sua infraestrutura como código, diminuindo a interferência manual e, consequentemente, o risco. Você passa a escalar seu código de infraestrutura em diversos ambientes, pois aquilo que é igual para todos é replicado, e implantando de forma individual e automática o que é específico.
- Velocidade
- As equipes que possuem a cultura DevOps têm maior independência, assumindo a responsabilidade ponta a ponta dos produtos e serviços. Também não é necessário demandar algo de infraestrutura para fora do time, o que poderia levar mais tempo ou espera por priorização.
- Colaboração Continua
- As equipes de desenvolvimento e sysadmin colaboram juntas, compartilham muitas responsabilidades e acordam seus fluxos de trabalho, como consequência, acontece a redução de processos ineficazes e a economia de tempo.
- Confiabilidade
- DevOps promove a garantia da qualidade das atualizações de software e alterações de infraestrutura por meio de processos automatizados de testes em diversos níveis. Isso aumenta a confiança e velocidade das entregas .
- Segurança
- A adoção da cultura DevOps aumenta a segurança por meio de políticas de segurança automáticas.
- Aumento da Velocidade de Entrega
Praticas DevOps
- Infraestrutura como Código
- A infraestrutura como código é uma prática que utiliza técnicas de desenvolvimento de código e que permite controle de versão e integração contínua da infraestrutura, por meio de API, para que os desenvolvedores e sysadmins trabalhem com a infraestrutura de modo programático, em vez de instalar e configurar manualmente a infraestrutura. O código da infraestrutura pode ser reaproveitado.
- Arquitetura de Microserviços
- A arquitetura de microsserviços representa um conjunto de pequenos serviços que se interligam para construir um sistema. Cada serviço possui um contexto único de negócio, é executado de forma individual e independente e se comunica com outros serviços por meio de uma interface leve.
- Integração Continua
- Prática de desenvolvimento que permite a execução dos testes sempre que as alterações de código são enviadas para o repositório central. Os principais objetivos da integração contínua são encontrar e apontar os erros mais rapidamente a cada alteração, consequentemente, melhorar a qualidade do software e reduzir o tempo necessário para validação.
- Entrega Continua
- Prática que permite ao desenvolvedor, ao realizar as alterações de códigos, utilizar a integração contínua para realização dos testes necessários e preparar automaticamente as modificações para uma entrega em produção.
- Monitoração, Alarme, Log e Indexação
- Ao capturar, indexar e analisar os logs gerados pelos aplicativos e pela infraestrutura, é possível entender como as alterações ou atualizações estão afetando o ambiente e seus usuários, o que proporciona mais facilidade na rastreabilidade, fornecendo maior esclarecimento sobre as causas raiz dos problemas.
- Comunicação e Colaboração
- O uso das práticas e ferramentas contribui para as equipes definirem normas culturais sólidas com relação ao compartilhamento de informações e processos de trabalho
- Infraestrutura como Código
Estágios e Ferramentas DevOps
- Planejamento
- Estimar e fatiar as atividades necessárias para a entrega, é fundamental a utilização das práticas de agilidade para melhor organização e fluxo das atividades.
- Desenvolvimento/codificação
- A codificação do software e a codificação da infraestrutura como código.
- Git
- Sistema de controle de versões distribuído, capaz de registrar o histórico de edições de qualquer tipo de arquivo, facilitando que um time trabalhe no mesmo arquivo de código ao mesmo tempo.
- Confluence
- Para documentar nosso sistema de forma colaborativa
- Jira
- Para organizar e acompanhar as atividades do time, garantindo o gerenciamento de todo o ciclo de desenvolvimento em um único lugar, permitindo o link entre atividades, repositório Git e documentação do Confluence.
- Git
- A codificação do software e a codificação da infraestrutura como código.
- Construção
- Com o código desenvolvido, é necessário realizar o processo de construção também conhecido como build, no qual o código e demais dependências do software e da infraestrutura são baixados do repositório central, compilados e fechados em uma versão, que será disponibilizada para os testes.
- Apache Maven
- Realiza a automação da compilação do código e gerenciamento das dependências por meio de XML
- Gradle
- Ele se baseia nos conceitos do Apache Maven, porém, introduz uma linguagem de domínio específico, baseada em Groovy em vez de XML, permitindo maiores funções programaticamente.
- Apache Maven
- Com o código desenvolvido, é necessário realizar o processo de construção também conhecido como build, no qual o código e demais dependências do software e da infraestrutura são baixados do repositório central, compilados e fechados em uma versão, que será disponibilizada para os testes.
- Teste
- Além dos testes no software, que vão desde testes unitários, a testes de fumaça (smoke test) e integração, regressão e ponta a ponta, também são realizados os testes de infraestrutura
- JUnit
- Para testes unitários de código
- Selenium
- Para testes que envolvam telas ou fluxos ponta a ponta.
- TestInfra
- Para testar infraestruturas.
- JUnit
- Além dos testes no software, que vão desde testes unitários, a testes de fumaça (smoke test) e integração, regressão e ponta a ponta, também são realizados os testes de infraestrutura
- Lançamento/Entrega
- No pipeline de entrega, é possível configurar diversas etapas da entrega, que podem ir desde testes simples até entregas em diversos níveis de ambientes (homologação, produção, pós-produção), além de permitir um passo de aprovação para seguir com a entrega.
- Jenkins e CodeShip
- Ferramentas de pipeline de entrega, que suportam integração e entrega contínua
- Jenkins e CodeShip
- No pipeline de entrega, é possível configurar diversas etapas da entrega, que podem ir desde testes simples até entregas em diversos níveis de ambientes (homologação, produção, pós-produção), além de permitir um passo de aprovação para seguir com a entrega.
- Planejamento
Información
- Descripción
- Mapa Mental sobre DevOps, creado por Letícia Ferreira el 18/07/2022.
- Creado por
- Letícia Ferreira
- Visitas
- 1
- Valoración