Padrões para Kubernetes
Elementos reutilizáveis no design de aplicações nativas de nuvem
Descrição do livro
O modo como os desenvolvedores projetam, desenvolvem e executam software mudou significativamente com a evolução dos microsserviços e dos contêineres. Essas arquiteturas modernas oferecem novas primitivas distribuídas que exigem um conjunto diferente de práticas, distinto daquele com o qual muitos desenvolvedores, líderes técnicos e arquitetos estão acostumados. Este guia apresenta padrões comuns e reutilizáveis, além de princípios para o design e a implementação de aplicações nativas de nuvem no Kubernetes.
Cada padrão inclui uma descrição do problema e uma solução específica no Kubernetes. Todos os padrões acompanham e são demonstrados por exemplos concretos de código. Este livro é ideal para desenvolvedores e arquitetos que já tenham familiaridade com os conceitos básicos do Kubernetes, e que queiram aprender a solucionar desafios comuns no ambiente nativo de nuvem, usando padrões de projeto de uso comprovado.
Você conhecerá as seguintes classes de padrões:
Padrões básicos, que incluem princípios e práticas essenciais para desenvolver aplicações nativas de nuvem com base em contêineres.
Padrões comportamentais, que exploram conceitos mais específicos para administrar contêineres e interações com a plataforma.
Padrões estruturais, que ajudam você a organizar contêineres em um Pod para tratar casos de uso específicos.
Padrões de configuração, que oferecem insights sobre como tratar as configurações das aplicações no Kubernetes.
Padrões avançados, que incluem assuntos mais complexos, como operadores e escalabilidade automática (autoscaling).
Sumário
Sumário
- Apresentação
- Prefácio
- Capítulo 1 ■ Introdução
- Caminho para o ambiente nativo de nuvem
- Primitivas distribuídas
- Contêineres
- Pods
- Services
- Rótulos
- Anotações
- Namespaces
- Discussão
- Mais informações
- Parte I Padrões básicos
- Capítulo 2 ■ Predictable Demands
- Problema
- Solução
- Dependências de execução
- Perfis de recursos
- Prioridade dos Pods
- Recursos para projetos
- Planejamento de capacidade
- Discussão
- Mais informações
- Capítulo 3 ■ Declarative Deployment
- Problema
- Solução
- Implantação contínua
- Implantação fixa
- Implantação azul-verde
- Implantação canário
- Discussão
- Mais informações
- Capítulo 4 ■ Health Probe
- Problema
- Solução
- Verificação de sanidade de processos
- Liveness probes
- Readiness probes
- Discussão
- Mais informações
- Capítulo 5 ■ Managed Lifecycle
- Problema
- Solução
- Sinal SIGTERM
- Sinal SIGKILL
- Hook postStart
- Hook preStop
- Outros controles relacionados ao ciclo de vida
- Discussão
- Mais informações
- Capítulo 6 ■ Automated Placement
- Problema
- Solução
- Recursos disponíveis nos nós
- Demandas de recursos dos contêineres
- Políticas de distribuição
- Processo de escalonamento
- Afinidade dos nós
- Afinidade e antiafinidade dos Pods
- Taints e tolerâncias
- Discussão
- Mais informações
- Parte II Padrões comportamentais
- Capítulo 7 ■ Batch Job
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 8 ■ Periodic Job
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 9 ■ Daemon Service
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 10 ■ Singleton Service
- Problema
- Solução
- Locking externo à aplicação
- Locking interno à aplicação
- Pod Disruption Budget
- Discussão
- Mais informações
- Capítulo 11 ■ Stateful Service
- Problema
- Armazenagem
- Rede
- Identidade
- Ordenação
- Outros requisitos
- Solução
- Armazenagem
- Rede
- Identidade
- Ordenação
- Outros recursos
- Discussão
- Mais informações
- Problema
- Capítulo 12 ■ Service Discovery
- Problema
- Solução
- Descoberta de serviços interna
- Descoberta de serviços manual
- Descoberta de serviços de fora do cluster
- Descoberta de serviços na camada de aplicação
- Discussão
- Mais informações
- Capítulo 13 ■ Self Awareness
- Problema
- Solução
- Discussão
- Mais informações
- Parte III Padrões estruturais
- Capítulo 14 ■ Init Container
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 15 ■ Sidecar
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 16 ■ Adapter
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 17 ■ Ambassador
- Problema
- Solução
- Discussão
- Mais informações
- Parte IV Padrões de configuração
- Capítulo 18 ■ EnvVar Configuration
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 19 ■ Configuration Resource
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 20 ■ Immutable Configuration
- Problema
- Solução
- Volumes Docker
- Init Containers no Kubernetes
- Templates do OpenShift
- Discussão
- Mais informações
- Capítulo 21 ■ Configuration Template
- Problema
- Solução
- Discussão
- Mais informações
- Parte V Padrões avançados
- Capítulo 22 ■ Controller
- Problema
- Solução
- Discussão
- Mais informações
- Capítulo 23 ■ Operator
- Problema
- Solução
- Custom Resource Definitions
- Classificação de Controllers e Operators
- Desenvolvimento e implantação de um Operator
- Exemplo
- Discussão
- Mais informações
- Capítulo 24 ■ Elastic Scale
- Problema
- Solução
- Escalando horizontalmente de modo manual
- Escalando Pods horizontalmente de modo automático
- Escalando Pods verticalmente de modo automático
- Escalando clusters de modo automático
- Níveis para escalar
- Discussão
- Mais informações
- Capítulo 25 ■ Image Builder
- Problema
- Solução
- OpenShift build
- Knative build
- Discussão
- Mais informações
- Posfácio
- Sobre os autores
- Colofão






