Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are...

70
Modern Development: How Containers Are Changing Everything Steve Poole @spoole167

Transcript of Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are...

Page 1: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Modern Development: How Containers Are Changing Everything

Steve Poole @spoole167

Page 2: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

About me

IBM Developer advocate for Runtimes

Making Java Real Since Version 0.9

Open Source Advocate

DevOps Practitioner (whatever that means!)

Steve Poole

@spoole167

Page 3: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Cloud: it’s what we always wanted

Page 4: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Today, our Cloud story is really a container story

Page 5: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Containers can go anywhere

Page 6: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Do anything

Page 7: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Are super versatile

Page 8: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Containers are giving us new opportunities

Page 9: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

As long as the answer is “container”

Page 10: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

With new performance profiles new systems are emerging

OS

Java / JVM

APP SERVER

FRAMEWORK

HARDWARE

APP

Traditional

OS

Java / JVM

APP SERVER

FRAMEWORK

HARDWARE

APP

Monolith in a box

OS

HARDWARE

Java / JVM

APP SERVER

FRAMEWORK

APP

Java / JVM

APP SERVER

FRAMEWORK

APP

microservice

function

Java / JVM

µFramework

function

Serverless / eventing

µF

µF

µF

µF

Page 11: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

We’re all set on a future with containers

• Containers offer immutability and repeatability

• But there are immediate challenges…

Page 12: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Cloud Computing is not perfect - yet

But who cares about a little rain?

Page 13: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

OS

Java / JVM

APP SERVER

FRAMEWORK

HARDWARE

APP

Traditional

OS

Java / JVM

APP SERVER

FRAMEWORK

HARDWARE

APP

Monolith in a box

OS

HARDWARE

Java / JVM

APP SERVER

FRAMEWORK

APP

Java / JVM

APP SERVER

FRAMEWORK

APP

microservice

function

Java / JVM

µFramework

function

Serverless / eventing

µF

µF

µF

µF

To enable these choices you need new things…

Page 14: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

A shipyard to manage the containers

Page 15: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

AKA Docker swarm / Kubernetes

Page 16: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Tools to manage the complexities of microservice based systems..

Umm….

Page 17: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

https://caylent.com/50-useful-kubernetes-tools

Page 18: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Enough tools for you?

Page 19: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

More consequences

Page 20: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Quite often containersare full of trash

They don’t behave as expected (or at all)

Page 21: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

And debugging is hugely painful

Page 22: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

It’s tough being a container developer

#worksfineonjdk9

#workslikeheavenonjdk11

Page 23: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Add in the build cycle

#worksfineonjdk9

#workslikeheavenonjdk11

Page 24: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Add IDEs, tests, test data and quality tools..

#worksfineonjdk9

#workslikeheavenonjdk11

Page 25: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Wait, there’s more…

#worksfineonjdk9

#workslikeheavenonjdk11

Page 26: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

The CI/CD Pipeline

Page 27: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Now add more frameworks and languages

Page 28: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Add containers and clouds…

Your development LifecycleRuns on your desk

In a container inyour desktop

In a container inyour CI system

To produce an image …

Page 29: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Doesn’t look very “immutable” does it?

Your development LifecycleRuns on your desk

In a container inyour desktop

In a container inyour CI system

To produce an image …Do these match?

Page 30: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Deployment tools are heavyweight and complex

So the developers use different ones.

ToolsCodeTools

Page 31: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

The lifecycle is too complex.

So developers use cut-down versions

ToolsLifecycle

Page 32: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

The ‘code’ makes all the choices.

And it’s all in the hands of the developer

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What to test

What environments

Business Logic

Page 33: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

1

We have multiple systems of verification

Because we can’t be certain a developers action won’t break the production system

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Page 34: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

It’s ironic

34

The person who knows what that the code is supposed to do

Is greatly hampered by the process of delivering the code

Page 35: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Building, testing and deployingis changing too

Page 36: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

In the cloud a single server is too high a risk

You don’t want to be left hanging around – waiting for the CI system to come back

Page 37: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

All Change: Central server outside the cluster

Page 38: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

All Change: Separate pipelines in the cluster

Page 39: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

One more..

Containers are not just Docker.Operating Systems are becoming containerizedContainerised OS’s are not configured – they are deployed

Page 40: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

We’re entering a new world of substantially increased complexity –many new tools, many new ways of working.

Page 41: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Containers are changing everything about how we work

And the tooling is not keeping up

Page 42: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

A little bit more rain than you expected?

Page 43: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

It’s not all bad..

Page 44: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

help is coming

Page 45: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

The CNCF is helping bring direction and structure…

Page 46: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels
Page 47: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Containers are more than Docker

You ain’tseen nothing

yet

Page 48: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Kabanero.io – exploring the future

IDE based Developer tools

Development in a container – with a twist.

Tekton

Ready-to-go Kubernetes native toolchains, fully documented,

Pre tailored Appsody deployments for Kubernetes

kAppNavNavigation and visualization tools

for your applications

Page 49: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

49

Page 50: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

50

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Kabanero Lifecycle tooling

Page 51: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

51

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Kabanero Lifecycle tooling

Page 52: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

52

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Simplifies and enhances development in containers by extending industry standard IDEs with features to write, debug, and deploy cloud-native applications.

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

CodeWind

Build tools

Test tools

perf tools

Build tools

Test tools

perf tools

Page 53: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

53

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Simplifies and enhances development in containers by extending industry standard IDEs with features to write, debug, and deploy cloud-native applications.

CodeWind

Page 54: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

54

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Reduces the number of ‘opinions’ too

CodeWind

Page 55: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

55

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Reduces the number of ‘opinions’ too

CodeWind

What the container build thinks

Page 56: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

56

Lifecycle ToolsCodeCode

CodeWindTools in containers. (stacks)Code on the desktop (template)Smarts in the IDE

Discover and integrate

Page 57: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Group Name / DOC ID / Month XX, 2018 / © 2018 IBM Corporation 57

Page 58: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

58

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Appsody

Page 59: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

59

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Appsody

What the container build thinks

Page 60: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

The ‘code’ makes all the choices.

And it’s all in the hands of the developer

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What to test

What environments

Business Logic

Page 61: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

The ‘code’ makes all the choices.

And it’s all in the hands of the developer

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What to test

What environments

Business Logic

Page 62: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What to test

What environments

Business Logic

Page 63: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackTemplate

“Appsody init”

Desktop

Page 64: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

StackDesktop

Tests

Business Logic

Page 65: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

CodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackDesktop Template

“Appsody run”

Page 66: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

CodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackDesktop Template

“Appsody run”

Page 67: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

CodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackDesktop Appsody

“Appsody run”

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

Page 68: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Appsody

Code

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackDesktop Appsody

“Appsody run”

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

One opinion, immutable metadata. Everywhere

Page 69: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

69

Kabanero is helping reduce complexity

1

What the IDE thinks

What the full build thinks

What the full build in the

container thinks

What the dev CI full build thinks

What the dev CI container build

thinks

What the prod CI full build thinks

What the prod CI container build

thinks

What actually happened

Containers are here to stay – they don’t need to as difficult as they are.

Page 70: Modern Development: How Containers Are Changing Everything · 2019-11-18 · How Containers Are Changing Everything Steve Poole @spoole167. About me ... CI/CD system Runtime levels

Keep watching.

kabanero.io

cncf.io

@spoole167

70