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

Post on 21-Jun-2020

1 views 0 download

transcript

Modern Development: How Containers Are Changing Everything

Steve Poole @spoole167

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

Cloud: it’s what we always wanted

Today, our Cloud story is really a container story

Containers can go anywhere

Do anything

Are super versatile

Containers are giving us new opportunities

As long as the answer is “container”

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

We’re all set on a future with containers

• Containers offer immutability and repeatability

• But there are immediate challenges…

Cloud Computing is not perfect - yet

But who cares about a little rain?

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…

A shipyard to manage the containers

AKA Docker swarm / Kubernetes

Tools to manage the complexities of microservice based systems..

Umm….

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

Enough tools for you?

More consequences

Quite often containersare full of trash

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

And debugging is hugely painful

It’s tough being a container developer

#worksfineonjdk9

#workslikeheavenonjdk11

Add in the build cycle

#worksfineonjdk9

#workslikeheavenonjdk11

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

#worksfineonjdk9

#workslikeheavenonjdk11

Wait, there’s more…

#worksfineonjdk9

#workslikeheavenonjdk11

The CI/CD Pipeline

Now add more frameworks and languages

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 …

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?

Deployment tools are heavyweight and complex

So the developers use different ones.

ToolsCodeTools

The lifecycle is too complex.

So developers use cut-down versions

ToolsLifecycle

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

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

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

Building, testing and deployingis changing too

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

All Change: Central server outside the cluster

All Change: Separate pipelines in the cluster

One more..

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

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

Containers are changing everything about how we work

And the tooling is not keeping up

A little bit more rain than you expected?

It’s not all bad..

help is coming

The CNCF is helping bring direction and structure…

Containers are more than Docker

You ain’tseen nothing

yet

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

49

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

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

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

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

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

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

56

Lifecycle ToolsCodeCode

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

Discover and integrate

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

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

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

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

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

Appsody

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What to test

What environments

Business Logic

Appsody

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackTemplate

“Appsody init”

Desktop

Appsody

ToolsCodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

StackDesktop

Tests

Business Logic

Appsody

CodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackDesktop Template

“Appsody run”

Appsody

CodeCode

Dependencies

SCM system

CI/CD system

Runtime levels

Dev tools

What to build

What environments

Tests

Business Logic

StackDesktop Template

“Appsody run”

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

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

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.

Keep watching.

kabanero.io

cncf.io

@spoole167

70