58

Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration
Page 2: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Towards Cloud-centric Development

What if we stopped treating the cloud like traditional servers?

Peter van Hardenberg @pvh

Page 3: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

…they would have told me faster horses.”

“If I asked the people what they wanted…

Page 4: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

platform-as-a-servicea machine for turning code into useful applications

Page 5: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration
Page 6: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Production on Demand

Page 7: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

“test your GitHub PRs against a fork of your Heroku app” !

— RainforestQA

Page 8: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

What if you could automatically test in production?

pull request for feature

app + feature

release!

production app

github/master

fork

Page 9: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Pre-abstracted

• Provision servers

• Design release process

• Develop monitoring capabilities

• Perform capacity management / scale projection

• Substantial per-app cost

• Conclusion: reduce cost by reusing architecture

Page 10: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Abstracted

• git push heroku master!

• significant reduction in day-to-day operations

• Conclusion: dev & production costs are reduced

Page 11: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Post-abstracted

• Individual applications approach zero overhead

• Microservice architectures become feasible

• Clone whole running applications!

• Conclusion: decompose application architecture

Page 12: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Microservices love

PaaS.

Page 13: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

postgressionhttp://www.postgression.com/

Page 14: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

stateless databasesfor every test run… or whatever

Page 15: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Databases on Demand

Page 16: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Un-abstracted

• Predict required scale up-front

• Managed by in-house specialist

• Notoriously fragile

• Precious snowflake

Page 17: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Abstracted

• Managed database on demand

• Take advantage of provider experience

• In-house data gurus focus on application

• Developers have parity with production

Page 18: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Post-abstracted

• Separate databases for separate concerns

• Respond to scale as it happens

• Take easy advantage of sophisticated infrastructure

• Clone production to test migrations

• Replicas for reporting

• Disposable databases for testing in parallel

Page 19: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration
Page 20: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

The hidden cost of releasing

software

Page 21: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Big Releases

0

40

80

120

160

1.0 1.1 1.2 1.2.1 1.3

Page 22: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Big Releases

0

40

80

120

160

1.0 1.1 1.2 1.2.1 1.3

Page 23: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Big Releases

0

40

80

120

160

1.0 1.1 1.2 1.2.1 1.3

Page 24: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Hidden Integration Costs

0

40

80

120

160

1.0 1.1 1.2 1.2.1 1.3

Page 25: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

let’s get mathematical(I apologize to any actual mathematicians in the room.)

Page 26: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

V = nF + n2I + RCost of Releasing a Version

!F: cost per feature

I: integration coefficient R: cost to release

Page 27: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

S = ∑ (nF + n2I + R)

Total Cost of Software

t

Page 28: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

lim(S)R → 0

Page 29: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

R > 0: n > 1 R = 0: n = 1reduced release overhead

makes small releases more efficient

Page 30: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Operational Overhead

• Certification processes

• Database migrations

• Branch merges

• Infrastructure changes

• Integration of new technologies

Page 31: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Costs of Change

• Big changes are riskier than small changes.

• Inexpensive releases enable smaller changes.

• Smaller changes are less expensive overall.

Page 32: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

“Hello, IT.”“Have you tried completely destroying the computer and

replacing it with one that isn’t broken?”

Page 33: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

don’t fix serversthey’re free, remember?

Page 34: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Treat your servers like cattle, not pets.

Page 35: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Why Consume Cloud Services?

Page 36: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration
Page 37: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration
Page 38: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration
Page 39: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Heroku Postgres deals with once-per decade

bugs daily.

Page 40: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Who has to fix it when your database

develops corruption?

Page 41: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Amazon has hundreds of thousands

of servers.

Page 42: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Who on your team is going to sleep at the

co-lo?

Page 43: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Service-based businesses get paid

when you are happy.

Page 44: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Consulting businesses get paid when you are sad.

Page 45: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Great services, like great consultancies, focus on

making your project successful.

Page 46: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

OpportunitiesThings I’m surprised nobody has done yet.

Page 47: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

programming environments as a

servicesetting up & maintaining laptop dev/staging/prod

environments is the absolute worst and totally error prone

Page 48: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

release orchestrationautomating code hosting, CI, paas & monitoring

the pieces are all there!

Page 49: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

continuous disintegration

rollbacks as a service

Page 50: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

circuit breakers as a service

better failure modes for microservices (because nobody anywhere ever gets this right)

Page 51: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Play along in the audienceThink of something horrible about development.

What if it went away? What new things could you do?

Page 52: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Conclusionsin which we reiterate our argument

Page 53: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Technology on-demand creates new opportunity.

Page 54: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Early usage just does the old job better.

Page 55: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

Real breakthroughs happen when we step

back and ask:

Page 56: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

“What next?”

Page 57: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration

finquestions?

@pvh

Page 58: Towards Cloud-centric Developmentgotocon.com/dl/goto-berlin-2014/slides/PetervanHardenberg_Toward… · • Conclusion: reduce cost by reusing architecture. ... Hidden Integration