Moderne Zeiten Architekturen fr eine Next Generation IT Uwe - - PowerPoint PPT Presentation

moderne zeiten architekturen f r eine next generation it
SMART_READER_LITE
LIVE PREVIEW

Moderne Zeiten Architekturen fr eine Next Generation IT Uwe - - PowerPoint PPT Presentation

Moderne Zeiten Architekturen fr eine Next Generation IT Uwe Friedrichsen codecentric AG @ufried Uwe Friedrichsen | uwe.friedrichsen@codecentric.de | http://slideshare.net/ufried | http://ufried.tumblr.com Why do we need a Next Generation


slide-1
SLIDE 1

Moderne Zeiten

Architekturen für eine Next Generation IT

Uwe Friedrichsen

codecentric AG

slide-2
SLIDE 2

@ufried

Uwe Friedrichsen | uwe.friedrichsen@codecentric.de | http://slideshare.net/ufried | http://ufried.tumblr.com

slide-3
SLIDE 3

Why do we need a “Next Generation IT”?

slide-4
SLIDE 4

Economic Darwinism

slide-5
SLIDE 5

Economic Darwinism

Everyone is affected by Economic Darwinism

  • All sectors
  • Growing globalization on all levels
  • Internet business
  • More competitors per customer
  • Higher customer expectations
  • Lower customer loyalty

à In the long run only those will survive who meet the customer needs and demands best

slide-6
SLIDE 6

Nice, but how does this relate to IT?

slide-7
SLIDE 7

IT is the nervous system

IT is vital

  • All companies
  • IT is not just supporter or „cost center“ …
  • … but it is the central nervous system
  • Even short IT outages considered critical
  • No business change without IT
  • No new products without IT

à IT limits the maximum possible
 adaption rate of a company

slide-8
SLIDE 8

IT is a key success factor for belonging to the survivors of the economic darwinism

slide-9
SLIDE 9

What business needs from IT …

slide-10
SLIDE 10
slide-11
SLIDE 11

How IT serves business …

slide-12
SLIDE 12
slide-13
SLIDE 13

Economic Darwinism

Business-related Change Drivers

IT

T echnology-related Change Drivers

slide-14
SLIDE 14

But there is more …

slide-15
SLIDE 15

Lean Enterprise

Product
 shaping/optimization Innovation Measure & analyze Accelerating OODA loop Quick customer feedback cycles

slide-16
SLIDE 16

Economic Darwinism

Business-related Change Drivers

Lean Enterprise

IT

T echnology-related Change Drivers

slide-17
SLIDE 17

IT as a Product

Virtualization

  • f products

IT-centric business models Disruptive new business models

slide-18
SLIDE 18

Economic Darwinism

Business-related Change Drivers

Lean Enterprise IT as a Product

IT

T echnology-related Change Drivers

slide-19
SLIDE 19

Pay-per-Use Business Case Self-Service

Cloud

Elasticity Unreliable
 COTS Hardware Provisioning Speed

slide-20
SLIDE 20

Economic Darwinism

Business-related Change Drivers

Lean Enterprise IT as a Product Cloud

IT

T echnology-related Change Drivers

slide-21
SLIDE 21

Zero Downtime Peer Multiplication

Mobile & IoT

Deep Process Integration Unreliable
 Communication Unpredictable Load Patterns

slide-22
SLIDE 22

Economic Darwinism

Business-related Change Drivers

Lean Enterprise IT as a Product Cloud IoT Mobile

IT

T echnology-related Change Drivers

slide-23
SLIDE 23

… and more Big Data Analysis

Amplifiers

Social

slide-24
SLIDE 24

Economic Darwinism

Business-related Change Drivers

Lean Enterprise IT as a Product Cloud IoT Mobile

IT

Big Data Analytics Social

T echnology-related Change Drivers

slide-25
SLIDE 25

Why does traditional IT usually fail
 to respond to those challenges?

slide-26
SLIDE 26

Traditional IT bases its optimization efforts


  • n the wrong goals and principles
slide-27
SLIDE 27

Traditional IT goals/principles

  • Fault avoidance at any cost


a.k.a. “the root of all evil”

  • T

ayloristic organization

  • Local optimization
  • Process frenzy
  • Central control
  • Long-running projects
  • Standardization
  • Cost minimization

à Not suitable to respond to new challenges

slide-28
SLIDE 28

Then, what are the new goals?

slide-29
SLIDE 29

Economic Darwinism

