Arquitetura Cloud Native Question #019e3a4f
Quais são as características para construir toda aplicação cloud-native?
Resiliência, Operabilidade, Observabilidade, Disponibilidade
Resiliência, Containerd, Observabilidade, Agilidade
Kubernetes, Operabilidade, Observabilidade, Disponibilidade
Resiliência, Agilidade, Operabilidade, Observabilidade
Official Explanation / Community Explanations
Aplicações cloud-native são projetadas para aproveitar modelos de computação em nuvem, como microsserviços e contêineres, para alcançar escalabilidade, resiliência e implantação rápida. As quatro características principais são Resiliência, Agilidade, Operabilidade e Observabilidade.
Como Funciona
- Resiliência: A capacidade de se recuperar de falhas de forma graciosa. Isso é alcançado por meio de padrões como retentativas, circuit breakers e health checks.
- Agilidade: A capacidade de desenvolvimento e implantação rápidos. Isso é possibilitado por pipelines de integração contínua/entrega contínua (CI/CD) e infraestrutura como código.
- Operabilidade: A facilidade de gerenciar e manter a aplicação em produção. Isso inclui automação, monitoramento e capacidades de autocura.
- Observabilidade: A capacidade de entender o estado interno do sistema a partir de saídas externas. Isso é implementado por meio de logging, métricas e distributed tracing.
Por que o Valor Correto está Certo
O conjunto correto inclui Resiliência, Agilidade, Operabilidade, Observabilidade. Esses quatro pilares são amplamente reconhecidos na literatura cloud-native (por exemplo, da Cloud Native Computing Foundation) como essenciais para construir aplicações que exploram totalmente as plataformas de nuvem. Cada característica aborda um aspecto crítico: resiliência garante uptime, agilidade permite velocidade, operabilidade simplifica o gerenciamento e observabilidade fornece insight.
Por que os Valores Incorretos estão Errados
- Resiliência, Operabilidade, Observabilidade, Disponibilidade: Embora a disponibilidade seja importante, ela é frequentemente considerada um subconjunto da resiliência. O conjunto padrão enfatiza agilidade em vez de disponibilidade porque aplicações cloud-native são projetadas para serem resilientes o suficiente para manter a disponibilidade mesmo quando componentes falham.
- Resiliência, Containerd, Observabilidade, Agilidade: Containerd é um runtime de contêiner, não uma característica. É uma ferramenta usada para implementar aplicações cloud-native, não um atributo definidor.
- Kubernetes, Operabilidade, Observabilidade, Disponibilidade: Kubernetes é uma plataforma de orquestração, não uma característica. É uma ferramenta comum em ambientes cloud-native, mas não um atributo fundamental da aplicação em si.