Este documento realça as principais considerações de design que desempenham um papel fundamental na definição da sua arquitetura híbrida e multicloud geral. Analise e avalie holisticamente estas considerações em toda a arquitetura da solução, abrangendo todas as cargas de trabalho e não apenas as específicas.
Refatorar
Numa migração de refatoração, modifica as suas cargas de trabalho para tirar partido das capacidades da nuvem, e não apenas para as fazer funcionar no novo ambiente. Pode melhorar cada carga de trabalho em termos de desempenho, funcionalidades, custo e experiência do utilizador. Conforme realçado em Refatoração: mover e melhorar, alguns cenários de refatoração permitem-lhe modificar cargas de trabalho antes de as migrar para a nuvem. Esta abordagem de refatoração oferece as seguintes vantagens, especialmente se o seu objetivo for criar uma arquitetura híbrida como uma arquitetura direcionada a longo prazo:
- Pode melhorar o processo de implementação.
- Pode ajudar a acelerar a cadência de lançamentos e encurtar os ciclos de feedback investindo em infraestrutura e ferramentas de integração contínua/implementação contínua (CI/CD).
- Pode usar a refatorização como base para criar e gerir uma arquitetura híbrida com portabilidade de aplicações.
Para funcionar bem, esta abordagem requer normalmente determinados investimentos em infraestrutura e ferramentas no local. Por exemplo, configurar um registo de contentores local e aprovisionar clusters do Kubernetes para colocar aplicações em contentores. A edição Google Kubernetes Engine (GKE) Enterprise pode ser útil nesta abordagem para ambientes híbridos. Pode encontrar mais informações sobre o GKE Enterprise na secção seguinte. Também pode consultar a arquitetura de referência do ambiente híbrido do GKE Enterprise para mais detalhes.
Portabilidade da carga de trabalho
Com as arquiteturas híbridas e multicloud, pode querer mudar as cargas de trabalho entre os ambientes de computação que alojam os seus dados. Para ajudar a permitir a movimentação perfeita de cargas de trabalho entre ambientes, considere os seguintes fatores:
- Pode mover uma aplicação de um ambiente de computação para outro
sem modificar significativamente a aplicação e o respetivo modelo operacional:
- A implementação e a gestão de aplicações são consistentes em todos os ambientes de computação.
- A visibilidade, a configuração e a segurança são consistentes em todos os ambientes de computação.
- A capacidade de tornar uma carga de trabalho portátil não deve entrar em conflito com o facto de a carga de trabalho ser baseada na nuvem.
Automatização de infraestruturas
A automatização da infraestrutura é essencial para a portabilidade em arquiteturas híbridas e multicloud. Uma abordagem comum para automatizar a criação de infraestruturas é através da infraestrutura como código (IaC). A IaC envolve a gestão da sua infraestrutura em ficheiros, em vez de configurar manualmente recursos, como uma VM, um grupo de segurança ou um equilibrador de carga, numa interface do utilizador. O Terraform é uma ferramenta de IaC popular para definir recursos de infraestrutura num ficheiro. O Terraform também lhe permite automatizar a criação desses recursos em ambientes heterogéneos.
Para mais informações sobre as funções principais do Terraform que podem ajudar a automatizar o aprovisionamento e a gestão de Google Cloud recursos, consulte Projetos e módulos do Terraform para Google Cloud.
Pode usar ferramentas de gestão de configuração, como o Ansible, Puppet, ou o Chef para estabelecer um processo de implementação e configuração comum. Em alternativa, pode usar uma ferramenta de incorporação de imagens, como o Packer, para criar imagens de VMs para diferentes plataformas. Ao usar um único ficheiro de configuração partilhado, pode usar o Packer e o Cloud Build para criar uma imagem de VM para utilização no Compute Engine. Por último, pode usar soluções como o Prometheus e o Grafana para ajudar a garantir uma monitorização consistente em todos os ambientes.
Com base nestas ferramentas, pode montar uma cadeia de ferramentas comum, conforme ilustrado no seguinte diagrama lógico. Esta cadeia de ferramentas comum abstrai as diferenças entre os ambientes de computação. Também lhe permite unificar o aprovisionamento, a implementação, a gestão e a monitorização.
Embora uma cadeia de ferramentas comum possa ajudar a alcançar a portabilidade, está sujeita a várias das seguintes limitações:
- A utilização de VMs como base comum pode dificultar a implementação de aplicações verdadeiramente baseadas na nuvem. Além disso, a utilização exclusiva de VMs pode impedir a utilização de serviços geridos na nuvem. Pode perder oportunidades de reduzir os custos administrativos.
- A criação e a manutenção de uma cadeia de ferramentas comum incorrem em custos gerais e operacionais.
- À medida que a cadeia de ferramentas se expande, pode desenvolver complexidades únicas adaptadas às necessidades específicas da sua empresa. Esta maior complexidade pode contribuir para o aumento dos custos de formação.
Antes de decidir desenvolver ferramentas e automatização, explore os serviços geridos que o seu fornecedor de nuvem oferece. Quando o seu fornecedor oferece serviços geridos que suportam o mesmo exemplo de utilização, pode abstrair-se de parte da respetiva complexidade. Desta forma, pode concentrar-se na carga de trabalho e na arquitetura da aplicação, em vez de na infraestrutura subjacente.
Por exemplo, pode usar o modelo de recursos do Kubernetes para automatizar a criação de clusters do Kubernetes através de uma abordagem de configuração declarativa. Pode usar o comando Deployment Manager convert para converter as suas configurações e modelos do Deployment Manager noutros formatos de configuração declarativos que o Google Cloud suportam (como o Terraform e o Kubernetes Resource Model) para que sejam portáteis quando os publica.
Também pode considerar automatizar a criação de projetos e a criação de recursos nesses projetos. Esta automatização pode ajudar a adotar uma abordagem de infraestrutura como código para o aprovisionamento de projetos.
Contentores e Kubernetes
A utilização de capacidades geridas na nuvem ajuda a reduzir a complexidade da criação e manutenção de uma cadeia de ferramentas personalizada para alcançar a automatização e a portabilidade das cargas de trabalho. No entanto, a utilização apenas de VMs como base comum dificulta a implementação de aplicações verdadeiramente nativas da nuvem. Em alternativa, pode usar contentores e o Kubernetes.
Os contentores ajudam o seu software a ser executado de forma fiável quando o move de um ambiente para outro. Uma vez que os contentores desvinculam as aplicações da infraestrutura de anfitrião subjacente, facilitam a implementação em ambientes de computação, como híbridos e multinuvem.
O Kubernetes processa a orquestração, a implementação, o dimensionamento e a gestão das suas aplicações contentorizadas. É de código aberto e regido pela Cloud Native Computing Foundation. A utilização do Kubernetes fornece os serviços que formam a base de uma aplicação prioritária na nuvem. Uma vez que pode instalar e executar o Kubernetes em muitos ambientes de computação, também o pode usar para estabelecer uma camada de tempo de execução comum em ambientes de computação:
- O Kubernetes oferece os mesmos serviços e APIs num ambiente de computação na nuvem ou privado. Além disso, o nível de abstração é muito superior ao do trabalho com VMs, o que geralmente se traduz em menos trabalho preparatório necessário e numa maior produtividade dos programadores.
- Ao contrário de uma cadeia de ferramentas personalizada, o Kubernetes é amplamente adotado para a gestão de aplicações e desenvolvimento, pelo que pode tirar partido da experiência, documentação e apoio técnico de terceiros existentes.
- O Kubernetes suporta todas as implementações de contentores que:
- Suporte a Interface de tempo de execução de contentores (CRI) do Kubernetes
- São adotados pela indústria para aplicação
- Não estão associados a nenhum fornecedor específico
Quando uma carga de trabalho está a ser executada no Google Cloud, pode evitar o esforço de instalar e operar o Kubernetes usando uma plataforma Kubernetes gerida, como o Google Kubernetes Engine (GKE). Ao fazê-lo, a equipa de operações pode mudar o foco da criação e manutenção da infraestrutura para a criação e manutenção de aplicações.
Também pode usar o Autopilot, um modo de funcionamento do GKE que gere a configuração do seu cluster, incluindo os nós, o escalonamento, a segurança e outras definições pré-configuradas. Quando usar o GKE Autopilot, tenha em atenção os seus requisitos de escalabilidade e os respetivos limites de escalabilidade.
Tecnicamente, pode instalar e executar o Kubernetes em muitos ambientes de computação para estabelecer uma camada de tempo de execução comum. No entanto, na prática, a criação e a operação de uma arquitetura deste tipo podem gerar complexidade. A arquitetura torna-se ainda mais complexa quando requer um controlo de segurança ao nível do contentor (service mesh).
Para simplificar a gestão de implementações de vários clusters, pode usar o GKE Enterprise para executar aplicações modernas em qualquer lugar à escala. O GKE inclui componentes de código aberto geridos poderosos para proteger cargas de trabalho, aplicar políticas de conformidade e fornecer observabilidade de rede e resolução de problemas detalhadas.
Conforme ilustrado no diagrama seguinte, a utilização do GKE Enterprise significa que pode operar aplicações com vários clusters como frotas.
O GKE Enterprise ajuda com as seguintes opções de design para suportar arquiteturas híbridas e de várias nuvens:
Conceba e crie experiências semelhantes à nuvem nas instalações ou soluções unificadas para a transição de aplicações para o ambiente híbrido do GKE Enterprise. Para mais informações, consulte a arquitetura de referência do ambiente híbrido do GKE Enterprise.
Conceba e crie uma solução para resolver a complexidade de várias nuvens com uma postura de segurança, operações e governação consistentes com o GKE Multi-Cloud. Para mais informações, consulte a documentação do GKE Multi-Cloud.
O GKE Enterprise também oferece agrupamentos lógicos de ambientes semelhantes com gestão de segurança, configuração e serviços consistentes. Por exemplo, o GKE Enterprise suporta uma arquitetura distribuída de confiança zero. Numa arquitetura distribuída de confiança zero, os serviços implementados nas instalações ou noutro ambiente de nuvem podem comunicar entre ambientes através de comunicações seguras de serviço a serviço mTLS ponto a ponto.
Considerações sobre a portabilidade das cargas de trabalho
O Kubernetes e o GKE Enterprise oferecem uma camada de abstração para cargas de trabalho que podem ocultar as muitas complexidades e diferenças entre ambientes de computação. A lista seguinte descreve algumas dessas abstrações:
- Uma aplicação pode ser portátil para um ambiente diferente com
alterações mínimas, mas isso não significa que a aplicação tenha um desempenho
igualmente bom em ambos os ambientes.
- As diferenças no cálculo subjacente, nas capacidades de segurança da infraestrutura ou na infraestrutura de rede, juntamente com a proximidade dos serviços dependentes, podem levar a um desempenho substancialmente diferente.
- A movimentação de uma carga de trabalho entre ambientes de computação também pode exigir que mova dados.
- Os diferentes ambientes podem ter diferentes serviços e instalações de armazenamento e gestão de dados.
- O comportamento e o desempenho dos balanceadores de carga aprovisionados com o Kubernetes ou o GKE Enterprise podem diferir entre ambientes.
Movimento de dados
Uma vez que pode ser complexo mover, partilhar e aceder a dados em grande escala entre ambientes de computação, as empresas de nível empresarial podem hesitar em criar uma arquitetura híbrida ou multinuvem. Esta hesitação pode aumentar se já estiverem a armazenar a maioria dos respetivos dados no local ou numa nuvem.
No entanto, as várias opções de movimentação de dados oferecidas pela Google Cloudoferecem às empresas um conjunto abrangente de soluções para ajudar a mover, integrar e transformar os respetivos dados. Estas opções ajudam as empresas a armazenar, partilhar e aceder a dados em diferentes ambientes de uma forma que satisfaça os respetivos exemplos de utilização específicos. Em última análise, essa capacidade facilita a adoção de arquiteturas híbridas e multicloud para os decisores empresariais e tecnológicos.
A movimentação de dados é um aspeto importante a ter em conta no planeamento da arquitetura e da estratégia híbrida e multicloud. A sua equipa tem de identificar os diferentes exemplos de utilização da empresa e os dados que os suportam. Também deve pensar no tipo de armazenamento, na capacidade, na acessibilidade e nas opções de movimento.
Se uma empresa tiver uma classificação de dados para setores regulamentados, essa classificação pode ajudar a identificar localizações de armazenamento e restrições de movimento de dados entre regiões para determinadas classes de dados. Para mais informações, consulte o artigo Proteção de dados confidenciais. A proteção de dados confidenciais é um serviço totalmente gerido concebido para ajudar a descobrir, classificar e proteger os seus recursos de dados.
Para explorar o processo, desde o planeamento de uma transferência de dados à utilização de práticas recomendadas na implementação de um plano, consulte o artigo Migração para Google Cloud: transferir os seus grandes conjuntos de dados.
Segurança
À medida que as organizações adotam arquiteturas híbridas e multicloud, a respetiva superfície de ataque pode aumentar consoante a forma como os sistemas e os dados são distribuídos por diferentes ambientes. Em combinação com o panorama de ameaças em constante evolução, as superfícies de ataque aumentadas podem levar a um risco acrescido de acesso não autorizado, perda de dados e outros incidentes de segurança. Considere cuidadosamente a segurança ao planear e implementar estratégias híbridas ou multicloud.
Para mais informações, consulte o artigo Gestão da superfície de ataque para o Google Cloud.
Quando cria a arquitetura para uma arquitetura híbrida, nem sempre é tecnicamente exequível ou viável estender as abordagens de segurança no local para a nuvem. No entanto, muitas das capacidades de segurança de rede dos dispositivos de hardware são funcionalidades baseadas na nuvem e funcionam de forma distribuída. Para mais informações sobre as capacidades de segurança de rede baseadas na nuvem do Google Cloud, consulte Segurança de rede na nuvem.
As arquiteturas híbridas e multicloud podem introduzir desafios de segurança adicionais, como a consistência e a observabilidade. Cada fornecedor de nuvem pública tem a sua própria abordagem à segurança, incluindo diferentes modelos, práticas recomendadas, capacidades de segurança de infraestrutura e aplicações, obrigações de conformidade e até os nomes dos serviços de segurança. Estas inconsistências podem aumentar o risco de segurança. Além disso, o modelo de responsabilidade partilhada de cada fornecedor de nuvem pode ser diferente. É essencial identificar e compreender a demarcação exata das responsabilidades numa arquitetura de várias nuvens.
A observabilidade é fundamental para obter estatísticas e métricas dos diferentes ambientes. Numa arquitetura de várias nuvens, cada nuvem oferece normalmente ferramentas para monitorizar a postura de segurança e as configurações incorretas. No entanto, a utilização destas ferramentas resulta numa visibilidade isolada, o que impede a criação de inteligência sobre ameaças avançada em todo o ambiente. Como tal, a equipa de segurança tem de alternar entre ferramentas e painéis de controlo para manter a nuvem segura. Sem uma visibilidade geral da segurança ponto a ponto para os ambientes híbridos e multicloud, é difícil priorizar e mitigar as vulnerabilidades.
Para obter a visibilidade e a postura completas de todos os seus ambientes, priorize as vulnerabilidades e mitigue as vulnerabilidades que identificar. Recomendamos um modelo de visibilidade centralizado. Um modelo de visibilidade centralizado evita a necessidade de correlação manual entre diferentes ferramentas e painéis de controlo de diferentes plataformas. Para mais informações, consulte o artigo Padrões de registo e monitorização híbridos e multicloud.
Como parte do seu planeamento para mitigar os riscos de segurança e implementar cargas de trabalho no Google Cloud, e para ajudar a planear e conceber a sua solução na nuvem para cumprir os seus objetivos de segurança e conformidade, explore o Google Cloud centro de práticas recomendadas de segurança e o projeto de base empresarial.
Os objetivos de conformidade podem variar, uma vez que são influenciados tanto pelos regulamentos específicos da indústria como pelos requisitos regulamentares variáveis de diferentes regiões e países. Para mais informações, consulte o Google Cloud centro de recursos de conformidade. Seguem-se algumas das principais abordagens recomendadas para criar uma arquitetura híbrida e multicloud segura:
Desenvolver uma estratégia e uma arquitetura de segurança na nuvem unificadas e personalizadas. As estratégias de segurança híbridas e multinuvem devem ser adaptadas às necessidades e aos objetivos específicos da sua organização.
É essencial compreender a arquitetura e o ambiente segmentados antes de implementar controlos de segurança, porque cada ambiente pode usar diferentes funcionalidades, configurações e serviços.
Considere uma arquitetura de segurança unificada em ambientes híbridos e multicloud.
Uniformize a criação e as implementações na nuvem, especialmente a criação e as capacidades de segurança. Ao fazê-lo, pode melhorar a eficiência e ativar a governação e as ferramentas unificadas.
Use vários controlos de segurança.
Normalmente, nenhum controlo de segurança único consegue resolver adequadamente todos os requisitos de proteção de segurança. Por conseguinte, as organizações devem usar uma combinação de controlos de segurança numa abordagem de defesa em camadas, também conhecida como defesa em profundidade.
Monitorize e melhore continuamente as posturas de segurança: a sua organização deve monitorizar os diferentes ambientes quanto a ameaças e vulnerabilidades de segurança. Também deve tentar melhorar continuamente a sua postura de segurança.
Considere usar a gestão da postura de segurança na nuvem (CSPM) para identificar e corrigir configurações incorretas de segurança e ameaças de cibersegurança. A CSPM também oferece avaliações de vulnerabilidades em ambientes híbridos e multicloud.
O Security Command Center é uma solução de segurança e gestão de riscos integrada para o Google Cloud que ajuda a identificar configurações incorretas, vulnerabilidades e muito mais. A Security Health Analytics é uma ferramenta de análise de avaliação de vulnerabilidades gerida. É uma funcionalidade do Security Command Center que identifica riscos de segurança e vulnerabilidades no seuGoogle Cloud ambiente e fornece recomendações para os corrigir.
O Mandiant Attack Surface Management for Google Cloud permite que a sua organização veja melhor os respetivos recursos de nuvem híbrida ou multinuvem. Descobre automaticamente recursos de vários fornecedores de nuvem, DNS e a superfície de ataque externa alargada para dar à sua empresa uma compreensão mais profunda do respetivo ecossistema. Use estas informações para dar prioridade à correção das vulnerabilidades e exposições que apresentam o maior risco.
- Solução de informações de segurança e gestão de eventos (SIEM) na nuvem: ajuda a recolher e analisar registos de segurança de ambientes híbridos e de várias nuvens para detetar e responder a ameaças. O SIEM do Google Security Operations ajuda a fornecer informações de segurança e gestão de eventos através da recolha, análise, deteção e investigação de todos os seus dados de segurança num único local. Google Cloud