Brief results of the collaboration:
The customer is a Fortune 500 corporation that distributes electrical, communication, and data networking products. It also offers related supply chain management and logistic services daily to over 100,000 customers across 280 locations.
To cope with their environment, the customer had been employing several engineers managing day-to-day operations. Spending hours on app deployment and cluster scaling, thousands of dollars were wasted on idle resources. The distributor also lacked transparency in user activities, analytics, configuration management, versioning, etc.
As a solution, the company wanted to migrate to Azure Kubernetes Service (AKS). Along with the migration and re-architecture of the platform, the customer was looking to improve security. The distributor turned to Altoros, an experienced and certified service provider with a proven track record in the field.
Under the project, the team at Altoros had to address the following issues:
Stage 1. Readiness and maturity assessment
Together with the customer, engineers at Altoros evaluated the existing architecture in order to outline a strategy for migrating to AKS, as well as provide a roadmap for other improvements. Company stakeholders were interviewed about the business goals and priorities of the migration. Additionally, our team reviewed existing application development and platform operations. After the assessment, we delivered a report documenting critical to low priority issues and other recommendations.
Stage 2. Analysis and planning
With an established roadmap, our developers created a plan based on the company's business goals. Several priorities were accounted for, including zero-downtime migration, automation for building the platform, resiliency testing, improving the development process with versioning, as well as ensuring stability, high availability, and performance of the platform. With a clear plan, our experts minimized the risk of any issues occurring during the transition to AKS.
Stage 3. Platform deployment
Next, the team executed the plan by first deploying the platform to AKS and configuring the infrastructure. To enable automation, our engineers relied on Azure DevOps in creating CI/CD pipelines for building apps.
The team introduced the GitOps model for API versioning and configuration. Using Git as a source control, this enabled a quick reversion of changes, improving stability. A message queue was added for events and interprocess communications, managing errors and job queues. To improve availability, the developers created a separate microservice to have single control over the database, queueing CRUD tasks.
To ensure transparency, our engineers created alerts to track resource thresholds and log events, as well as conducted training on Azure Monitor and its dashboards. This helped to get visibility into microservices and the system.
Stage 4. App migration and platform scaling
With the platform deployed, our experts moved on to application migration, completing the move to AKS. To prevent downtime, the team planned out a gradual process, starting with 10 microservices and establishing the groundwork for the transfer of the remaining 150 microservices. Implementing rolling updates with Helm also contributed to ensuring zero downtime. Altoros implemented Kubernetes Horizontal Pod Autoscalers to optimize resource usage. Additionally, cluster scaling enabled the dynamic utilization of resources.
Stage 5. Training and mentoring
To help the company understand basic and advanced Kubernetes concepts, such as containers, cluster administration, scheduling, and eviction, they were involved in the deployment from day 1.
Despite the remote nature of the delivery due to ongoing pandemic, our engineers paired with the customer's team to help them understand best practices for platform operations and application migration. Our team delivered an in-depth Kubernetes training to the customer's engineers with a focus on hands-on practice. The training also introduced basic and advanced concepts, such as containers, objects, secrets, health checks, cluster management, logging, monitoring, etc. This mentoring process ensured that the company would get the necessary knowledge to operate the new system in production.
Stage 6. Post-deployment support
To gain access to the best practices emerging on the market and to address the most critical issues of the production site, the customer retained Altoros for support services. In this regard, our team acted as the second line of support for issues that required advanced knowledge of AKS. In addition, backlog activities and improvements based on internal feedback were delivered. Through our ongoing support, the company is able to fully utilize the platform and rely on our Kubernetes expertise should there be any inquiries or problems.
Summary
Initially, engineers at Altoros assessed the customer's existing architecture to better understand potential migration bottlenecks. A plan was created to minimize the risk of errors during the transition.
Next, our team deployed the AKS platform and configured the infrastructure. The GitOps model for API versioning and configuration was introduced. The model also improved the developer experience, enabling code to be pushed without in-depth Kubernetes knowledge.
To manage job queues and errors, our developers added a message queue for events and interprocess communications. A separate microservice was created to have single control over the database, improving availability.
Following platform deployment, 10 microservices were migrated, laying the groundwork for the remaining 150 microservices and preventing any downtime. With autoscaling, our experts enabled microservices to automatically scale up or down, reducing idle resources by 40%.
To help the customer understand the concepts surrounding Kubernetes, our engineers involved their team from day 1 and provided them with firsthand experience through pair programming. With ongoing support from Altoros, the company is able to efficiently operate the platform and rely on our Kubernetes expertise for any potential issues.
With the help of Altoros, the customer was able to assess their existing architecture and identity critical to low priority issues. With a detailed plan, the company was able to transition to AKS without any problems. By automating CI/CD pipelines, the customer reduced the effort required in day-to-day operations, enabling engineers to focus on creating new features and delivering better technical support to users. By gradually migrating microservices, there was zero downtime. With autoscaling, the company reduced idle resources by 40%, saving thousands of dollars per month. With continuous support from Altoros, the customer is able to rely on our expertise for any future problems and maximize their use of the platform on Kubernetes.
Platforms
Azure Kubernetes Service
Programming languages
Python, Java, Node.js
Frameworks and tools
Azure Key Vault, Azure Monitor, Azure API Management, Azure DevOps, Spring Boot, SAP Services Registry, Terraform
Databases
Redis, MySQL
100,000
users daily
160
microservices
40%
less idle resources