Business-related Change Drivers

Lean Enterprise IT as a Product Cloud IoT Mobile

IT

Big Data Analytics Social

T echnology-related Change Drivers

slide-30
SLIDE 30

Short cycle times Continuous output High flexibility High reliability

Equally Valued Goals Holistic consideration

Goals of a Next Generation (of) IT

slide-31
SLIDE 31

And what are the new principles?

slide-32
SLIDE 32

Principles of a Next Generation (of) IT

The Core Principles Maximizing innovation instead of minimizing costs Controlled experiments instead of fault avoidance at any cost Decentralized, self dependent teams instead of central control and goal sheets Flexible adaption instead of static planning Accepting complexity on all levels

Based on Jeff Sussna's 21st Century IT Manifesto (http://blog.ingineering.it/post/39385342347/21st-century-it-manifesto) Refined in collaboration with Eberhard Wolff
slide-33
SLIDE 33

Principles of a Next Generation (of) IT

The T echnical Principles Diversity & lightweight tools instead of monoculture & integrated solutions Resilience instead of stability (µ)Services instead of monoliths Elasticity instead of upfront capacity planning Consistent automation of routine tasks

Based on Jeff Sussna's 21st Century IT Manifesto (http://blog.ingineering.it/post/39385342347/21st-century-it-manifesto) Refined in collaboration with Eberhard Wolff
slide-34
SLIDE 34

Nice (again), but how does this
 relate to architecture?

slide-35
SLIDE 35

Goals & Principles Architecture

drives supports

slide-36
SLIDE 36

What does that mean for architecture?

slide-37
SLIDE 37

Architectural drivers

  • Need for quick change and extension
  • Replace over reuse
  • Need for quick releases
  • Unpredictable load patterns
  • Distributed, highly interconnected systems
  • Extreme high service availability
  • Diverse front-ends and devices
  • Cost efficiency
slide-38
SLIDE 38

Architectural requirements

  • Easy to understand
  • Easy to extend
  • Easy to change
  • Easy to replace
  • Easy to deploy
  • Easy to scale
  • Easy to recover
  • Easy to connect
  • Easy to afford
slide-39
SLIDE 39

Architectural requirements

  • Easy to understand

à Understandability

  • Easy to extend

à Extensibility

  • Easy to change

à Changeability

  • Easy to replace

à Replaceability

  • Easy to deploy

à Deployability

  • Easy to scale

à Scalability

  • Easy to recover

à Resilience

  • Easy to connect

à Uniform interface

  • Easy to afford

à Cost-efficiency


(for development & operations)

slide-40
SLIDE 40

What are the appropriate solutions?

slide-41
SLIDE 41

Let’s check a few hype topics …

slide-42
SLIDE 42

µServices

  • Built for replacement (not reuse)
  • Self-dependent, loosely coupled services
  • Should be aligned with business capability
  • Size should not exceed what one brain can grasp
slide-43
SLIDE 43

µServices

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-44
SLIDE 44

REST

  • Uniform access interface to resources
  • Closely related to the HTTP protocol
  • HATEOAS (Hypermedia as the engine of application state)
slide-45
SLIDE 45

REST

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-46
SLIDE 46

Event-driven

  • Asynchronous communication paradigm
  • T

echnical decoupling of communication peers (isolation)

  • Location transparency in conjunction with MOM
  • Call-stack paradigm replaced by (complex) message networks
slide-47
SLIDE 47

Event-driven

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-48
SLIDE 48

CQRS

  • Command Query Responsibility Segregation
  • Separate read and write interfaces including underlying models
  • Separation can be extended up to the data store(s)
  • Allows for optimized data representations and access logic

READ W R I T E

slide-49
SLIDE 49

CQRS

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

READ W R I T E

slide-50
SLIDE 50

Reactive

  • Event-driven – asynchronous and non-blocking
  • Scalable – scaling out and embracing the network
  • Resilient – isolation, loose coupling and hierarchical structure
  • Responsive – latency control and graceful degradation of service
slide-51
SLIDE 51

Reactive

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-52
SLIDE 52

Functional Programming

  • Alternative programming paradigm
  • Functional languages (Erlang, Haskell, Clojure, …)
  • Hybrid languages (Scala, …)
  • Languages with functional extensions (Python, JavaScript, Java, …)
slide-53
SLIDE 53

Functional Programming

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-54
SLIDE 54

