Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... ·...

101
Immutable Infrastructure The New App Deployment AXEL FONTAINE @axelfontaine [email protected]

Transcript of Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... ·...

Page 1: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Immutable Infrastructure

The New App Deployment

AXEL FONTAINE@axelfontaine

[email protected]

Page 2: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

About Axel Fontaine

• Founder and CEO of Boxfuse

• Over 15 years industry experience

• Continuous Delivery expert

• Regular speaker at tech conferences

• JavaOne RockStar in 2014

@axelfontaine

Page 3: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

flywaydb.org

Page 4: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

boxfuse.com

Page 5: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Let’s start with a small story

Page 6: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

http://commons.wikimedia.org/wiki/File:Gluehlampe_01_KMJ.jpg

Incandescent Bulb60 W

LED Bulb10 W

Page 7: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Heater that gives offa little bit of light

Light that gives offa little bit of heat

Page 8: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar
Page 9: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Edison Screw

Page 10: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Simple, stable,standards-compliantinterfacewith a clear contract

Myresponsibility

The electricity company’sresponsibility

Page 11: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Simple, stable,standards-compliantinterfacewith a clear contract

RoomFor

Innovation

UndifferentiatedHeavy Lifting

Page 12: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

back to IT infrastructure …

Page 13: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

POLL:what type of infrastructure are you running on?

• On Premise

• Colocation

• Root Server

• Cloud

Page 14: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

How did this evolve ?

Page 15: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

sometime in the 20th century …

Page 16: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar
Page 17: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

http://en.wikipedia.org/wiki/File:Tdkc60cassette.jpg

Page 18: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar
Page 19: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

+=ONPREM

+

Challenges

• Power, Network, Cooling• Physical Security• Physical Space• Procurement, Vendor Management• Capacity Planning• Financing• OS + Patches• App + Updates

Page 20: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

+=ONPREM

+

Our responsibility

Page 21: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

+ +

Our responsibility

Their responsibility

=COLO

Page 22: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

+=COLO +

Simple, stable, standards-compliant

interface:

(19” Rack, AC Power, Ethernet, …)

Page 23: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Can change as long as it

complies with the interface

contract

+=COLO + UndifferentiatedHeavy Lifting

Our responsibility

Page 24: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

=ROOTSERVER

+ UndifferentiatedHeavy Lifting

Our responsibility

Can change as long as it

complies with the interface

contract

Page 25: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

=ROOTSERVER

+ UndifferentiatedHeavy Lifting

Simple, stable, standards-compliant interface

Software <-> Hardware

Page 26: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

RoomFor

Innovation+ Undifferentiated

Heavy Lifting

Could this be our industry’s Edison Screw?

Simple, stable, standards-compliant interface

Page 27: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Let’s talk about software

Page 28: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

POLL:which level of automation are you at?

• Build• Unit Tests• Continuous Integration• Acceptance Tests• Continuous Deployment (Code)• Continuous Deployment (Code + DB + Configuration)• Infrastructure

Page 29: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Build Test

Page 30: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

• One immutable unit• Regenerated after every change• Promoted from Environment to Environment

Classic Mistake: Build per Environment

Page 31: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

Page 32: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

Page 33: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

why aren’t we doing the samefor the layers this is running on ???

Page 34: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what could possibly go wrongin these other layers ???

Page 35: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

missing software

Page 36: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

wrong name

Page 37: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

bad version

Page 38: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

incorrect permissions

Page 39: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

http://www.flickr.com/photos/travelinlibrarian/2409633653/sizes/l/

critical resource in use

Page 40: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what aren’t we holding our servers to the same standards as our applications ???

Page 41: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar
Page 42: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

Build Test

Page 43: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

Build Test

App

Page 44: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

Multiple instances in multiple Environments

Page 45: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

Multiple instances in multiple Environments

• All instances should be as similar as possible(any difference is a potential source of errors)

• That also includes your local Dev environment!

• Must be able to reliably provision new ones(and recreate existing ones from scratch)

Page 46: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

Updates UpdatesUpdates

Sysadmin

Page 47: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

If I had asked my customers what they wanted they would have said a faster horse.

Henry Ford

Page 48: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

Updates UpdatesUpdates

Sysadmin

Page 49: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

Updates UpdatesUpdates

Automated Sysadmin

Page 50: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

fast forward to 2015 …

Page 51: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Every day, AWS adds enough server capacity to power the whole $5B enterprise Amazon.com was in 2003.Weekends included.

Page 52: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

"Advanced Test Reactor" by Argonne National Laboratory -originally posted to Flickr as Advanced Test Reactor core, Idaho National LaboratoryUploaded using F2ComButton. Licensed under CC BY-SA 2.0 via Wikimedia Commons -http://commons.wikimedia.org/wiki/File:Advanced_Test_Reactor.jpg#mediaviewer/File:Advanced_Test_Reactor.jpg

"RIAN archive 341194 Kursk Nuclear Power Plant" by RIA Novosti archive, image #341194 / Sergey Pyatakov / CC-BY-SA 3.0. Licensed under CC BY-SA 3.0 via Wikimedia Commons -http://commons.wikimedia.org/wiki/File:RIAN_archive_341194_Kursk_Nuclear_Power_Plant.jpg#mediaviewer/File:RIAN_archive_341194_Kursk_Nuclear_Power_Plant.jpg

