The customer is a US-based, venture-backed product company specializing in artificial intelligence based software and mobile robots for the warehousing industry.
They help companies plan their inventory and automate processes like fulfillment, picking, and packing using intelligent software coupled with smart robots. Their clients are located across the globe, with their robots deployed at more than 50 sites.
A suite of applications was converted to microservices-based architecture hosted on the Kubernetes platform and deployed on the Google Cloud Platform (GCP). This involved dynamic provisioning of the environment using IaC along with continuous deployment & delivery of their application.
Argo CD was employed for this and integrated with their existing continuous integration pipeline. A complete observability stack was suggested & deployed, which was built from scratch using tools like Prometheus, Alerter, ELK, etc, for monitoring, logging, and alerting.
The client’s application was required to be installed by every customer of theirs on-prem. This meant that their customers not only used the application but also had to manage it. Which ultimately results in a lot of overhead for their customers in terms of costs and efforts required to deploy and maintain the application.
The client reached out to us to help them convert this legacy monolith application and datastore that was hosted on-prem into a SaaS offering that was easy to deploy, always available, and scalable. This would take the burden off the client’s customers and allow them to onboard more customers and expand their footprint.
Moving to the cloud would bring in another set of challenges like ensuring the service is always up, on-demand provisioning of instances for different customers, robust data strategy along with monitoring, alerting, and logging services.
The interactions started with consulting engagement, where we suggested ways to move the application to the cloud. This then transitioned into the product engineering phase, where some of the components were redesigned into a microservices-based architecture.
It then molded into a site reliability engagement where our teams of SREs ensured that the application was stable and configured the infrastructure to ensure it was always up and running.
Challenges like this require a multi-pronged approach that combines tools and strategies that help to take complete advantage of the cloud.
InfraCloud provided solutions that included tools & suggestions to improve automated infrastructure deployment along with implementing a continuous deployment pipeline.
Beyond the original scope, we also implemented an Observability stack that would provide efficient monitoring of resources along with logging and alerting.
We started by converting parts of the application to microservices architecture, containerized them, and deployed them on GKE. When we encountered random uptime issues, we deployed it across different regions to ensure it was always available.
Doing that meant we had to maintain the configurations of all these instances so that they could be redeployed quickly. Thus we adopted Infrastructure as Code practice using which the entire infrastructure was written as declarative configuration files.
Terraform was used to provision the entire infrastructure on GCP. With this, we were quickly able to create QA and dev environments.
The application in question was a data-intensive application that relied heavily on the backend database. Thus we suggested they migrate the database to a managed database on GCP.
Along with migrating the application to the cloud, the existing datastore was also provisioned on cloud instances. PostgreSQL’s datastore was migrated to Google Cloud storage. Doing so provided the following benefits:
The existing setup was already using Jenkins for continuous integration. To improve the speed of delivery, automating the entire process and making it cloud agnostic, we suggested using Argo CD - a declarative, GitOps continuous delivery tool for Kubernetes. We chose it because:
There were about 9 clusters hosting close to 40 microservices spread across 3 zones after the application was moved to GCP. This meant that if anything went wrong, identifying the root cause would be tough.
That’s when we suggested implementing a foolproof observability stack that could continuously monitor resources, keep a log of activities, and alert in case of an eventuality.
We were able to deploy this by performing the following tasks:
This observability stack will be integrated with OpsGenie for auto assignment of issues and tickets to the service teams for faster resolution.
A suite of benefits was provided to the client by way of this engagement. By SaaSifying their existing application:
Apart from the agreed-upon tasks, we went beyond the scope to implement tools by which:
We are a premier technology company with DevOps engineers who have pioneered DevOps with Container, Container Orchestration, Cloud Platforms, DevOps, Infrastructure Automation, SDN, and Big Data infrastructure solutions.
Our deep expertise and focus in these areas enable our customers to build better software faster.
We have over 50 Kubernetes-certified specialists that you can trust - CKA, CKAD & CKS
We are also one of the cloud native technology thought leaders, with speakers and authors contributing to global CNCF conferences.