67
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures Eberhard WolFellow, innoQ @ewol

Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Embed Size (px)

Citation preview

Page 1: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Continuous Delivery, DevOps, Cloud

- New Requirements for New Architectures

Eberhard Wolff Fellow, innoQ

@ewolff

Page 2: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Page 3: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

http://microservices-buch.de/ http://microservices-book.com/

Page 4: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Architecture?

Modularization

Quality Attributes

Page 5: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Scenario“SupportDifferentMobile

platform”

Scenario“Search

faster than 5s”

Efficency Latency

Cost

Security

Data privacy

Secrecy

Integrity

Maintainability Understandability

Changeability

Portability Changeability

Availability

User error

Hardware failure

Recovery time

Usability Time to learn

Page 6: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Know the needed quality attributes!

Find technical solutions for them!

Page 7: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

ECommerce

Order Customer

Delivery

Ca. 100developers

QA Operations

Software modules How totest?

ManualHandover

ManualHandover

How tooperate?Scalability

Availability

Changeability

Architecture

Page 8: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Continuous Delivery (CD)

Page 9: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Continuous Delivery (CD) Pipeline

>  Better Time-to-Market

>  Reproducible tests and deployments

>  More tests

>  Deployment = natural part of the process

Commit Stage

Automated Acceptance

Testing

Automated Capacity Testing

Manual Explorative

Testing Release

Page 10: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Software more reliable and easier to

change.

Page 11: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

ECommerce

Order Customer

Delivery

Ca. 100developers

QA Operations

Software modules How totest?

ManualHandover

ManualHandover

How tooperate?

Architecture

Scalability

Availability

Changeability

ContinuousDelivery

Page 12: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

That will never work with my (legacy)

system! Was it built with CD in

mind?

Page 13: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Quality Attributes for Continuous Delivery

>  Simple Deployment

>  …simplifies automation

>  Easy testing

>  …for acceptance tests, too

>  ...probably API, not UI-based

>  Hexagonal Architecture: Tests = another client

Page 14: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Quality Attributes for Continuous Delivery

>  Make deployment less risky

>  Resilience

>  i.e. failure of one module should not make other modules fail

>  Bulkhead

Page 15: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Continuous Delivery >  Supports Quality Attributes

>  Changeability

>  Demand Quality Attributes

>  Simple Deployment

>  Good testability

>  Resilience

Page 16: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Size Matters!

>  Large applications hard to deploy

>  Hard to test

>  Lots of regression testing

>  Hard to roll back / safeguard deployments

Page 17: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Small and independent

deployment units Microservices

Page 18: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Microservices solve all problems?

>  Probably not

>  But: Software Architecture was about modules and development

>  It should be about testing, deployment and operations, too!

Page 19: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

ECommerce

Order Customer

Delivery

Ca. 100developers

QA Operations

Software modules How totest?

ManualHandover

ManualHandover

How tooperate?Scalability

Availability

Changeability

Page 20: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

ECommerce

Order Customer

Delivery

Ca. 100developers

QA Operations

Software modules How totest?

How tooperate?

Architecture

Scalability

Availability

Changeability

ContinuousDelivery

Page 21: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Need different skill set

Page 22: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

DevOps=

Page 23: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

DevOps= Development +

Operations collaborate

Page 24: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

ECommerce

Order Customer

Delivery

Ca. 100developers

QA Operations

JVM ClassLoader App Server

No visibility in production

App-specific metrics

KernelI/Os

CPU

Monitoring, alarms

Page 25: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

DevOps Architecture

>  Broadens scope of architecture

>  What are relevant metrics? App or OS

>  How to monitor?

>  Alarm if?

>  Provide access to full team

Page 26: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Cloud

Page 27: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Cloud…

>  …is an inexpensive environment for applications

>  …in particular for elastic scaling

Page 28: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Efficency Latency

Cost

Security

Data privacy

Secrecy

Integrity

Maintainability Understandability

Changeability

Portabiity Changeability

Availability

User error

Hardware failure

Recovery time

Usability Time to learn

Page 29: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Cloud…

