EC2 to ECS: TrueProdigy Steered Towards Modernization

DevOps

Containerization

  • 2 October 2023
Share this post
AWS Funding Secured by Cloud303
  • Well-Architected

About the Customer Title

TrueProdigy is an analytics solutions provider specializing in Jaspersoft-based data reporting and visualization tools. Their platform services a diverse clientele, requiring an infrastructure that can scale effectively to handle increased demand and ensure 24/7 availability. Dealing with data-sensitive environments, TrueProdigy values robust security and reliability, making them a perfect candidate for an AWS ECS-based transformation orchestrated by Cloud303.

Executive Summary

Cloud303, an AWS Premier Partner, collaborated with TrueProdigy to migrate their Jaspersoft application from a traditional Amazon EC2 infrastructure to Amazon ECS. The goal of this migration was to achieve high availability and scalability while maintaining the application's performance. Cloud303's expertise in containerization and Amazon ECS helped TrueProdigy overcome the challenges of their existing infrastructure and achieve operational efficiency.

The Challenge

TrueProdigy's Jaspersoft application was initially running on EC2 instances, which led to challenges in terms of scalability and high availability. Their infrastructure was not optimally designed to handle the increasing demand, resulting in performance issues and reduced efficiency. To overcome these challenges, TrueProdigy needed a more robust and scalable solution that would allow them to accommodate growth while maintaining application performance.

Why Cloud303?

  • Automation Expertise Cloud303 excels in automating tedious and complex tasks, making development and operations more efficient. Our expertise in CI/CD pipelines, Infrastructure as Code, containerization and automated testing ensures a faster time-to-market and more robust DevOps strategy.
  • Scalability and Performance With a deep understanding of microservices, containerization, and orchestration, Cloud303 provides scalable solutions that can handle varying workloads without sacrificing performance, ensuring that your systems can handle future demands.
  • Collaboration and Culture Recognizing that DevOps is as much about people and culture as it is about tools and processes, Cloud303 helps foster a culture of collaboration between development and operations teams to facilitate better teamwork and collective ownership of projects.
  • Proven Track Record Cloud303 has a strong history of successful partnerships within the Microsoft industry. Our commitment to excellence, reliability, and client-focused solutions have made us a trusted partner.

Engagement Overview

Cloud303's engagements follow a streamlined five-phase lifecycle: Requirements, Design, Implementation, Testing, and Maintenance. Initially, a comprehensive assessment is conducted through a Well-Architected Review to identify client needs. This is followed by a scoping call to fine-tune the architectural design, upon which a Statement of Work (SoW) is agreed and signed.

The implementation phase kicks in next, closely adhering to the approved designs. Rigorous testing ensures that all components meet the client's specifications and industry standards. Finally, clients have the option to either manage the deployed solutions themselves or to enroll in Cloud303's Managed Services for ongoing maintenance, an option many choose due to their high satisfaction with the services provided.

The Solution

To provide TrueProdigy with a more robust and scalable solution, Cloud303 - an AWS Premier Consulting Partner - implemented a containerized architecture using Amazon Elastic Container Service (ECS). Here's a more technical deep dive into the solution:

Containerization and Task Definitions

Cloud303 began by containerizing the Jaspersoft web application, ActiveMQ, and scalable- query-engine services. Docker was used to create images for each service, defining their dependencies and configurations. These images were then stored in Amazon Elastic Container Registry (ECR).

Task definitions were created for each service, specifying the Docker image, resource allocation, and environment variables. These task definitions were used to launch containers on the ECS cluster.

ECS Cluster and Services

An ECS cluster was set up using Amazon Elastic Compute Cloud (EC2) instances as the compute platform. This cluster was designed to host the three services: Jaspersoft web app, ActiveMQ, and scalable-query-engine.

ECS services were created for each of the three components, referencing their respective task definitions. The services were responsible for running and maintaining the desired number of tasks (containers) based on the specified task definition.

Networking and Load Balancing

A Virtual Private Cloud (VPC) was created with isolated subnets for the application, database, and load balancer layers. The application and load balancer layers were spread across multiple Availability Zones (AZs) to ensure high availability.

The Jaspersoft web app was exposed to the private network using a private Application Load Balancer (ALB), which was responsible for distributing traffic across multiple tasks (containers) running in different AZs. Target groups were configured for each service, with health checks to monitor the status of the tasks. Session stickiness was enabled to maintain user sessions across multiple requests.

Amazon MQ and PostgreSQL Database

Amazon MQ, a managed messaging service, was used to deploy and manage the ActiveMQ service. This allowed TrueProdigy to take advantage of the scalability and reliability offered by the managed service.

A PostgreSQL database was deployed in a private data subnet, spanning multiple AZs, for storing Jaspersoft configurations. This setup ensured high availability and redundancy for the database layer.

Autoscaling and Capacity Providers

An Auto Scaling Group (ASG) was configured for the ECS cluster, with the desired capacity set based on TrueProdigy's requirements. ECS capacity providers were associated with the ASG, allowing the ECS services to scale the underlying EC2 instances as needed.

Task-level auto-scaling was also configured for the Jaspersoft web app and scalable-query-engine services. This allowed the services to scale the number of tasks (containers) based on predefined CloudWatch metrics, such as CPU and memory utilization.

CI/CD Pipeline

To streamline the development and deployment process, Cloud303 implemented a CI/CD pipeline using AWS CodePipeline, CodeBuild, and GitHub. This pipeline allowed TrueProdigy's developers to automatically build, test, and deploy new versions of their application upon committing changes to their GitHub repository. The pipeline consisted of the following stages:

Source: Code changes were fetched from the GitHub repository.

Build: AWS CodeBuild built the Docker images for the Jaspersoft application, ActiveMQ, and scalable-query-engine services.

Test: Automated tests were run to ensure application quality and stability.

Deploy: The new Docker images were pushed to Amazon ECR, and the ECS services were updated to use the latest images.

This CI/CD pipeline ensured that TrueProdigy could rapidly develop their application while maintaining high availability and reliability.

Engineer Quote

With the complexities of TrueProdigy's Jaspersoft application, it wasn't just about lifting and shifting; it was about architecting a more efficient, scalable solution. Leveraging Amazon ECS and implementing CI/CD automation have been key to this successful migration.

Ahmed Alam Khan Senior Solutions Architect, Cloud303

Outcomes

The migration to Amazon ECS resulted in several benefits for TrueProdigy:

Improved Scalability

The new infrastructure allowed TrueProdigy to scale their Jaspersoft application effortlessly, accommodating their growing customer base.

Enhanced High Availability

The multi-AZ deployment ensured high availability, minimizing the risk of downtime and providing a seamless user experience.

Simplified Infrastructure Management

The use of containerization and ECS services streamlined infrastructure management, reducing the operational overhead for TrueProdigy.

The new infrastructure allowed TrueProdigy to scale their Jaspersoft application effortlessly, accommodating their growing customer base.