Building large scale apps traditionally has traditionally meant building large monolithic apps to handle everything. In the new age of the cloud and on premise data centers, increasingly the world is looking to containers and microservices. This allows flexibility and agility. Individual teams can choose the tools they need and be assured they'll work in the environment they want. And it also has implications for how we do developer relations, making it easier to deploy samples without worrying about environment. This session will look at microservices and how they are changing both the enterprise, and our work in developer relations.
3. The challenge: new matrix from hell
3
Virtual machines
Server
Public Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Static
Website
Web Front EndBackground
Workers
User DB
Analytics
DB
Queue API
Endpoint
Development Test & QA Production Scale Out
5. Solution: Docker containers
5
• Packages up software binaries and dependencies
• Isolates software from each other
• Container is a standard format
• Easily portable across environment
• Allows ecosystem to develop around its standard
Container
6. Docker Basics
Docker Image
The basis of a Docker container
Docker Container
The standard unit in which the application service resides
Docker Engine
Creates, ships and runs Docker containers deployable on physical or virtual
host locally, in a datacenter or cloud service provider
Docker Registry
A registry for image storing and collaboration (on premise or cloud base)
7. Linux Containers UnikernelsVM per Container
Linux Kernel
App App
App App App
App
HypervisorHypervisor
Efficient resource sharing
Application compatibility
Linux
Strong hardware isolation
High resource overhead
Strong hardware isolation
Efficient. Specialised. Immutable
App App App
Linux Linux
Hypervisor
8. Why do Developers Care?
• Build once…(finally) run anywhere
• A clean, safe, hygienic and portable runtime environment for your app.
• Polyglot development: 88% of developers use more than one language (IDC)
• Run each app in its own isolated container, with all it’s dependencies.
• Automate testing, integration, packaging…anything you can script
• Reduce/eliminate concerns about compatibility on different platforms, either your own or
your customers.
• Cheap, zero-penalty containers to deploy services
• All you need is a text editor, git, and Docker
9. Why do Ops Care?
• Configure once…run anything
• Make the entire lifecycle more efficient, consistent, and repeatable
• Increase the quality of code produced by developers
• Eliminate inconsistencies between development, test, production, and customer environments
• Support segregation of duties
• Significantly improves the speed and reliability of continuous deployment and continuous
integration systems
• Because the containers are so lightweight, address significant performance, costs, deployment,
and portability issues normally associated with VMs
12. • Know where your developers are, they’re on Docker
• Build samples for Docker
• Build solutions in Docker
• Easy to distribute images
• Don’t worry about versions
• Build small
Why do DevRel Care?
14. 14
Open Source Project
•2B+ Docker Image Downloads
• 2000+ contributors
• 40K+ GitHub stars
• 200K+ Dockerized apps
• 240 Meetups in 70 countries
• 95K Meetup members
Containers as a Service provider
• Integrated platform for dev and IT
• Commercial technical support
Docker project sponsor
• Primary sponsor of Docker project
• Supports project maintainers
Docker
The Docker Project Docker Inc
15. The Docker ecosystem
Dev Tools
Official Repositories
Operating Systems
Big Data
Service Discovery
Build / Continuous Integration
Configuration Management
Consulting &Training
Management
Storage
Clustering & Scheduling
Networking
Infrastructure & Service Providers
Storage
Security
Monitoring & Logging
15