O que são módulos e arquiteturas implementáveis?
Criar uma infraestrutura de aplicativo segura, compatível e escalável pode ser difícil de configurar e custoso de manter. Em vez de descobrir como montar uma arquitetura de infraestrutura compatível por conta própria, é possível aproveitar módulos e arquiteturas implementáveis. Módulos e arquiteturas implementáveis podem ajudá-lo a criar uma estrutura sobre como os recursos são implementados nas contas de sua organização. Trabalhando com essas configurações reutilizáveis, é possível definir o padrão para implementação uma vez e assegurar que ele seja facilmente repetido para cada membro de sua organização.
Por exemplo, pense em um arquiteto que está construindo um complexo de apartamentos. Esses projetos são tipicamente executados de forma modular. Há padrões para apartamentos padrão de um quarto, dois ou três quartos. O construtor pode combinar os apartamentos padrão, cada um funcional à sua maneira, em um arranjo vivo maior, mais complexo, mas funcional. A IBM aplicou essa mesma analogia para implementar soluções na nuvem. Em vez de sua organização gastar meses descobrindo como obter serviços e software para trabalhar juntos, é possível usar os padrões bem-arquitetados do IBM Cloud. Cada padrão é empacotado como blocos de construção automatizados e compostáveis, conhecidos como módulos e arquiteturas implementáveis.
O que é um módulo?
Um módulo é uma unidade independente de código de automação que pode ser reutilizada por desenvolvedores e compartilhada como parte de um sistema maior. Semelhante aos pacotes Node.js ou Python, os módulos são uma conveniência para desenvolvedores que estão gerenciando recursos relacionados. Embora seja possível usar módulos sozinhos, eles são mais poderosos quando você os combina para construir uma arquitetura implementável. Os módulos que são criados pelo IBM Cloud são disponibilizados na organização do IBM público dos módulos do Terraform GitHub. Por exemplo, o cluster VPC do Red Hat® OpenShift® no módulo IBM Cloud instala e configura um cluster Red Hat OpenShift no IBM Cloud.
O que é uma arquitetura implementável?
Uma arquitetura implementável é a automação de nuvem para implementar um padrão de arquitetura comum que combina um ou mais recursos de nuvem. Ele foi projetado para fornecer uma implementação simplificada por usuários, escalabilidade e modularidade. Uma arquitetura implementável incorpora um ou mais módulos. As arquiteturas implementáveis são codificadas no Terraform, que você configura com as variáveis de entrada para atingir o comportamento desejado Para criar uma arquitetura implantável mais complexa, você pode empilhar arquiteturas implantáveis sem editar o código do Terraform para fazer isso.
Um exemplo de arquitetura implementável é a automação da nuvem para Secrets Manager. Essa arquitetura implementável fornece uma instância do IBM Cloud Secrets Manager como uma solução modular. Você pode usar essa arquitetura para gerenciar segredos de forma segura com sua conta IBM Cloud. A automação da nuvem para Secrets Manager tem um escopo restrito. Ele implementa apenas uma instância do Secrets Manager, embora a arquitetura implementável também possa criar opcionalmente um chaveiro e uma chave IBM Key Protect para criptografar dados, caso não exista.
As arquiteturas implantáveis podem ter um escopo mais amplo, como VPC landing zone. VPC landing zone provisiona várias nuvens privadas virtuais em um padrão de rede hub-and-spoke que é conectado por um gateway de trânsito. Ele inclui vários serviços de suporte que são usados para o monitoramento e a segurança das cargas de trabalho que são executadas nas VPCs.
As arquiteturas implementáveis que são construídas e mantidas por especialistas no IBM Cloud são disponibilizadas para você no catálogo doIBM Cloud Se você optar por criar sua própria versão dessas arquiteturas implementáveis ou construir uma do zero, será possível integrar sua arquitetura implementável em um catálogo privado e compartilhar sua solução pronta para implementação com sua organização por meio do catálogo.
O que significa empilhar arquiteturas implementáveis?
Para um caso de uso mais complexo, é possível empilhar as arquiteturas para formar uma solução completa de ponta a ponta para a implementação de um aplicativo ou infraestrutura complexa. Ao contrário dos módulos individuais ou das arquiteturas implementáveis, que fornecem funcionalidades específicas, o empilhamento combina várias arquiteturas implementáveis para formar uma solução abrangente que pode ser facilmente implementada e gerenciada. Assim como os módulos podem ser combinados para criar uma arquitetura implementável, as arquiteturas implementáveis podem ser empilhadas para criar uma solução mais abrangente. O empilhamento inclui a vinculação das arquiteturas para criar uma arquitetura complexa e implementável. Essa vinculação é obtida por meio da especificação de referências nas entradas de cada arquitetura implementável, usando uma notação de referência. Você não precisa ser um especialista em Terraform nem ter habilidades de codificação em Terraform para empilhar arquiteturas e implantá-las.
Como exemplo, considere a automação da nuvem para Secrets Manager. Essa arquitetura implementável inclui o módulo Secrets Manager, que cria uma instância Secrets Manager. Se você precisar apenas de uma instância do Secrets Manager, essa arquitetura implementável é uma opção adequada. No entanto, o gerenciamento seguro de segredos é apenas uma parte da manutenção da segurança na nuvem. E quanto à execução de varreduras de conformidade para que você sempre saiba a postura de seus recursos? Ou receber notificações de eventos críticos em sua conta IBM Cloud? A base do Cloud para segurança e observabilidade aproveita a gama completa de serviços de segurança do site IBM Cloud. Foi criado empilhando automação em nuvem para Secrets Manager junto com arquiteturas implantáveis que provisionam outros IBM Cloud serviços. Event Notifications Essa arquitetura implantável oferece uma solução de segurança mais abrangente que Secrets Manager não pode ser fornecida sozinha.
Você pode empilhar arquiteturas implementáveis em um projeto IBM Cloud e publicá-las juntas em um catálogo sem muitas etapas extras de validação. Ou, você pode empilhar arquiteturas à medida que integra uma solução a um catálogo privado. A partir daí, você pode compartilhá-lo com outras pessoas para poupar-lhes o tempo de reconstruí-lo por conta própria.
Essa solução complexa obtém grande parte de suas garantias de custo, conformidade, suporte e qualidade de suas arquiteturas implementáveis incluídas. No entanto, essa solução complexa tem uma versão, uma descrição e um diagrama de arquitetura exclusivos. Se for feita uma atualização em uma arquitetura implementável que esteja empilhada com outras em um catálogo, a solução inteira deverá ser atualizada pelo integrador para usar a versão mais recente da arquitetura implementável desse componente. A atualização de toda a solução para uma nova versão ajuda a garantir que a última atualização de uma única arquitetura funcione corretamente dentro da solução mais ampla.
No entanto, cada arquitetura implantável tem estados de configuração independentes, permitindo que cada uma seja implantada, atualizada ou desimplantada de forma independente. Por exemplo, você já sabe que a base do Cloud para segurança e observabilidade inclui a automação da nuvem para Secrets Manager arquitetura implantável, entre outros. Se a automação da nuvem para Secrets Manager for atualizada, a base do Cloud para segurança e observabilidade precisará ser atualizada para usar a versão mais recente de Secrets Manager. No entanto, toda arquitetura incluída na a base do Cloud para segurança e observabilidade não precisa ser reimplantada pelo usuário que consome essa solução. Quando o usuário atualiza seu projeto para usar a versão mais recente, apenas o Secrets Manager precisa ser reimplantado.
O que está incluído em uma arquitetura implementável?
Uma arquitetura implementável pode incluir variações, ter dependências ou ser empilhada para criar soluções mais complexas.
- Variações
-
Uma variação é um tipo de arquitetura implementável que aplica diferentes recursos ou complexidade a uma arquitetura implementável existente Por exemplo, pode haver uma variação de Iniciação Rápida para sua arquitetura implementável que tenha recursos básicos para uma implementação simples e de baixo custo para testar internamente E, você pode ter uma variação Padrão que é um pouco mais complexa que está pronta para uso na produção.
- Arquiteturas necessárias
-
Uma arquitetura implantável pode conter entradas que exigem as saídas de outras arquiteturas implantáveis para que a implantação seja bem-sucedida. Essa relação entre uma arquitetura implementável e outra arquitetura que ela requer é comumente chamada de dependência. Você pode atender às dependências de duas maneiras: empilhando arquiteturas implantáveis ou integrando uma arquitetura implantável a um catálogo privado e estendendo-o para incluir outras arquiteturas.
implantável*Arquitetura implantável com uma dependência de outra arquitetura - Arquiteturas opcionais
-
As arquiteturas implantáveis são projetadas para serem flexíveis, de modo que você pode facilmente empilhar arquiteturas para criar uma solução mais completa. No entanto, uma arquitetura implementável útil em geral pode não incluir as opções específicas de que você precisa para atender a um caso de uso complexo. Por exemplo, qual banco de dados é compatível com seu aplicativo Java? Você precisa de notificações de eventos, uma fila de mensagens ou algum outro serviço opcional que não esteja incluído por padrão? As arquiteturas implementáveis opcionais podem ser empilhadas junto com as arquiteturas implementáveis necessárias para resolver esse problema de personalização para os usuários.
- Arquiteturas intercambiáveis
-
Se uma arquitetura for necessária para satisfazer uma dependência ou se for incluída como uma extensão opcional de uma arquitetura, os usuários podem precisar de mais flexibilidade. Talvez você saiba que seu aplicativo Java funciona com um banco de dados opcional, mas de qual banco de dados seus usuários precisam? A especificação de arquiteturas intercambiáveis para os usuários ajuda-os a personalizar a solução de ponta a ponta para atender às suas necessidades específicas. Depois de empilhar todas as arquiteturas opcionais ou necessárias, você pode agrupar as arquiteturas como intercambiáveis umas com as outras. O usuário consumidor pode então selecionar a arquitetura necessária que deseja usar para satisfazer uma dependência ou selecionar uma arquitetura opcional se quiser estender o caso de uso.
Arquiteturas opcionais e intercambiáveis podem ser adicionadas à medida que você integra uma arquitetura implementável a um catálogo privado. Atualmente, o empilhamento de arquiteturas implementáveis em um projeto não oferece suporte a arquiteturas opcionais ou intercambiáveis.
O que são projetos e como trabalham com arquiteturas implementáveis?
Um projeto do IBM Cloud é uma ferramenta de gerenciamento projetada para organizar e fornecer visibilidade em um projeto do mundo real que existe em sua organização. Um projeto gerencia todas as instâncias configuradas de uma arquitetura implementável e os recursos que estão relacionados às razões do mundo real em que elas são implementadas Os projetos armazenam instâncias de arquitetura implementáveis com versão e organizam as instâncias e os recursos em ambientes para ajudar a melhorar a visibilidade do ciclo de vida de desenvolvimento Um ambiente é um grupo de instâncias de arquitetura implementável relacionadas que compartilham valores para implementações mais fáceis Por exemplo, desenvolvimento, teste ou produção.
Os projetos são responsáveis por assegurar que apenas as arquiteturas implementáveis aprovadas possam ser implementadas Além disso, eles podem ajudar a assegurar que as arquiteturas e os recursos que eles criaram sejam atualizados, compatíveis e que o desvio não ocorra ao longo do tempo.. Por exemplo, você pode ter um projeto do aplicativo de gerenciamento de conta. Este projeto é projetado para gerenciar todos os recursos que o aplicativo de gerenciamento de conta precisa para implementar em um ambiente de desenvolvimento, teste ou produção Cada ambiente tem as mesma variáveis, como uma região ou prefixo, mas tem valores diferentes Quando uma arquitetura implementável é designada a um ambiente por meio de um projeto, seus valores de entrada podem referenciar automaticamente quaisquer propriedades do ambiente que tenham o mesmo nome. Embora os projetos do IBM Cloud sejam fáceis de criar e atualizar, eles não são modelados ou otimizados para replicação ou compartilhamento.
Como sei qual solução criar?
Se você planeja criar sua própria solução, o escopo, o acoplamento, se é implementável e o propósito de sua solução devem ser levados em conta. Para obter orientação e casos de uso para ajudá-lo a decidir o que você planeja construir, consulte Planejando e pesquisando para projetar uma arquitetura e Como decidir que tipo de componente criar.
A tabela a seguir fornece uma visão geral de alto nível do motivo pelo qual você pode desejar criar os componentes diferentes
| Propósito | Método recomendado | Por que? |
|---|---|---|
| Criando uma biblioteca de componentes de automação compartilháveis | Criar um módulo | Os módulos fornecem automação reutilizável e curada para acelerar o processo para aqueles que estão criando e configurando arquiteturas implementáveis. |
| Assegurando que o ambiente de nuvem de sua organização seja seguro e compatível | Criar uma arquitetura implementável | As arquiteturas implementáveis são empacotadas de uma maneira que você pode definir uma implementação segura e compatível uma vez e assegurar que todos os membros de sua organização estejam repetindo a implementação da mesma maneira |
| Arquitetando suas próprias soluções | Empilhar arquiteturas implementáveis em conjunto | Ao combinar arquiteturas, é possível criar uma solução de ponta a ponta mais complexa para a sua organização |