The client is a well-known furniture manufacturer with distribution warehouses located in several states across the country with a dedicated E-Commerce division.
The Customer’s IT infrastructure included more than 12 on-premises servers and a variety of integrated systems like CRM, accounting, a data warehouse, and an e-commerce platform created in Magento. The customer faced the following challenges.
AlignMinds assigned a group of DevOps experts with experience in system administration and software development to handle the customer’s infrastructure management tasks. AlignMinds sought to significantly accelerate the delivery of new software features, fixes, and updates in line with the Customer’s business objectives by combining the efforts of development (Dev) and operations (Ops) specialists.
To migrate each of the customer applications and to determine which should come first we followed a process based on the 4R Assessment Methodology.
We use the method of Rehosting or the Lift and Shift method to move the on-premise application to the cloud environment without being altered. This method entails little risk and work. Additionally, it lowers infrastructure and operational costs. Long-term, this will help the company because it will encourage a cloud-first strategy and help the company grow its talent.
Before entering this Rehost phase, we carefully documented all dependencies such as stack versions, web server configuration, etc.
Re-platform or the Lift, Tinker, and Shift technique, which entails moving the applications while maintaining their current versions. We made only a few improvements before moving to the cloud, such as switching from self-hosted infrastructure to managed services.
During this phase, we used MariaDB instead of MySQL as it is backward compatible and much faster than MySQL. We also used the below technology services but not limited to:
Application Load Balancer.
AWS ACM for certificates.
AWS WAF and rules to prevent bots, blacklisted IPs and to protect the Linux OS.
AWS Shield to prevent DDoS attacks.
S3 for storing static assets such as videos, images other static resources.
CloudFront for distributing the static resources over a CDN.
We added a serverless function to monitor new image uploads to S3 and optimized the image for improving the performance of the site.
Since the project didn’t have the scope of code refactoring, it was done.
The following old systems were retired.
Backup systems
Monitoring scripts
Firewalls
Load balancer
DNS configurations
Web Servers
Web application firewalls
Database connections, controls
APIs
Technical Advancements
During this migration process, we recreated all DNS records and transferred the domain to AWS Route53, creating a staging environment for the migration. AlignMinds was able to complete the whole transition within 4 weeks, including load testing and an AWS security audit.
By using the WAF and AWS Shield we reduced the number of attacks, server resources, and costs.
AlignMinds set up and managed the tools for load balancing, infrastructure monitoring, and log management to guarantee the flawless performance of the integrated systems. AlignMinds DevOps experts implemented the continuous integration and continuous delivery (CI/CD) pipeline to manage the Customer’s e-commerce website.
Magento was migrated from 1 to 2 and this added up to performance and security. We successfully adopted the DevSecOps in the early stage for the Magento 2 developments.
DevOps engineers created a CI/CD pipeline using Jenkins as a CI/CD automation tool and AWS CodeCommit as a source code repository to speed up the processes of developing, testing and releasing updates and bug fixes for the Customer’s web applications based on Pimcore, Magento, etc. The AlignMinds team-controlled application configurations using Ansible and the Magento 2 is running on Auto scaling group in different availability zones.
To eliminate differences between the development, test, and production environments, AlignMinds DevOps practitioners implemented CI/CD pipelines and automated web application performance testing.
The AlignMinds DevOps engineers used the following tools to properly balance the load, distribute network traffic, and cache HTTP requests across the Customer’s IT infrastructure.
To monitor disk usage, RAM and CPU consumption, DevOps engineers set up and applied Sensu, an Opensource application for monitoring Windows and Linux Server resources. AlignMinds team used PagerDuty integrated with our collaboration tool Slack to notify the engineers.
AlignMinds engineers configured Graylog to collect and analyse errors from the server and application log and alert using PagerDuty.
Technologies Used
Slack:Collaboration
SonarQube:SonarQube empowers all developers to write cleaner and safer code. SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs and code smells on 29 programming languages.
Graylog:Graylog is a leading centralized log management solution for capturing, storing, and enabling real-time analysis of terabytes of machine data.
PagerDuty:PagerDuty is an American cloud computing company specializing in a SaaS incident response platform for IT departments.
Sensu:Sensu is a cloud-based network monitoring solution that assists businesses of all sizes with performance data collection and diagnostics. Its key features include server performance, bandwidth monitoring, uptime monitoring, network resource management and event logs.
Varnish:Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as well as APIs.
NGINX:NGINX accelerates content and application delivery, improves security, and facilitates availability and scalability of the websites.
Redis:Redis stores its data on the primary memory, reading and writing are made faster than databases that store data on disks.
AWS CodeCommit:is a secure, highly scalable, fully managed source control service that hosts private Git repositories.
Jenkins:Jenkins – an open-source automation server which enables developers around the world to reliably build, test, and deploy their software.
Pimcore:Used for Digital Asset Management
Magento 2:Magento is an open-source e-commerce platform written in PHP.
PHP and MariaDB:For programming and database storage.
AWS Route53:AWS Route 53 lets developers and organizations route end users to their web applications in a very reliable and cost-effective manner. It is a Domain Name System (DNS) that translates domain names into IP addresses to direct traffic to your website.
AWS Shield:AWS Shield is a managed distributed denial of service (DDoS) protection service that safeguards applications running on AWS.
AWS S3:Used to store website’s static assets.
NAT Gateway:Used for security and initiate all outgoing connections from one or more static IPs. A NAT gateway is a Network Address Translation (NAT) service. You can use a NAT gateway so that instances in a private subnet can connect to services outside your VPC but external services cannot initiate a connection with those instances.
RDS:Amazon Relational Database Service is a distributed relational database service by Amazon Web Services. It is a web service running “in the cloud” desigtned to simplify the setup, operation, and scaling of a relational database for use in applications.
Autoscaling:AWS Auto Scaling monitors your applications automaically adjusts capacity to maintain steady, predictable performance at the lowest possible cost. Using AWS Auto Scaling, it’s easy to setup application scaling for multiple resources across multiple services in minutes.
Availability Zone:Used for High Availability. Availability Zones are distinct locations within an AWS Region that are engineered to be isolated from failures in other Availability Zones. They provide inexpensive, low-latency network connectivity to other Availability Zones in the same AWS Region. Important. Each region is completely independent.
AWS EFS:Amazon Elastic File System (Amazon EFS) is a simple, serverless, set-and-forget, elastic file system. There is no minimum fee or setup charge. You pay only for the storage you use, for read and write access to data stored in Infrequent Access storage classes, and for any provisioned throughput.
CloudFront:Amazon CloudFront is a content delivery network operated by Amazon Web Services. Content delivery networks provide a globally distributed network of proxy servers that cache content, such as web videos or other bulky media, more locally to consumers, thus improving access speed for downloading the content.
AWS Application Load Balancer:Serves as the single point of contact for clients. distributes incoming application traffic across multiple targets, such as EC2 instances, in multiple AZs, which increases the availability of the application.
Results
AlignMinds’ DevOps engineers’ efforts gave the customer the chance to frequently improve the e-commerce solution without causing delays in the business process while achieving the following.