About the Client
Our client is an innovative company specializing in creating high-impact Digital Experiences for global industry leaders and major brands in the Lifesciences, Healthcare, and Engineering domains.
Our client is an innovative company specializing in creating high-impact Digital Experiences for global industry leaders and major brands in the Lifesciences, Healthcare, and Engineering domains.
The primary objective of the project was to establish a scalable pixel streaming setup that dynamically scales containers or servers based on the number of users. Each user should have a separate experience, and the experience should be automatically terminated when the user leaves.
Develop a solution that optimizes costs while ensuring fast boot times for users, enabling efficient resource utilization.
Overcome the limitation of a single server per user and implement a scalable approach to accommodate multiple users simultaneously.
Address the challenge of working with new technology by conducting thorough research within the given timeframe to gather insights and best practices.
To overcome the challenges and achieve the project goals, we implemented the
following solutions:
Instead of allocating a dedicated server for each user, we adopted a containerized approach where each user had their own container, enabling efficient utilization of server resources and cost optimization.
Leveraging Docker Compose, we implemented dynamic configuration for containers, allowing flexible management and efficient scaling based on user demand.
We deployed containers on Amazon Elastic Container Service (ECS) using task definition files, and leveraged Amazon Elastic Container Registry (ECR) for secure storage of container images. This ensured scalable and reliable infrastructure management.
Employing Lambda functions and API Gateway, we dynamically assigned ports to containers, enabling each user to have a unique experience while efficiently managing resources.
We developed a Node. js-based matchmaker script to handle traffic management. The script identified available containers and redirected users to them, or provided a waiting page until a server became available. This optimized resource utilization and improved the user experience.
Leveraging Amazon CloudFront, a content delivery network (CDN), we ensured global accessibility of the pixel streaming experience with low latency, providing a seamless user experience across regions.
The container-based approach and dynamic scaling optimized costs, ensuring efficient resource utilization and minimizing expenses.
The container-based approach and dynamic scaling optimized costs, ensuring efficient resource utilization and minimizing expenses.
The solution is seamlessly scaled to accommodate multiple users simultaneously, providing a smooth user experience even during peak demand.
The solution is seamlessly scaled to accommodate multiple users simultaneously, providing a smooth user experience even during peak demand.
Multiple user experiences running on a single server/container improved resource utilization, resulting in cost savings and improved performance.
Multiple user experiences running on a single server/container improved resource utilization, resulting in cost savings and improved performance.
Leveraging Amazon CloudFront, the solution enabled global accessibility with minimal latency, enhancing user experience worldwide.
Leveraging Amazon CloudFront, the solution enabled global accessibility with minimal latency, enhancing user experience worldwide.
By utilizing Docker Compose, ECS, and ECR, the deployment and management of containers were simplified, reducing complexity and ensuring efficient operations.
By utilizing Docker Compose, ECS, and ECR, the deployment and management of containers were simplified, reducing complexity and ensuring efficient operations.