O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Docker, Apache Mesos & DCOS: Run and manage you own IaaS cloud datacenter

Video Description

It’s been a few years since Marc Andreessen, the found of Mosaic and Netscape - coined the phrase software is eating the world. But indeed it is true today. , the idea that “every company needs to become a software company” is considered almost a cliché. No matter your industry, you’re expected to be reimagining your business to make sure you’re not the next local taxi company or hotel chain caught completely off guard by your equivalent of Uber or Airbnb. Doing business in the 21st century means embracing a world where software quite literally powers everything—from televisions to cars, and from social media to banking systems. In the mean time Software development has seen a paradigm shift in the last few decades. From the beginning of computing era in the 1960s up to late 1990s, the software was built by relatively small teams. These teams used large monolithic software stacks to build relatively simple and smaller applications which were used by 1 to a few tens of people. These applications were deployed on a central network server which the users connected to via their terminals and used the application. The current era is all about ubiquitous connectivity and ever increasing adoption of mobile computing. To cater to these demands - the modern mobile apps and web applications are reaching global scale and billions of users. These app and web applications are built by larger teams which are geographically distributed. They build those large applications by stitching together a collection of services, APIs or microservices. These services use a variety of stacks and are independent of each other. The services run on clusters spanning thousands or tens of thousands of servers or nodes. And the consumers use these applications over the cloud and the public internet using their mobile, tablet and desktop devices. Deployment, management and operationalizing these large complex infrastructures is a daunting task. Containerization of the apps and services help to simplify these tasks. But even containers leave A bulk of administration tasks for deploying the latest application code, upgrading the servers, mapping the service end points, etc. to the user and DevOps engineers. Won't it be great if we were able to aggregate and combine all the computing power available to us in our datacenter and treat it as one large computer? What if we had a smart operating system which could manage our entire data center just like Linux or MacOS or Windows can manage our personal computers. Whether we are managing two virtual nodes or 10,000 Of them - Wouldn’t it be nice just to instruct our collection of servers or our datacenter – hey datacenter I want to run a web application and a database? Here is the code – and here are the commands to run these applications – please figure out which nodes can run these applications; deploy them and run them. By the way, if any of those nodes die – please make sure you move my application to another healthy node so that the end users do not experience any disruption. Then based on the requirement of a particular app, a scheduler can dynamically allocate resources to the application. This will make the whole system much more efficient. We will be able to free up resources and drive the utilization up. This methodology has all kinds of benefits from saved costs to more uptime of the application and less administrative overhead. This is exactly what Docker, Apache Mesos, and DC/OS provide. Docker is open source engine that can help you automate the deployment of applications inside software containers. Is was released in March 2013 and has been gaining popularity ever since. It has over 100 million downloads, and over 75000 applications are running as dockerized applications – that is a LOT! Apache Mesos is an open source cluster manager that provides efficient resource isolation and sharing across distributed applications or frameworks. Mesosphere DC/OS is an enterprise grade datacenter-scale operating system, providing a single platform for running containers, big data, and distributed apps in production. DC/OS is built on the Apache Mesos core and provides newer technology including the native container-orchestration, Marathon application platform, intuitive user interfaces and much much more. Knowledge and experience about Docker, Apache Mesos and DC/OS could be very valuable for your career. The latest stats and figures show some amazing numbers like jobs requiring these skill sets pay higher than most of the jobs posted on public job boards within the US and annual salaries for professionals could be as high as $120,000. That is the exact reason why you must enroll in this course and take your career to the next level.

Table of Contents

  1. Promo 00:08:29
  2. Welcome and Introduction
    1. Introduction 00:01:57
    2. Course overview 00:03:44
  3. Containerization of apps
    1. Containerization of apps 00:15:51
    2. Introduction to Docker 00:10:29
    3. Docker installation 00:02:25
    4. Docker concepts and terms 00:03:46
    5. Docker commands - hands on 00:11:56
    6. Dockerfile and Docker Compose - hands on 00:11:02
    7. Docker commands and benefits 00:02:39
  4. Apache Mesosphere and DC/OS - Introduction
    1. Introduction to Apache Mesos 00:03:28
    2. DC/OS features 00:06:23
    3. Introduction to DC/OS 00:07:21
    4. DC/OS architecture 00:08:13
    5. Need for Apache Mesos 00:05:35
  5. DC/OS: Installation, Administration, and Operations
    1. DC/OS: installation, administration, and operations 00:01:20
    2. DC/OS - installation 00:08:20
    3. DC/OS - verify installation 00:03:18
    4. DC/OS components 00:02:07
    5. DC/OS - components and services 00:07:41
    6. DC/OS - accessing DC/OS 00:04:34
    7. DC/OS - install Command Line Interface (CLI) 00:04:08
    8. DCOS - CLI hands-on 00:06:13
    9. Introduction to Marathon 00:02:16
    10. DC/OS - run app in Marathon 00:14:03
    11. Introduction to Marathon load balancer 00:04:46
    12. DC/OS - run load balanced app in Marathon - Part 1 00:11:51
    13. DC/OS - run load balanced app in Marathon - Part 2 00:08:10
    14. DC/OS - virtual hosts 00:08:30
    15. DC/OS - logging 00:09:30
    16. DC/OS - package management 00:04:58
    17. DC/OS - monitoring via dashboard 00:04:51
    18. DC/OS - monitoring via APIs 00:05:49
  6. Deploying Real World Apps on DC/OS
    1. DC/OS - deploy real world app 00:01:24
    2. DC/OS - push app code 00:09:18
    3. DC/OS - push source code changes 00:06:36
    4. DC/OS - deploy multiple services 00:06:31
    5. DC/OS - deploy web application 00:15:05
    6. DC/OS - verify web application 00:04:38
  7. Conclusion
    1. Conclusion 00:00:56