Case Study - Kestone - Metaverse

ABOUT CUSTOMER

The customer is 27 years old B2B marketing agency. They are leading creative designers, techno-marketers, and growth hackers who are religious about creating experiences and delivering results through B2B marketing. Customers defined themselves as 'We're committed to the cause of making a positive impact in your business. From creating awareness about your products to nurturing prospects and making them your brand advocates, we leverage every tool in a marketer's tool-kit to deliver integrated B2B marketing campaigns'.

The customer is developing their metaverse to facilitate their customers and encourage them to go online shopping by providing a digital shopping mall where anyone can come and visit the stores and purchase the items they need.

Current Infrastructure

Kestone currently hosts a production environment for an application named DIY and a testing environment for their Metaverse. The DIY is for conducting, planning and designing the marketing campaign like advertisement during IPL, generating coupons as offer etc.

The Metaverse is for a digital shopping mall where customer can visit virtually and can visit the stores and purchase the product as per needs. Customer has on-prem datacenter where they deployed a CI/CD infra in a monolithic architecture where codes are written for each module in a single large file.

CI/CD Flow:

Jenkins is connected to the Git repository and builds docker image and then push in to the docker-hub and then docker-compose called to deploy it into the containers.

The customer's Dev team created multiple VMs for Docker Compose to ensure high availability.

The DIY They’re in the process of launching the Metaverse as production phase. The initial phase has been developed and tested by their in-house development team on their local setup.

To host everything, developers utilize their own on-premises servers. They recognize the necessity of a powerful, robust, and reliable cloud platform to effectively realize the ambitious vision of the Metaverse.

The Challenge

Managing CI/CD and running multiple dev environments in an on-prem DC is a challenging task. On-premises IT infra has bundled various challenges but when it comes to developing a futuristic application like Metaverse and similarly handling the on-prem DC challenges will become a nightmare when it comes to the production environment. The use of open-source tools also has its own challenges related to security and best practices. After our discussion with the customer, we have found out the key points where we can help them.

  1. Scalability and High Availability Issues: Docker Compose is not designed for large-scale deployments. It lacks automated scaling and advanced orchestration features necessary for managing complex, distributed applications.
  2. Monitoring and Logging Issues: Docker Compose has basic logging and monitoring capabilities, requiring additional configuration or third-party tools for comprehensive monitoring.
  3. Illuminated Security Issues: Docker Compose provides basic security configurations but lacks the advanced security features required for production environments.
  4. Manual Management: Docker Compose requires manual intervention for updates, scaling, and recovery, making it less suitable for production environments.
  5. Difficult Integration: Docker Compose on-premises requires additional setup for integrating various services and managing infrastructure.
  6. On-prem Infrastructure & Management: Docker Compose requires managing underlying infrastructure, including server provisioning, maintenance, and scaling.
The Solution

When this case comes to team i2k2, it becomes evident that the project is exceedingly complex, and only the AWS cloud platform can provide the robustness, reliability, and scalability required to execute it seamlessly. Moreover, meeting deadlines poses a challenge, but on the flip side, we possess a proficient and seasoned technical team. They are deeply immersed in AWS, offering support, migration, and optimization services to our clients round the clock. Migrating a Metaverse hosting infrastructure, alongside its CI/CD pipeline, to any cloud platform entails numerous intricacies. However, with meticulous planning, testing, and collaborative effort, risks can be mitigated, ensuring a smooth transition. As adept AWS consultants and partners, i2k2 Networks extend valuable expertise and support throughout the migration journey.

ASSESS

During this phase, our team thoroughly examines the operations of the Metaverse and comprehends its integrations, along with the customer’s CI/CD setup. We’ve noted that the CI/CD Pipeline is implemented through Jenkins, while containerization relies on Docker Compose. The development team has executed these processes efficiently and appropriately, and our goal is to replicate this success during migration.

