1. Serverless
1.1. Serverless computing
1.1.1. modelo de execução de computação na nuvem onde o provedor gerencia a infraestrutura de servidores
1.1.1.1. permitindo aos desenvolvedores focar exclusivamente no código da aplicação
1.2. Características-chave
1.2.1. Gerenciamento de infraestrutura
1.2.1.1. a infraestrutura de servidor é totalmente gerenciada pelo provedor de serviços em nuvem
1.2.2. modelo de cobrança baseado em uso
1.2.2.1. pagamento conforme o uso real
1.2.2.1.1. com base no número de execuções e no tempo de execução das funções
1.2.3. Escala automática
1.2.3.1. as funções são automaticamente escaladas pelo provedor para atender às demandas de entrada
1.2.3.1.1. sem necessidade de configuração manual
1.3. Componentes
1.3.1. Funções como serviço
1.3.1.1. FaaS
1.3.2. Eventos
1.4. Benefícios
1.4.1. Desenvolvimento ágil
1.4.2. Custo-eficiência
1.4.3. Escalabilidade
1.5. Casos de uso comuns
1.5.1. Aplicações web e APIs
1.5.2. Serviços backend para
1.5.2.1. aplicações web
1.5.2.2. APIs RESTful
1.5.3. processamento de dados em tempo real
1.5.4. processamento de streams de dados
1.5.4.1. análise em tempo real
1.5.5. Automação e orquestração
1.5.6. Tarefas automatizadas
1.5.6.1. workflows de processamento de dados
1.6. Desafios
1.6.1. Cold start
1.6.2. Monitoramento e debugging
1.6.3. Vendor lock-in
1.7. Ferramentas e provedores
1.7.1. AWS Lambda
1.7.2. Azure Functions
1.7.3. Google Cloud Functions
2. IaC
2.1. Infrastructure as Code (IaC)
2.1.1. prática de gerenciar e provisionar infraestrutura de TI através de código e ferramentas de software
2.1.1.1. em vez de
2.1.1.1.1. processos manuais
2.1.1.1.2. ferramentas de gerenciamento de hardware
2.2. Princípios fundamentais
2.2.1. Automatização
2.2.2. Versionamento
2.2.3. Idempotência
2.2.3.1. capacidade de aplicar várias vezes o mesmo comando sem alterar o resultado final
2.2.3.1.1. garantindo a consistência da infraestrutura
2.3. Benefícios
2.3.1. Agilidade
2.3.2. Consistência
2.3.3. Custo-eficiência
2.3.4. Recuperação e replicação
2.4. Ferramentas comuns
2.4.1. Gerenciamento de configuração
2.4.1.1. Exemplos
2.4.1.1.1. Ansible
2.4.1.1.2. Puppet
2.4.1.1.3. Chef
2.4.2. Provisionamento de infraestrutura
2.4.2.1. Exemplos
2.4.2.1.1. Terraform
2.4.2.1.2. CloudFormation
2.5. Práticas
2.5.1. Código
2.5.1.1. Declarativo
2.5.1.1.1. especifica o "o quê"
2.5.1.2. Imperativo
2.5.1.2.1. foca no "como"
2.5.2. Integração e entrega contínuas
2.5.2.1. CI/CD
2.5.2.2. IaC é integrado aos processos de CI/CD para automatizar o deploy e a gestão de infraestrutura junto ao ciclo de vida da aplicação
3. Modelos de Implantação
3.1. Nuvem pública
3.1.1. Definição
3.1.1.1. serviços fornecidos sobre a infraestrutura compartilhada via internet
3.1.2. Características
3.1.2.1. escalável
3.1.2.2. custo-efetivo
3.1.2.3. sem gestão de hardware
3.1.3. Uso típico
3.1.3.1. aplicações web
3.1.3.2. desenvolvimento e teste
3.1.3.3. armazenamento e backup
3.2. Nuvem privada
3.2.1. Definição
3.2.1.1. infraestrutura dedicada a uma única organização
3.2.1.1.1. seja
3.2.2. Características
3.2.2.1. maior controle e segurança
3.2.2.2. customizável
3.2.3. Uso típico
3.2.3.1. empresas com requisitos rigorosos de
3.2.3.1.1. segurança
3.2.3.1.2. privacidade
3.2.3.2. grandes corporações
3.3. Nuvem comunitária
3.3.1. Definição
3.3.1.1. infraestrutura compartilhada por várias organizações com interesses comuns
3.3.2. Características
3.3.2.1. compartilha aspectos de nuvens
3.3.2.1.1. públicas
3.3.2.1.2. privadas
3.3.2.2. custo dividido entre participantes
3.3.3. Uso típico
3.3.3.1. setores com regulamentações específicas
3.3.3.2. projetos colaborativos
3.4. Nuvem híbrida
3.4.1. Definição
3.4.1.1. combinação de nuvens
3.4.1.1.1. públicas
3.4.1.1.2. privadas
3.4.1.1.3. comunitárias
3.4.2. Características
3.4.2.1. flexibilidade
3.4.2.2. escalabilidade
3.4.2.3. otimização de custos com segurança aprimorada
3.4.3. Uso típico
3.4.3.1. empresas buscando balancear carga entre nuvens
3.4.3.2. aplicações com componentes
3.4.3.2.1. públicos
3.4.3.2.2. privados
4. Arquitetura
4.1. Regiões
4.1.1. Definição
4.1.1.1. áreas geográficas específicas onde os provedores de nuvem operam
4.1.2. Propósito
4.1.2.1. reduzir a latência
4.1.2.2. melhorar a velocidade de acesso
4.1.2.3. conformidade regional
4.1.3. Exemplos
4.1.3.1. América do Norte
4.1.3.2. Europa
4.1.3.3. Ásia-Pacífico
4.2. Zonas de Disponibilidade (AZs)
4.2.1. Definição
4.2.1.1. data centers isolados fisicamente dentro de uma região
4.2.2. Propósito
4.2.2.1. garantir
4.2.2.1.1. alta disponibilidade
4.2.2.1.2. tolerância a falhas
4.2.3. Características
4.2.3.1. cada AZ opera independentemente
4.2.3.1.1. com próprios sistemas de
4.3. Data Centers
4.3.1. Definição
4.3.1.1. instalações físicas que abrigam
4.3.1.1.1. os servidores
4.3.1.1.2. outros componentes de hardware
4.3.2. Propósito
4.3.2.1. hospedar recursos de
4.3.2.1.1. computação
4.3.2.1.2. armazenamento
4.3.2.1.3. redes
4.3.3. Características
4.3.3.1. segurança reforçada
4.3.3.2. controle climático
4.3.3.3. redundância de energia