>  …is an inexpensive environment for applications

>  …in particular for elastic scaline

Page 30: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Why Did Amazon Build a Cloud?

Page 31: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Significant investment

Page 32: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

No enterprise grade free virtualization

Page 33: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Cost?

Page 34: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Optimize resource utilization?

Page 35: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Lots of server used only for the holiday

season.

Page 36: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Lots of server used only for the holiday

season.

Page 37: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Developers spent more time on scaling

than on features.

Page 38: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Cloud = universal scalable

infrastructure

Page 39: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

ECommerce

Order Customer

Delivery

Ca. 100developers

QA Operations

Software modules How totest?

How tooperate?

Architecture

Scalability

Availability

Changeability

ContinuousDelivery

Page 40: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Scaling

>  Traditional: Architecture will solve it

>  Cloud: Start more server

>  …if load increases

>  Pay-as-you-go

Page 41: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Scaling

>  Traditional: Architecture enables scaling

>  There will be bottlenecks

>  But: Hard to know bottleneck

>  Monitoring to identify bottleneck

>  Continuous Delivery to deploy fixes for bottleneck

Page 42: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

ECommerce

Order Customer

Delivery

Ca. 100developers

QA Operations

Software modules How totest?

How tooperate?

Architecture

Scalability

Availability

Changeability

ContinuousDelivery

Page 43: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

There is more to Cloud…

Page 44: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Page 45: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Oracle instance = One click

Page 46: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Why should a Software Engineer

care??

Page 47: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Cloud = Components

Page 48: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Instagram >  Global photo sharing

>  S3 storage

>  Cloudfront Content Delivery Network

>  Custom code

>  3 engineers (Dev and Ops)

>  10 mio user

>  100 mio photos

Page 49: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Efficency Latency

Cost

Security

Data privacy

Secrecy

Integrity

Maintainability Understandability

Changeability

Portabiity Changeability

Availability

User error

Hardware failure

Recovery time

Usability Time to learn

Page 50: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Enabler Continuous Delivery / DevOps

>  Much easier deployment

>  Create server, deploy software – via API

>  Integrated Monitoring

Page 51: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

All for free???

Page 52: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Amazon SLAs on One Slide

>  If one of our data centers fails…

>  Well, that’s your problem

>  And we do reboot your server randomly.

Page 53: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

#SRSLY?

Page 54: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Amazon SLAs on One Slide

>  If a data center fails

>  Well, that’s your problem

>  And we do reboot your server randomly.

>  But you can always start new servers

>  …in other data centers

>  ...or regions

Page 55: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Global redundancy across data centers

Page 56: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Efficency Latency

Cost

Security

Data privacy

Secrecy

Integrity

Maintainability Understandability

Changeability

Portabiity Changeability

Availability

User error

Hardware failure

Recovery time

Usability Time to learn

Page 57: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Dynamic Scaling & Availability

>  Start more server

>  …if servers crash

>  Architecture must be stateless

>  Servers must handle load from the beginning

Page 58: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Resilience

>  Systems might reboot or crash

>  …so client fail

>  Deal with failure

Page 59: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

The Cloud Paradox

>  Unreliable hardware

>  …and not too powerful hardware

>  …are the ideal foundation for reliable & scalable software.

Page 60: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Deal with failure – don’t try to fight it.

Page 61: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Cloud >  Supports Quality Attributes

>  Scaling

>  Time-to-Market

>  Availability

>  Demand Quality Attributes

>  Resilience

Page 62: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Conclusion

Page 63: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Conclusion

>  Know the desired quality attributes!

Page 64: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Know the desired quality attributes!

Page 65: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Conclusion

>  Know the desired quality attributes!

>  Continuous Delivery

>  Demands smaller, easier to deploy units

>  Demands testability

>  Offers changeability

Page 66: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Conclusion

>  DevOps enables CD architectures

>  …brings other experts to the teams

>  Scalability = Monitoring + fast deployment?

Page 67: Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

Conclusion

>  Cloud: Scaling

>  …and fast time-to-market

>  ...and availability