NoSQL

  • Augments the data store solution space
  • Different sweet spots than RDBMS
  • Key-Value Store – Wide Column Store – Document Store
  • Graph Database
slide-55
SLIDE 55

NoSQL

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-56
SLIDE 56

Continuous Delivery

  • Automate the software delivery chain
  • Build – Continuous Integration, …
  • T

est – T est Automation, …

  • Deploy – Infrastructure as Code, …
slide-57
SLIDE 57

Continuous Delivery

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-58
SLIDE 58

Cloud provisioning model

  • On-demand provisioning and de-provisioning
  • Instant availability
  • Self-service
  • Pay-per-use
slide-59
SLIDE 59

Cloud provisioning model

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-60
SLIDE 60

Docker

  • Build, ship, run on container-basis
  • Process-level isolation
  • Declarative communication path configuration
  • Cambrian explosion of ecosystem at the moment
slide-61
SLIDE 61

Docker

Cost-efficiency Uniform Interface Resilience Scalability Deployability Replaceability Changeability Extensibility Understandability

slide-62
SLIDE 62

… and there are many more

slide-63
SLIDE 63

What can we learn from this?

slide-64
SLIDE 64

Findings

  • There is not a simple solution and no “one size fits all”
  • Some of the topics evaluated have a high potential
  • Some of the topics evaluated do not help so much
  • A combination of several approaches is needed
slide-65
SLIDE 65

How would an architectural style look like?

slide-66
SLIDE 66

µServices

  • Conway’s law
  • Built for replacement
  • Aligned with business capabilities
  • Bounded Context (Domain-Driven Design)
  • Separate UI and service
slide-67
SLIDE 67

Bounded Context Bounded Context Bounded Context µS µS µS µS µS µS µS µS µS µS µS µS µS µS µS UI

e.g., B2C-Portal

UI

e.g., embedded in Partner-Portal

UI

e.g., Mobile App

UI

e.g., Clerk Desktop

slide-68
SLIDE 68

REST interfaces

  • Use as API gateway for client access
  • Encapsulate dynamics and complexity of service landscape
  • Provide client-driven, coarse-grained service calls


behind a uniform API based on a proven protocol

  • Should be provided on bounded context level
  • Decouple speed of evolvement (services vs. API)
slide-69
SLIDE 69

Bounded Context µS µS µS µS µS

REST API Gateway

µS Bounded Context Other Client User Interface Bounded Context

Message-based API also okay,
 but requires clear and stable, client-oriented contract

slide-70
SLIDE 70

Event-driven communication

  • Use for inter-service communication
  • Decoupling and isolation
  • Vertical slicing of functionality
  • Easier evolution of flows and processes
  • Configuration-visualization-monitoring support required
slide-71
SLIDE 71

µS Request/Response : Horizontal slicing

Flow / Process

µS µS µS µS µS µS Event-driven : Vertical slicing µS µS µS µS µS

Flow / Process

slide-72
SLIDE 72

Resilient/reactive design

  • Resilience and responsiveness are mandatory
  • Elastic design for scalability
  • Start with isolation and latency control
  • Separate control and data flow
  • Many new challenges for developers
slide-73
SLIDE 73

Event/data flow Event/data flow Resource access Error flow Control flow

µS

Isolation

slide-74
SLIDE 74

Cloud provisioning model

  • Basis for elasticity at runtime
  • Basis for speed and flexibility at development time
  • Private, hybrid or public
  • Should be combined with container approaches (e.g., Docker)
  • “Natural” infrastructure for µService architecture
slide-75
SLIDE 75

Container Manager µS µS µS µS µS µS µS µS µS µS µS µS µS µS µS Container Explicitly declared communication paths µService

slide-76
SLIDE 76

Automate

  • Automate everything
  • Build, test & deployment (Continuous Delivery)
  • Resource provisioning (Cloud API)
  • Restart, failover, error handling (Resilience)
  • Starting and tearing down instances (Scalability)
slide-77
SLIDE 77

Wrap-up

  • IT is the nervous system of a company
  • Delivery speed is the new benchmark
  • Architecture must support the drivers
  • The new architectures are different
  • New challenges for developers (& ops)
slide-78
SLIDE 78

It’s the most disruptive and exciting change
 we have seen in IT for many years

Join the IT revolution!

slide-79
SLIDE 79

@ufried

Uwe Friedrichsen | uwe.friedrichsen@codecentric.de | http://slideshare.net/ufried | http://ufried.tumblr.com

slide-80
SLIDE 80