Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a...

49

Transcript of Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a...

Page 1: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 2: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Agenda

• Organize

• How far am I?

• Size matters

• Technicalities

Page 3: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 4: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 5: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 6: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 7: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 8: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 9: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Where do you see yourself?

Page 10: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 11: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 12: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 13: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Breaking up the monolith

Page 14: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Into Microservices

Page 15: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 16: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 17: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Tightly coupled componentsAll components updated together

Not agile, time to market suffers

Scale by cloning entire appsAll components scaled similarly expensive

The Trouble With Monoliths

Page 18: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Do one thing wellManage independent code and state

Are generally developed by a small cross-functional team

Are built with task-appropriate languages/frameworks

Are loosely coupledCommunicate over well-defined interfaces/protocols

Have unique names (URI) that can be resolved

Are independently updated

Are independently scaled

Microservices

Page 19: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Why?

Higher density - reduce cost

Scale the things that needs scaling

Deliver more and faster

Deploy features independent from each other

Page 20: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 21: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Cloud Maturity Model

Page 22: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

1. Cloud Infrastructure ready

Existing Apps.NET Web apps (on-prem.)

Lift & Shift.NET Web apps (Cloud)

On-Premises

Relational

Database

IaaS Cloud

Using:

Servers or VMs on-premises

SQL Server, Oracle, MySQL, etc.

Using:

Virtual Machines (VM)

Azure SQL DB Managed Instance

Simply Rehost your on-premise application to IaaS on Azure

PROS

✓ No re-architect or new code

✓ Least effort for quick migration

✓ Supported on the least common

denominator on Azure

Page 23: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

1. Cloud Infrastructure ready

Existing Apps.NET Web apps (on-prem.)

Lift & Shift.NET Web apps (Cloud)

On-Premises

Relational

Database

IaaS Cloud

Using:

Servers or VMs on-premises

SQL Server, Oracle, MySQL, etc.

Using:

Virtual Machines (VM)

SQL DB Managed Instance

Simply Rehost your on-premise application to IaaS on Azure

PROS✓ No re-architect or new code

✓ Least effort for quick migration

✓ Supported on the least common denominator

on Azure

CONS× Smaller Cloud Value

× Manual Patching, Upgrades

× No Automated App Scaling and High Availability

Page 24: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Cloud-

Optimized

Cloud Optimized

Modernization Maturity Model

Existing

Apps & Services.NET Framework

on-premises

Cloud

Infrastructure-

Ready

Cloud

DevOps-

Ready

• Lift and shift approaches• No code changes

Lift and Shift Existing .NET apps

Page 25: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

2. Cloud DevOps readyGet more Cloud benefit by Containerizing your app with Windows Server Docker Containers

and deploying them to Azure cloud or on-premises.

PROS✓ No re-architect or new code

✓ Increased density & lower deployment cost

✓ Improved productivity and DevOps agility

✓ Portability of apps and dependencies

✓ High availability and Orchestration with ACS/K8

and Service Fabric

Existing Apps.NET Web apps (on-prem.)

On-Premises

Relational

Database

Using:

Servers or VMs on-premises

SQL Server, Oracle, MySQL, etc.

Lift & Shift.NET Web apps (Cloud)

Page 26: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 27: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 28: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 29: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Docker Containers• Docker helps automating the

deployment of applications as

portable, self-sufficient

containers that can run on any

cloud or on-premises.

No more:

“It works in my dev machine!...

Why not in production?”

Keywords about WHY Docker?

- Dependencies (self-sufficient)

- Deployment

Now it is:

“If it works in Docker, it

works in production”

Page 30: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Infrastructure Infrastructure

Host Operating System

Hypervisor

Guest OS

Bins/Libs

App 1

Guest OS

Bins/Libs

App 2

Guest OS

Bins/Libs

App 3

Bins/Libs

App/Svc 1

Bins/Libs

App/Svc 2

Bins/Libs

App/Svc 3

Container Engine

Operating System

Virtual Machines Containerscompared to

+ Network isolation at container level+ Resources constraints at container level

Page 31: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Docker and .NET

• .NET Framework images

Windows Server Core

• .NET Core Docker images

xPlat. (Linux & Windows Nano Server)

See at Docker Hub

Page 32: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Image2Docker tool

• Ports existing Windows

application workloads to Docker

• IIS and ASP.NET appsExtract ASP.NET websites

config/dependencies from a VM or

server

• Generates dockerfiles for

Windows Docker images, based

on analysis of existing Windows

machines.

• Open Source community tool,

powered by Docker (the company)

Windows

IIS

ASP.NET

dockerfiles

Page 33: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Orchestrator Description Good for Common workloads

Kubernetes is an open-source platform

for automating deployment, scaling, and

operations of application containers

across clusters of hosts

Production-ready &

Windows/Linux

ecosystem

Microservices based on

containers

As a datacenter operating system,

DC/OS is itself a distributed system, a

cluster manager and a container

platform

Production-ready &

Linux ecosystem

Microservices based on

containers

Docker Swarm is a clustering and scheduling

tool for Docker containers. With Swarm, IT

administrators and developers can establish

and manage a cluster of Docker nodes as a

single virtual system

