Beachbody is a leading provider of fitness, nutrition, and weight-loss programs with over 23 million customers and $1 billion in gross sales. Beachbody is the creator of the nation’s most popular fitness and weight-loss solutions including P90X® Series, INSANITY®, FOCUS T25®, 21 Day Fix®, Body Beast®, PiYo®, and Hip Hop Abs®.
Migrating to AWS, Kubernetes & Lambda
Beachbody over the past year has refactored many of their on-premises monolith applications to Kubernetes microservices and Lambda functions running in Amazon Web Services (AWS). In 2019, another 90 API services are scheduled for onboarding and migration to the public cloud.
Jenkins Pipelines – Complex and Costly To Manage
In the past, developers and DevOps engineers at Beachbody would onboard and deploy services using Jenkins Pipelines. Over time, this process became extremely difficult, with significant infrastructure costs and time spent upgrading and troubleshooting the Jenkins platform.
“Our Jenkins Pipelines were manual, brittle, and costly to manage,” said Bob Chen, Senior Director of Tech Ops, DevOps and SRE at Beachbody.
“Onboarding new cloud-native services with Jenkins could take our DevOps team 3 days,” said Bob.
Deployment velocity with Jenkins was daily in non-production and bi-weekly for production. Production deployments typically averaged 6-8 people for approximately 2 hours, with manual verification (health checks) taking 30-60 minutes using Dynatrace APM and Elastic stack.
Bob and his team also looked at open-source solutions such as Spinnaker, but estimated it would take months to set up, and would require 2-3 full-time engineers to manage long term.
Cloud-Native Continuous Delivery with Harness
Today, Harness helps Beachbody automate software delivery across ~100 cloud-native services and their entire DevOps toolchain of :
- GitHub, Jenkins, and TravisCI for Continuous Integration (CI)
- AWS, Terraform, Kubernetes, and Lambda for cloud infra, container orchestration, and serverless
- Dynatrace APM and Elastic stack for monitoring
Developers have self-service Continuous Delivery (CD) capabilities that abstract all cloud-native services, artifacts, tools, and technologies.
Pipelines are templatized, version controlled, and managed as code using Harness GitOps. HashiCorp Terraform scripts are also integrated into each pipeline stage, so environments are consistent and dynamically provisioned/decommissioned when they are required.
“Onboarding new Kubernetes and Lambda services now takes 2 hours instead of 3 days,” said Bob.
In addition, Harness integrated with Dynatrace APM and Elastic stack out-of-the-box to auto-verify deployments using unsupervised machine learning to detect anomalies/regressions in any time-series performance metrics or log events.
“With Harness, our QA and testing is now fully automated and takes less than 5 minutes,” said Bob.
As a result, Beachbody has been able to automate their deployment pipelines end-to-end so environments, testing, deployment, and verification can be done in minutes vs. hours or days.
Ensuring Security & Compliance
Empowering engineers with self-service deployment capabilities at Beachbody required a focus on security and compliance.
Engineers are authenticated through Harness OKTA SSO integration and are authorized/restricted through a well-defined role-based access control (RBAC) system, which provides a separation of duties and permissions across services, environments, and teams.
Harness also provides a full audit trail giving instant insight into who changed what, when services are impacted. This allows Bob and his team to pinpoint the cause of impact in a matter of seconds. In addition, Harness keeps a record of all service versions across all environments so teams can report what software artifacts are deployed to specific clusters.
Reducing Deployment Time and Effort by 90%
Beachbody saw the following business benefits and ROI from implementing Harness Continuous Delivery:
- Accelerated AWS Cloud Migration from 1-year to 3-months
- Doubled production deployment velocity in 3 months
- Reduced QA testing time by 92% from ~1 hour to less than 5 minutes
- Reduced deployment effort by 90% from 7 people for 90 minutes to 3 people for 20 mins
- Reduced deployment verification time by 78% from 45 minutes to 10 minutes
- Reduced application onboarding time by 92% from 3 days to 2 hours
- Deferred DevOps costs of $600,000 from not supporting OSS CD solution