The challenge
Initially, the main purpose was to reduce costs by migrating its operational applications to Google Cloud Platform, deploying the legacy Drupal product for each Kubernetes Cluster.
The solution
Applications and databases hosted on Amazon Web Services and DigitalOcean were successfully migrated to Google Cloud Platform within a single Kubernetes Engine Cluster. The databases moved to Cloud Sql, achieving significant cost reductions because they had been oversized.
The architecture was changed to use a single cluster within the Shared VPC for each environment, for a total of two clusters: production and development. Each application is divided into node pools, separating application administration across virtual machines by node pool. For cluster administration, applications are separated into workspaces (namespaces), isolating customer information.
Each customer also has an in-memory Redis database and a transactional Cloud SQL database. The first is used to cache database queries, and the second handles all transactions generated by Drupal, which serves as the basis of the image migrated for all applications to GCP.
Only one virtual machine has been deployed within the DMZ segment. Its purpose is to allow BI staff to connect securely and privately to relational databases, operating as a client-to-site VPN with OpenVPN and a Linux client.
The foundation of the core business is generated through a single Dockerized Drupal image, deployed from Bitbucket through Bitbucket Devops and stored in Container Registry on GCP.
All of this contributed to Gluky's growth and technology optimization, encouraging new Analytics, Machine Learning, DevOps, and Security projects and strengthening its confidence in Google Cloud Platform as its main cloud technology provider.
Results of migration to Google Cloud Platform
The migration to Google Cloud Platform made it possible to support applications and databases for its different clients and obtain the benefits of platform as a service and software as a service, allowing the business to focus on innovation instead of infrastructure administration. It also leverages the scalability, durability, and high availability of Google Cloud Platform services to meet the underlying service-level agreements with clients, along with pay-as-you-go pricing, sustained use discounts, and sustained use commitments to achieve low costs and substantial growth capacity.
This migration, supported by the Google Cloud Platform and Servinformación teams, benefited Gluky by enabling it to take advantage of major technology benefits and advance various Machine Learning and AI, Data Analytics, and Infrastructure projects, expanding the services it offers each customer.
About the customer
Gluky specializes in incentivizing, building loyalty, and motivating employees, sales teams, channels, and customers, helping improve our customers' results by offering a broad portfolio of benefits connected to each brand's purpose.
Founded in 2007, the business develops recognition and compensation strategies that motivate and build loyalty among sales teams, distribution channels, and customers. It mobilizes people to meet business indicators through a technology platform that enables these programs to be deployed in a scalable, measurable way and generates the information that guides incentives.
Google Cloud Platform products used
Compute Engine: Compute Engine offers configurable virtual machines that run in Google's data centers. These machines feature block storage and high-performance network infrastructure. The Drupal application needs to share a reliable, persistent file area it can write to. A GCE disk with snapshots enabled is used for this purpose and exposed to the application through NFS, which becomes a mount point for the Drupal application through a Persistent Volume (PV) and a Persistent Volume Claim (PVC).
Kubernetes Engine: It consists of a Master that is 100% managed by Google, where the base Kubernetes installation resides and which acts as the brain of the Cluster; Nodes, which are the virtual machines supporting the Cluster; and Pods, which are abstractions of containers based on images typically built with Docker. Kubernetes Engine stands out by providing a hardened operating system designed for GKE (Container-Optimized OS), autoscaling, automatic upgrades, automatic repairs, and support for preemptible nodes (which are cheaper). Gluky hosts its different microservices-based applications on this product.
Cloud SQL: Cloud SQL is a fully managed database service that makes it easy to configure, maintain, and manage relational MySQL databases on Cloud Platform. The Cloud SQL connector lets you access information from Cloud SQL databases in Data Studio. Gluky's application databases use Cloud SQL with MySQL 5.7, run outside the cluster, and vary in size depending on the application. They run without HA and connect from the cluster through an ExternalName and a private IP address.
Container Registry: This technology provides private storage for Docker images, offering versioning and automatic vulnerability scanning of images, with speed and high availability by default. The application is deployed through Bitbucket DevOps to Container Registry, from which it is used in application deployments within the same cluster. As mentioned earlier, the application is based on Drupal, and in general all applications in the cluster use the same deployment concept through Bitbucket.
Cloud Storage: Object storage with unlimited capacity and no minimum object size, providing accessibility and storage locations worldwide, low latency, and 99.9% durability for security and reliability. It offers different storage classes for any workload, supports object versioning and lifecycle management, and provides encryption at rest by default, with the option to use user-managed or user-provided encryption keys. Among its many benefits, low cost and paying only for what is stored stand out.
Redis MemoryStore: Memorystore for Redis provides a fully managed service for Redis in-memory data storage, enabling application caches that provide sub-millisecond data access. Drupal manages an in-memory cache through a database such as Redis, deployed in Memorystore, GCP's managed Redis service. The connection is established through an ExternalName and a private IP address, accessible through the same VPC to which the database connects.
Shared VPC: With Shared VPC, an organization can connect resources from multiple projects to a common virtual private cloud (VPC) network so they can communicate securely and efficiently using that network's internal IP addresses. When using Shared VPC, you must designate one project as the host project and attach one or more service projects to it. The VPC networks in the host project are known as Shared VPC networks. Eligible resources in service projects can use subnets in the Shared VPC network. The project includes a separate Shared VPC in an independent project to separate application roles according to personnel roles. The Shared VPC project is infra-sharedvpc-productivo, which contains the networks and subnets required for Gluky's different nodes and environments.


