IBM Well-Architected Framework
Híbrido é a capacidade de executar cargas de trabalho em e por meio de uma ou mais nuvens públicas, nuvens privadas e locais. A nuvem híbrida fornece orquestração, gerenciamento e portabilidade de aplicações na infraestrutura pública, privada e no local. O resultado é um ambiente de computação distribuída único, unificado e flexível, onde uma organização pode executar e escalonar suas cargas de trabalho tradicionais ou nativas da nuvem no modelo de computação mais apropriado.
Portátil é a capacidade de migrar as cargas de trabalho e dados entre ambientes de computação em nuvem, permitindo a migração de uma nuvem pública para outra ou até mesmo para uma nuvem privada sem a necessidade de reconfiguração (significativa) da carga de trabalho.
A combinação de princípios híbridos e portáteis facilita a interoperabilidade. Isso engloba plataforma, dados e aplicação. As aplicações criadas com base em princípios de design apresentam um maior grau de interoperabilidade.
As empresas adotam uma estratégia multinuvem para evitar o lock-in com fornecedor ou por causa de requisitos de residência dos dados. E elas querem a capacidade de tirar e transferir as cargas de trabalho ou migrar as cargas de trabalho de uma nuvem para outra ou executar aplicações em várias nuvens. Projetar essas aplicações em nuvem com a portabilidade e interoperabilidade em mente é fundamental para essas empresas.
As cargas de trabalho devem ser criadas uma única vez e implementadas de forma consistente em todos os lugares. As cargas de trabalho não precisam ser alteradas ou configuradas para se adequarem aos serviços e restrições da plataforma na qual estão hospedadas. Esse é, na verdade, o mantra do IBM® Red Hat OpenShift, uma plataforma de contêiner de nuvem híbrida que está disponível em quase todas as nuvens públicas. Os demais princípios do pilar se baseiam na realização desse ideal.
Os contêineres separam as cargas de trabalho da infraestrutura subjacente que os hospeda. Isso torna as cargas de trabalho conteinerizadas portáteis para qualquer plataforma que hospede um tempo de execução de contêiner compatível e, portanto, os contêineres são a tecnologia preferida de empacotamento e implementação das aplicações.
O Kubernetes é uma plataforma de código aberto para implementar e gerenciar as cargas de trabalho conteinerizadas, implementadas em qualquer contêiner que seja compatível com a Interface de Tempo de Execução de Contêineres (CRI) do Kubernetes O Kubernetes e as plataformas de gerenciamento derivadas do Kubernetes podem ser usados para gerenciar cargas de trabalho conteinerizadas em nuvens públicas e privadas, bem como em uma infraestrutura privada.
As cargas de trabalho que dependem de uma representação ou tipo de infraestrutura específicos só são portáteis para ambientes que têm essa infraestrutura. Use uma ferramenta de programação independente de nuvem para definir o ambiente ou como as aplicações devem ser configuradas. Em seguida, use a ferramenta de automação para implementar de forma consistente em qualquer nuvem e até mesmo no local. Usar infraestrutura como código (IaC) para implementar as aplicações facilita a implementação em qualquer nuvem ou a migração de uma nuvem para outra. Outra vantagem de usar IaC é que ela ajuda no escalonamento e na prevenção de desvios de configuração. Ela também torna o processo de implementação mais portátil.
As cargas de trabalho que dependem de serviços nativos da plataforma estão "bloqueadas" na plataforma. Em vez disso, as soluções devem adotar APIs e interfaces de serviço padronizadas pelo setor que sejam independentes da plataforma na qual o serviço é implementado.
Para realmente adotar a portabilidade, as equipes podem considerar a adoção de soluções de código aberto como parte do stack para minimizar o lock-in, o que, de outra forma, complicaria o processo.
O software de código aberto pode ser escolhido por seu baixo (ou nenhum) custo, a flexibilidade para personalizar o código-fonte ou a existência de uma grande comunidade que apoia a aplicação. No entanto, ele pode incorrer em outros custos, geralmente de integração da rede, suporte ao usuário final e de TI e outros serviços normalmente incluídos no software proprietário. No geral, essa decisão deve ser equilibrada com o caso de negócios e a probabilidade de migração das cargas de trabalho.
Escolher uma plataforma de implementação, como o Red Hat OpenShift, que seja comum em todos os ambientes é fundamental para alcançar a portabilidade e a interoperabilidade em ambientes multinuvem e locais. Soluções bem arquitetadas usam contêineres como unidade de implementação comum devido ao tamanho pequeno dos contêineres e ao suporte generalizado na maioria dos sistemas operacionais, provedores de serviço de nuvem e plataformas de infraestrutura.
Contêineres, como o Docker, desacoplam as cargas de trabalho da infraestrutura subjacente que as hospedam. Isso torna as cargas de trabalho conteinerizadas portáteis para qualquer plataforma que hospede um tempo de execução de contêiner compatível.
Uma plataforma de orquestração de contêineres como o Kubernetes automatiza a implementação de aplicações em ambientes de nuvem. Além disso, é capaz de gerenciar cargas de trabalho conteinerizadas. O Kubernetes é uma plataforma de código aberto para implementar e gerenciar as cargas de trabalho conteinerizadas, implementadas em qualquer contêiner que seja compatível com a Interface de Tempo de Execução de Contêineres (CRI) do Kubernetes O Kubernetes e as plataformas de gerenciamento derivadas do Kubernetes são usados para gerenciar as cargas de trabalho conteinerizadas em nuvens públicas e privadas, bem como na infraestrutura local.
A configuração e a implementação em várias nuvens podem ser assustadoras e as operações do dia 2 podem ser complexas. Ferramentas independentes da nuvem, como Ansible, Terraform, Chef e Puppet, são essenciais. O Ansible é uma ferramenta de automação de TI de código aberto que automatiza o provisionamento, o gerenciamento de configurações, a implementação de aplicações e a orquestração na nuvem e no local. Ele pode ser usado para automatizar a instalação de software, provisionar a infraestrutura e até mesmo melhorar a segurança e a conformidade por meio da aplicação oportuna de correções nos sistemas.
Provisionar centenas ou milhares de servidores manualmente não é viável, e é por isso que os playbooks do Ansible são preferidos por empresas que buscam escalar a TI de forma rápida e confiável. Com um playbook do Ansible, você pode criar uma instância e usar instantaneamente a mesma instância ou qualquer número de servidores adicionais que empregam os mesmos parâmetros de infraestrutura.
Configure uma nuvem distribuída que permite que você consuma serviços de nuvem em qualquer lugar em que precise deles e implemente, gerencie e controle cargas de trabalho em ambientes locais, ambientes de edge computing e ambientes de nuvem pública de qualquer fornecedor de nuvem. O IBM Cloud Satellite fornece serviços de nuvem, APIs, políticas de acesso, registro e monitoramento em todas as localizações. Isso permite todas as vantagens do serviço semelhante ao da nuvem para sua infraestrutura local e traz flexibilidade para migrar essas cargas de trabalho para outras nuvens de provedores de sua escolha com base na política. Com a proliferação de dispositivos de edge e o enorme aumento de dados, a portabilidade de migrar o poder computacional para mais perto da gravidade dos dados é mais econômica. Isso também proporciona uma maior segurança e simplifica as operações do Dia 2.
Embora a segurança seja um pilar separado, ela permeia todos os aspectos da computação em nuvem, independentemente de ser uma nuvem privada, pública ou infraestrutura no local. A flexibilidade de migrar as cargas de trabalho para diferentes ambientes traz desafios adicionais de segurança. A segurança não pode ser sacrificada em troca da portabilidade. É preciso adotar uma estratégia de segurança em camadas e de defesa profunda em toda a infraestrutura e stack de aplicações e ciclo de vida.