DevOps, é uma pratica da engenharia de software e TI que unifica o desenvolvimento de software(Dev) e as operações de TI(Ops), tendo característica de defender a automação e monitoramento de todas as fases da construção de um software (desde a integração, teste, liberação para implantação, ao gerenciamento de infraestrutura) auxiliando as empresas no gerenciamento de lançamento de novas versões, deixando o ambiente padronizado em ciclos de desenvolvimento menores, aumentando a frequência de implementação, deixando as liberações mais seguras, em alinhamento próximo com os objetivos de negócio.
Ferramentas de DevOps
Amazon Web Services conhecida como AWS, uma plataforma de serviços de computação em nuvem, formando uma plataforma de computação em nuvem da Amazon.com. Os serviços são oferecidos em várias geográficas distribuídas pelo mundo.
Heroku uma das primeiras plataformas em nuvem, plataforma que possui serviços como (PaaS) que suporta várias linguagens de programação, desenvolvido desde junho de 2007. Heroku é considerado uma plataforma poliglota pois possui recursos para um desenvolvedor criar, executar e dimensionar aplicativos de maneira semelhante na maioria dos idiomas.
Terraform é um open-source de infra-estrutura como código ferramenta de software criado por HashiCorp, permitindo que os usuários definam e provisionem uma infraestrutura de datacenter utilizando uma linguagem de configuração de auto nível conhecida como Hashicorp Configuration Language (HCL) ou, JSON. Ele suporta vários fornecedores de infraestrutura de nuvem.
Jenkins ajuda a automatizar as partes do desenvolvimento de software relacionadas à construção, implementação e teste, dando facilidade a integração contínua e a entrega contínua, é um servidor de automação gratuita e de código aberto, tendo um sistema baseado em servidor que é executado em contêineres de servlet. Ele suporta ferramentas de controle de versão e pode executar projetos.
Docker fornece uma camada de abstração e automação para virtualização do sistema operacional Windows e no Linux, é um software contêiner da empresa Docker. Docker usa isolamento de recurso do núcleo do Linux como cgroups e espaços de nomes do núcleo, sendo um sistema de arquivo com recursos de união, como OverlayFs criando contêineres independentes para executar dentro de uma única instância do sistema operacional, evitando sobrecarregar máquina virtual.
O Git foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel Linux, sendo adotado por muitos outros projetos. Git é um sistema de controle de versões distribuído, sendo usado principalmente no desenvolvimento de software, podendo ser usado também para registra o histórico de edições de qualquer tipo de arquivo.
Livros recomendados: Manual de DevOps, Jornada DevOps e Projeto Fenix.
Meu resumo do Livro Projeto Fenix:
Recomendo assistir o Video 10 Deploys por dia