Cloud303 Modernizes TrueProdigy's Jaspersoft App With ECS

Application Gets Containerized for High Availability and Efficient Scaling

 By Jonathan Fernandez



Summary

Cloud303, a leading DevOps consulting company, 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.


Industry: 
Software & Internet
Region: 
NA
AWS Segment: 
SMB


Our Customer

TrueProdigy is a dynamic technology company specializing in data analytics and visualization solutions. They offer state-of-the-art data-driven tools that empower businesses to make data-driven decisions for improved productivity, cost efficiency, and growth. Their Jaspersoft application is a key component of their data analytics solution, providing advanced reporting and data visualization capabilities to their customers.

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 TrueProdigy Chose AWS?

Amazon Web Services (AWS) is a leading cloud provider, offering a comprehensive suite of services and tools that enable businesses to build, deploy, and manage applications in the cloud. AWS was chosen by TrueProdigy due to its proven track record in scalability, reliability, and cost-effectiveness. The wide range of AWS services and tools, including Amazon ECS, allowed TrueProdigy to build a robust and scalable infrastructure for their Jaspersoft application.

Why TrueProdigy Chose Cloud303?

TrueProdigy chose Cloud303 for their AWS migration project due to Cloud303's extensive experience in containerization and Amazon ECS. Cloud303's expertise in designing, deploying, and managing containerized applications on AWS allowed TrueProdigy to transition their Jaspersoft application seamlessly to ECS, realizing the benefits of high availability and scalability.


 
 
      Phil Supinski     Sujaiy Shivakumar
CEO/Solutions Architect      CTO/Solutions Architect

AWS Services Employed:
 EC2 ECS VPC ECR ALB ASG Amazon MQ CodePipeline CodeBuild

Cloud303's Solution

To provide TrueProdigy with a more robust and scalable solution, Cloud303 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.

Auto Scaling 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.

   


Results/Benefits

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.

Optimized Cost Efficiency: The use of auto-scaling and managed services 

 .


AWS Programs/Funding Used:
Partner Opportunity Acceleration Funding