The infrastructure supporting the Metaverse is currently deployed solely for testing purposes, with little consideration given to implementation, security, and integration best practices. Should we proceed with migration, it will be imperative to formulate a comprehensive plan that addresses security measures and adheres to cloud implementation best practices.

Mobilization

Customers is using a monolithic environment where they have the large code written in a single page but we convert it to cluster and then we planned to migrate it to AWS's cloud platform and modernize it by using the AWS native tools for the CI/CD and Kubernetes so we have prepared a cloud infrastructure equipped with the CI/CD pipeline powered by AWS native tools like ECS, Code Build, Code Deploy, etc. For the general instances like VMs, Redish Cache, and MongoDB we have prepared a similar infra on AWS with ElastiCache, RDS, etc.

We have deployed the infra in multiAZ environments to ensure redundancy and fault tolerance and also planned to implement Security, Auto Scaling, CI/CD as per the best practices and with ensure cost optimization.

MIGRATE & MODERNIZE

We use AWS DMS to migrate the DB instances and use integrate the code Jenkins to ECS to migrate the Dev environment. Detailed steps of migration & modernization are as follows:

  1. Modernization of CI/CD: We set up the AWS native CI/CD pipeline using AWS Code Build, AWS Code Pipeline, AWS Code Deploy, and S3 Bucket.
  2. Modernization and migration of Containerization: As the customer is using the open-source technologies for the testing environment in their on-premises DC we proposed the migration of it to AWS and modernizing it by using the ECS cluster which is the native AWS offering and our team is more comfortable to provide support in the AWS native technologies. ECS is AWS native containerization technology and offers more seamlessness, integrity, and reliability for the infra running on AWS cloud platforms. Comparatively, ECS is more cost-effective.
  3. Migration & Modernization of other workloads: We have migrated and modernized the Redish Cache into Elasticache, and Mongo DB into Document DB to achieve the auto-scaling and multiAZ environment.
  4. Security: We have implemented the AWS WAF to provide a secure perimeter to the VPC, Guard Duty, Security Hub, etc.
  5. Load Balancing and Distribution: To share the load ECS cluster is already implanted but the redirect the right traffic as per the load on containers we have implemented the ALB to distribute load on the front-end Nodes. The NLBs are also deployed to distribute the load of API request towards the Backend nodes of the containers.

Why did we suggest ECS, not EKS?

ECS is easy to understand and implement for containerized workloads because it closely resembles a traditional server-based setup. Consequently, migrating applications to ECS is a straightforward process that involves containerizing the application, pushing the container image to the Amazon Elastic Container Repository (ECR), and defining the service to run the image in ECS.

  1. EKS is undoubtedly the most powerful platform. However, this does not make it the default choice for every workload. ECS remains suitable for many scenarios due to its simplicity and feature set.
  2. ECS is much easier to start with and has a lower learning curve. Small organizations or teams with limited resources will find ECS a better option for managing container workloads, avoiding the overhead associated with Kubernetes.
  3. ECS's tighter AWS integrations allow users to leverage familiar resources like ALB, NLB, and Route 53 to manage application architectures, helping them quickly get applications up and running.
  4. ECS can serve as a stepping stone to Kubernetes. Instead of adopting EKS immediately, users can start with ECS to implement a containerization strategy and transition to a managed service with less up-front investment.

The Elastic Container Service (ECS) is an AWS-managed container orchestration service designed with simplicity in mind, without compromising on management features. It integrates seamlessly with AWS services such as AWS Application/Network Load Balancers and CloudWatch.

As our application is just starting out, we opted for ECS over EKS because we need an automated and fully managed container orchestration platform. However, we are aware that in the future, as the application scales, we may choose to modernize it further by transitioning to EKS.