Production-ready &

Linux ecosystem

Microservices based on

containers

Azure Service Fabric is a distributed systems

platform that makes it easy to package,

deploy, and manage scalable and reliable

microservices

Production-ready &

Linux ecosystem

a) Stateful svc & Actors

b) Microservices based on

plain processes

c) Microservices based on

containers

Azure Product

Azure Container ServiceMesosphere DC/OS

Kubernetes

Docker Swarm

Service FabricAzure Service Fabric

Page 34: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Orchestrator Description Good for Common workloads

Kubernetes is an open-source platform

for automating deployment, scaling, and

operations of application containers

across clusters of hosts

Production-ready &

Windows/Linux

ecosystem

Microservices based on

containers

As a datacenter operating system,

DC/OS is itself a distributed system, a

cluster manager and a container

platform

Production-ready &

Linux ecosystem

Microservices based on

containers

Docker Swarm is a clustering and scheduling

tool for Docker containers. With Swarm, IT

administrators and developers can establish

and manage a cluster of Docker nodes as a

single virtual system

Production-ready &

Linux ecosystem

Microservices based on

containers

Azure Service Fabric is a distributed systems

platform that makes it easy to package,

deploy, and manage scalable and reliable

microservices

Production-ready &

Linux ecosystem

a) Stateful svc & Actors

b) Microservices based on

plain processes

c) Microservices based on

containers

Azure Product

Azure Container ServiceMesosphere DC/OS

Kubernetes

Docker Swarm

Service FabricAzure Service Fabric

Page 35: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

ACS – Kubernetes

Dev environment

Inner loop

1.

Build, CI

3.

VSTS

VS Application Insights

Code,

run,

debug

Application

code repo

(SCC)

Code

Push

2.

git push

Docker Hub (Internet)orAzure Container Registry (Azure)Docker

registry

docker push

Custom

Image

CD, deploy

4.

VSTS

(*)

Scenario: Deploy to Kubernetes through CI/CD pipelines

Page 36: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

2. CONS in Cloud DevOps readyGet more Cloud benefit by Containerizing your app with Windows Server Docker Containers and

deploying them to Azure using production orchestration

PROS✓ No re-architect or new code

✓ Increased density & lower deployment cost

✓ Improved productivity and DevOps agility

✓ Portability of apps and dependencies

✓ High availability and Orchestration with ACS/K8

and Service Fabric

Existing Apps.NET Web apps (on-prem.)

On-Premises

Relational

Database

Using:

Servers or VMs on-premises

SQL Server, Oracle, MySQL, etc.

Lift & Shift.NET Web apps (Cloud)

CONS× Containerization is an additional step in the

learning curve

Page 37: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Cloud Maturity Model

Page 38: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

3. Going to Cloud-Optimized (Full PaaS)

PROS✓ Optimized for long term agility

Existing Apps.NET Web apps (on-prem.)

On-Premises

Relational

Database

Using:

Servers or VMs on-premises

SQL Server, Oracle, MySQL, etc.

Extend your apps with new services based upon Server less computing, Microservices

architecture and PaaS services (AppService) to fully exploit the advantages of the cloud.

Wrap-up

Page 39: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

3. Going to Cloud-Optimized (Full PaaS)

PROS✓ Optimized for long term agility

✓ Optimized for scale and high availability

✓ Modern Architecture with Microservices and

Cloud Native technologies

Existing Apps.NET Web apps (on-prem.)

On-Premises

Relational

Database

Using:

Servers or VMs on-premises

SQL Server, Oracle, MySQL, etc.

Extend your apps with new services based upon Server less computing, Microservices

architecture and PaaS services (AppService) to fully exploit the advantages of the cloud.

Wrap-up

Page 40: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

When to use Azure App Service? (PaaS for Web Apps)

Server-side applications

in .NET Framework

App has

server/custom

dependencies?

Use just .NET

Framework

on pure

PaaS Cloud-Optimized

for

web apps

NO

dependencies

A

Use .NET

Framework

on Windows

ContainersB

Cloud DevOps-Ready

for

web apps

YES,

dependencies

Server/custom dependencies: i.e. MSI to install on server, COM/COM+ components, ISAPI, etc.

Page 41: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

3. Going to Cloud-Optimized (Full PaaS)

PROS✓ Optimized for long term agility

✓ Optimized for scale and high availability

✓ Modern Architecture with Microservices and

Cloud Native technologies

Existing Apps.NET Web apps (on-prem.)

On-Premises

Relational

Database

Using:

Servers or VMs on-premises

SQL Server, Oracle, MySQL, etc.

CONS× Requires significant code refactoring or rewriting

(increased time and budget)

Extend your apps with new services based upon Server less computing, Microservices

architecture and PaaS services (AppService) to fully exploit the advantages of the cloud.

Wrap-up

Page 42: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Modernization Maturity Model

Page 43: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and
Page 44: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

SQL is not the only option

Page 45: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Do you need to build everything?

Page 46: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Do you need a web server?

Page 47: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

Add Business Value

Page 48: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and

DevOps

Page 49: Agenda - azure.uhsky.noazure.uhsky.no/docs/samlinger/2018_mars_azure... · Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and