O desafio
Inicialmente, o principal objetivo era reduzir custos com a migração das aplicações em funcionamento para o Google Cloud Platform, implantando o produto legado em Drupal para cada Cluster do Kubernetes.
A solução
As aplicações e os bancos de dados hospedados na Amazon Web Services e na DigitalOcean foram migrados com sucesso para o Google Cloud Platform em um único Cluster do Kubernetes Engine. Os bancos de dados passaram para o Cloud Sql, com grande redução de custos, pois estavam superdimensionados.
A arquitetura foi alterada para usar um único cluster dentro da Shared VPC em cada ambiente, totalizando dois clusters: produção e desenvolvimento. Cada aplicativo é dividido por pool de nós, separando a administração dos aplicativos por máquinas virtuais em cada pool de nós. Já na administração do cluster, os aplicativos são separados por espaços de trabalho (namespaces), isolando as informações dos clientes.
Da mesma forma, cada cliente conta com um banco de dados Redis em memória e um banco de dados transacional Cloud SQL. O primeiro é usado para armazenar em cache as consultas ao banco de dados, e o segundo para todas as transações geradas pelo Drupal, que é a base da imagem migrada de todos os aplicativos para o GCP.
Foi implementada apenas uma máquina virtual no segmento de DMZ. Sua finalidade é permitir que a equipe de BI se conecte aos bancos de dados relacionais de forma segura e privada, funcionando como VPN cliente a site com OpenVPN e cliente Linux.
A base do core de negócio é gerada por uma única imagem de Drupal conteinerizada com Docker, implantada a partir do Bitbucket por meio do Bitbucket Devops e armazenada no Container Registry no GCP.
Tudo isso contribuiu para o crescimento e a otimização tecnológica da Gluky, incentivando novos projetos de Análise de Dados, Machine Learning, DevOps e Segurança e reforçando sua confiança no Google Cloud Platform como principal provedor de tecnologia na nuvem.
Resultados da migração para o Google Cloud Platform
Com a migração para o Google Cloud Platform, foi possível dar suporte às aplicações e aos bancos de dados dos diferentes clientes e obter os benefícios de plataforma como serviço e software como serviço, permitindo concentrar o negócio em inovação, em vez da gestão administrativa da infraestrutura. Também são aproveitadas a escalabilidade, a durabilidade e a alta disponibilidade dos serviços do Google Cloud Platform para cumprir os acordos de nível de serviço subjacentes com os clientes, além do pagamento por uso, dos descontos por uso contínuo e dos compromissos de uso contínuo para obter custos baixos e grande capacidade de crescimento.
Essa migração, apoiada pelas equipes do Google Cloud Platform e da Servinformación, beneficiou a Gluky, permitindo aproveitar grandes benefícios tecnológicos e impulsionar diferentes projetos de Machine Learning e IA, Análise de Dados e Infraestrutura, ampliando os serviços oferecidos a cada cliente.
Sobre o cliente
A Gluky é especializada em incentivar, fidelizar e motivar colaboradores, equipes de vendas, canais e clientes, contribuindo para melhorar os resultados de nossos clientes com um amplo portfólio de benefícios conectados ao propósito de cada marca.
Fundado em 2007, o negócio desenvolve estratégias de reconhecimento e remuneração que incentivam e fidelizam desde equipes de vendas até canais de comercialização e clientes. Mobiliza as pessoas para atingir indicadores de negócio por meio de uma plataforma tecnológica que permite implementar esses programas de forma escalável e mensurável, gerando as informações que orientam os incentivos.
Produtos utilizados do Google Cloud Platform
Compute Engine: O Compute Engine oferece máquinas virtuais configuráveis executadas nos data centers do Google. Essas máquinas contam com armazenamento em blocos e infraestrutura de rede de alto desempenho. A aplicação Drupal precisa compartilhar uma área de arquivos persistente e confiável para gravação. Para isso, utiliza-se um disco do GCE com snapshots habilitados, disponibilizado à aplicação por meio de NFS, que se torna um ponto de montagem para a aplicação Drupal por meio de um Persistent Volume (PV) e de um Persistent Volume Claim (PVC).
Kubernetes Engine: É composto por um Master 100% gerenciado pelo Google, onde fica a instalação básica do Kubernetes e que funciona como o cérebro do Cluster; pelos Nós, que são as máquinas virtuais que sustentam o Cluster; e pelos Pods, que são abstrações dos contêineres baseados em imagens normalmente compiladas com Docker. O Kubernetes Engine se destaca por oferecer um sistema operacional com reforço de segurança projetado para o GKE (Container-Optimized OS), escalonamento automático, atualizações automáticas, reparos automáticos e suporte a nós preemptivos (mais baratos). Nesse produto, a Gluky hospeda as diferentes aplicações compostas por microsserviços.
Cloud SQL: o Cloud SQL é um serviço de banco de dados totalmente gerenciado que facilita a configuração, a manutenção e o gerenciamento de bancos de dados relacionais MySQL no Cloud Platform. O conector do Cloud SQL permite acessar, pelo Data Studio, as informações dos bancos de dados do Cloud SQL. Os bancos de dados dos aplicativos da Gluky usam Cloud SQL com MySQL 5.7, são executados fora do cluster e têm tamanhos diferentes conforme o aplicativo. Funcionam sem HA e se conectam a partir do cluster por meio de um ExternalName e de um endereço IP privado.
Container Registry: É a tecnologia que oferece armazenamento privado de imagens Docker, com versionamento e verificação automática de vulnerabilidades nas imagens, de forma rápida e com alta disponibilidade por padrão. A aplicação é implantada por meio do Bitbucket DevOps no Container Registry, de onde é utilizada nas implantações da aplicação no mesmo cluster. Como mencionado anteriormente, a aplicação é baseada em Drupal e, em geral, todas as aplicações do cluster utilizam o mesmo conceito de implantação por meio do Bitbucket.
Cloud Storage: Armazenamento de objetos com capacidade ilimitada e sem tamanho mínimo de objeto, oferecendo acessibilidade e locais de armazenamento no mundo todo, baixa latência e durabilidade de 99,9%, com segurança e confiabilidade. Disponibiliza diferentes classes de armazenamento para qualquer carga de trabalho, permite gerenciar o versionamento e o ciclo de vida dos objetos e oferece criptografia em repouso por padrão, com a possibilidade de usar chaves de criptografia gerenciadas ou fornecidas por cada usuário. Entre os diversos benefícios, destacam-se o baixo custo e o pagamento apenas pelo que é armazenado.
Redis MemoryStore: O Memorystore para Redis oferece um serviço totalmente gerenciado de armazenamento de dados em memória do Redis, permitindo criar caches de aplicações que oferecem acesso aos dados em menos de um milissegundo. O Drupal gerencia um cache em memória por meio de um banco de dados como o Redis, implantado no Memorystore, o serviço gerenciado de Redis do GCP. A conexão é estabelecida por meio de um ExternalName e de um IP privado, acessível pela mesma VPC à qual o banco de dados se conecta.
Shared VPC: Na VPC compartilhada, uma organização pode conectar recursos de vários projetos a uma rede de nuvem privada virtual (VPC) comum para que se comuniquem entre si de maneira segura e eficiente por meio dos IPs internos dessa rede. Ao usar uma VPC compartilhada, é preciso designar um projeto como projeto host e conectar a ele um ou mais projetos de serviço. As redes VPC no projeto host são conhecidas como redes VPC compartilhadas. Os recursos elegíveis dos projetos de serviço podem usar sub-redes na rede VPC compartilhada. O projeto conta com uma Shared VPC separada em um projeto independente, para separar as funções das aplicações de acordo com as funções da equipe. O projeto da Shared VPC é infra-sharedvpc-productivo, que contém as redes e sub-redes necessárias para os diferentes nós e ambientes da Gluky.


