Executive Summary
EMFI Group is a global financial services company specializing in delivering intelligence-driven services with a focus on emerging markets. EMFI provides up-to-date market information from major financial centers of the world to local investors.
Challenges
Market information and business intelligence are by their nature ephemeral and require constant updates to be useful.
Although EMFI was already on AWS cloud, the organization was in urgent need of modernization of their Content Management Application, so as to cut the time needed to build & deploy new application infrastructure by more than 99 percent.
EMFI partnered with Applied AI Consulting (AAIC) to leverage AWS Services in deploying, maintaining, and supporting their existing applications and use the Devops building blocks to implement a robust Cloud-based automation framework with a view to enabling DevOps on their platforms.
About AAIC
Applied AI Consulting (AAIC) is a bespoke AI and Cloud Consulting Service. The core team comprises industry veterans with 25+ years of cumulative experience in building, architecting, and delivering cutting-edge technology solutions focused on resolving customer pain points.
Partner Solution
AAIC’s engagement focused on EMFI’s Cloud operations, with a view to enabling DevOps for EMFI workloads and CIs in their AWS cloud.
AAIC engineers team worked with EMFI technical leadership and product owner team to develop modernized business solutions, in the following ways:
- Containerizing using AWS ECS Fargate service. Fargate’s serverless nature meant quicker deployment. In addtion to being a serverless compute engine for containers, Fargate works with both Amazon ECS and Amazon EKS.
The use of AWS Fargate means EMFI doesn’t need to provision or manage servers, as AWS Fargate manages server infrastructure. This allows EMFI to double down on innovating and developing its applications. And of course, to pay only for the resources needed to run their containers.
- Building CI/CD pipeline for EMFI application using AWS Developer tools such as AWS CodeBuild, AWS CodePipeline, AWS CodeDeploy and Amazon CloudWatch services. Automated building and deployment of application code to the ECS cluster every time code changes meant a significant saving in time and effort.
- Setting up AWS Automatic Load Balancer (ALB) which distributes the incoming traffic across multiple targets, such as EC2 instances, containers, and IP addresses, which automatically scales workloads.
- Setting up Operations/Monitoring dashboard with the help of AWS Cloudwatch. The dashboard includes details about ECS services like CPU/Memory utilization, Disk Space utilization, Network Insights, ECS service task status, and ECS service deployment status. This gave developers an instant and real-time view of their infrastructure, allowing them to spot and stop potential issues before they occurred.
- Help in migrating private GitLab to public SaaS GitHub. Git, an open-source version-control system saves snapshots of a software project, allowing users to maintain a record of all changes. Unlike conventional version control, Git allows users to work on different versions, manage the simultaneously and test them by merging the ideal variant seamlessly. This freedom to work on multiple versions simultaneously is an invaluable asset for DevOps teams. Using GitHub allows EMFI to leverage the large and growing GitHub community and its contributions by way of functionality that might otherwise be missing.
- Automation of the application scaling, with the implementation of Cloudwatch alarms and app auto-scaling policies. These policies involve target tracking policies and scheduled-based policies that will increase or decrease task count in ECS service based on the specified criteria or schedule to handle the workload.
- Creating application infrastructure with AWS services using Terraform. (Terraform’s familiarity with EMFI developers, made it the IaC tool of choice) This includes building a scalable and secure network layer (using AWS VPC, AWS WAF, NACL, VPC Endpoints, etc.), database layer (using AWS RDS) and application layer with logging and monitoring enabled (using AWS ECS, AWS Cloudwatch, etc.)
Architecture
Architecture defines a high-level model of solution and describes how the resources are interlinked with each other. Within AWS the architecture utilized load balancers to distribute incoming traffic across ECS Fargate containers which provided stability across the application
Deployed AWS Services
AWS Service | Usage of service |
ECS | Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fastcontainer management service that makes it easy to run, stop, and manage containers on a cluster. |
ECS Cluster | An Amazon ECS cluster is a regional grouping of one or more container instances on which you can run task requests. |
ECS Task Definition | Task definition is basically the blueprint describing the docker containers that are used to run the application. |
ECS Service | Service defines the minimum and the maximum tasks that are running from a single task definition at any given point. |
EC2 Instance | EC2 stands for Elastic Compute Cloud. It is nothing but a basic computer virtually present in AWS cloud which you can access and do whatever you can do on a basic computer. |
VPC | A virtual private cloud (VPC) is a secure, isolated private cloud hosted within a public cloud. |
ALB | The Application Load Balancer is a feature of Elastic Load Balancing that allows a developer to configure and route incoming end-user traffic to applications based in the AWS public cloud. |
IAM | AWS Identity and Access Management (IAM) enables you to manage access to AWS services and resources securely. |
RDS | Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale a relational database in the cloud. |
Results and Benefits
- Being on AWS opens up an array of new services and technologies that are now significantly more accessible to the average IT group
- AWS opens up new possibilities to integrate, including best of breed tools & services to connect to other systems
- Use of Terraform provides create, change, and version infrastructure safely and efficiently.
- Elasticity, load balancing and the capability to scale automatically is a big bonus which added robustness in the system and increased capability to handle the 3x load.
About the Partner
AAIC is a digital technology services company providing Digital Engineering, Cloud Engineering services, and AI-powered Digital Marketing services. We design & build digital platforms and products with Cloud and Opensource at the focal point by working on cutting-edge technologies.
Site: 91SpringBoard, Sky Loft, Creativity Mall,
Opposite Golf Course, Yerawada, Pune, India 411006