Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SUGCON 2015: Docker Containers and Sitecore

2,310 views

Published on

Introduction to Docker for Sitecore developers, sys admins, and managers. Docker history, use cases, use of Docker with Sitecore. Overview of Mongo and Solr on Docker with Sitecore. Shipping Sitecore code using Docker, Continuous Integration, and Immutable Infrastructure in today's CMS development. Docker makes DevOps a reality!

Published in: Software
  • Login to see the comments

  • Be the first to like this

SUGCON 2015: Docker Containers and Sitecore

  1. 1. Organized by the Community, for the Community. HARNESSTHE POWER OF CONTAINERS VASILIY FOMICHEV SOLUTIONSARCHITECT
  2. 2. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015SUGCON NORTH AMERICA 2015 2 VASILIY FOMICHEV SOLUTIONARCHITECT VERNDALE • Sitecore Technology MVP • Technology enthusiast • Passionate about innovation innovation • cmsbestpractices.com https://www.linkedin.com/in/vasiliyfomichev @vasiliyfomichev INTRODUCTION
  3. 3. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 3 WHAT ARE WE LOOKING AT? TODAY’S DEVELOPMENT MODEL WHAT ARE “CONTAINERS” HOW CAN DOCKER HELP INTHE SITECOREWORLD? DOCKERAND DISTRIBUTED DEVELOPMENT MODEL DEMOS SOLR ON DOCKER MONGO ON DOCKER WHERE ISTHIS HEADED?
  4. 4. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 4 WHAT’STHE PROBLEM?
  5. 5. 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
  6. 6. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 6 WHAT ARE “CONTAINERS”?
  7. 7. Organized by the Community, for the Community. BEFORE CONTAINER STANDARDS
  8. 8. 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.
  9. 9. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015
  10. 10. Organized by the Community, for the Community. HOSTING CONTAINERS
  11. 11. 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 ForceApp 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
  12. 12. Organized by the Community, for the Community.
  13. 13. Organized by the Community, for the Community. DOCKER IS GROWING (18,000% GROWTH)
  14. 14. Organized by the Community, for the Community. ENTERPRISES RAPIDLY ADOPTING DOCKER Small, 30% Midsize, 15% Large, 56% Company Sizes Using Docker
  15. 15. 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)
  16. 16. Organized by the Community, for the Community. HOWTINY ISTINY? • ~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
  17. 17. 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
  18. 18. 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
  19. 19. Organized by the Community, for the Community. WHY CONTAINERS? Developers Enable ‘write-once, run-anywhere’ apps Enables microservice architectures Great for dev/test of apps and services (thousands available from Docker) Reproducibility Operations Portability, Portability, Portability Standardized development, QA, and prod environments Abstract differences in OS distributions and underlying infrastructure Easily scale-up and scale-down in response to changing business needs DevOps
  20. 20. Organized by the Community, for the Community. HOSTING CONTAINERS Locally with: • DockerToolbox (Linux) • HyperV (Windows) Physical Servers • Linux (Linux) • Windows 2016TP3 (Windows) Clouds • Azure (Linux &Windows) AzureOn Premises Service ProviderLocally
  21. 21. Organized by the Community, for the Community. DOCKER DISTRIBUTION
  22. 22. Organized by the Community, for the Community. DOCKERFILE
  23. 23. Organized by the Community, for the Community. WINDOWS SERVER CONTAINERS Creation, deployment, and management Developers Containers pushed to central repository Operations automates 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
  24. 24. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 Microsoft Cloud Azure On Premises Service Provider Container Technologies Container Management PowerShell OthersDocker Development Environment s Others…
  25. 25. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 25 SITECORE AND CONTAINERS
  26. 26. Organized by the Community, for the Community. MONGO ON DOCKER • Simple configuration – Single instance – Replica set (development) • Scaled configuration – Scale horizontally – Sharding – Replica sets
  27. 27. 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
  28. 28. Organized by the Community, for the Community. SITECORE ON DOCKER (COMING!) • SimpleConfiguration – Single instance – Scaled CD/CM environments (development) • Scaled configuration – Highly scaled infrastructure – Load balanced server instances
  29. 29. Organized by the Community, for the Community. DOCKER HUB • Docker Hub – Base repository – Private vs Public – Solr for Sitecore
  30. 30. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 30 COMMON QUESTIONS
  31. 31. 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/WindowsVM running Docker daemon 2. Docker Linux andWindows hosts – You can only create the same container as the underlying hostVM - Linux host = Linux containers 3. Docker Image vs Docker Container – Image =The definition – literally a single file [MyWebsite] – Container – An instance of an image [3 instances of MyWebsite] 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! – DockerTrusted Registry – Dedicated registry application deployable on-premise or direct fromAzure Marketplace 5 COMMON DOCKER QUESTIONS
  32. 32. 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
  33. 33. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 33 MODULAR DESIGN
  34. 34. Organized by the Community, for the Community. MOVINGTO MODULAR DESIGN • How will you move your website?
  35. 35. Organized by the Community, for the Community. THINK CONTAINERS • How will your app scale?
  36. 36. Organized by the Community, for the Community. Front End Logic Caching Persistenc e IDENTIFYTHE SCALING BOUNDARIES
  37. 37. Organized by the Community, for the Community. IDENTIFYTHE SCALING BOUNDARIES Email Campaigns Product Mgmnt Custome r Service Basket Mgmnt Payment Gateway Product Info Shopper Profile Order StatusLogic Order Status Basket Mgmnt Checkout Back Office Customer Mgmnt Product Info Front End Caching Persistenc e
  38. 38. 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 Persistenc e Email Campaigns Product Mgmnt Custome r Service Order Status Order Status Back Office Customer Mgmnt Basket Mgmnt Payment Gateway Product Info Shopper Profile Basket Mgmnt Checkout Product Info IDENTIFYTHE SCALING BOUNDARIES
  39. 39. Organized by the Community, for the Community. PREPARE, PREPARE, PREPARE • Think Modular Design • Think “micro services” • Think “Composable”
  40. 40. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 40 COMPLEMENTARYTOOLS
  41. 41. Organized by the Community, for the Community. SOME OTHER DOCKER CONCEPTS Compose Define and deploy a multi-container application Swarm Pool of hosts treated as a single unit, control over multi-container environments
  42. 42. Organized by the Community, for the Community. DOCKER COMPOSE EXAMPLE
  43. 43. Organized by the Community, for the Community. DOCKER SWARM • Adds a collection of virtual machines into one logical cluster. • Same DockerAPI • Elect a leader to receive commands and send to cluster • Scheduler – Constraints – set a label on aVM/Node so matching containers use thatVM (ex: region=us-west) – Affinities – Filters for labels, image, containers – ex: -e affinity:container==frontend) • Various Strategies
  44. 44. 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!
  45. 45. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 SM 45 THANKYOUTO OUR SPONSORS!
  46. 46. Organized by the Community, for the Community.SUGCON NORTH AMERICA 2015 THANKYOU! https://www.linkedin.com/in/vasiliyfomichev @vasiliyfomichev VASILIY FOMICHEV SOLUTIONSARCHITECT http://content.verndale.com/sugconvasiliy http://www.cmsbestpractices.com Special thanks to Steve Lasker, Microsoft

×