A prática de apoiar e desenvolver a nuvem no data center Linxdatacenter nos apresentou um caso interessante. Uma operação bastante rotineira para atualizar apenas um elemento da plataforma de nuvem levou a uma atualização profunda em grande escala.
Contaremos como tudo começou e como a nuvem “gêmeo digital” nos ajuda.
Você não pode simplesmente pegar e atualizar o vCloud Director
Os principais componentes da nuvem Linxdatacenter são a pilha de tecnologia VMware, que implementa o painel de controle da infraestrutura virtual do vCloud Director. É implantado com base em componentes Cisco e infraestrutura de serviço, como o Windows Active Directory.
Em algum momento no final de 2020, encontramos um problema: o vCloud Director 9.5 começou a ficar para trás em relação às especificações das tarefas atuais e não colocamos as mãos em sua atualização para a versão 10.1 ou 10.2.
Não havia nada de terrível nisso, mas no início de 2021, o suporte a Flash no navegador parou.
Para ser honesto, não esperávamos que os fabricantes de Flash e navegadores fizessem essa crueldade. Ou seja, todo mundo já ouviu falar do fim do suporte há muito tempo, mas a notícia de que ele será fisicamente removido dos sistemas operacionais e completamente bloqueado nos navegadores a partir de 12 de janeiro, foi uma surpresa muito desagradável.
O fato é que o vCloud Director tem acesso por meio de dois portais. O primeiro é em Flash, era o principal e, digamos, o original, com uma funcionalidade muito ampla e muitas possibilidades.
O desenvolvimento do portal HTML começou com a versão 8.20, apenas na perspectiva de abandonar o Flash, agregando-lhe gradativamente novas funcionalidades. A versão do vCloud Director 9.5, que agora é apresentada em três de nossos sites, atende a maioria das solicitações dos clientes em termos de funções, mas do ponto de vista administrativo, começaram a surgir problemas bastante significativos.
Como solução intermediária, conseguimos encontrar uma configuração de navegador em que o acesso ao Flash ainda permanece. E do ponto de vista da gestão, a gente continua controlando a situação, não tem problema.
No entanto, para os usuários, a funcionalidade da versão 9.5 não é ideal. Os usuários já estão acostumados a trabalhar em Flash, e sua ausência causa transtornos, eles fazem perguntas, “mas antes dissoera assim, mas como podemos fazer isso agora? " Em 10 versões, a funcionalidade é visivelmente melhor e é o mais próximo possível do Flash. Portanto, foi decidido que atualizar o vCloud Director é a tarefa nº 1.
Legado pesado
A situação foi complicada pelo fato de que a plataforma de nuvem em nosso data center em São Petersburgo e no site do parceiro em Varsóvia é nosso "legado" de um integrador de sistema que a implantou em 2013. Até 2017, a mesma empresa realizava totalmente a manutenção e as atualizações, e então aumentamos nossa própria experiência em quantidade suficiente para assumir o controle totalmente em nossas próprias mãos.
Já uma análise preliminar da situação mostrou que você não pode simplesmente pegar e atualizar da versão 9.5 para a 10.2. A elaboração de um plano de atualização passo a passo para todas as versões de software para diferentes elementos de nuvem com matrizes de compatibilidade levou o arquiteto responsável pela tarefa mais de 2 semanas.
Isso se deve à complexa estrutura de dependências de versão de software, cuja lógica requer uma transição gradual e estritamente sequencial para novas versões, a fim de manter o bom funcionamento da nuvem como um todo.
A necessidade de uma atualização aparentemente inocente do vCloud Director nos forçou a lançar uma atualização completa da plataforma, começando com servidores Windows com Active Directory e terminando com todos os componentes adicionais. Para concluir a atualização planejada para a versão de destino no vCloud Director, você precisará atualizar todo o sistema quatro vezes: a atualização da plataforma em nuvem será realizada em três rodadas completas ou filas.
Começaremos com nossa própria nuvem em Varsóvia, seguida por sites em São Petersburgo e Moscou. A data prevista para a conclusão dessas obras é maio de 2021.
Mas primeiro, vamos praticar no “gêmeo digital” da nuvem.
Gêmeo digital para a nuvem
O plano de trabalho de apenas um dos sites é simplesmente colossal, levando em consideração o recurso da equipe de projeto de três especialistas.
Essa limitação, bem como o tempo, o número de etapas intermediárias e a complexidade da infraestrutura exigiram que testássemos exaustivamente a implementação prática do projeto em um mock-up virtual - um gêmeo digital da nuvem em um laboratório virtual.
O gêmeo digital da nuvem nos dá confiança na qualidade das mudanças do sistema que estão sendo acionadas e na obtenção dos resultados esperados. Além disso, é muito conveniente trabalhar vários cenários para operar a plataforma em tal gêmeo e, no caso de um erro ou falha, sempre teremos a oportunidade de reverter para um instantâneo da máquina virtual com correção de os erros. Isso agiliza o processo de atualização e permite que seja realizado sem perder a qualidade do sistema como um todo.
Todas as atualizações serão realizadas preliminarmente no gêmeo digital e, em seguida, se os processos de transição gradual para novas versões de todos os elementos da plataforma forem bem-sucedidos, o plano de trabalho detalhado para a infraestrutura alvo real será ajustado.
O gêmeo digital replica completamente a infraestrutura da plataforma até os componentes mais recentes de todos os sistemas. Todas as alterações na infraestrutura real - definições, configurações, atualizações de software - são primeiro processadas nela.
Vemos como todos os elementos se somam em uma única imagem, determinamos os riscos, calculamos o tempo que leva para esta ou aquela etapa da atualização, a partir da qual é elaborado um plano de trabalho detalhado.
O gêmeo é feito usando a tecnologia de virtualização aninhada - virtualização aninhada. O VMware permite aumentar os hipervisores internamente e também pode executar máquinas virtuais nesses hipervisores.
Dentro da estrutura de nossa nuvem de Varsóvia, recursos foram alocados para a criação de um "gêmeo" e hipervisores, máquinas virtuais e uma rede foram implantados neles - nós "reconstruímos" a nuvem do zero em conformidade com todas as versões de SO, pacotes, software e arquitetura que os conecta em uma única solução.
Não se trata de "Ctrl + C / Ctrl + V", ou seja, não copiamos apenas o sistema existente: foram reproduzidos apenas os componentes principais do sistema e a lógica de sua interação, até a largura de banda dos canais de comunicação, NGINX como um proxy reverso e "configs" para registro de tráfego.
O gêmeo "come" os recursos do site no valor de $ 650 por mês - por exemplo, pagamos a VMware como provedor de serviços pela RAM consumida pelo "duplo", e há mais de 20 máquinas virtuais implantadas nele .
São custos significativos, mas por outro lado, executar com segurança o script de atualização passo a passo nos garante 100% de proteção contra falhas e momentos imprevistos durante a atualização na infraestrutura real. Possíveis perdas devido a um mau funcionamento do sistema são ordens de magnitude maiores do que os custos de manutenção do "gêmeo".
Nossas expectativas
De acordo com cálculos preliminares, o recurso do sistema após a atualização será suficiente para que a plataforma funcione no nível adequado sem a necessidade de quaisquer alterações, sem falar de uma reestruturação global, pelo menos até o final de 2021.
Como parte dos preparativos atuais para a atualização da maioria das principais versões de software dos principais sistemas, o indicador de fim do suporte remonta ao final de 2023. Além disso, para um número significativo de sistemas, o momento do encerramento do suporte para versões de software permanece não declarado até agora.
Ou seja, a margem de segurança geral deve ser suficiente para 1-2 anos, e se estamos falando de uma renovação global comparável à atual, hoje estamos lançando as bases para um período ainda mais longo.
O ciclo de vida de uma plataforma em nuvem implica a necessidade de sempre ter versões de software atualizadas dos principais elementos do sistema.
Falando de uma forma geral sobre esta área de trabalho, pode-se notar que a complexidade e os sofrimentos gerais de tal reestruturação dependerão sempre da dificuldade de iniciá-la, tendo deixado de acompanhar a compatibilidade de versões, bem como de quão diverso é o “zoológico” de vários elementos, tecnologias, protocolos e o software no qual a nuvem é construída.
O que devemos nos esforçar aqui? Rumo à unificação: a atualização global lançada, em última análise, simplificará muito nossa vida e aumentará a confiabilidade da nuvem como um todo.
Conseguiremos nos afastar completamente do legado do integrador que implantou toda essa infraestrutura. Não teremos pontos cegos e potenciais elos fracos na cadeia de valor da nuvem na forma de disponibilidade, flexibilidade de configurações, confiabilidade e outros parâmetros que afetam o SLA.
Assim que todos os componentes da nuvem operarem nas mesmas versões de software em todos os sites, quaisquer atualizações, extensões e integrações subsequentes se tornarão uma questão de gerenciamento competente do componente técnico, rotina, e não um projeto administrativo e técnico global.
Planejamos usar o gêmeo digital da nuvem no futuro. É uma ferramenta útil que ajuda a tornar o processo de atualização da infraestrutura mais seguro e rápido.