Todas as notas

NOTAS DE ESTUDO

ECS, Fargate, ECR, EKS e serverless

O que é Docker?

  • Plataforma de desenvolvimento de software para implantar aplicações.
  • Aplicações são empacotadas em contêineres que podem executar em diferentes sistemas operacionais.
  • O comportamento é consistente independentemente do local de execução:
    • Diferentes máquinas.
    • Menos problemas de compatibilidade.
    • Comportamento previsível.
    • Menos trabalho.
    • Manutenção e implantação facilitadas.
    • Uso com diferentes linguagens, sistemas operacionais e tecnologias.
  • Contêineres podem ser adicionados ou removidos rapidamente, em segundos.

Onde ficam as imagens Docker?

  • Em repositórios de imagens Docker.
  • Público: Docker Hub, com imagens-base para Ubuntu, MySQL, Node.js, Java e outras tecnologias.
  • Privado: Amazon ECR, Elastic Container Registry.

Docker e máquinas virtuais

  • Docker se aproxima de uma tecnologia de virtualização, mas não é exatamente a mesma coisa.
  • Recursos são compartilhados com o host, permitindo vários contêineres em um servidor.

ECS

  • Elastic Container Service.
  • Executa contêineres Docker na AWS.
  • É necessário provisionar e manter a infraestrutura, ou seja, as instâncias EC2.
  • A AWS inicia e interrompe os contêineres.
  • Integração com Application Load Balancer.

Fargate

  • Executa contêineres Docker na AWS.
  • Não exige provisionar infraestrutura nem gerenciar instâncias EC2.
  • Oferta serverless.
  • A AWS executa os contêineres conforme a CPU e a RAM solicitadas.

ECR

  • Elastic Container Registry.
  • Registro privado Docker na AWS.
  • Armazena as imagens que serão executadas por EC2 ou Fargate.

Amazon EKS

  • Elastic Kubernetes Service.
  • Permite iniciar clusters Kubernetes gerenciados na AWS.
  • Kubernetes é um sistema aberto para gerenciar, implantar e escalar aplicações em contêineres.
  • Os contêineres podem executar em instâncias EC2 ou no Fargate, sem gerenciamento de servidores.
  • Kubernetes é independente de provedor e pode ser utilizado também em Azure, GCP e outras nuvens.

Serverless

  • Paradigma em que desenvolvedores não precisam mais gerenciar servidores.
  • Eles implantam código — inicialmente, funções.
  • No início, serverless correspondia a FaaS, Function as a Service.
  • A AWS Lambda foi pioneira, mas a categoria também inclui bancos de dados, mensageria, armazenamento e outros serviços gerenciados.
  • Serverless não significa ausência de servidores: significa que você não os provisiona, gerencia ou vê.
  • Exemplos: Amazon S3, DynamoDB, Fargate e Lambda.