Em muitas ocasiões, costumo dizer que a engenharia e arquitetura da computação moderna se assemelha em diversos momentos com a arquitetura e engenharia de edificações que visa construir prédios e complexos muito bem estruturados.
Em ambos os casos, se a base, fundação e planejamento estiverem bem estruturados, a construção será sólida e poderá suportar evoluções com base nas demandas de negócios no futuro.
Na área de Cloud, uma boa arquitetura possui como objetivos organizar, disponibilizar, proteger e escalar os recursos, além de permitir melhor controle de cronograma e custos do projeto. Outro beneficio do foco no planejamento e arquitetura é que a infra estrutura em cloud pode ser associada a regras de compliance, auditoria e metodologias de times de projetos da empresa.
Os players de Cloud pública estão no mercado e já mostraram que se instalaram para ficar. Microsoft, Google, IBM, Amazon, Oracle e outras empresas oferecem suas soluções em nuvem em modalidades de consumo por serviço. Por utilizarem o conceito de nuvem ‘pública’, oferecem serviços padronizados (com particularidades, nomenclaturas próprias e alguns diferenciais) mas que se enquadram em qualquer padrão de arquitetura de projetos de infra estrutura moderna.
Neste artigo, utilizaremos o Azure, da Microsoft para descrever algumas práticas de organização iniciais. Nos artigos adiante, descreveremos a continuidade destas metodologias de projetos.
Em projetos no Azure, é comum presenciar equipes discutindo sobre como implementar recursos focando sempre nas questões técnicas e nos serviços. O que poucos sabem é que o planejamento do projeto deve incluir a base de tudo: A Assinatura ou as assinaturas que irão distribuir e organizar a estrutura.
Assinaturas x Organizações
Uma assinatura é um contrato com a Microsoft para usar uma ou mais plataformas ou serviços de nuvem da Microsoft, para as quais as cobranças se acumulam com base em uma taxa de licença por usuário ou no consumo de recursos baseado na nuvem.
Assinaturas estão abaixo de uma organização e podem oferecer serviços SaaS como Microsoft 365 (pagamento por usuário) ou serviços no Azure, por exemplo em modalidade PaaS e IaaS (pagamento por consumo).
É possível combinar e organizar as assinaturas em conformidade com as estratégias do projeto para permitir, por exemplo, a integração com recursos do AD DS on-premises da empresa.
As assinaturas também são responsáveis por terem ou não ofertas vinculadas. As regras são definidas no momento da ativação e compra. Por exemplo: uma assinatura ativada no site do Azure pode conter uma oferta de 30 dias de uso gratuito em modalidade cartão de crédito. Já uma assinatura comprada através de modalidade CSP (Cloud Solution Provider) não necessitam de cartão de crédito e possuem faturamento por boleto, nf vinculados a um distribuidor. A sua organização (tenant) pode conter quantas assinaturas forem necessárias para um projeto.
Distribuição de assinaturas entre serviços (Boas práticas)
Partindo do princípio que todos os serviços instalados no Azure devem estar vinculados a uma assinatura, existe a oportunidade de organizar a estrutura com base em cobrança (centro de custos, por região, etc) ou com base técnica (permissões, times, ambientes).
No exemplo acima, uma assinatura do Azure para conter suas cargas de trabalho de produção e uma segunda assinatura para servir como seu ambiente de não produção (desenvolvimento/teste), usando uma oferta de dev/teste do Azure para preços mais baixos.
Essa abordagem oferece alguns benefícios:
O uso de assinaturas separadas para ambientes de produção de ti cria um limite que torna o gerenciamento dos recursos mais seguro.
Ofertas de assinatura de desenvolvimento/teste do Azure estão disponíveis para cargas de trabalho que não são de produção. Essas ofertas fornecem tarifas com desconto nos serviços do Azure.
Ambientes de produção e não produtos de ti provavelmente terão conjuntos diferentes de políticas do Azure.
Você pode usar assinaturas de dev/teste como ambientes de área restrita isolados. Esse isolamento também pode ajudar com questões de segurança e de proteção de dados.
Outro cenário interessante é organizar os serviços entre assinaturas com propósito de separar ambientes de produção, dev/testes e serviços compartilhados detalhando ainda mais a forma como os recursos podem ser gerenciados a nível de segurança, interação técnica e cobrança:
Considerações sobre distribuição de serviços em assinaturas
Em projetos de menor porte, onde poucos serviços são necessários para cumprir com os objetivos de escopo, é bem provável que sua equipe necessitará de apenas 01 assinatura no Azure. Esta é uma abordagem favorável que ajuda a manter o foco técnico nas soluções do projeto sem a necessidade de se preocupar em gerenciar permissões de usuários, serviços e políticas a nível de assinatura, porém em um projeto corporativo de médio para grande porte, a situação pode ser o inverso.
Organizar serviços em assinaturas pode simplificar o gerenciamento e crescimento do ambiente, além de criar uma cultura favorável a implementações que não esbarram nos limites da tecnologia. O que muitos colegas não sabem é que cada assinatura no Azure possui um limite de instalação para alguns recursos. Por exemplo, o número de redes virtuais em uma assinatura é limitado. Quando uma assinatura se aproximar desses limites, você precisará criar outra assinatura e colocar recursos adicionais lá.
Veja alguns limites de recursos por assinatura:
Grupos de recursos: 980
Marcas por assinatura: 50
Tamanho da solicitação da API ARM: 4.194.304 bytes.
Recursos por implantação: 800
Bloqueios de gerenciamento por escopo exclusivo: 20
Consulte o link a seguir para descobrir outros limites de recursos no Azure: https://docs.microsoft.com/pt-br/azure/azure-resource-manager/management/azure-subscription-service-limits#general-limits
Além dos limites, outras prioridades de negócios podem levá-lo a criar assinaturas adicionais. Essas prioridades incluem: Inovação, Migração, Custo, Operações, Segurança, Governança e mais.
Estratégias de design de assinatura
Carga de trabalho
Conforme uma organização adiciona novas cargas de trabalho à nuvem, a propriedade diferente de assinaturas ou a separação básica de responsabilidade pode resultar em várias assinaturas nos grupos de gerenciamento de produção e não produção. Embora essa abordagem forneça uma separação básica de cargas de trabalho, ela não aproveita de forma significativa o modelo de herança para aplicar as políticas automaticamente a um subconjunto das assinaturas.
Categoria do aplicativo
À medida que aumenta o volume de nuvem de uma organização, normalmente, assinaturas adicionais são criadas para dar suporte a aplicativos com diferenças fundamentais em importância comercial, requisitos de conformidade, controles de acesso ou necessidades de proteção de dados. Baseando-se nas assinaturas iniciais de produção e não produção, as assinaturas que dão suporte a essas categorias de aplicativos são organizadas no grupo de gerenciamento de produção ou não produção, conforme aplicável.
Cada organização categorizará seus aplicativos de forma diferente, em geral, separando as assinaturas com base em serviços ou aplicativos específicos ou de acordo com arquétipos de aplicativo. Essa categorização costuma ser desenvolvida para dar suporte a cargas de trabalho que provavelmente consomem a maior parte dos limites de recurso de uma assinatura ou para separar as cargas de trabalho críticas a fim de garantir que elas não estejam competindo com outras cargas de trabalho abaixo desses limites. Algumas cargas de trabalho que podem justificar uma assinatura separada incluem:
- Cargas de trabalho críticas.
- Aplicativos que fazem parte do COGS (custo dos produtos vendidos) na sua empresa. Por exemplo, cada widget fabricado por uma empresa contém um módulo do Azure IoT que envia telemetria. Isso pode exigir uma assinatura dedicada para fins de contabilidade ou governança como parte do COGS.
Funcional
A estratégia funcional organiza assinaturas e contas ao longo de linhas funcionais, como finanças, vendas ou suporte de TI, usando uma hierarquia de grupos de gerenciamento.
Geográfica
Para as organizações com operações globais, a estratégia geográfica agrupa assinaturas e contas com base em regiões geográficas usando uma hierarquia de grupos de gerenciamento.
Combinar estratégias
O diagrama abaixo mostra uma hierarquia organizacional que combina uma estratégia de unidade de negócios com uma estratégia geográfica.
Movendo recursos entre assinaturas
À medida que o modelo de assinatura cresce, você pode decidir que alguns recursos pertencem a outras assinaturas. Muitos tipos de recursos podem ser movidos entre assinaturas. Consulte o link para compreender quais recursos podem ser movimentados entre assinaturas do Azure: Mover recursos do Azure para outro grupo de recursos ou assinatura.
Por onde começar?
Se a sua empresa está pensando em considerar a nuvem como destino para migrar a infra estrutura de TI ou se a sua empresa já utiliza a nuvem mas já percebeu as oportunidades de organizar a estrutura para reduzir consumo, aumentar a segurança e a gestão, você vai precisar de um bom arquiteto ou uma consultoria experiente para lhe ajudar nesta jornada. Geralmente esta é uma expertisie que está além do conhecimento dos recursos em si.
Trata-se não apenas de migrar ou revisar a infra estrutura em nuvem, mas de criar mecanismos que estejam de acordo com requisitos de negócios para acompanhar as demandas de crescimento da empresa e evitar futuros retrabalhos, instalações desnecessárias ou até mesmo a descobertas de problemas relacionados às políticas de segurança.
Em projetos de pequeno, médio e grande porte notamos os benefícios a curto e médio prazo quando implementamos soluções baseadas em um planejamento consistente para o cliente onde a melhor experiência em soluções de cloud são consideradas no projeto.
Viu só? O mundo Cloud vai muito além das discussões técnicas. No próximo artigo, continuaremos a apresentar técnicas de arquiteturas para Cloud moderno. Não esqueça, se a sua empresa necessitar de uma consultoria, fale com os especialistas da eSeth Cloud e descubra como estruturar os seus projetos com gestão de alto nível: www.eseth.com.br/cloud