Prática de DevOps com Docker
  • Prática de DevOps com Docker
  • Autores e Agradecimentos
  • Uso do Livro
  • Contribua com o Livro
  • Licença
  • Organização do Livro
  • 1. Introdução
    • 1.1 - Máquinas Virtuais e Contêineres
    • 1.2 DevOps e Docker
    • 1.3 Configuração do Ambiente
  • 2. Produção
    • 2.1 Produção: o fim ou o início?
    • 2.2 Ambiente de Produção
    • 2.3 Instalação do Servidor de Banco de Dados
    • 2.4 Instalação do Servidor de Web
  • 3. Monitoramento
    • 3.1 Introdução
    • 3.2 Configurando o Servidor de Monitoramento
    • 3.3 Monitorando Servidores do Ambiente de Produção
    • 3.4 Comandos de Verificação do Nagios
    • 3.5 Criando Verificações Mais Específicas
    • 3.6 Criando Alertas
    • 3.7 Recuperando de Problemas
  • 4. Infraestrutura como Código e Orquestração
    • 4.1 Introdução
    • 4.2 Orquestração com Docker Compose
  • 5. Integração Contínua
    • 5.1 Introdução
    • 5.2 Controle de Versão
    • 5.3 Construindo o Projeto Utilizando Contêiner
    • 5.4 Garantindo Acesso de Desenvolvedor nas Plataformas por meio de Tokens
    • 5.5 Integrando GitLab e GitHub
    • 5.6 Pipeline de Integração Contínua com GitLab CI/CD
  • 6. Entrega Contínua
    • 6.1 Introdução
    • 6.2 Personalizando Imagem Docker
    • 6.3 Personalizando Imagem do Servidor Web via GitLab CI/CD
    • 6.4 Atualizando o Servidor Web no Ambiente de Produção
  • 7. Deploy na Nuvem
    • 7.1 Introdução
    • 7.2 Configurando o ambiente local de desenvolvimento
    • 7.3 Conhecendo os recursos e conceitos do Kubernetes
    • 7.4 Entendendo o Chart
    • 7.5 Configurando o Jib
    • 7.6 Definindo o chart utilizado para execução local e na nuvem
  • 8. Conclusão
    • Conclusão
Powered by GitBook
On this page

Was this helpful?

  1. 7. Deploy na Nuvem

7.1 Introdução

Capítulo redigido por Bruno Lopes Lourenço

Previous6.4 Atualizando o Servidor Web no Ambiente de ProduçãoNext7.2 Configurando o ambiente local de desenvolvimento

Last updated 3 years ago

Was this helpful?

Nos últimos anos, a adoção de nuvens públicas para a disponibilização de aplicações tem se tornado cada vez mais comum. Esse tipo de serviço é oferecido por empresas denominadas servidores de nuvem, e entre os serviços mais populares temos a AWS da Amazon, o GCP da Google e a Azure da Microsoft [ref].

O nome nuvem vem do termo em inglês , que é um modelo computacional que se caracteriza por utilizar uma rede de servidores, os quais normalmente estão distribuídos em diferentes localizações geográficas, com o intuito de permitir o armazenamento e processamento de informações, e a execução de aplicações, de modo a oferecer serviços para os usuários.

As vantagens principais desse modelo são:

  • Resiliência das aplicações: Mais de uma instância da aplicação pode ser executada em paralelo, sendo assim, no caso de uma falha em um dos servidores, a aplicação pode ser servida a partir de outro servidor [ref].

  • Redução de custos: Ao optar por contratar um serviço de nuvem, a empresa não necessita investir na criação da sua própria infraestrutura, e na contratação de pessoal especializado para configurar e manter esse tipo de ambiente (). O provedor da nuvem compartilha os recursos entre seus clientes, conseguindo altas taxas de utilização dos mesmos, e com isso consegue oferecer um valor mais atraente.

  • Flexibilidade para gerenciar os recursos computacionais: É possível aumentar ou diminuir rapidamente a quantidade de recursos computacionais disponíveis para as aplicações, evitando desperdícios, e permitindo o atendimento de altas cargas de processamento [ref].

Esse modelo possui uma forte sinergia com as práticas de DevOps, pois possibilita que os próprios desenvolvedores codifiquem a infraestrutra necessária para a execução de suas aplicações, desde o número de instâncias dos serviços, até o nível mais básico como o número de máquinas utilizadas, e a sua capacidade. Esse processo é conhecido com o (IaC).

Nesse sentido, o , que é uma plataforma para gerenciamento de cargas de trabalho e serviços distribuídos em contêineres, tem emergido como a tecnologia mais utilizada para disponibilização de aplicações em nuvem. Segundo referente ao ano de 2021, 96% dos entrevistados relataram estarem usando, ou ao menos avaliando o uso dele.

Basicamente o Kubernetes permite a criação e gerenciamento de um cluster de servidores, denominados nós, capazes de executar contêineres. Ele permite a definição de volumes de dados, utilização de certificados SSL, balanceamento de carga, e diversas outras funcionalidades que facilitam sobremaneira o desenvolvimento e implantação de aplicações na nuvem.

Nesse capítulo, nosso intuito é estruturar o nosso projeto de modo que ele possa ser executado no Kubernetes, tanto localmente na própria máquina do desenvolvedor, quanto disponibilizado em uma nuvem pública. Utilizaremos como exemplo a nuvem da Oracle, a (OCI) para realizar o deploy da aplicação e de suas dependências.

cloud computing
https://technologyadvice.com/blog/information-technology/4-ways-cloud-computing-can-save-money/
Infrastructure as Code
Kubernetes
um relatório da Cloud Native Computing Foundation (CNCF)
Oracle Cloud Infrastructure