Solution/Architecture Diagram
Main Challenges that are mitigated
  1. Illuminated Scalability and High Availability Issues
  1. Automatic Scaling: ECS supports automatic scaling of containers based on demand. It can scale out or in based on predefined policies, ensuring that your applications can handle varying loads efficiently.
  2. Load Balancing: ECS integrates seamlessly with AWS Elastic Load Balancing (ELB), providing robust load balancing across multiple containers and ensuring high availability.
  3. Multi-AZ Deployment: ECS distributes containers across multiple Availability Zones (AZs) to enhance fault tolerance and high availability.
  1. Illuminated Monitoring and Logging Issues
  1. CloudWatch Integration: ECS natively integrates with AWS CloudWatch, providing detailed monitoring and logging of container performance. This includes metrics, logs, and alarms to keep track of your applications' health and performance.
  2. AWS X-Ray: For deeper insights, ECS integrates with AWS X-Ray, enabling the tracing of requests as they travel through your application, and helping diagnose performance issues and errors.
  1. Illuminated Security Issues
  1. IAM Roles and Policies: ECS uses AWS Identity and Access Management (IAM) to control access to resources. Fine-grained IAM policies can be applied to ECS tasks, ensuring secure access to AWS resources.
  2. VPC Integration: ECS runs within a Virtual Private Cloud (VPC), providing network isolation and security controls like security groups and network ACLs.
  3. Secrets Management: ECS integrates with AWS Secrets Manager and AWS Systems Manager Parameter Store, providing secure management and retrieval of secrets.
  1. Automated Management
  1. Service Management: ECS handles the deployment, management, and scaling of containerized applications. It ensures desired state management, meaning if a container fails, ECS automatically replaces it.
  2. Deployment Strategies: ECS supports rolling updates and blue/green deployments, minimizing downtime during updates and enabling safe rollbacks.
  3. Fargate Integration: For even more automated management, ECS can be used with AWS Fargate, which eliminates the need to manage underlying EC2 instances, focusing purely on container management.
  1. Integrated Ecosystem
  1. Seamless AWS Integration: ECS integrates seamlessly with other AWS services such as RDS, S3, DynamoDB, and more, making it easier to build and manage a full-stack application with various components.
  2. AWS Service Mesh: ECS can work with AWS App Mesh for managing microservices communication with advanced traffic control, monitoring, and security.
  1. Infrastructure Management
  1. Managed Infrastructure: ECS, especially when used with AWS Fargate, abstracts the underlying infrastructure, allowing you to focus on application development rather than server management.
  2. Automated Patching and Updates: ECS handles the patching and updating of the underlying infrastructure, ensuring security and performance without manual intervention.

Amazon ECS addresses the limitations of Docker Compose for on-premises deployments by providing advanced orchestration, automated scaling, robust monitoring and logging, enhanced security, and seamless integration with the AWS ecosystem. By leveraging ECS, organizations can achieve greater reliability, scalability, and operational efficiency for their containerized applications.

Results & Benefits

By leveraging AWS, the metaverse can achieve greater performance, scalability, and security while also benefiting from a flexible and cost-effective infrastructure. Migrating the metaverse to AWS offers numerous benefits, including robust scalability to handle increasing users and interactions seamlessly with services like Amazon EC2 and AWS Auto Scaling, high performance and reliability through resources like Amazon CloudFront and RDS, and a global reach with AWS’s extensive network of data centers ensuring minimal latency and a consistent user experience. AWS also provides robust security features such as encryption and DDoS protection, cost efficiency with a pay-as-you-go model and tools like AWS Lambda, and flexibility for innovation with a wide range of services including AI and IoT. Additionally, AWS’s managed services like ECS, EKS, and Fargate reduce operational burdens, and easy integration with other AWS services like Amazon S3, AWS Glue, and DynamoDB creates a cohesive and efficient ecosystem. Overall, leveraging AWS enhances the metaverse’s performance, scalability, security, and cost-effectiveness.

