SUGCON 2015: Docker Containers and Sitecore

46
Organized by the Community, for the Community. HARNESS THE POWER OF CONTAINERS VASILIY FOMICHEV SOLUTIONS ARCHITECT

Transcript of SUGCON 2015: Docker Containers and Sitecore

Page 1: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

HARNESS THE POWER OF CONTAINERS

VASILIY FOMICHEVSOLUTIONS ARCHITECT

Page 2: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 2SUGCON NORTH AMERICA 2015

VASILIY FOMICHEVSOLUTION ARCHITECTVERNDALE

• Sitecore Technology MVP

• Technology enthusiast

• Passionate about innovation

• cmsbestpractices.com

https://www.linkedin.com/in/vasiliyfomichev

@vasiliyfomichev

INTRODUCTION

Page 3: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 3SUGCON NORTH AMERICA 2015

WHAT ARE WE LOOKING AT?TODAY’S DEVELOPMENT MODELWHAT ARE “CONTAINERS”HOW CAN DOCKER HELP IN THE SITECORE WORLD?DOCKER AND DISTRIBUTED DEVELOPMENT MODELDEMOS

SOLR ON DOCKERMONGO ON DOCKER

WHERE IS THIS HEADED?

Page 4: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 4SUGCON NORTH AMERICA 2015

WHAT’S THE PROBLEM?

Page 5: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

DEVOPS CHALLENGES

• Local environment setups are getting more complex• Environment differences allow for bugs in applications• Manual setup it too complex and time consuming• Human error• Scalability issues on prem• Inability to reproduce production environment locally for

debugging• Inability to easily sync all Sitecore environments• Lack of QA and other types of reproducibility

Page 6: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 6SUGCON NORTH AMERICA 2015

WHAT ARE “CONTAINERS”?

Page 7: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

BEFORE CONTAINER STANDARDS

Page 8: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

SHIPPING CONTAINERS INVENTED

https://en.wikipedia.org/wiki/Malcom_McLean

In 1956, most cargo was loaded and unloaded by hand. Hand-loading a ship cost $5.86 a ton.

Malcom McLean born in 1913 developed the modern intermodal shipping container, which revolutionized transport and international trade.

McLean knew "A ship earns money only when she's at sea," and based his business on that efficiency.

Using containers, it cost only 16 cents a ton, a 39-fold savings. Containerization also greatly reduced the time to load and unload ships, improving reliability.

Page 9: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015

Page 10: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

HOSTING CONTAINERS

Page 11: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015

Staging

PersistenceCachingFront End

Logic

ProductionUAT

CachingFront End

Logic

Front End

Logic

Caching

Mobile Field Force App

Persistence

CachingFront End

Logic

Front End

Logic

Logic

Caching

Persistence

Front End

Logic

Caching

Warranty Repair App

Persistence

Front End

Logic

Front End

Image Management

Persistence

Front End

Image Proc

Caching

Docker Images

PersistenceCachingFront End

Logic

Logic

Logic

PersistenceCachingFront End

Logic PersistenceCachingFront End

Logic

Page 12: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

Page 13: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

DOCKER IS GROWING (18,000% GROWTH)

Page 14: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

ENTERPRISES RAPIDLY ADOPTING DOCKER

Small; 30%

Midsize; 15%

Large; 56%

Company Sizes Using Docker

Page 15: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

CONTAINER != VM

• VM’s– Full instances of the entire OS– Not easily multi-instanced ~SysPrep

• Containers– Layered elements of the OS + Components– Easily Duplicated, Start/Stop– Lightweight OS (Tiny Core Linux & Windows

Server Core)

Page 16: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 16

HOW TINY IS TINY?

• ~24MB download! Whaaaat?!• Runs completely from RAM• Minimal Requirements:

– 46MB of RAM– i486DX CPU (introduced in 1989, 50MHz, 8KB cache)

• Recommended Requirements:– 128MB+ of RAM– Pentium 2 CPU

SUGCON NORTH AMERICA 2015

Page 17: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 17

SERVER CORE REQUIREMENTS

• Minimum Requirement:– 256-512MB of RAM– 1GHz (x86) or 1.4Ghz (x64)CPU

• Recommended– 512MB+– 2GHz+ CPU

SUGCON NORTH AMERICA 2015

Page 18: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

CONTAINER COMPARISON

• Immutable infrastructure!• Fast startup (lightning fast!)• Portable & light-weight• A unit of deployment• Ease of creation• Each container can become a portion of the entire

app– May have multiple containers that make up one or more

than one app

Page 19: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

WHY CONTAINERS?

Developers

Enable ‘write-once, run-anywhere’ appsEnables microservice architecturesGreat for dev/test of apps and services (thousands available from Docker)Reproducibility

Operations

Portability, Portability, PortabilityStandardized development, QA, and prod environmentsAbstract differences in OS distributions and underlying infrastructureEasily scale-up and scale-down in response to changing business needs

DevOps

Modern DevOps1x every 2 weeks to 100x a day

MTTR 12x fasterAmazon deploys every 11.6 seconds

Page 20: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

HOSTING CONTAINERS

Locally with:• Docker Toolbox

(Linux)

• Hyper V (Windows)

Physical Servers• Linux (Linux)

• Windows 2016 TP3 (Windows)

Clouds• Azure (Linux &

Windows) AzureOn Premises Service ProviderLocally

Page 21: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

DOCKER DISTRIBUTION

Page 22: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

DOCKERFILE

Page 23: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

