Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

34
World ® ’1 6 Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture Michael Lee - VP Engineering – Beachbody PJ Little - Beachbody DO3T06S DEVOPS

Transcript of Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

Page 1: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

World®’16

Decide.Commit.Succeed.HowBeachbodyMovedtoaNext-GenerationArchitectureMichaelLee- VPEngineering– BeachbodyPJLittle- Beachbody

DO3T06S

DEVOPS

Page 2: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

2 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

©2016CA.Allrightsreserved.Alltrademarksreferencedhereinbelongtotheirrespectivecompanies.

Thecontentprovidedinthis CAWorld2016presentationisintendedforinformationalpurposesonlyanddoesnotformanytypeofwarranty. The informationprovidedbyaCApartnerand/orCAcustomerhasnotbeenreviewedforaccuracybyCA.

ForInformationalPurposesOnlyTermsofthisPresentation

Page 3: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

3 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Abstract

Beachbodyvaultedover17yearsoflegacysystemandpracticestoacommunityleadership

positioninourTechnologyculture,ourplatforms,andembracingaPaaSandmicro-service

architecturedrivenworld.Inthissession,learnhowBeachbody,aB2C/B2BMLMcompany

modernizedandsetthegroundworkforitsnextgenerationofproductsandservicesusingthe

powerofOpenSourceandCA'sdevops andserviceenablement.

MichaelLeeBeachbodyVPEngineering

Page 4: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

4 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Q&A

Agenda

BEACHBODYHISTORY

BRIDGING:LEGACYTONEXTGENJOURNEY

USECASE&DEMO:PUBLISHINGWORKFLOW

1

2

3

4

Page 5: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

5 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Beachbody § $1.3BGrewexponentially1998-2016§ Fitnesscompanywithfourmajorlinesofbusiness

– Directtoconsumer

– Network– Workshops&Classes– BeachbodyOnDemand

§ Ourprograms– 1998TurboJam

– 2003P90x– 2007TeamBeachbody– 2010Shakeology– 2014BeachbodyLive– 2015Apparel

§ Today:400,000+coaches

Introduction

Page 6: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

6 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Warehouse

Tax

Orders

Call Switch

Accounting

Payroll

Payments

Media

Customer Service

Procurement

Continuities

Telemarketing

Billing

Community

eCommerce

1998 2000 2005 2010 2015 2016+

Assets

Genealogy Order Reporting

Properties

Marketing Database

Projects

Revenue

Revenue Recognition

Video

Workshops

Cash

Reporting

Accounts Payable

Coach

Club

Commission

Email Management

Fitness Tracking

Content

Coach Reports

Coach Relations

General Ledger

Chat

Accounts Receivable

Replicated Sites

Affiliate Email Marketing

International$5 Billion

Page 7: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

7 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

i3c

Media

Quickbooks

WarehouseTelemarketing eCommerce

Call Switch

Message Boards

Customer Service eCometry

mybeachbody Coach CRM Certification Digital

Enterprise Service Bus

Page 8: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

8 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

TheChallenge

§ Growthledtosprawlwhichledtoknowledgeisolation

§ Architecturewasnotreadyforourincreasingdataandcustomervolumes

§ ManykeyservicesSaaShosted,withcompaniesthatdidnotgrowwithus

§ Bringingapplicationsinhousewithateammoreaccustomedtohostedapplications

§ Needtodeliveruserfacing,webspeedexperiencewithmarketingdriventrafficspikesacrosseCommerce,CMS,digitaldistribution,andanalytics

Page 9: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

9 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Microservice ArchitectureAPI–drivenReadyforInternationalExponentialRevenueGrowthTargetPartnerDevelopmentCenters

Media AgenciesChannels & Affiliates

Dist Center(3PL) Telemarketing Manufacturer SupplierB2B

CountriesCOOBB in a Box BB Live bb.com

External Service Layer

CRM Email Delivery

Content ManagementMDM

Commerce Engine

ERP

