Linux A first-class citizen in Windows Azure Bruno Terkaly bterkaly@microsoft.com Principal Software Engineer Mobile/Cloud/Startup/Enterprise 1
First, I am software developer (C/C++, ASM, C#, Java, Node.js, etc) O Reilly Author (Just about to release my second 8 hour course) I help companies migrate off monolithic architectures Support Executive Escalations, Evaluate potential acquisitions/partnerships for leadership team Onboard strategically important ISVs onto Azure - focusing on Linux-based workloads. Currently, focusing on distributed architectures, the democratization of containerbased workloads Excited about platform-as-a-service abstractions to manage large distributed workloads.
Microsoft Azure A Cloud offering choice Goals for today Introduction To Azure IT Infrastructure Storage Cloud Tour Through The Azure Portal Tour In Azure Data Center Provisioning Infrastructure From The Portal Marketplace Global Continuous Availability Provisioning Open Source Software Linux Marketplace Offerings Containers, Distributed Computing And Microservices Strategy Connect To Cloud Services Dynamic Infrastructure 2
Platform Services Security & Management Portal Active Directory Cloud Services Batch Service Fabric Remote App Web Apps Mobile Apps API Apps Logic Apps API Management Notification Hubs Visual Studio Team Project Azure SDK Application Insights Hybrid Operations Azure AD Connect Health AD Privileged Identity Management Multi-Factor Authentication Backup Automation Storage Queues Biztalk Services HDInsight Machine Learning SQL Database SQL Data Warehouse Operational Insights Key Vault Hybrid Connections Service Bus Data Factory Event Hubs Redis Cache Search Import/Export Store / Marketplace VM Image Gallery & VM Depot Media Services Content Delivery Network (CDN) Stream Analytics Mobile Engagement DocumentDB Tables Site Recovery StorSimple Infrastructure Services
Demo A quick tour with the portal
Demo Quick Data Center Tour Where to run Linux workloads
Azure Security
Code JSON
DEMO: Let s go view all the templates
Demo Quick Start Templates [ jump start the creation of cloud infrastructure]
Demo Provisioning Resources With The Azure Resource Manager (The ARM)
Demo Deploying Github
Demo Deploying a MySQL cluster
Virtual Network Web Tier Application Tier Data Tier Let s build out the data tier with ARM templates The Data Tier can be built out with 1 command Needed Infrastructure MySQL / Percona Cluster
The birth of the container
The ability to break a problem into smaller pieces is always beneficial in unexpected ways, and containers offer a way of doing that on a scale not possible before.
Container Essential Value Propositions Running apps in isolation Abstracting the plumbing Democratizing distributed applications Running anywhere Getting to production Higher Application Density Predictable Dev Test Prod 19
Driving Docker Value Not just about optimizing application performance API REST API Passenger Management REST API Billing Focus now is optimizing the speed of service delivery Passenger Web User Interface REST API Driver Management REST API Payments More than just about cost Driver Web UI REST API Trip Management REST API Notification It is about creating new revenue streams Mobile-first and user-friendly big data applications Containerization and Microservices Simple to develop Simple to deploy Simple to scale 20
Dockerized app Run anywhere
22 A NEW ARCHITECTURAL STYLE
Most Widely Used Images NGINX Redis Ubuntu Logspout MongoDB Elasticsearch CAdvisor MySQL Postgres Docker is being used to contain a lot of HTTP servers, it seems. It is interesting that Apache (httpd) didn t make the top 10. This popular in-memory key/value data store is often used as an in-memory database, message queue, or cache. Still the default to build images. For collecting logs from all containers on a host, and routing them to wherever they need to go. The widely-used NoSQL datastore. Full text search. Used by Kubernetes to collect metrics from containers. The most widely used open source database in the world. The second-most widely used open source database in the world. Adding the Postgres and MySQL numbers, it appears that using Docker to run relational databases is surprisingly common. 23
Microservices Microservices are currently getting a lot of attention API REST API Passenger Management REST API Billing Articles Microservices Social mediaunlock Blogs the real Conference payoff presentations for ( like this one ) containers Micrososervices are architectural style They are vehicle for those independently deployable pieces A single application as a suite of small services Each service runs running in its own process Serivce communication via lightweight mechanisms Passenger Web User Interface Driver Web UI REST API REST API Driver Management Trip Management REST API REST API A potential architecture to build your own taxi service Payments Notification 24 Often with an HTTP protocol
Virtual Machines Containerization
Where can you run these containers? Hosted in a cloud on VMs Azure Cloud-hosted Server Host OS (Windows) Bare Metal Virtual Cloud Generally you run one app per container, although more is possible. HyperVisor Docker VM Extension Guest OS (Linux) Docker Daemon Container 1 Container 2 App A App C App B App D 26
Virtual Machine Container App B Bins/Libraries App A Bins/Libraries App A Bins/Libraries App B Bins/Libraries Guest OS NO Container Support Guest OS NO Container Support Guest OS w/ Container Support Hypervisor Server
Most Widely Used Images NGINX Redis Ubuntu Logspout MongoDB Elasticsearch CAdvisor MySQL Postgres Docker is being used to contain a lot of HTTP servers, it seems. It is interesting that Apache (httpd) didn t make the top 10. This popular in-memory key/value data store is often used as an in-memory database, message queue, or cache. Still the default to build images. For collecting logs from all containers on a host, and routing them to wherever they need to go. The widely-used NoSQL datastore. Full text search. Used by Kubernetes to collect metrics from containers. The most widely used open source database in the world. The second-most widely used open source database in the world. Adding the Postgres and MySQL numbers, it appears that using Docker to run relational databases is surprisingly common. 28
Orchestration Solutions Orchestration Management Cloud Cloud
Docker Manager 1 Docker Client Microsoft Azure Docker daemon Agent Docker daemon Agent 2 3 4 Running containers Docker daemon Agent Node Node Node Microsoft Azure Docker daemon Agent Docker APIs over HTTP Docker Hub Image repositories NGINX PHP Java
Docker Manager 1 Docker Client Microsoft Azure Docker daemon Agent Docker daemon Agent 2 3 4 Running containers Docker daemon Agent Node Node Node Microsoft Azure Docker daemon Agent Docker APIs over HTTP Docker Hub Image repositories NGINX PHP Java
Docker Manager 1 Docker Client Microsoft Azure Docker daemon Agent Docker daemon Agent 2 3 4 Running containers Docker daemon Agent Node Node Node Microsoft Azure Docker daemon Agent Docker APIs over HTTP Docker Hub Image repositories NGINX PHP Java
docker-compose.yml docker-compose.yml
Docker Manager 1 Docker Client Microsoft Azure Docker daemon Agent Docker daemon Agent 2 3 4 Running containers Docker daemon Agent Node Node Node Microsoft Azure Docker daemon Agent Docker APIs over HTTP Docker Hub Image repositories NGINX PHP Java Last content slide
Linux A first-class citizen in Windows Azure Conclusion Wrap up Questions? Bruno Terkaly bterkaly@microsoft.com Principal Software Engineer Mobile/Cloud/Startup/Enterprise