UbiServices DevOps Journey

Transcription

UbiServicesDevOps JourneyJune 2019 – Adaptavist1

Alain Cormier Since University (2002), always worked on Onlineproblems Manage technical people since 2005 Always been a technical manager Joined Ubisoft in 2008 as Team Lead Progressed as Project Lead in 2013 Now Product Director22

Founded in 1986 15 000 employeesWorld Wide presence 40 studios around the world 3 studios in Quebec Publisher of popular brands33

Game Productions Very large teams (1000 ) Various expertise (Historian, Artists, Comedians,Sounds specialists, Game designers, UXspecialists, Programmers, etc) 3 years of development for AAA games Big bang release!44

Harbour Provide Online Solutions to Game Productions Multiplayers Global Online Services Development pipelines Club (loyalty platform) 300 employees Global presence Montreal (200 ) Dusseldorf (20 ) Bucharest & Craiova (30 ) Shanghai (20 )55

PART 1Devops – Key conceptsPART 2UbiServices storyPART 3Today and futurePART 4Take awaysPART 5Questions6

PART 1Devops – Key concepts7

Common problem8

1.Low-stress2.Feedback Loop3.Decouple DeployFrom Release4.Small Batch Size5.Autonomous Teams6.Reduce LeadTime9

PART 1UbiServices Story10

(2010) - Once upon a time Use custom techno (Rendez-Vous) to build onlineservices Each projects had its “branch” Services were forked and customized foreach productions Lot of time spent to retests, do load tests and to put inplace infrastructure for development and launch Repeated for all projects. Still in use today for Productions Custom Services Priority was isolation between projects1111

(2012) - Small group want to work differently Use standard technos Do it once for everyone (global services) Path base loadbalancing Microservices architecture Let’s start with Critical Service: authentication!1212

(2013) – Some challenges before first launch API – Referential & Versioning Autonomy Collaboration with IT team Monitoring1313

(2013) - API management: turn on the light!14

(2014) – Grow Double project size More Teams autonomous but interdependentFrom Load Balancer to API Gateway Capacity planning1515

(2015) - Lets innovate Until now, C#/MSSQL shop Dev teams want to explore new technos Start with one Critical Stretch IT current knowledge Do Kanban Start with one CriticalService: Players NotificationsService: API Gateway1616

(2016) – The cloud! IT prefer to keep us on premise. We insist. Need scalability and easierprovisioning. New dedicated “squad team” from IT to support us Start with one CriticalService: Authentication! But Not as automated as we would like. Pretty muchdone the same way as on premise. Heavy on operation. People get called regularly for dumb reasons (ex:log rotation). Which resulted Dev team take full ownership of ops.1717

(2017) – Autonomy All in to the cloud and automate! Improve deployment process (spawn new stack) Tools run scripts. Now everyone can spawn anew stack of a version of the service with a fewclicks. Closer to immutability. Less in-place changes. Development team take ownership of spawningtheir servers stack. They write lessfeatures,but feel more autonomous. Sys admin team now focus on transversalinfrastructure (log stack, jump servers, etc).1818

(2018) – Do more with less Hiring is a challenge. Time to market is top priority. Prefer managed solutions. Let dev team focus on business value. But keep them owner and responsible. Improve dev team agility: containers Start with one CriticalService: account!1919

PART 2Today and Future20

(Today) – The Ubisoft platform Working on a “Platform” for all Ubisoft New CiCd pipeline for microservices Enforce referential Enforce immutability (no access to machines) Helps with automated tests Give API management, logs, metrics and alertsfor free to all projects. Containers Help isolation Contract is clear between devteam and infra Infrastructure as code (for real!)2121

(Future) – Challenges Onboard Productions into devops andmicroservices. Review custom service development pipeline. Automatic deployment up to Liveenvironment. Move to Inner Sourcing mindset and acceptcontribution from any internal teams.2222

PART 4Take aways23

Recipe for changes Start with small team (strike team) ofhighly motivated guys. Make sure you get support from management. Choose critical project/feature.Demonstrate the improvement.Propagate to all teams.Rince and repeat.2424

Sys admin / DBA Still need them. Although, no more authoritative on tech choice. More in an expert role and consulted whenneeded by devteam. Have their own “services” (ex: log stack)2525

Teams Autonomous butinterdependent Small: 5-10 people. Ramp-up new managers Split teams (organic growth)2626

Devops & Microservices Tight together Microservices mindset: Loosely couple components Highly cohesive components Independently Develop and Deploy Each component has a contract and mustrespect if (need tests!)2727

Thank you!28

(Today) –The Ubisoft platform Working on a “Platform” for all Ubisoft New CiCd pipeline for microservices Enforce referential Enforce immutability (no access to machines) Helps with automated tests Give API management, logs, metrics and alerts for free to all projects. Containers Help isolation