MLM Engine

Non-Transactional Corporate Systems

Data Asset Management

Media Mgmt(Pioneer)Merchant Portal

Campaign & Test

ManagementBI Portal C/S Portal R&D

(Agile PLM)

Payment Service

Internal Service Layer

Streaming Players

Club.tbb.com

DataLake

Page 10: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

10 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD

LegacytoNext-GenArchitecture

Page 11: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

11 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

ArchitectureDomainsegmentedMicroservicesDecide.Commit.Succeed.

People“PushDecisionstotheEdge”

ProcessDeliverqualitysolutionsatspeed.

MakingaNext-GenArchitectureWork

Page 12: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

12 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

People

Page 13: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

13 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

OrgDesign§ DevOpsCulture§ Autonomous&Decentralized§ Training

– Prioritization&WorkloadManagement– StakeholderManagement– Extraordinary,notordinary– Removingimpedimentstoincrease

velocityandquality– FullStack

§ DecentralizedHorizontalServiceswithoutincrementalheadcount

§ RetentionProgram

“PushDecisionstotheEdge”*

*https://codeascraft.com/2015/12/21/leveling-up-with-system-reviews/

DeliveryTeams

Page 14: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

14 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD

CultureasTechnologyTransformation

§ Events:Hackathon,bugsmashday§ Community:meetups,lunch&learn,

guilds,onboarding,architecturebash§ IgnitionDay2016:

– 100%EngineeringParticipation– 80%ofthe30teamspracticed

Clouddevelopment– 60%oftheteamsproduced

microservicesandAPIs§ CASponsorship

“Wecelebratewhoweareandwhatweaccomplish”

Page 15: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

15 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Process

Page 16: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

16 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

ProcessModernTechStackGovernance

Services Platforms Techniques Languages

Page 17: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

17 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Process § Microservices areaprocess:ConventionoverConfiguration!– Can’tmanagesnowflakesen masse– Can’tscalesnowflakes– Can’ttroubleshootheterogeneityatscale

§ Repeatability– DockerComposesameinDev,samein

AWS

§ Dockerallowsengineeringteamstochoosewhatworksforthem,butstillscaleanddistributeinahomogenousway

PaaS(PlatformasaService)

?

Page 18: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

18 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Process § ManageLess– VM’s->Containers– VPC’sw/EC2->ECS– Focusonthepiecesyouwanttocontrol

andpushouttheonesthatareuninteresting

– SeparatecontainersforSplunkforwarder/etc – canbedeployedandreplacedseparately

– Forcesyoutothinkofthesizeofyourdeployable(noOSbloat)

§ SametoolsinDevandProduction– Docker+Vagrant->DockerCompose

PaaS(PlatformasaService)

YourProblems

VMHealth

LoggingKey/User

Management

Environmentconfigs

Startuptime

Scaling

Containerdependency

FullOSsecurity

Page 19: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

19 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Architecture

Page 20: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

20 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Decide.

Page 21: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

21 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

KeyConcerns CAAPIM OAG AWS

ContinuousDelivery *

CloudIntegration/Support/Deployment * *

SWAGGERandRAML * *

AnalyticsandStatistics * *

Portal(APIManagement) *

APILiveCreator *

SupportofLegacySystems *

Security * * *

AdvancedSupportforMobileDevelopment * *

APIOrchestration * *

Monitoring * * *

MultiPlatformSupport *

CAAPIManagement§ APIDocumentation§ PCI-DSS/PIIandotherSecurity

requirements§ APIAccessControlmeasures§ Monitoring,throttling,andorchestration§ PaaSsupport§ Consultingpartnershiptore-writecritical

APIstonewgateway

APIManagementEvaluation

Page 22: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

22 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Commit.

Page 23: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

23 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Run-timeServiceLayerBridgingandAbstractionPatterns

Page 24: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

24 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

Succeed.

Page 25: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

25 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

PhaseI:GlobalAPIs

§ DesignFirstApproach

