17
Are we there yet? Continuous Delivery @Comcast Brendan O’Bra, Principal Engineer (brendan_o’[email protected]) Twitter: @brendanobra LinkedIn: https://www.linkedin.com/in/brendanobra September 17 th , 2015 Scala Bay Meetup

Scala bay meetup 9.17.2015 - Presentation 1

Embed Size (px)

Citation preview

Page 1: Scala bay meetup 9.17.2015 - Presentation 1

Are we there yet?

Continuous Delivery @Comcast

Brendan O’Bra, Principal Engineer (brendan_o’[email protected])Twitter: @brendanobra LinkedIn: https://www.linkedin.com/in/brendanobra

September 17th, 2015Scala Bay Meetup

Page 2: Scala bay meetup 9.17.2015 - Presentation 1

We are more than just cable TV…

Internet Phone On Demand

Home Security

Business Services (Internet)

Next Gen TV (IP Video)

Internet TV Apps (On

X1)

TV Content Production

(NBC)

Movies (Universal)

Page 3: Scala bay meetup 9.17.2015 - Presentation 1

3

Almost everything at “National Scale”

• 10’s of Datacenters across US • Traffic can be “surge-ish”• “Carrier Grade” Customer Expectations• Software Upgrades • Millions of Devices• Cloud heterogeneity is important• 1000’s of VMs running at any time, across

all clouds

Continuous Delivery @Comcast

Page 4: Scala bay meetup 9.17.2015 - Presentation 1

4

In the past… Many humans, some machines MUCH time

Continouos Delivery @Comcast

Page 5: Scala bay meetup 9.17.2015 - Presentation 1

5

Now: One Human, many machines much LESS time

Continouos Delivery @Comcast

Page 6: Scala bay meetup 9.17.2015 - Presentation 1

6

Let’s go FAST

Market was clearly changing, with competition delivering some cool stuff. Time to market became a stronger driver We did some light reading:

Page 7: Scala bay meetup 9.17.2015 - Presentation 1

7

And then drank gallons of Continuous Delivery

Page 8: Scala bay meetup 9.17.2015 - Presentation 1

8

And then… Epiphany!

Immutable Servers!

Page 9: Scala bay meetup 9.17.2015 - Presentation 1

9

We arrived at a system that consisted of:

Puppet

App Config

Hiera

App Automation

Openstack

VMWare

Route53

Git

Cloud-init

Page 10: Scala bay meetup 9.17.2015 - Presentation 1

10

Which can also be viewed like this…

Page 11: Scala bay meetup 9.17.2015 - Presentation 1

11

Feedback from initial attempts at Continuous Delivery

• It needs a GUI

• Why is it so hard?

• What are all those moving parts there? WTF?!

• write the GUI with whatever you want!

Page 12: Scala bay meetup 9.17.2015 - Presentation 1

12

Gumby!Your elastic friend in cloud

Page 13: Scala bay meetup 9.17.2015 - Presentation 1

13

V1 : Play + Akka in Scala

• We made an app, in Play! GUI was in Angular, REST layer -> Biz Layer in Play/Akka (one dude want to learn Akka/Play/Scala, other dude wanted to learn AngularJS). Gumby was born!

• It was a great experiment, it worked in production, and actually solved a real problem(s)

Page 14: Scala bay meetup 9.17.2015 - Presentation 1

14

Gumby: Spray + Akka to scale the Comcast Cloud

• Then.. The folks that that make X1 heard about this “gumby” thing and told us they wanted to use it.. That’s great, but it was only a science experiment….

• Time to rewrite in Spray, and Go Big• Spray allowed up to really clean things up, and because it was so fast, we

could DOS any cloud api we encontered ;)

Page 15: Scala bay meetup 9.17.2015 - Presentation 1

15

Gumby: Current Architecture (Monolithic)

Workflow (Akka)

VSphere

Openstack

EC2

REST(Spray)Client

Page 16: Scala bay meetup 9.17.2015 - Presentation 1

16

Fun Facts about Gumby

• Can deploy ~400 vms per dc / hour• Currently about 21000 lines of scala• Typically does 2-3 full national deploys/week• Deploys 60% of national X1 backend footprint

(4000 VMs)• Will deploy 100% of national X1 backend footprint

by Q1 2016• Is transitioning to microservices• Can deploy itself• David Bolene: “One Big Side Effect”

Page 17: Scala bay meetup 9.17.2015 - Presentation 1