The Business Case for Containerization
Introduction About myself Our challenge as technologists
Why Containers? Maturity Widespread Applicability Proven Economic Value
From CEO’s Perspective Containers . . . Don’t appear to add any sort of features or functionality to the product. We’re operating fine without containers right now Is this just another technological fad? So how is this going to make or save me money?
But first a refresher on Virtualization . . . Servers became more and more powerful Machines could be emulated on other machines Possible to run multiple OSs on a single physical piece of hardware Made the cloud possible
Hypervisor Virtualization Server Hardware Virtual Machine #1 Virtual H/W Virtual H/W Virtual H/W Server Hardware
Virtualization Benefits Run multiple Virtual Machines on a single physical machine Boot up new VMs in minutes to accommodate customer demand Move a VM from one physical machine to another (sometimes even without stopping/rebooting the instance) Achieve true multi-tenancy of your physical resources Surged in popularity through 1990s
Containerization Particular type of virtualization (aka OS virtualization) Underlying OS is shared by many containers Each container’s resources and “view” is limited Libraries, Dependencies, Environment Variables, etc. are included Can work in conjunction with virtualization
Server OS Containerization Container Engine Container 1 Container 2 Container N . . . . . . . . . . . . . . . Server OS Server Hardware
How does this differ from just running an application? Containers limited allocated resources (memory, compute, storage, access to peripherals, etc.). From their perspective, these are all the resources that exist on the current machine and they’re the only application running. Furthermore, all dependencies are packaged with the application. The filesystem is namespaced and “fork on write” is used for App specific copies of OS files. Share other libraries and binaries
Comparing Containers & Virtual Machines Similarities Both improve isolation and security Both allow for quick portability Containers differ: Share the underlying operating system with one another. This cuts overhead and saves resources
Evolution of Software Paradigms Fad or Trend? Evolution of Software Paradigms 1960 – 1970 Mainframes Decouple use from the where the technology is developed 1980-90s Desktop Applications running on PCs Decouple the location of the user from where the application runs 1990s Basic Web Application (Client/ Server) over physical servers Decouple the OS from the hardware 2000s SaaS Applications Running on VMs Decouple the application (& dependencies) from OS 2010s Public Cloud / Containerization Each Decoupling Event Brings Greater Flexibility / Tend never to Give up that Flexibility
Containers and Microservices Compliment One Another An architectural approach to developing a single application as suite of small services Own their own Data Fault Isolated Easy to Monitor Microservices Small Autonomous Encapsulation Independently Deployable Aligned with Business Functionality
Monolith vs Microservice Architecture
Microservices & Containerization Microservices - architectural design pattern Containers - deployment technology Natural, complementary fit . . . Smaller / less resource intensive processes Enforces loose coupling Independently deployable Business Benefits – Reduced Downtime, Less Technical Debt
Other PROD PROD Portability Decouples the Application from the OS Dependencies and Configuration Files are Included Move across environments Apply Updates to Servers without Impact DEV QA TEST Staging UAT PROD Other PROD Business Benefits – Improved Productivity, Time to Market, Easier Migrations
Maybe not quite as secure as VMs Isolation “Enforce upper boundaries on how much system resource (memory, storage, CPU, network bandwidth, and disk I/O) a container can consume so that a critical application isn't squeezed out by noisy neighbors.” Bottom Line: Containers running across the same OS don’t impact once another Improved Security Greater Reliability Maybe not quite as secure as VMs Business Benefits – Improved Security and Uptime
Speed & Smooth Horizontal Scaling Up and running in seconds (Compared to minutes with VMs) Dynamic Scaling / Up and Down Match you customer’s usage patterns Container Orchestration Container Engines Automated rollout / rollback Auto-scaling Declarative management Business Benefits – Cost Savings / Ability to Response to Unpredictable Usage
Resource Efficiency Much less overhead Many containers can be packed onto a single server Reduced hosting costs Moving Truck Analogy Business Benefits – Costs Savings
Business Advantages Agile Response to Customer Demand Reduced Downtime Quicker Deployments Reduced Technical Debt Greater Resource Efficiency Easier Migration Improved Customer Experience Greater Productivity Reduced Costs
Questions?
4100 Spring Valley Road Suite 308 Dallas, TX 75244 Texas 4100 Spring Valley Road Suite 308 Dallas, TX 75244 Tel: +1.469.374.0500 | Fax: +1.469.322.0490 Silicon Valley 1750 Meridian Avenue Suite 4105 San Jose, CA 95150 Tel: +1.510.519.9673 | Fax: +1.510.519.9673 India 3rd Floor, Revolution Mall, Above Big Bazaar, Kothrud, Pune, India 411 038 Tel: +91.20.67283222 | Fax: +91.20.67283222 sales@synerzip.com
500+ Dual-Shore 110+ Inc. 5000 10+ 50% DNA 2X Who is Synerzip Synerzip is your agile software product development partner 500+ strong team Dual-Shore matured delivery model 110+ product success stories Inc. 5000 awarded Inc 5000 6 years in a row 10+ years in business 50% savings from optimized delivery DNA a truly agile product development partner 2X accelerate product roadmap