40
Patrick Chanezon Director Enterprise Evangelism, Microsoft [email protected] @chanezon Tackling complexity in giant systems Approaches at Google, Microsoft, Amazon, Netflix & VMware

Tackling complexity in giant systems: approaches from several cloud providers

Embed Size (px)

DESCRIPTION

Systems architecture evolve in cycles every 15-20 years, oscillating between centralization and decentralization, but growing in size and complexity. The last cycle shifted from vertical to horizontal scalability for hardware, applications and data platforms. This talk will describe approaches used by some of the companies who pioneered cloud platforms, Google, Microsoft, Amazon, Netflix & VMware, to tackle complexity when building these giant distributed systems. This talk was presented at JFokus 2014. https://www.jfokus.se/jfokus/talks.jsp#Tacklingcomplexityin

Citation preview

Page 1: Tackling complexity in giant systems: approaches from several cloud providers

Patrick Chanezon Director Enterprise Evangelism, Microsoft [email protected] @chanezon

Tackling complexity in giant systems Approaches at Google, Microsoft, Amazon, Netflix & VMware

Page 2: Tackling complexity in giant systems: approaches from several cloud providers

French

Polyglot

Server Side

San Francisco

Developer Relations

@chanezon

Page 3: Tackling complexity in giant systems: approaches from several cloud providers

Dreams Of my childhood

!3

Page 4: Tackling complexity in giant systems: approaches from several cloud providers

Accelerando / Singularity, in a Galaxy far far away

§ Even if we automate ourselves out of a job every 10 years § ...I don’t think the singularity is near!

!4

Page 5: Tackling complexity in giant systems: approaches from several cloud providers

Moore's Law is for Hardware Only

§ Does not apply to software § Productivity gains not keeping up with hardware and bandwidth § Writing software is hard, painful, and still very much a craft

!5

Page 6: Tackling complexity in giant systems: approaches from several cloud providers

Moore's Law’s free lunch is over

§ Herb Sutter, Welcome to the Jungle http://herbsutter.com/welcome-to-the-jungle/

!6

Page 7: Tackling complexity in giant systems: approaches from several cloud providers

Architecture Changes: 60’s Mainframe

Page 8: Tackling complexity in giant systems: approaches from several cloud providers

Architecture Changes: 80’s Client-Server

Page 9: Tackling complexity in giant systems: approaches from several cloud providers

Architecture Changes: 90’s Web

Page 10: Tackling complexity in giant systems: approaches from several cloud providers

Architecture Changes: 2010’s Cloud, HTML5, Mobile

Page 11: Tackling complexity in giant systems: approaches from several cloud providers

Cloud started at Consumer websites solving their needs

• Google, Amazon, Yahoo, Facebook, Twitter

• Large Data Sets

• Storage Capacity growing faster than Moore’s Law

• Fast Networks

• Vertical -> Horizontal scalability

• Open Source Software

• Virtualization

• Cloud is a productization of these infrastructures

• Public Clouds Services: Amazon, Microsoft, Google

• Open Source Software: Hadoop, Open Stack, Eucalyptus, Cloud Foundry, OpenShift

Page 12: Tackling complexity in giant systems: approaches from several cloud providers

Predictions

“The future is already here — it's just not very evenly distributed” William Gibson

!12

Page 13: Tackling complexity in giant systems: approaches from several cloud providers

Google

• Horizontal scalability 2004: Map/Reduce (Hadoop)

• NoSQL 2006: Bigtable (Mongo, Cassandra, HBase, Riak)

• Real Time analytics 2010: Dremel, BigQuery (Impala)

• Horizontally Scalable SQL 2012: Spanner, F1 / Amazon Redshift

Page 14: Tackling complexity in giant systems: approaches from several cloud providers

Google

!14

Page 15: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft - Cloud OS

!15

Page 16: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft - We do Java!

!16

Page 17: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft - Hybrid

!17

Page 18: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft - Multi Cloud

!18

Page 19: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft - Fabric

!19

Page 20: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft - Fabric

!20

Page 21: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft - Fabric

!21

Watch Mark Russinnovich Azure architecture talk http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/WAD-B402

Page 22: Tackling complexity in giant systems: approaches from several cloud providers

Microsoft Big Data Usability• Agility in Data -> Insight • Excel PowerBI + Azure HD Insight

Page 23: Tackling complexity in giant systems: approaches from several cloud providers

Amazon

!23 Source http://media.amazonwebservices.com/AWS_Overview.pdf

Page 24: Tackling complexity in giant systems: approaches from several cloud providers

Amazon

§ 2 pizza teams, focused on services

§ Eventual consistency (Dynamo paper)

§ Use OSS but don’t contribute much

§ Elastic Beanstalk PaaS .NET, Java, Node.js, PHP, Python, Ruby

§ PaaS partners: Heroku, Cloud Foundry

§ VPC, but no complete hybrid story. Eucalyptus.

!24

Page 25: Tackling complexity in giant systems: approaches from several cloud providers

Netflix

rapid evolution, low mtbiamsh

“mean time between idea and making stuff happen”

functionality and scale now, portability coming

source http://www.slideshare.net/adrianco/netflixoss-meetup!25

Page 26: Tackling complexity in giant systems: approaches from several cloud providers

Netflix

!26

Page 27: Tackling complexity in giant systems: approaches from several cloud providers

VMWare / Pivotal CloudFoundry

!27

Clou

d Pr

ovide

r Int

erfa