WINDOWS SERVER CONTAINERSCreation, deployment, and management

Developers build and test apps in containers,

using development environment

i.e. Visual Studio

Containers pushed tocentral repository

Operations automates

deployment and monitors deployed apps from central

repository

1 2

2

3Operations collaborates with developers to provide app metrics and insights

Developers update, iterate, and deploy updated containers

Page 24: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015

Microsoft CloudAzure On Premises Service Provider

Container Technologies

Container ManagementPowerShell OthersDocker

Development

Environments

Others…

Page 25: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 25SUGCON NORTH AMERICA 2015

SITECORE AND CONTAINERS

Page 26: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

MONGO ON DOCKER• Simple configuration– Single instance– Replica set (development)

• Scaled configuration– Scale horizontally – Sharding– Replica sets

Page 27: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

SOLR ON DOCKER• Simple configuration– Single instance– Solr Cloud (development)

• Scaled Configuration– Scale horizontally– Sharding– Replica sets– Cloud

Page 28: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

SITECORE ON DOCKER (COMING!)• Simple Configuration– Single instance– Scaled CD/CM environments (development)

• Scaled configuration– Highly scaled infrastructure– Load balanced server instances

Page 29: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

DOCKER HUB• Docker Hub

– Base repository– Private vs Public – Solr for Sitecore

Page 30: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 30SUGCON NORTH AMERICA 2015

COMMON QUESTIONS

Page 31: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

1. Docker client versus host– Docker client is a command line interface (CLI) Docker– Docker host is a Linux/Windows VM running Docker daemon

2. Docker Linux and Windows hosts – You can only create the same container as the underlying host VM - Linux host =

Linux containers3. Docker Image vs Docker Container

– Image = The definition – literally a single file [My Website]– Container – An instance of an image [3 instances of My Website]

4. Cloud Registry Service and Public Image Repos– Unlimited public repos, one free private or buy private repos– 50,000+ images - Wordpress, Nginx, Redis, MySQL, Logstash, and your images!– Docker Trusted Registry – Dedicated registry application deployable on-premise or

direct from Azure Marketplace

5 COMMON DOCKER QUESTIONS

Page 32: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

5 COMMON DOCKER QUESTIONS

5. Deployments replace instead of update“Immutable infrastructure”

Website Update your app using Web Deploy

or CI/CD

Docker Replace running containers using

CI/CD, Don’t update the old container

Page 33: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 33SUGCON NORTH AMERICA 2015

MODULAR DESIGN

Page 34: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

MOVING TO MODULAR DESIGN

• How will you move your website?

Page 35: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

THINK CONTAINERS

• How will your app scale?

Page 36: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

Front EndLogic

Caching Persistence

IDENTIFY THE SCALING BOUNDARIES

Page 37: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

IDENTIFY THE SCALING BOUNDARIES

Email Campaig

nsProduct MgmntCustom

er ServiceBasket Mgmnt

Payment

Gateway

Product Info

Shopper ProfileOrder StatusLogic

Order StatusBasket Mgmnt

Checkout

BackOffice

Customer

MgmntProduct

InfoFront End

Caching Persistence

Page 38: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

Basket Mgmnt

Payment

Gateway

Product Info

Shopper Profile

Basket Mgmnt

Checkout

Product Info

Basket Mgmnt

Payment

Gateway

Product Info

Shopper Profile

Basket Mgmnt

Checkout

Product Info

Caching

PersistenceEmail

Campaigns

Product Mgmnt

Customer

Service

Order Status

Order Status

BackOffice

Customer

Mgmnt

Basket Mgmnt

Payment

Gateway

Product Info

Shopper Profile

Basket Mgmnt

Checkout

Product Info

IDENTIFY THE SCALING BOUNDARIES

Page 39: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

PREPARE, PREPARE, PREPARE

• Think Modular Design• Think “micro services”• Think “Composable”

Page 40: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 40SUGCON NORTH AMERICA 2015

COMPLEMENTARY TOOLS

Page 41: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

SOME OTHER DOCKER CONCEPTSComposeDefine and deploy a multi-container application

SwarmPool of hosts treated as a single unit, control over multi-container environments

Page 42: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

DOCKER COMPOSE EXAMPLE

Pull Redis image from Docker hubCreate and Start Redis containerBuild an ASP.NET Docker imageCreate and Start the web image on port 80 with redis environment variables

Page 43: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

DOCKER SWARMAdds a collection of virtual machines into one logical cluster. Same Docker APIElect a leader to receive commands and send to clusterSchedulerConstraints – set a label on a VM/Node so matching containers use that VM

(ex: region=us-west)Affinities – Filters for labels, image, containers ex: -e affinity:container==frontend)Various Strategies

Page 44: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.

WRAPPING UP

• Containers Ease Development & Ops• Force a conversation of scalable design• Ease of movement (On Prem, AWS, Azure)• Immutable Infrastructure• Use Docker Hub repositories for base images• Run Solr and Mongo in containers• Run Sitecore in containers (coming soon) Really

soon!

Page 45: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community. 45SUGCON NORTH AMERICA 2015

THANK YOU TO OUR SPONSORS!

Page 46: SUGCON 2015: Docker Containers and Sitecore

Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015

THANK YOU!

https://www.linkedin.com/in/vasiliyfomichev

@vasiliyfomichev

VASILIY FOMICHEVSOLUTIONS ARCHITECT

http://content.verndale.com/sugconvasiliyhttp://www.cmsbestpractices.comSpecial thanks to Steve Lasker, Microsoft