80
Modern Times Architectures for a Next Generation of IT Uwe Friedrichsen, codecentric AG, 2014

Modern times - architectures for a Next Generation of IT

Embed Size (px)

DESCRIPTION

In this presentation I focus on the architectural aspect of the next generation of enterprise IT topic I already covered in some other presentations. The slide deck starts with a quick motivation. It describes the external drivers that require traditional enterprise IT to change. Based on these drivers, the drivers and requirements for an architecture that supports the external drivers are derived. The second major part of the slide deck then examines some of today's IT hype topics and evaluates them with respect to the architectural requirements derived before. Be aware that the evaluation partially is hard to understand without the voice track. Actually, at some places the explanations on the voice track are more important than the evaluations themselves. Thus, please do not take them too literally. The last major part then tries to sketch a possible architectural style that suits the given requirements. Again, the rationale for picking the respective elements are on the voice track, and it is just one possible style. There are for sure more styles available that suit the needs. Yet I think, the style described makes clear that the upcoming enterprise architectural styles are quite different from the styles that were predominant in the last 10 or 15 years and makes clear that we all have to face new challenges - not only on the architectural level. Sorry again that the voice track is missing. Yet I think, that the presentation provides some helpful ideas even without the voice.

Citation preview

Page 1: Modern times - architectures for a Next Generation of IT

Modern Times Architectures for a Next Generation of IT

Uwe Friedrichsen, codecentric AG, 2014

Page 2: Modern times - architectures for a Next Generation of IT

@ufried Uwe Friedrichsen | [email protected] | http://slideshare.net/ufried | http://ufried.tumblr.com

Page 3: Modern times - architectures for a Next Generation of IT

Why do we need a “Next Generation IT”?

Page 4: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Page 5: Modern times - architectures for a Next Generation of IT

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

Page 6: Modern times - architectures for a Next Generation of IT

Nice, but how does this relate to IT?

Page 7: Modern times - architectures for a Next Generation of IT

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

Page 8: Modern times - architectures for a Next Generation of IT

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

Page 9: Modern times - architectures for a Next Generation of IT

What business needs from IT …

Page 10: Modern times - architectures for a Next Generation of IT
Page 11: Modern times - architectures for a Next Generation of IT

How IT serves business …

Page 12: Modern times - architectures for a Next Generation of IT
Page 13: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Business-related Change Drivers

IT

Technology-related Change Drivers

Page 14: Modern times - architectures for a Next Generation of IT

But there is more …

Page 15: Modern times - architectures for a Next Generation of IT

Lean Enterprise

Productshaping/optimization

Innovation

Measure & analyze Accelerating OODA loop

Quick customer feedback cycles

Page 16: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Business-related Change Drivers

Lean Enterprise

IT

Technology-related Change Drivers

Page 17: Modern times - architectures for a Next Generation of IT

IT as a Product

Virtualization of products

IT-centric business models

Disruptive new business models

Page 18: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Business-related Change Drivers

Lean Enterprise

IT as a Product

IT

Technology-related Change Drivers

Page 19: Modern times - architectures for a Next Generation of IT

Pay-per-Use

Business Case

Self-Service

Cloud

Elasticity

UnreliableCOTS Hardware

Provisioning Speed

Page 20: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Business-related Change Drivers

Lean Enterprise

IT as a Product

Cloud

IT

Technology-related Change Drivers

Page 21: Modern times - architectures for a Next Generation of IT

Zero Downtime

Peer Multiplication

Mobile & IoT

Deep Process Integration

UnreliableCommunication Unpredictable

Load Patterns

Page 22: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Business-related Change Drivers

Lean Enterprise

IT as a Product

Cloud

IoT

Mobile

IT

Technology-related Change Drivers

Page 23: Modern times - architectures for a Next Generation of IT

… and more

Big Data Analysis

Amplifiers

Social

Page 24: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Business-related Change Drivers

Lean Enterprise

IT as a Product

Cloud

IoT

Mobile

IT Big Data Analytics Social

Technology-related Change Drivers

Page 25: Modern times - architectures for a Next Generation of IT

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

Page 26: Modern times - architectures for a Next Generation of IT

Traditional IT bases its optimization efforts on the wrong goals and principles

Page 27: Modern times - architectures for a Next Generation of IT

Traditional IT goals/principles •  Fault avoidance at any cost

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

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

à Not suitable to respond to new challenges

Page 28: Modern times - architectures for a Next Generation of IT

Then, what are the new goals?

Page 29: Modern times - architectures for a Next Generation of IT

Economic Darwinism

Business-related Change Drivers

Lean Enterprise

IT as a Product

Cloud

IoT

Mobile

IT Big Data Analytics Social

Technology-related Change Drivers

Page 30: Modern times - architectures for a Next Generation of IT

Short cycle times

Continuous output

High flexibility

High reliability Equally Valued Goals

Holistic consideration

Goals of a Next Generation (of ) IT

