Vasiliy Fomichev - Harness the Power of Containers - SUGCON

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

Transcript of Vasiliy Fomichev - Harness the Power of Containers - SUGCON

Organized  by  the  Community,  for  the  Community.

HARNESS  THE  POWER  OF  CONTAINERS

VASILIY  FOMICHEVSOLUTIONS  ARCHITECT

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

VASILIY FOMICHEVSOLUTION ARCHITECTVERNDALE

• Sitecore Technology MVP

• Technology enthusiast• Passionate about

innovation• cmsbestpractices.com

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

@vasiliyfomichev

INTRODUCTION

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

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?

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

WHAT’S  THE  PROBLEM?

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

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

WHAT  ARE  “CONTAINERS”?

Organized  by  the  Community,  for  the  Community.

BEFORE  CONTAINER  STANDARDS

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.  

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

Organized  by  the  Community,  for  the  Community.

HOSTING  CONTAINERS

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

Organized  by  the  Community,  for  the  Community.

Organized  by  the  Community,  for  the  Community.

DOCKER  IS  GROWING  (18,000%  GROWTH)

Organized  by  the  Community,  for  the  Community.

ENTERPRISES  RAPIDLY  ADOPTING  DOCKER

Small,  30%

Midsize,  15%

Large,  56%

Company  Sizes  Using  Docker

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)

Organized  by  the  Community,  for  the  Community.

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 16

Organized  by  the  Community,  for  the  Community.

SERVER  CORE  REQUIREMENTS

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

• Recommended– 512MB+– 2GHz+  CPU

SUGCON  NORTH   AMERICA  2015 17

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

Organized  by  the  Community,  for  the  Community.

WHY  CONTAINERS?

Developers

Enable  ‘write-­‐once,  run-­‐anywhere’  appsEnables  microservicearchitecturesGreat  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

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

Organized  by  the  Community,  for  the  Community.

DOCKER  DISTRIBUTION

Organized  by  the  Community,  for  the  Community.

DOCKERFILE

Organized  by  the  Community,  for  the  Community.

WINDOWS  SERVER  CONTAINERS

Creation,  deployment,  and  management

Developers

Containers  pushed  tocentral  repository

Operationsautomates  deployment  and  monitors  

deployed  apps  from  central  repository

Operations collaborates  with  developers to  provide  app  metrics  and  insights

Developers  update,  iterate,  and  deploy  updated  containers

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

Microsoft  CloudAzure On  Premises Service   Provider

Container  Technologies

Container  ManagementPowerShell OthersDocker

DevelopmentEnvironments

Others…

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

SITECOREAND  CONTAINERS

Organized  by  the  Community,  for  the  Community.

MONGOON  DOCKER

• Simple  configuration– Single  instance

– Replica  set  (development)

• Scaled  configuration– Scale  horizontally  

– Sharding

– Replica  sets

Organized  by  the  Community,  for  the  Community.

SOLRON  DOCKER

• Simple  configuration– Single  instance– SolrCloud  (development)

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

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

Organized  by  the  Community,  for  the  Community.

DOCKER  HUB

• Docker  Hub– Base  repository– Private  vs  Public  – Solr for  Sitecore

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

COMMON  QUESTIONS

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  containers

3. 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-­‐premiseor  direct  from  Azure  

Marketplace

5COMMON  DOCKER  QUESTIONS

Organized  by  the  Community,  for  the  Community.

5COMMON  DOCKER  QUESTIONS

replace   update5.        Deployments  replace  instead  of  update

“Immutable  infrastructure”

Update  Website  

Update  your  app  using  Web  Deploy  or  CI/CD

Replace  Docker  

Replace  running  containers  using  CI/CD,  Don’t  update  the  old  

container

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

MODULAR  DESIGN

Organized  by  the  Community,  for  the  Community.

MOVING  TO  MODULAR  DESIGN

• How  will  you  move  your  website?

Organized  by  the  Community,  for  the  Community.

THINK  CONTAINERS

• How  will  your  app  scale?

Organized  by  the  Community,  for  the  Community.

Front  EndLogic

CachingPersistenc

e

IDENTIFY  THE  SCALING  BOUNDARIES

Organized  by  the  Community,  for  the  Community.

IDENTIFY  THE  SCALING  BOUNDARIES

Email  CampaignsProduct  MgmntCustomer ServiceBasket  MgmntPayment  GatewayProduct  Info

Shopper  ProfileOrder  StatusLogic

Order  StatusBasket  MgmntCheckoutBackOffice

CustomerMgmntProduct  Info

Front  End

CachingPersistenc

e

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

Persistence

Email  Campaigns

Product  Mgmnt

Customer Service

Order  Status

Order  Status

BackOffice

CustomerMgmnt

Basket  Mgmnt

Payment  Gateway

Product  Info

Shopper  Profile

Basket  Mgmnt

Checkout

Product  Info

IDENTIFY  THE  SCALING  BOUNDARIES

Organized  by  the  Community,  for  the  Community.

PREPARE,  PREPARE,  PREPARE

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

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

COMPLEMENTARY  TOOLS

Organized  by  the  Community,  for  the  Community.

SOME  OTHER  DOCKER  CONCEPTS

ComposeDefine  and  deploy  a  multi-­‐container  application

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

Organized  by  the  Community,  for  the  Community.

DOCKER  COMPOSE  EXAMPLE

Organized  by  the  Community,  for  the  Community.

DOCKER  SWARM

• Adds  a  collection  of  virtual  machines  into  one  logical  cluster.  

• Same  Docker  API• Elect  a  leader  to  receive  commands  and  send  to  cluster• Scheduler

– Constraints  – 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

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!

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

SM

45

THANK  YOU  TO  OUR  SPONSORS!

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