Skip to main content

Command Palette

Search for a command to run...

Architecting the Future of Music: How I Helped 4 Elements Music's Platform Hit the Right Notes

A Deep Dive into Modernizing 4 Elements Music's Infrastructure

Updated
3 min read
Architecting the Future of Music: How I Helped 4 Elements Music's Platform Hit the Right Notes
S

Hi there 👋🏾 I'm Sergio Francisco, a seasoned Cloud Architect and DevOps Expert with over 15 years of IT experience, including 8 years in Cloud and DevOps. I help companies grow their business by designing and deploying highly available, secure, cost-effective, and high-performing applications on cloud platforms such as AWS and GCP, as well as delivering software more rapidly and securely with optimal DevOps solutions.

🏢ABOUT THE COMPANY

4 Elements Music, an innovative music platform revolutionizing the digital music landscape through a new online music library, hired me via Toptal to design and implement the infrastructure to run the new version of their platform developed using Python/Django.

By leveraging AWS ECS Fargate, Infrastructure as Code (IaC), CI/CD pipelines on GitHub Actions integrated with AWS CodeDeploy, 4 Elements Music established a solid foundation for their new platform, improved operational efficiency by establishing a standard software delivery workflow, which accelerated the release cycle.

⛰ CHALLENGES

4 Elements Music wanted to replace a legacy system developed with Ruby on Rails with a modern, scalable, and resilient technological solution to enhance the user experience for music enthusiasts worldwide.

Their main application ran on a unique EC2 instance, which the full-stack developer manually deployed.

The client needed a network implementation following best practices and faced performance issues due to the old architecture.

✅ SOLUTION

The partnership with 4 Elements Music had two main goals:

  • Containerization of a Python/Django monolith application to run on AWS ECS Fargate

  • Implementation of a new platform to run containerized applications

After the discovery and assessment phase of the project, I crafted the following architecture to meet the client's needs:

To transform this architecture into reality, I performed the following tasks:

  • Developed a new Dockerfile with multistage build to properly build the image. Hence, it runs on ECS safely and improves the existing Docker Compose file to help developers create a development environment similar to the new production environment.

  • Created Terraform modules from scratch and published them in Terraform Cloud to implement a new platform using these tools.

  • Designed and deployed a new VPC networking with three subnet tiers: public, private, and database subnets and attached a few VPC endpoints to establish private communication between the containers running on the VPC and some AWS services such as S3, ECR, Systems Manager, CloudWatch and OpenSearch.

  • Deployed new storage instances: S3, RDS (PostgreSQL), and OpenSearch and helped during the data migration for the latest storage solutions.

  • Deployed a GitHub Actions CI/CD pipeline to automate software delivery (test, build, and deploy applications using Blue/Green as release model) on top of ECS Fargate.

  • Deployed CloudFlare to protect their API from bots and other basic attacks. It included migrating the 4elementsmusic.com zone from Route53 to CloudFlare.

  • Tracked work progress through GitHub Projects and maintained regular communication through Slack about the project status, constantly exposing progress, problems, and plans.

🏆 OUTCOMES

  • Improved operational efficiency by adopting CI/CD pipelines to release software faster and securely.

  • Established solid foundations for the new platform used during the product launch.

  • Improved the platform's security by ensuring all new infrastructure resources adhered to best practices, including the "principle of least privilege."

  • Finally, I meticulously documented all the new infrastructure using clear diagrams, ensuring a comprehensive understanding of the platform and facilitating its smooth operation for anyone in charge of its maintenance.