the quest for agility

17
The Quest for agility Why agility is important and what we can do about it Tamar Eilam, Ph.D., IBM Fellow [email protected] @tamareilam

Upload: tamar-eilam

Post on 13-Apr-2017

177 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: The Quest for Agility

The Quest for agility

Why agility is important and what we can do about it

Tamar Eilam, Ph.D., IBM [email protected]

@tamareilam

Page 2: The Quest for Agility

The Buzz ..Every one are talking about them … #microservices

Page 3: The Quest for Agility

The actuals • The principles of “born on the cloud” application

architecture, development and delivery styles are describes in books such as “Release IT!” , numereous blogs, and on-line articles.

• Companies (such as Netflix) communicated extensively about their own journey in applying the principles and achieving unprecedented degree of scale – Ability to add new functions quickly – Ability to scale the user base quickly

• Same principles, different implementation choices

Page 4: The Quest for Agility

The Principles - Microservice – what are they

microservices is a software architecture style, in which complex applications are composed of small, highly decoupled, independent processes communicating with one other using language-agnostic APIs.

• Compartmentalized business capability

• Cross-functional teams

• Communication via API ONLY!!

• Remove peer-to-peer dependencies

• REST communication

• Decentralized data

• Design for failure

• Evolutionary design with pluggable architecture

• Enables continuous delivery

Mon

olith

icS

tyle

Mic

rose

rvic

esst

yle

Page 5: The Quest for Agility

Why are they important? • Enterprises are Digitally Transforming

– How to provide new functions – By leveraging data (private + public) – By leveraging eco systems of services – How to do it quickly

• Cloud migration is no longer motivated by cost reduction; now it is about agility – a business imperative! – Cloud migration Enterprise transformation.

Page 6: The Quest for Agility

The quest for agility: Three winning pillars

DevOps

Micr

oservice

s

Cont

aine

rs

(Doc

ker)

agilityCultural ChangeAutomated pipelineEverything as code Immutable infrastructure

Small decoupled servicesEverything dynamicAPIs

Design for failure Embrace failuresTest by break / fail fast

Portability Developer centricEco system Fast startup

enabler

Page 7: The Quest for Agility

#IBMBluemix

VMs vs Containers

7

AppA

Hypervisor (Type 2)

Host OS

Server

GuestOS

Bins/Libs

AppA’

GuestOS

Bins/Libs

AppB

GuestOS

Bins/Libs

VM

GuestOS

GuestOS A

pp A’

Host OS

Server

Bins/Libs

App A

Bins/Libs

App B

App B

App B

App B

’Container

Containers are isolated,but share OS and, whereappropriate, bins/libraries

…faster, less overhead

Page 8: The Quest for Agility

#IBMBluemix

Static website Web frontend User DB Queue Analytics DB

Development VM

QA server Public Cloud Contributor’s laptop

Docker is a shipping container system for code

Mul

tiplic

ity o

f Sta

cks

Mul

tiplic

ity o

f ha

rdw

are

envi

ronm

ents

Production Cluster

Customer Data Center

Do services and apps interact

appropriately?

Can I migrate

smoothly and quickly

…that can be manipulated using standard operations and run consistently on virtually any hardware platform

An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container…

Page 9: The Quest for Agility

Microservices: Design for agility • Small well defined services accessible purely

through REST APIs or messaging • Loose coupling

– Dynamic binding: Services find each other through dynamic lookup, not hard coded config

– Dynamic configuration: Key configuration is externalized and shared (service responsibility to reconfigure respectively)

– Each Microservice responsible for its own state (pushed to an external data service) and data is de-centralized/normalized

– More Event driven / Asynchronous; Less RPC / Synchronous

• Advantages: Radically simpler to – recover from failures (re-start or new instance);– auto scale (add an identical instance); – update (no worries about dependencies with other

services and startup order )

Page 10: The Quest for Agility

Microservices: Design for failures

• Embrace failures - they will happen! • How to avoid How to identify & what to do about it

– Pure operational concern developer concern

• External calls are especially prone to problems– Separate thread pools – Time out quickly – High quality code libraries for all to use

• Embed metric collection for load balancing and failure detection • Circuit breaker pattern – identify problem and do

something about it to avoid cascading failures • Bulkhead pattern - Isolation from start to limit scope of

failure (separate thread pools)• Monkey testing – test by breaking

Page 11: The Quest for Agility

Microservices: Life Cycle• Deliver changes only in full stack

deployments, never in-place – Immutable infrastructure concept

• Stand up a new environment next to the current one and .. Roll forward

• Also : Deliver frequent small changes Load

Balancer

Current New Old

0%80%

20%

Roll forward Roll forward

Roll back

Page 12: The Quest for Agility

It is clear how the Microservices principles work in concert to

enable agility – what’s not to love about them?

The criticism: While updating each individual Microservice is simplified, the complexity shifts to managing a large system of Microservices

Edge Service

User requests

C

AB

Microservices

New microservice version

F

B’

D

E

D’

Page 13: The Quest for Agility

IBM Enterprise Containers on Bluemix: Where innovation happens

Automate the build of Docker images

Manage and distribute Docker images in private image registries

Easily host containers in the cloud

Scale and auto-recovery built-in

Logging and Monitoring built-in

13

https://console.ng.bluemix.net/home/

Page 14: The Quest for Agility

IBM Bluemix DevOps Services – Delivery Pipeline – Enabling innovation @ speed & quality

• Integration test, System test, Production

• Automation ensures the same procedure in each environment

• Fully hosted, managed, and integrated in the cloud for the cloud

Page 15: The Quest for Agility

#IBMBluemix

Delivery Pipeline for Containers on Bluemix

IBM ContainerImage Build

Service

Image Registry

Page 16: The Quest for Agility

IBM Cloud

Testing & Continuous Ops infast speed IT world

16

Continuous Operation (DevOps Analytics)

Continuous Quality (DevOps Analytics)

DevOps Pipeline

Active Deploy

Operations Visibility

Platform Services

Alek: Lead developer for WFaaS. Responsible for developing new features and improvements for WFaaS. Needs the ability to efficiently build, test, deploy his code.

Vinod: Operations lead for WFaaS responsible for ensuring problem-free continuous operation. Needs to quickly understand potential problem areas and resolve operational issues

Mariusz: Container Cloud admin. Wants to create infrastructure in a repeatable and reliable way and fix any problems before the customer notices. Lack of understanding about applications running on the infrastructure creates challenges

PERSONAS INVOLVEDDevOps Dashboard

Page 17: The Quest for Agility

B E P R o u d !