Implante Microsserviços em um Cluster do Kubernetes
Em uma arquitetura de microsserviços, cada microsserviço executa uma tarefa simples e se comunica com clientes ou outros microsserviços usando mecanismos leves, como solicitações de API REST. Você pode codificar cada microsserviço usando uma linguagem de programação mais adequada para a tarefa que ele executa. Aplicativos baseados em microsserviços são mais fáceis de implantar e manter.
Arquitetura
Esta arquitetura de referência mostra microsserviços Python Flask e Redis implantados como contêineres Docker em um cluster Kubernetes no Oracle Cloud Infrastructure. Os contêineres extraem imagens do Docker do Oracle Cloud Infrastructure Registry.
O diagrama a seguir ilustra essa arquitetura de referência.

Descrição da ilustração microsserviços-oci.png
A arquitetura tem os seguintes componentes:
- Região
Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominados domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou mesmo continentes).
- Domínios de disponibilidade
Os domínios de disponibilidade são data centers independentes e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que fornece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou resfriamento ou a rede interna de domínios de disponibilidade. Portanto, uma falha em um domínio de disponibilidade provavelmente não afetará os outros domínios de disponibilidade na região.
- Domínios de falha
Domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de alimentação dentro de um domínio de falha.
- Rede virtual na nuvem (VCN) e sub-rede
Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes de data center tradicionais, as VCNs permitem controle total sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você poderá alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter como escopo uma região ou um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não são sobrepostos com as outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
- Container Engine for Kubernetes
O Oracle Cloud Infrastructure Container Engine for Kubernetes é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos de contêineres na nuvem. Você especifica os recursos de computação necessários para os seus aplicativos, e o Container Engine for Kubernetes os provisiona no Oracle Cloud Infrastructure em uma tenancy existente. O Serviço Container Engine for Kubernetes usa o Kubernetes para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos de contêineres entre clusters de hosts.
- Registro
O Oracle Cloud Infrastructure Registry é um registro gerenciado pela Oracle que permite simplificar seu workflow de desenvolvimento para produção. O registro facilita o armazenamento, o compartilhamento e o gerenciamento de artefatos de desenvolvimento, como imagens do Docker. A arquitetura altamente disponível e escalável do Oracle Cloud Infrastructure garante que você possa implantar e gerenciar seus aplicativos de forma confiável.
Recomendações
Os requisitos podem diferir da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.
- VCN
Quando você cria uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.
Selecione blocos CIDR que não se sobreponham a nenhuma outra rede (no Oracle Cloud Infrastructure, seu data center local ou outro provedor de nuvem) para a qual você pretende configurar conexões privadas.
Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.
Ao projetar as sub-redes, considere seu fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos dentro de uma camada ou função específica à mesma sub-rede, que pode servir como limite de segurança.
Use sub-redes regionais.
Para simplificar, essa arquitetura usa uma sub-rede pública para hospedar o Container Engine for Kubernetes. Você também pode usar uma sub-rede privada. Nesse caso, use um gateway NAT para permitir o acesso à internet pública do cluster.
- Container Engine for Kubernetes
Nesta arquitetura, os nós de trabalho usam a forma VM.Standard2.1 e são executados no Oracle Linux. Dois nós de trabalho são usados para hospedar dois microsserviços diferentes, mas você pode criar até 1000 nós em cada cluster.
- Registro
Usamos o Oracle Cloud Infrastructure Registry como um registro privado do Docker para uso interno, enviando imagens do Docker e extraindo-as do Registro. Você também pode usá-lo como registro público do Docker, permitindo que qualquer usuário com acesso à Internet e o URL apropriado extraia imagens de repositórios públicos no registro.
Considerações
- Escalabilidade
Você pode expandir seu aplicativo atualizando o número de nós de trabalho no cluster do Kubernetes, dependendo da carga. Da mesma forma, é possível reduzir o número de nós de trabalho no cluster. Ao criar um serviço no cluster do Kubernetes, você pode criar um balanceador de carga para distribuir o tráfego de serviço entre os nós designados para esse serviço.
- Disponibilidade do aplicativo
Os domínios de falha fornecem a melhor resiliência em um único domínio de disponibilidade. Você também pode implantar instâncias ou nós que executam as mesmas tarefas em vários domínios de disponibilidade. Este design remove um único ponto de falha introduzindo redundância.
- Capacidade
Essa arquitetura usa dois microsserviços. Um é um microsserviço Python Flask, um aplicativo web simples que executa operações CRUD. O outro microsserviço é um banco de dados na memória Redis. O microsserviço Python-Flask se comunica com o microsserviço Redis para recuperar os dados.
- Segurança
Use políticas que restringem quem pode acessar os recursos do Oracle Cloud Infrastructure que sua empresa tem e como.
O Container Engine for Kubernetes está integrado com o Oracle Cloud Infrastructure Identity and Access Management (IAM). O IAM fornece autenticação fácil com funcionalidade nativa de identidade do Oracle Cloud Infrastructure.
Implantar
O código necessário para implantar um cluster do OKE está disponível em GitHub. Este código não implanta os microsserviços.
Você pode inserir o código no Oracle Cloud Infrastructure Resource Manager com um único clique, criar a pilha e implantá-lo. Como alternativa, faça download do código GitHub para seu computador, personalize o código e implante a arquitetura usando a CLI do Terraform.
- Implante usando o Oracle Cloud Infrastructure Resource Manager:
- Clique em
Se você ainda não estiver conectado, informe a tenancy e as credenciais do usuário.
- Examinar e aceitar os termos e condições.
- Selecione a região na qual você deseja implantar a pilha.
- Siga os prompts na tela e as instruções para criar a pilha.
- Após criar a pilha, clique em Ações do Terraform e selecione Planejar.
- Aguarde a conclusão do job e revise o plano.
Para fazer alterações, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Plano novamente.
- Se nenhuma alteração adicional for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
- Clique em
- Implante usando a CLI do Terraform:
- Vá para GitHub.
- Faça download do código ou clone-o no computador local.
- Siga as instruções em
README.md
.
Explorar Mais
Saiba mais sobre como implantar aplicativos em contêineres no Kubernetes na nuvem.
- Visão Geral do Serviço Registry
- Visão Geral do Serviço Container Engine for Kubernetes
- Conheça a arquitetura de aplicativos baseados em microsserviços no Oracle Cloud
- Saiba mais sobre o design de uma topologia do Kubernetes para aplicativos de contêineres na nuvem
- Implante um aplicativo baseado em microsserviços no Kubernetes conectado a um banco de dados autônomo
- Implantar microsserviços com um banco de dados convergido e Helidon
-
Página de serviço OCI Cache with Redis
OCI Cache com Redis: A maneira extremamente rápida de melhorar o desempenho do seu aplicativo
Alterar Log
Este log lista alterações significativas:
22 de novembro de 2023 |
|
15 de setembro de 2022 | Esclareça se o Terraform implantável inclui um cluster do OKE. Ele não implanta os microsserviços. |
10 de novembro de 2021 |
|
5 de janeiro de 2021 | Instruções adicionadas para implantar a arquitetura usando o Oracle Cloud Infrastructure Resource Manager. |
9 de setembro de 2020 | Seção Implantação adicionada. |