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.