In today’s fast-paced digital landscape, a forward-thinking California-based company set out to revolutionize personal connections through virtual interactions. Their aim was to create a cutting-edge online event booking platform tailored for individuals seeking genuine, meaningful relationships. However, beneath the surface of this ambitious goal, a web of intricate infrastructure challenges emerged, posing significant hurdles to their progress.
Our client is a company headquartered in East Los Angeles, United States, with an annual revenue of $2.2 million.
They maintain a significant online presence, attracting an average of 180,000 website visitors in the last month. However, they faced a challenge with a 55% bounce rate on their website, and their user base exhibited an interesting geographical distribution, with 57% of users originating from Australia and 22% from the United States
The Challenge: Manual Infrastructure and Scaling Difficulties
Initially, the company’s infrastructure consisted only of development and production environments, both configured manually through the AWS UI. This setup lacked a crucial intermediary: a staging environment for rigorous testing of new features.
Mindset Shift: Recognizing the Value of Staging
Here, the first mindset shift occurred. Developing a staging environment (a replica of the production environment) wasn't a luxury but a necessity. It allowed the business to test new features and changes rigorously before reaching end-users.
Over time, some infrastructure resources became outdated and irreplaceable, causing operational inefficiencies and bottlenecks. Attempting to upgrade these resources proved challenging.
Mindset Shift: Embracing Infrastructure as Code (IaaC)
The second shift involved adopting Terraform, a tool for automating infrastructure provisioning. Terraform allowed for quick and scalable changes, eliminating the need for manual intervention and transforming the way the company managed its infrastructure.
Development Stage: Embracing Terraform for Success
Step 1: Initial Progress
In just two months, a dedicated team brought all microservices infrastructure to life, consisting of 40 applications in ECS containers and 35 Lambda functions. However, some applications faced issues due to hardcoded configurations.
Step 2: Implementing Terraform
Over the next four months, the team prepared Terraform code and configuration files to create an identical staging environment. This was the pivotal step in their journey.
Step 3: Collaborative Efforts
For several more months, the company’s developers worked closely with Terraform experts to resolve issues and ensure a smooth transition.
Mindset Shift: Taking Ownership
They also initiated the shift towards ownership. While Terraform experts were always available for support, the company's team began making minor code adjustments themselves.
Step 4: Continuous Improvement
Even after the project’s completion, periodic discussions were held to reinforce the IaaC concept. A list of recommendations for further improvements was provided.
The Result: Efficient Scaling and Rapid Deployment
Validation: QA Approval
Finally, the company’s QA team tested the new staging environment and gave their approval.
Today, scaling the company’s infrastructure is a breeze. Modifying Terraform configuration files allows them to adapt swiftly to changing demands.
Introducing new services on their staging environment now takes a mere 15 minutes, compared to the days it used to consume. This journey showcases the power of Terraform in transforming manual infrastructure into a flexible, scalable, and efficient system.
The Technology Stack
Terraform: Infrastructure configuration files
AWS EC2: 40 virtual servers
AWS ECS: 40 microservices in isolated Docker containers
AWS ECR: Container code storage
AWS Lambda: 35 cloud computing functions
AWS S3: Object storage
AWS Route53: DNS management
AWS RDS: Relational database
AWS IAM: Access management and security groups
AWS CloudFront: Content delivery acceleration
AWS OpenSearch: For search queries integration
AWS Kinesis: Real-time data streaming processing
AWS SNS: Notification service
AWS SQS: Integration bus
MongoDB Atlas: Cloud NoSQL database management
Are you facing similar challenges with your infrastructure? Let’s start a conversation in the comments and explore how our development team can empower your business, just as we did for this client!
Let’s start building something great together!
Contact us today to discuss your project and see how we can help bring your vision to life. To learn about our team and expertise, visit our ‘About Us‘ webpage.
Setronica is a software engineering company that provides a wide range of services, from software products to core business applications. We offer consulting, development, testing, infrastructure support, and cloud management services to enterprises. We apply the knowledge, skills, and Agile methodology of project management to integrate software development and business objectives effectively and efficiently.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.