Using Amazon Elastic Container Service (ECS) offers several benefits for managing containerized applications:

  1. Simplicity and Ease of Use: ECS is designed to be straightforward to set up and use, with a lower learning curve compared to other container orchestration platforms like Kubernetes. This makes it accessible for teams with limited container experience.
  2. Fully Managed Service: As a fully managed service, ECS handles the infrastructure management tasks, such as provisioning, patching, and scaling the container instances, allowing development teams to focus on building and deploying applications.
  3. Seamless AWS Integration: ECS integrates tightly with other AWS services, such as AWS Identity and Access Management (IAM), Amazon CloudWatch, AWS CloudFormation, Amazon RDS, and load balancers like ALB and NLB. This makes it easier to build comprehensive solutions using familiar AWS tools.
  4. Cost Efficiency: ECS can be more cost-effective, especially for smaller workloads or teams, as it allows for efficient resource utilization and offers various pricing models, including on-demand and spot instances.
  5. High Availability and Reliability: ECS runs on AWS's global infrastructure, which provides high availability and reliability. It can easily distribute workloads across multiple availability zones, ensuring applications remain up and running.
  6. Performance: ECS can deliver high performance for containerized applications, leveraging AWS's optimized networking and compute resources.
  7. Security: ECS benefits from AWS's security features, including VPC integration, IAM roles, and security groups. It also supports encrypted communication between containers and AWS services, ensuring data security and compliance.
  8. Flexible Deployment Options: ECS supports a variety of deployment options, including AWS Fargate for serverless compute and EC2 instances for more control over the infrastructure. This flexibility allows organizations to choose the best deployment strategy for their needs.
  9. Scalability: ECS can automatically scale containerized applications to handle varying levels of traffic and workloads, ensuring that applications can grow with demand without manual intervention.
  10. Developer Productivity: ECS supports various developer tools and CI/CD pipelines, integrating seamlessly with services like AWS CodePipeline, AWS CodeBuild, and third-party CI/CD tools, thus enhancing developer productivity and accelerating application delivery.
  11. Overall Productivity Increase: Combining these factors, an organization might see an overall productivity increase ranging from 30-50% or more, depending on the baseline efficiency, the complexity of the workloads, and the extent to which AWS services are leveraged. These estimates are indicative and would benefit from more detailed, specific analysis and performance metrics from the actual environment. Organizations often conduct such assessments post-migration to measure the true impact on productivity.
Why AWS?

AWS is designed to allow application providers, ISVs, and vendors to quickly and securely host your applications – whether an existing application or a new SaaS-based application. You can use the AWS Management Console or well-documented web services APIs to access AWS's application hosting platform. AWS utilizes an end-to-end approach to secure and harden our infrastructure, including physical, operational, and software measures. For more information, see the AWS Security Center.

Using AWS tools, Auto Scaling, and Elastic Load Balancing, your application can scale up or down based on demand. Backed by Amazon's massive infrastructure, you have access to compute and storage resources when you need them. With AWS, you take advantage of a scalable, reliable, and secure global computing infrastructure, the virtual backbone of Amazon.com's multi-billion-dollar online business that has been honed for over a decade.

Why i2k2?

As an AWS Advanced Consulting Partner & Managed Amazon cloud services provider, i2k2 provides comprehensive folio of cloud solutions along with prompt and reliable support. Our partnership with AWS goes several years back, even before we formalized our association with the company in 2013. Key reason to choose i2k2 was 20 years of proven business. Talent is vast due to extensive IT exposure in India.

About i2k2 Networks

i2k2 Networks is the No.1 Dedicated Web Hosting company in India and a trusted name in the IT cloud hosting services industry that offers a full gamut of cutting edge enterprise solutions which drive business in today's Internet-powered world. Our folio includes Dedicated Servers, Cloud Hosting- Public, Private and Hybrid, Data Center Services, Business Email Solutions, Managed IT Services, Backup, and DR Solutions, DevOps Services, Cloud Enablement, Enterprise Hardware solutions, and various other integrated services. A team of dedicated and professionally driven IT experts conversant with diverse client requirements are available 24x7x365 to provide extended support. With superior technologies to host, design and develop high-quality websites and applications, we ensure to deliver unmatched value to our clients.

Please fill in the details to download Files


Enter Captcha: captcha

Request A Call Back

Enter Captcha: captcha