Scenario
“Support
Different
Mobile
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
Slide 6
Slide 6 text
Know the needed
quality attributes!
Find technical
solutions for them!
Slide 7
Slide 7 text
ECommerce
Order Customer
Delivery
Ca. 100
developers
QA Operations
Software modules How to
test?
Manual
Hand
over
Manual
Hand
over
How to
operate?
Scalability
Availability
Changeability
Architecture
Slide 8
Slide 8 text
Continuous Delivery
(CD)
Slide 9
Slide 9 text
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
Slide 10
Slide 10 text
Software more
reliable and easier to
change.
Slide 11
Slide 11 text
ECommerce
Order Customer
Delivery
Ca. 100
developers
QA Operations
Software modules How to
test?
Manual
Hand
over
Manual
Hand
over
How to
operate?
Architecture
Scalability
Availability
Changeability
Continuous
Delivery
Slide 12
Slide 12 text
That will never work
with my (legacy)
system!
Was it built with CD in
mind?
Slide 13
Slide 13 text
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
Slide 14
Slide 14 text
Quality Attributes for
Continuous Delivery
> Make deployment less risky
> Resilience
> i.e. failure of one module should not make
other modules fail
> Bulkhead
Size Matters!
> Large applications hard to deploy
> Hard to test
> Lots of regression testing
> Hard to roll back / safeguard deployments
Slide 17
Slide 17 text
Small and
independent
deployment units
Microservices
Slide 18
Slide 18 text
Microservices solve
all problems?
> Probably not
> But: Software Architecture was about
modules and development
> It should be about testing, deployment and
operations, too!
Slide 19
Slide 19 text
ECommerce
Order Customer
Delivery
Ca. 100
developers
QA Operations
Software modules How to
test?
Manual
Hand
over
Manual
Hand
over
How to
operate?
Scalability
Availability
Changeability
Slide 20
Slide 20 text
ECommerce
Order Customer
Delivery
Ca. 100
developers
QA Operations
Software modules How to
test?
How to
operate?
Architecture
Scalability
Availability
Changeability
Continuous
Delivery
Slide 21
Slide 21 text
Need different
skill set
Slide 22
Slide 22 text
DevOps=
Slide 23
Slide 23 text
DevOps=
Development +
Operations
collaborate
Slide 24
Slide 24 text
ECommerce
Order Customer
Delivery
Ca. 100
developers
QA Operations
JVM ClassLoader App Server
No visibility in production
App-specific metrics
Kernel
I/Os
CPU
Monitoring, alarms
Slide 25
Slide 25 text
DevOps Architecture
> Broadens scope of architecture
> What are relevant metrics? App or OS
> How to monitor?
> Alarm if?
> Provide access to full team
Slide 26
Slide 26 text
Cloud
Slide 27
Slide 27 text
Cloud…
> …is an inexpensive environment for
applications
> …in particular for elastic scaling
Slide 28
Slide 28 text
Efficency
Latency
Cost
Security
Data privacy
Secrecy
Integrity
Maintainability
Understandability
Changeability
Portabiity
Changeability
Availability
User error
Hardware failure
Recovery time
Usability
Time to learn
Slide 29
Slide 29 text
Cloud…
> …is an inexpensive environment for
applications
> …in particular for elastic scaline
Slide 30
Slide 30 text
Why Did Amazon
Build a Cloud?
Slide 31
Slide 31 text
Significant investment
Slide 32
Slide 32 text
No enterprise grade
free virtualization
Slide 33
Slide 33 text
Cost?
Slide 34
Slide 34 text
Optimize
resource utilization?
Slide 35
Slide 35 text
Lots of server used
only for the holiday
season.
Slide 36
Slide 36 text
Lots of server used
only for the holiday
season.
Slide 37
Slide 37 text
Developers spent
more time on scaling
than on features.
Slide 38
Slide 38 text
Cloud = universal
scalable
infrastructure
Slide 39
Slide 39 text
ECommerce
Order Customer
Delivery
Ca. 100
developers
QA Operations
Software modules How to
test?
How to
operate?
Architecture
Scalability
Availability
Changeability
Continuous
Delivery
Slide 40
Slide 40 text
Scaling
> Traditional: Architecture will solve it
> Cloud: Start more server
> …if load increases
> Pay-as-you-go
Slide 41
Slide 41 text
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
Slide 42
Slide 42 text
ECommerce
Order Customer
Delivery
Ca. 100
developers
QA Operations
Software modules How to
test?
How to
operate?
Architecture
Scalability
Availability
Changeability
Continuous
Delivery
Slide 43
Slide 43 text
There is more to
Cloud…
Slide 44
Slide 44 text
No content
Slide 45
Slide 45 text
Oracle instance =
One click
Slide 46
Slide 46 text
Why should a
Software Engineer
care??
Slide 47
Slide 47 text
Cloud =
Components
Slide 48
Slide 48 text
Instagram
> Global photo sharing
> S3 storage
> Cloudfront Content Delivery Network
> Custom code
> 3 engineers (Dev and Ops)
> 10 mio user
> 100 mio photos
Slide 49
Slide 49 text
Efficency
Latency
Cost
Security
Data privacy
Secrecy
Integrity
Maintainability
Understandability
Changeability
Portabiity
Changeability
Availability
User error
Hardware failure
Recovery time
Usability
Time to learn
Slide 50
Slide 50 text
Enabler Continuous
Delivery / DevOps
> Much easier deployment
> Create server, deploy software – via API
> Integrated Monitoring
Slide 51
Slide 51 text
All for free???
Slide 52
Slide 52 text
Amazon SLAs on
One Slide
> If one of our data centers fails…
> Well, that’s your problem
> And we do reboot your server randomly.
Slide 53
Slide 53 text
#SRSLY?
Slide 54
Slide 54 text
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
Slide 55
Slide 55 text
Global redundancy
across data centers
Slide 56
Slide 56 text
Efficency
Latency
Cost
Security
Data privacy
Secrecy
Integrity
Maintainability
Understandability
Changeability
Portabiity
Changeability
Availability
User error
Hardware failure
Recovery time
Usability
Time to learn
Slide 57
Slide 57 text
Dynamic Scaling &
Availability
> Start more server
> …if servers crash
> Architecture must be stateless
> Servers must handle load from the
beginning
Slide 58
Slide 58 text
Resilience
> Systems might reboot or crash
> …so client fail
> Deal with failure
Slide 59
Slide 59 text
The Cloud Paradox
> Unreliable hardware
> …and not too powerful hardware
> …are the ideal foundation for reliable &
scalable software.