transformation and innovation with containers - Innovation... · what are they, why you should care...

Post on 30-May-2020

7 views 0 download

Transcript of transformation and innovation with containers - Innovation... · what are they, why you should care...

what are they, why you should care and how to

prepare

transformation and innovation with

containers

ILTACON 2018 Gaylord National

National Harbor 10 & 11

August 20, 2018 11 am-12 pm

#containers

#G008

SPEAKERS

Koundinya Srinivasarao

Senior Platform Architect

Pivotalwww.linkedin.com/in/koundinyas

AGENDA

• from transformation to containers

• containers

• container as a service - kubernetes

• higher level abstractions (that use containers under the covers)

transfomation | ˌtran(t)sfərˈmāsh(ə)n |

a thorough or dramatic change in form or appearance

DAVID CHANG I don’t even think that Domino’s is

a food company anymore. I think of

you as technology company.

UGLY DELICIOUS, S1:E1

transformation

• is becoming a software defined business

• is customer centric

• promises competitive differentiation

• isn’t purely a change in technology strategy

• isn’t just for startups

• involves drastic change … but in rapid, small iterations

idea users

idea to product(ion)

idea to product(ion)

idea to production - goals

𝝙 t

1. decrease 𝝙 t

idea to production - goals

𝝙 t

1. decrease 𝝙 t

2. increase 𝝙 f

idea to production - goals

𝝙 t

1. decrease 𝝙 t

2. increase 𝝙 f

3. build the right thing

building enterprise software

build runwrite

source code

+

process

app

building enterprise software

build runwrite

source code

+

process

app

app

+

dependencies

/ ops tools (scanners…)

runnable s/w

building enterprise software

build runwrite

source code

+

process

app

app

+

dependencies

/ ops tools (scanners…)

runnable s/w

runnable s/w

+

credentials

/ compute / networking

running

building enterprise software

build runwrite

apprunnable s/w running

developers ops

building enterprise software

build runwrite

apprunnable s/w running

developers ops

different same

building enterprise software

build runwrite

apprunnable s/w running

developers ops

different same

CONTAINERS

provide consistency of deployment

provide consistency of execution

ease the developer-to-operator handoff

so what exactly are containers?

KEY CONCEPTS

• isolation (from a historical perspective)

• container

• container image

• container runtime

• container orchestrator

isolation

1

3

2

1

3

2

no isolation

hardware

p1 p3p2

circa 1980s

apps aware of target hardware

no/limited portability

operating system offers some isolation

operating system

p1 p3p2

apps agnostic of target hardware

limited portability

hardware

CPU

apps

1

2

nightly billing batch job

tabulate results

3 siphon off money to secret bank account

that isn’t sufficient though

CPU

that isn’t sufficient though

$$

better networking

cheaper hardware

smaller, cheaper data

centers

virtualization

A B

B B

C C

D

apps

A virtualization layer makes one sharable resource

look like many exclusive resources

lots of resources

to virtualize!

compute

disk

networking

graphics

virtual machinesA more sophisticated virtualization layer knows how to

virtualize everything

application

virtual machinesan early hypervisor

application

isolation with virtual machines

hypervisor

hardware

VM1

OS

p1

VM2

OS

p2

VM3

OS

p3

But …

• OS is duplicated

• additional resources

• penalty while

implementing

microservices

VM

OS

A

your app

A

isolation with containers

containers

operating systemBoth OS and hardware needed

change to support containers

hardware

A1A2

A3

how do containers work?

your app your app’s

dependencies

resource

request+ +

container

image

A

A

your app your app’s

dependencies

resource

request+ +

container

image+

container

runtimecontainer

A

A A

docker, rocket, runC etc…

container

image +container

runtimecontainer

A A

A

A

but how do you scale the

runtimes across multiple

hosts

BA C

BA C

container orchestrator

view data center as

a computer

pets cattle

versus

immutable

infrastructure

container orchestrator

kubernetes docker swarm mesosphere

container orchestrator

kubernetes docker swarm mesosphere

kubernetes has pretty much

won the war!

kubernetes is a portable, extensible

open-source platform for managing

containerized workloads and services,

that facilitates both declarative

configuration and automation

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

kubernetes

k8s

> kubectl

storage networkingcompute

Kubernetes Dashboard

Dev / Apps IT / Ops

App User

kubernetes

> kubectl

storage networkingcompute

Kubernetes Dashboard

Dev / Apps IT / Ops

App User

kubernetes

Load Balancing / Routing

Container ImageRegistry

App Monitoring

App Logging

OS Updates

OS Images

K8S Updates

K8S Images

Log & Monitor

Recover & Restart

Backup & Restore

ExternalData Services

Cluster Provisioning

Provision & Scale

not provided by K8s (buy or build these)

do we use containers for everything?

there are many ways to package and run

workloads in the cloud

containersdata services

microservicesmonolithic apps

event-driven functions

choose the right runtime for each workload

containers data services

microservicesmonolithic apps

event-driven

functions

IaaS

container

orchestrator

(CaaS)

application

platform (PaaS)

Serverless

functions

(FaaS)

choose the right runtime for each workload

IaaS

CaaS

PaaS

FaaS

• lower development

complexity

• higher operational

efficiency

• higher flexibility

• less enforcement

of standards

implementations

IaaS

CaaS

PaaS

FaaS

AWS, Azure, GCP, VMware

Pivotal Container Service (PKS)

RedHat Openshift

Pivotal Application Service

project riff

(Knative)

specific to public

cloud stack

• AWS EKS

• Azure AKS

• Google GKE

• AWS Elastic Bean Stalk

• Azure PaaS

• Google App Engine

• AWS Lambda

• Azure Functions

• Google Cloud Functions

multi-cloud

key takeaways

• containers are a key ingredient for innovation/transformation

• people/process/culture change are equally import

• kubernetes has won the container war

• choose the right abstraction (CaaS/PaaS/FaaS) for each

workload

• start soon, start small – avoid analysis paralysis!

• special thanks to John Feminella (@jxxf / http://jxf.me/)

references

• Kubernetes Overview

• Transformation at Boeing (talk by Nikki Allen)

• Migrating to Cloud-Native Application Architectures by Matt

Stine

• The Twelve-Factor App