§ Forcestandarddocumentationanddefinition

§ Drivestakeholderconversationsbeforecommitment

§ AutomatedocumentationprocessforconsumptionofAPIs

Page 26: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

26 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

PhaseII:CommerceAPIs CheckoutFlows1. TBB:BeachbodyChallengeCheckout2. TBB:BeachbodyChallengeCheckout3. TBB:ShakeologyCheckout4. TBB:P90XMobileShop5. TBB:P90X/InsanityApparelShopCheckout6. TBB:P90X/InsanityWorkshop/Qualification/Proteam Checkout7. TBB:CoachSignupFlowWithUpsell8. TBB:ClubSignupCheckout9. TBB:CMACheckout(Mobileapp)WithChallengePack/Shakeologyoptions10. TBB:Wave1:URShop11. TBB:US– Desktop12. BB:US- Mobile(includesamobileoptimizedupselloption)13. BB:US- Tablet(E-commercecheckout)14. BB:UK– Desktop15. BB:UK– Mobile16. BB:UK- Tablet(E-commercecheckout)17. BB:CANADA– Desktop18. BB:CANADA- Mobile(E-commercecheckout)19. BB:US- BODRegistrationflow(Desktop,Mobile,Tablet)20. BB:CANADA- Tablet(E-commercecheckout)21. BBL:PiYo,Turbokick22. BBL:cize,P90xUK

Page 27: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

27 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

PhaseIII:APIEcosystem

§ Self-serviceaccessibility=keycharacteristicofanAPIprogram

§ GovernancedesignallowsforAPIstobeconsumedinreal-timewithoutcompromisingdataintegrityordatasecurity

Page 28: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

28 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

UseCase&Demo:PublishingFlow

Page 29: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

29 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

OracleEnterpriseServiceBus OracleAPIGateway CAAPIGateway

300+APIs 150+APIs <50APIs

Legacysupport

ServiceInventory

Page 30: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

30 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

NewPublishingUpdates

§ Enablesbiz&eng workstreams

§ ReusableContentAPI

§ Moderntoolsetthatcanadaptovertime

§ Independent,containerizedcomponents

§ RobustCD/CIworkflow

Page 31: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

31 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

BeachbodyPublishingWorkflow

OracleCMS

ContentAPI

AWS

Content/publishing

CD/CIpipe

Onpremiseenterprise

CAAPIGateway

Page 32: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

32 @CAWORLD#CAWORLD ©2016CA.ALLRIGHTSRESERVED.

DeliveryTeamsCultureasTechnology

TransformationAPIEcosystemMicroservice

ArchitectureModern

GovernancePlatformasa

Service

• Autonomous• ProductOKRs• Supply&Demand• FullStackTraining• Decentralizedhorizontal

serviceswithoutincrementalheadcount

• RetentionProgram

• DevOps• HackDays&BugSmash

Days• Cross-pollination• Community• Celebrate!

• TOGAFLight• TechnologyReviewBoard• ProductLifecycle• DataManagement• TechRadar• OKRs• ProductScorecard

• CI/CD• EnvironmentMgmt• Failurehandling• Secure:Immutablehosts

100%inaccessibleviadirectpublictrafficonanyport

• Infrastructureascode

• Keyentitiesextractedintoservices

• Orchestrationlayeroperatesoninter-applicationandexternalservicestofulfillbusinessoperations

• Data->Servicespecificdatabases

• Management• Guilds• UseBetterPractices• Repeatable• Monitoring&Healthchecks• DesignFirst• Selfservice• AutomatedTesting• Virtualized

People Process Architecture

Page 33: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

33 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD

Stayconnectedatcommunities.ca.com

Thankyou.

Page 34: Case Study: Decide. Commit. Succeed. How Beachbody Moved to a Next-Generation Architecture

34 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD

DevOps– AgileOps

FormoreinformationonDevOps– AgileOps,pleasevisit:http://cainc.to/wYXSg6