Control Plane Data Plane

Page 53: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Control Plane Data Plane

Page 54: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

• Shift to a world of abundance(no more resource scarcity)

• Clean Control Plane/Data Plane splitwith API-based provisioning

• Cost-based Architectureswith the ability to turn infrastructure off

Benefits of the cloud

Page 55: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

it is time to rethink the faster horse

Page 56: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

App

OS Kernel

Libraries

Language

App Server

Build Test

Page 57: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

App

OS Kernel

Libraries

Language

App Server

Build Test

UndifferentiatedHeavy lifting

Page 58: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

App

OS Kernel

Libraries

Language

App Server

Build Test

Page 59: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

App

Machine Image

OS Kernel

Libraries

Language

App Server

Build TestMachine

Image

Page 60: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

OS Kernel

Libraries

Language

App Server

App

Updates

Page 61: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Machine Image

Machine Image

Machine Image

Updates

Page 62: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

but there is one big problem left …

Page 63: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Machine Image

Network Cable

Page 64: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Machine Image

Network CableMultiple

GB

Page 65: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Running servers in production should be like going backpacking. You take the bare minimum with you. Anything else is going to hurt.

A Wise Man

Page 66: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what is really adding business value ???

Page 67: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Machine Image

Network Cable

Page 68: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Editors

Daemons OS Kernel

Libraries

Utilities

Drivers

App

App Server

Package Mgr

Compilers

SSH

Firewall

Compatibility

Man Pages

Language

Log Files

Users

Shells

Network Cable

Page 69: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

App

App Server

Language

Bootable App

Page 70: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

MultipleGB

40 – 80 MB

Page 71: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Network CableBootable

App

Page 72: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

who is this for ???

Page 73: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

OS Kernel

Libraries

Language

App Server

App

12-factor app

Page 74: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

demo

Page 75: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

What are the implications ???

Page 76: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Focus shift

Individual instances become disposable

Instance Service

Page 77: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Treat servers like cattle instead of pets

Page 78: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

high uptime is a liability

The longer an instance is up,the harder it becomes to recreate exactly

(and it will fail eventually!)

Page 79: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

How to solve service discovery ?

Use a stable entry point with an internal registry

Bootable App

Bootable App

Bootable App

? ElasticLoad

Balancer

Page 80: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

What about security ?

When was the last time your toaster got hacked?

Page 81: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

What about security ?

• Smallest possible attack surface

• Vastly reduced implications due to low uptime and transient nature of instances

• Very difficult to exploit other systemsbecause essential tooling is missing

Page 82: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

• Bake as much configuration as possible for all environments directly in the Bootable App

• Use environment detection and auto-configuration

• Pass remaining configuration at startup and expose it as environment variables

what about configuration ???

Page 83: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what about the database ???

Page 84: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Bootable App

what about the database ???

Page 85: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what about the database ???

• Keep all persistent state, including the database, out of the instance

• Many good hosted solutions availablelike Amazon RDS or Google Cloud SQL

• Use a database migration tool like Flyway to update on application startup

Page 86: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Bootable App

what about the logs ???

Ship logs to a central log server

where they can be• aggregated• stored and backuped• indexed• searched through a nice web UI

Many good hosted solutions• Loggly• Logentries• Papertrail• …

Page 87: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what about sessions ???

Bootable App

Keep session in an encrypted and signed cookie

• avoids session timeouts• avoids server clustering & session replication• avoids sticky sessions & server affinity

Page 88: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what about rolling out new versions ???

Page 89: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Load Balancer

App v1

App v1

Logs

Availability Zone 1

Availability Zone 2

Page 90: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Load Balancer

App v2

App v1

App v2

App v1

Logs

Availability Zone 1

Availability Zone 2

Page 91: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Load Balancer

App v2

App v2

Logs

Availability Zone 1

Availability Zone 2

Page 92: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

what about containers ???

Page 93: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

understanding modern CPUs

Both Intel and AMD have hardware support for virtualization

• isolation• performance

Page 94: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Bootable App

Hardware

Hypervisor

Bootable App

Hardware

OS+ContainerRuntime

On PremOn Prem

Page 95: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Bootable App

Hardware

Hypervisor

Bootable App

Hardware

Hypervisor

OS+ContainerRuntime

Bootable App

Hardware

OS+ContainerRuntime

On PremOn Prem /Cloud

Cloud

Only makes sense if you cannot afford

$9.60/month granularity

Page 96: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Bootable App

Hardware

Hypervisor

Bootable App

Hardware

Hypervisor

OS+ContainerRuntime

Bootable App

Hardware

OS+ContainerRuntime

On PremOn Prem /Cloud

Cloud

Only makes sense if you cannot afford

1.3 cents /hour granularity

Page 97: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

summary

Page 98: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

• One immutable unit• Regenerated after every change• Promoted from Environment to Environment

Classic Mistake: Build per Environment

Page 99: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Bootable App

• One immutable unit• Regenerated after every change• Promoted from Environment to Environment

Classic Mistake: Build per Environment

Page 100: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

boxfuse.com

Page 101: Immutable Infrastructure - GOTO Conferencegotocon.com/dl/goto-berlin-2015/GOTO_Nights/GOTO... · •Continuous Delivery expert •Regular speaker at tech conferences •JavaOne RockStar

Thanks !

AXEL FONTAINE@axelfontaine

boxfuse.com