It Takes an Ecosystem to Build a Production Application by Ross Gardler

Preview:

Citation preview

It takes an ecosystem to build a production application

Ross Gardler@rgardler

Docker, Docker, Docker• Containers have been around for many years

• Docker Inc. did not invent them•They created open source software to build and manage containers

• Docker makes containers easy• Even I can create and run them

• Docker is a container format and a set of tools• Docker CLI, Docker Engine, Docker Swarm, Docker Compose, Docker Machine and more…

Docker makes it Easy• Many people agree that:• Development is easier with Docker• Scaling is easier with Docker• Continuous Integration is easier with Docker• Testing is easier with Docker

• So just adopt Docker and life is easier, right?

• Applications don’t consist of a single container• How do we manage applications?

Docker is an Ecosystem• Docker make Containerization accessible

• It has spawned an Ecosystem

• This session is about why the Ecosystem is improtant

About Me

“A model where IT organizations and developers can work together to build, ship and run their applications anywhere.” https://blog.docker.com/2016/02/containers-as-a-service-caas/

Docker offers portability• Docker containers are portable• Orchestrate them with Docker Swarm, Kubernetes, Apache Mesos, DC/OS etc.• Run them on Azure, AWS, Google, Digital Ocean etc.

• But, what about applications consisting of many containers?

An orchestrator is not enough• Continuous Delivery• Resource Management• High Availability• Storage• Networking• Load Balancing• Service Discovery• Monitoring• … and more

What about everything else?• Continuous Delivery• Resource Management• High Availability• Storage• Networking• Load Balancing• Service Discovery• Monitoring• … and more

• Who’s going to configure it all?

• What about optimizing for the infrastructure of choice?

• Are you locking into a cloud provider because of your choice of orchestrator?

Building a Container Hosting Platform

Docker Engine

Host Machines

Infra. as Code

Container Services (1st party, 3rd party)

Windows Server Linux

On Premise Cloud

Container ToolingService Tooling • Not everything is open source software

• There is a limit to portability when it comes to electricity and CPUs

• How do you minimize the lock-in to specific hardware and software infrastructure

Azure Container Service:Maintaining Portability of Workloads

Containers

Azure VMs and VM Scale Sets

ARM Template

Container Services (1st party, 3rd party)

Windows Server Linux

Azure Stack Azure

Container ToolingService ToolingLayer Supported Technologies

Configuration as Code

ARM, Dockerfile, Docker Compose, Marathon.json

High Availability Azure, VM Scale Sets

Container orchestration

Docker Swarm, Chronos, Marathon, Apache Mesos

Continuous Integration

Jenkins, VSTS

Monitoring OMS, Statsd, Cadvisor, Datadog

Networking Docker Networking

Storage Docker volumes

??? ???

Here’s what you get…

Infrastructure Layer(Electricity, CPUs, Cables restrict portability)

Azure Container Service:Maintaining Portability of Workloads

Management Layer(Variety of solutions, some more portable than others)

Application Layer(Docker Containers promise portability)

Demo: ACS Deploymenthttp://portal.azure.com

Demo: Standard Docker Tooling

Contributing to the Ecosystem

Demo:Jenkins and ACS

Choice, flexibility, scalability

Swarm in Azure Container Service

Preview Demo: Windows Server Containers

Bringing it All Together

Azure SQL Database

Load Balancer

Containers in Swarm

Private Preview:Windows Server Containers on Azure Container Service

Self nominate at https://aka.ms/acswin

Bringing the Ecosystem to You

Demo:Monitoring solutions

Demo:Microscaling

Where will the ecosystem take you from here?

Docker Datacentre: Integrated, end-to-end platform for agile application development and managementEnables hybrid use cases Azure / On-premise

Private Preview:Windows Server Containers on Azure Container Service

Self nominate at https://aka.ms/acswin

Recommended