Projetando corretamente uma infraestrutura dedicada a contêiners
Ao implementar ambientes isolados baseados em contêineres dedicados à instâncias de produção, esta organização necessitará também projetar uma infraestrutura apropriada, no propósito de facilitar essas definições está descrito neste artigo algumas das etapas que poderão colaborar na projeção destes ambientes.
O encantamento despertado na alta administração pelas novas tecnologias costuma trazer experiências dolorosas aos profissionais de TI, muitas vezes superestimada e resultando em tomadas de decição vindas de cima para baixo de que a organização precisa de uma estratégia de implementação – nota: O último desses exercícios de emergência é para infraestrutura de contêineres.
O decreto enviado pelos gestores informando solicita: “Precisamos começar a implantar soluções em contêineres, então faça o que for preciso para elaborar as bases”. Para muitos o impulso pode ser dos desenvolvedores determinando à TI: “Ei, estamos desenvolvendo todos os nossos aplicativos e processos de desenvolvimento em torno dos contêineres, portanto, forneça algo para executá-los. Enquanto isso, estamos usando instâncias da AWS.”
Indiferente da fonte as equipes de TI encaram a árdua responsabilidade no desenvolvimento de uma estratégia para contêineres que incluam divresos elementos, desde a seleção de uma plataforma para tecnologia e serviços, seguindo para sistemas de gestão e redes passando por integração com processos operacionais e design de controles de segurança.
Com tudo isso em mente a primeira reação deve ser organizar o entedimento. Compreendendo os vários integrantes de um ecossistema baseado em contêiners como a primeira atividade ds equipes de TI, em conjunto com outros importantes fatores operacionais e considerações de governança organizacional, na definição de uma plataforma de contêineres empresariais adequada para produção. Essa introdução deve ser considerada como uma cartilha, permitindo canalizar o raciocínio direcionando para futuras pesquisas assim como os detalhes de design e implementação.
Contêiners como um ecossistema e as opções para design
A primeira etapa na concepção de um projeto, seja um arranha-céu ou uma infraestrutura de TI requisita uma compreensão do escopo, isto é, os diversos componentes envolvidos incluindo os requisitos do usuário. No caso da infraestrutura de contêiner deve envolver o conhecimento das características do aplicativo, casos de uso e as necessidades do desenvolvedor.
As relações com a infraestrutura existente também serão relevantes, isto é, sistemas bare-metal, as plataformas de Máquinas Virtuais e também os ambientes de software (Sistema Operacional entre outros tipos de sistemas) já existentes numa organização. Entender os diversos componentes existentes num ecossistema do tipo contêiner deve ser apropriadamente plajenado, isto pelo ambiente em tempo de execução do aplicativo no qual foi definido ser apenas uma pequena parte numa plataforma de contêiner para produção.
Isoladamente ao definir as estratégias de design e implementação para um sistema de contêineres as seguintes áreas devem ser contempladas.
Infraestrutura de hardware subjacente: Possivelmente a primeira decisão a ser tomada pela equipe de TI, definindo o ambiente de hardware para a execução dos contêineres sendo local, em um ou mais serviços hospdedados na nuvem ou em ambos. Cada uma delas relacionadas a diversas outras decisões, incluindo as seguintes:
-
Hospedar os contêineres em sistemas estilo bare-metal ou em máquinas virtuais;
-
Definir o sistema operacional mais adequado figurando alguns como o CoreOS, Ubuntu Core ou VMware Photon; uma plataforma baaseada em máquinas virtuais como os contêineres integrados do vSphere, ou um contêiner do Windows Server a exemplo por Isolamento por Hyper-V
-
Estabelecer as especificações do sistema escolhido e planejar o dimensionamento de cluster para a carga de trabalho de curto prazo além do crescimento previsto a longo prazo.
Serviços para contêiner hospedados em nuvem: Em especial a Amazon Web Services (AWS), a Azure e Google Cloud são plataformas do tipo IaaS, hospedeiros populares para cargas de trabalho corporativas executadas contêineres, cada uma delas simplificando e agilizando além de convenientemente provisionar os recursos de sistema e armazenamento necessários para um cluster de contêiner. Serviços indispensáveis como o completo gerenciamento e orquestração de cluster para contêiners são oferecidos pelas três plataformas usando como base o modelo Kubernetes, eleito para o gerenciamento de carga de trabalho de contêiner, programação e dimensionamento de cluster como o padrão de utilização
Oferecendo um método de instâncias para contêiner sem servidor no Fargate e no Azure Contêiner Instances (ACI) estão o AWS e o Azure respectivamente. Fornecendo um ambiente em tempo de execução para contêiner sem a necessidade no provisionamento de instâncias em máquinas virtuais. Os usuários podem efetivametne provisionar várias instâncias Fargate ou ACI como um cluster executado no Kubernetes, gerenciado pelo Amazon Elastic Container Service para Kubernetes (EKS) ou Azure Kubernetes Service (AKS). Ao aliviar sobrecarga operacional através de serviços por contêineres autogerenciados e facilmente provisionados, a plataforma escolhida para iniciar experimentos com aplicativos em contêiner, redes de contêineres e projetos e governança de armazenamento consequentemente é a baseada em nuvem.
Software para rede virtual (rede definida por software, sobreposições de L3) e contêineres em rede: Assim como as máquinas virtuais, os contêineres compartilham as interfaces de rede física de seu sistema hospedeiro através de uma ponte interna por softwar. Num ambiente cluster isso começa a complicar, pelo orquestrador como o Kubernetes atribuir um IP virtual a grupos de contêineres chamados de pods que são usados na configuração de cargas de trabalho. Aumentando a dificuldade ocorre quando esses pods precisam ser dimensionados para contemplar diversos clusters de servidores. Situações geralmente que exigem o roteamento dos pacotes amparado por uma rede de sobreposição por software a exemplo da infraestrutura centralizada em aplicativos da Cisco, VMware NSX, Nuage Virtual Cloud Services ou várias alternativas de código aberto.
Por conta dos os contêineres serem inerentemente sem estado, o armazenamento deve também ser elemento da concepção. Isto pelos aplicativos de longa execução ou aqueles que demandem ser dimensionados horizontalmente para outros nós requerem uma maneira de salvar dados persistentes. Desta maneira como na rede, há diversas formas para fornecer um armazenamento persistente, incluindo plug-ins para o Kubernetes, como o Container Storage Interface, permitindo a integração de sistemas de armazenamento externos com a pilha de orquestração. Outras áreas de código aberto e desenvolvimento são as para rede de contêineres e armazenamento persistente. Estando entre alguns dos problemas mais complicados de infra-estrutura que a equipe de TI deve solucionar ao estabelecer uma infraestrutura de contêiner voltada à produção.
Software de configuração e automação de infra-estrutura: Muitas organizações automatizam programaticamente a configuração e a implantação de infra-estrutura usando o Ansible, Chef, Mesosphere, Puppet, Terraform ou outro software. Podendo ser adaptados à infraestrutura de contêiner na automatização e criação de clusters. Podendo também serem integrados aos ambientes Kubernetes permitndo aos nós userem uma configuração padrão à medida que são expandidos.
Software de gerenciamento e orquestração de cluster de contêiner: Mesmo quando o Kubernetes tenha se tornado o padrão para software de orquestração de contêineres, as implantações de contêiner local devem estar prontas para integrar-se às pilhas de gerenciamento existentes que muitas organizações já possuem, incluindo o VMware vSphere e vCenter ou o Microsoft System Center Configuration Manager.
Armazenamento para dados e imagens persistentes e software de registro de contêiner: Uma parte crítica do ecossistema de contêiner de produção é uma imagem de contêiner. Devendo estar inclusa no gerenciamento de versão, metadados de imagem e uma API para automatizar a recuperação e a implantação de imagens. As três principais plataformas de nuvem oferecem serviços de registro e vários produtos também estão disponíveis para implantações locais.
Considerações operacionais e de integração
A infraestrutura de contêiner requer novos processos administrativos exclusivos para os ambientes. As implantações de contêiner local exigem um planejamento ainda mais operacional, já que uma organização executa a infraestrutura subjacente. Ao construir a infraestrutura de contêiner, a TI deve planejar e projetar o seguinte:
-
Múltiplos inquilinos – Importante até mesmo para clusters de execução privada, pois eles oferecem suporte a usuários e aplicativos de vários departamentos.
-
Isolamento de usuários e aplicativos, restrições de autenticação e recursos – Embora os contêineres ofereçam algum nível de isolamento em tempo de execução, as organizações com rígidos requisitos de segurança ou que estão preocupadas com possíveis novas ameaças de quebra de contêiner devem considerar os contêineres baseados em máquina virtual. A autenticação deve ser obtida por meio da integração com os diretórios de usuários existentes e pelos controles de acesso baseados em função (RBAC).
-
Uso e registro de eventos, monitoramento e alertas : Necessário para garantir que o software de imagens e orquestração de contêiner registre-se nos sistemas de monitoramento de eventos existentes. Para serviços de contêiner em nuvem, certifique-se de que os contêineres usem serviços como o AWS CloudWatch e o CloudTrail. Algumas organizações desejam integrar os dados de uso aos sistemas de cobrança para permitir o reembolso.
-
Backup de imagens de contêiner e dados persistentes : Normalmente pode ser tratado pelos sistemas de backup existentes.
-
Gerenciamento de licenças para software de terceiros em execução como contêiner: Infelizmente, como nos primeiros dias das máquinas virtuais, pode ser difícil cumprir os termos de licenciamento. E não há solução rápida e absoluta para esse problema já que os detalhes variam de acordo com os modelos de licença de software subjacentes.
As equipes de TI também devem projetar a segurança usando sistemas operacionais de base enxuta ou minimalista – como o CoreOS (agora pertencente à Red Hat),o Ubuntu Core, Project Atomic devidamente projetados para hospedar contêineres, sendo sistemas operacionais com superfícies de ataque limitadas em imagens de base. Alguns registros de contêiner também suportam imagens assinadas usando certificados que podem ser fornecidos por um sistema corporativo de gerenciamento de chaves ou serviço de nuvem, como o Serviço de Gerenciamento de Chaves da Amazon. RBAC listas de controle de acesso devem ser usadas para limitar o acesso ao registro de imagens, ao sistema de orquestração e aos dados de registro. A TI também deve estar adaptadata, estendendo suas medidas de segurança existentes baseadas em rede e eventos para controlar ameaças de rede e detectar anomalias.
Questões organizacionais, de pessoal e de governança
Os contêineres podem ser uma fonte de estresse por incentivarem uma integração mais forte entre as operações de TI e as equipes de desenvolvimento de aplicativos. Organizações que adotaram uma estrutura de DevOps estão bem preparadas para tal ambiente; aqueles que não o fizeram devem considerar a incorporação de alguns conceitos de DevOps em seus processos de gerenciamento de contêineres.
Conclusão
As máquinas virtuais continuam como preferência em inúmeros ambientes, pela popularização imensa então abrangendo qualquer nível de organização senão ambientes domésticos também, diversas questões foram amadurecendo para garantir sua confiabilide, integridade e estabilidade além da segurança além dos devidos licenciamentos para as incontáveis soluções comerciais.
Da mesma maneira vem se apresentando a nova modalidade chamada contêiner permitindo configurar, disponibilizar e utilizar ambientes para os mais diversos fins de maneira ainda mais dinâmica e distribuída com uma impressionante redução de recursos necessários como espaço em disco, memória virtual, rede entre os mais lembrados porém as preocupações acabaram se multiplicando pois esses ambientes podem ser executados em cenários virtualizados ou não, integrando-se a outros segmentos de maneira ainda mais ágil.
Pela mesma razão que a explosão no uso de máquinas virtuais fez surgir regras e normas para a devida utilização, nos ambientes ainda mais isolados como Docker, Azuke, Kubernet entre os principais devem ser integrados à estas mesmas atenções principalmente por permitirem uma volatilidade ainda maior, uma vez que podem ser disponibilizados e destruídos de maneira ainda mais dinâmica.
PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx
**********************************************************************************
PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx
*****************************************