Page 31: Modern times - architectures for a Next Generation of IT

And what are the new principles?

Page 32: Modern times - architectures for a Next Generation of IT

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

Page 33: Modern times - architectures for a Next Generation of IT

Principles of a Next Generation (of ) IT

The Technical 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

Page 34: Modern times - architectures for a Next Generation of IT

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

Page 35: Modern times - architectures for a Next Generation of IT

Goals & Principles Architecture

drives

supports

Page 36: Modern times - architectures for a Next Generation of IT

What does that mean for architecture?

Page 37: Modern times - architectures for a Next Generation of IT

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

Page 38: Modern times - architectures for a Next Generation of IT

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

Page 39: Modern times - architectures for a Next Generation of IT

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)

Page 40: Modern times - architectures for a Next Generation of IT

What are the appropriate solutions?

Page 41: Modern times - architectures for a Next Generation of IT

Let’s check a few hype topics …

Page 42: Modern times - architectures for a Next Generation of IT

µ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

Page 43: Modern times - architectures for a Next Generation of IT

µServices

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 44: Modern times - architectures for a Next Generation of IT

REST

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

Page 45: Modern times - architectures for a Next Generation of IT

REST

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 46: Modern times - architectures for a Next Generation of IT

Event-driven •  Asynchronous communication paradigm •  Technical decoupling of communication peers (isolation) •  Location transparency in conjunction with MOM •  Call-stack paradigm replaced by (complex) message networks

Page 47: Modern times - architectures for a Next Generation of IT

Event-driven

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 48: Modern times - architectures for a Next Generation of IT

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 WRITE

Page 49: Modern times - architectures for a Next Generation of IT

CQRS

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

READ WRITE

Page 50: Modern times - architectures for a Next Generation of IT

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

Page 51: Modern times - architectures for a Next Generation of IT

Reactive

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 52: Modern times - architectures for a Next Generation of IT

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

Page 53: Modern times - architectures for a Next Generation of IT

Functional Programming

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 54: Modern times - architectures for a Next Generation of IT

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

Page 55: Modern times - architectures for a Next Generation of IT

NoSQL

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 56: Modern times - architectures for a Next Generation of IT

Continuous Delivery •  Automate the software delivery chain •  Build – Continuous Integration, … •  Test – Test Automation, … •  Deploy – Infrastructure as Code, …

Page 57: Modern times - architectures for a Next Generation of IT

Continuous Delivery

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 58: Modern times - architectures for a Next Generation of IT

Cloud provisioning model •  On-demand provisioning and de-provisioning •  Instant availability •  Self-service •  Pay-per-use

Page 59: Modern times - architectures for a Next Generation of IT

Cloud provisioning model

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 60: Modern times - architectures for a Next Generation of IT

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

Page 61: Modern times - architectures for a Next Generation of IT

Docker

Cost-

effic

ienc

y

Unifo

rm In

terfa

ce

Resil

ienc

e

Scal

abilit

y

Dep

loya

bilit

y

Repl

acea

bilit

y

Chan

geab

ility

Exte

nsib

ility

Unde

rsta

ndab

ility

Page 62: Modern times - architectures for a Next Generation of IT

… and there are many more

Page 63: Modern times - architectures for a Next Generation of IT

What can we learn from this?

Page 64: Modern times - architectures for a Next Generation of IT

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

Page 65: Modern times - architectures for a Next Generation of IT

How would an architectural style look like?

Page 66: Modern times - architectures for a Next Generation of IT

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

Page 67: Modern times - architectures for a Next Generation of IT

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

Page 68: Modern times - architectures for a Next Generation of IT

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)

Page 69: Modern times - architectures for a Next Generation of IT

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

Page 70: Modern times - architectures for a Next Generation of IT

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

Page 71: Modern times - architectures for a Next Generation of IT

µS

Request/Response : Horizontal slicing

Flow / Process

µS µS

µS µS µS

µS

Event-driven : Vertical slicing

µS µS

µS

µS µS

Flow / Process

Page 72: Modern times - architectures for a Next Generation of IT

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

Page 73: Modern times - architectures for a Next Generation of IT

Event/data flow Event/data flow

Resource access

Error flow Control flow

µS

Isolation

Page 74: Modern times - architectures for a Next Generation of IT

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

Page 75: Modern times - architectures for a Next Generation of IT

Container Manager

µS

µS

µS

µS

µS

µS

µS

µS

µS

µS

µS

µS

µS

µS

µS

Container

Explicitly declared communication paths

µService

Page 76: Modern times - architectures for a Next Generation of IT

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

Page 77: Modern times - architectures for a Next Generation of IT

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)

Page 78: Modern times - architectures for a Next Generation of IT

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

Join the IT revolution!

Page 79: Modern times - architectures for a Next Generation of IT

@ufried Uwe Friedrichsen | [email protected] | http://slideshare.net/ufried | http://ufried.tumblr.com

Page 80: Modern times - architectures for a Next Generation of IT