ce

Application Service Private

Public

Micro

Data Services

Other Services

Msg Services

vFabric Postgres

vFabric RabbitMQTM

• Open Source: Apache 2 Licensed

• multi language/frameworks

• multi services

• multi cloud

Page 28: Tackling complexity in giant systems: approaches from several cloud providers

Cloud Foundry Logical View

Routers

CloudControllers App

Services

App

HealthManagerExecution Agents

(DEA) Pool

Messaging

UsersDevelopersvmc

Page 29: Tackling complexity in giant systems: approaches from several cloud providers

!29

§ 500 – 5,000 VMs

§ 40+ unique node types

§ 75+ unique software packages

§ 75+ unique environments

§ 2x/week cf.com updates

§ 24x7x365 non-stop operation

§ No-downtime deployments

§ Reliable, robust, repeatable deployments, updates, capacity adjustments

§ Small teams manage many instances

Production Grade Cloud Foundry Clusters

Google style problem è Google style solution

cloudfoundry.com

production, staging, stress, qa, dev

Page 30: Tackling complexity in giant systems: approaches from several cloud providers

!30

BOSH: under the hood

bosh cli

redis natsdb

director healthmon

IaaS CPI

workers

stemcellagent

blobs

“BOSH is deployed by BOSH”

cloudfoundry.com

BOSH User

active jobs

disk

Page 31: Tackling complexity in giant systems: approaches from several cloud providers

IaaS neutral by design

!31

CPI: code complete functional status: “work in progress”

vSphere: battle tested implementation, thousands of deployments vCloud Director: “work in progress”, 2H 2012

contribute: github.com/cloudfoundry/bosh

Cloud Provider Interface (CPI)

Cloud Foundry BOSH

github.com/piston/openstack-bosh-cpi

Page 32: Tackling complexity in giant systems: approaches from several cloud providers

Docker: IaaS -> PaaS continuum

!32

Page 33: Tackling complexity in giant systems: approaches from several cloud providers

Cloud Market

!33

PublicHybridPrivate

IT  Pros Devops DevelopersArchitects

Page 34: Tackling complexity in giant systems: approaches from several cloud providers

Lessons to build your cloud

!34

Research Papers

Hybrid Cloud

2 Pizza teams

Open Source

Portability

Page 35: Tackling complexity in giant systems: approaches from several cloud providers

Thank You!@WindowsAzure

!

@chanezon

!

Website : www.windowsazure.com/

t

t

Page 36: Tackling complexity in giant systems: approaches from several cloud providers

References

§ Microsoft Windows Azure http://www.windowsazure.com/

§ Mark Russinnovich Azure architecture talk http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/WAD-B402

§ Scott Guthrie’s blog http://weblogs.asp.net/scottgu/

§ Netflix OSS presentations source http://www.slideshare.net/adrianco/netflixoss-meetup

§ Google Research papers http://research.google.com/pubs/papers.html

§ Amazon architecture site http://aws.amazon.com/architecture/

!36

Page 37: Tackling complexity in giant systems: approaches from several cloud providers

Lessons to build your cloud

§ Google: Research papers

• Horizontally scalable uniform infrastructure for common workloads

• Set of managed Data services: SQL, Document, Graph

• Hardware / Software interaction to innovate

§ Microsoft: Cloud OS / Hybrid Cloud

• Unit of scale: process -> service, kernel -> fabric, server -> datacenter

• Fabric to automate updates, monitoring

§ Amazon: DevOps

• Pizza box teams building & operating service

§ Netflix: Monkeys!

• Test and production lines blur: Monkeys, A/B Testing

§ VMware/Pivotal: Open Source

• Open Source: vendor independence, sharing the load, recruit

§ Docker: Portability

§ IaaS/PaaS continuum, both useful, depends on needs

§ Multi vendor, multi cloud, mix of proprietary & Open Source

§ Industry Vertical / Sovereign / Geo clouds providers!37

Page 38: Tackling complexity in giant systems: approaches from several cloud providers

Papers / Talks

§ Simon Wardley, Oscon 09 “Cloud - Why IT Matters”

§ Tim O’Reilly article on internet os

§ Peter Deutsch’s 8 Fallacies of Distributed Computing

§ Brewer’s CAP Theorem

§ Gregor Hohpe’s Starbucks Does Not Use Two-Phase Commit

§ Herb Sutter, Welcome to the Junglehttp://herbsutter.com/welcome-to-the-jungle/

§ Stuff I tag http://www.delicious.com/chanezon/

§ More specifically http://www.delicious.com/chanezon/cloudfoundry

§ My previous Talks http://www.slideshare.net/chanezon

§ My list of favorite books http://www.chanezon.com/pat/soft_books.html

!38

Page 39: Tackling complexity in giant systems: approaches from several cloud providers

Books / Articles

§ Nick Carr, The Big Switch

§ Eric Raymond, The Art of Unix Programming

§ Weinberg, Psychology of Computer Programming

§ Wes python book

§ Mark html5 book

§ Kent Beck XP

§ Hunt, Thomas, The Pragmatic Programmer

§ Ade Oshineye, Apprenticeship Patterns

§ Matt Cutt's Ignite Talk IO 2011, Trying different things

§ Josh Bloch talk about api design

§ Larry and Sergey, Anatomy of a Search Engine

§ Rob Pike, The Practice of Programming

!39

Page 40: Tackling complexity in giant systems: approaches from several cloud providers

Trends

!40

Industry Craft