
A welcome to all the learners of this course on Docker, Apache Mesos and DC/OS
Overview and expected learning outcomes on this course on Docker, Apache Mesos and DC/OS
Explore how containers enable reliable, portable deployment by isolating dependencies with the Docker engine, treating servers as cattle and automating scalable dev ops across environments.
Discover Docker installation on Ubuntu, including updating apt, adding the Docker repository, purging old Docker engines, and installing Docker Engine and Docker Compose with official docs.
Hands-on Docker basics: pull and run busybox images, inspect images, and manage containers with run, stop, rm, and rmi, including port mapping and attaching to containers.
Explore Docker commands for containers, images, and the registry, including run, stop, attach, exec, and search, and examine Docker's enterprise benefits for cloud native apps.
Explore why docker containerized deployments across data-center nodes lead to manual sub-clusters and downtime. Learn how dynamic resource scheduling and unified compute power address inefficiencies and improve container utilization.
Discover how DC/OS abstracts the scheduler from the machines to enable dynamic, multi-tenant resource sharing and two-level scheduling, with frameworks like Spark and Hadoop running on Mesos.
Dc/os features enable a masters and workers cluster, resource offers to frameworks, and cross-cluster task scheduling. It supports containerized and non-containerized workloads, storage options, high availability, and zero-downtime upgrades.
Explore the dc/os architecture, from hardware to masters and agents, including dns, cli, web dashboard, marathon and chronos, and how the scheduler, executor, and resource master orchestrate containers.
Verify the dc/os installation deployed by cloud formation, review the five instances (one master, three slaves, one public load balancer), security groups, and internal and external load balancers.
Discover DC/OS components and services powering the cluster, from the master leader and ZooKeeper coordination to the admin router, cluster ID service, Cosmos installer, keepalive service, and log rotation.
Install the dc/os cli by running a short script that creates a virtual environment and downloads the cli client, then authenticate with a web portal token to configure the cluster.
Learn to use the DC/OS CLI to manage a DC/OS cluster, authenticate with an access token, connect to master and slave nodes via the Mosler proxy, and run cluster commands.
Launch and verify a Marathon app behind internal and external load balancers, map container ports, and use Mesos DNS to resolve tasks for seamless access.
Learn how dc/os virtual hosts route domain traffic to the correct containers through external and internal load balancers, with automatic service discovery and container-based scaling.
Discover how to monitor a dc/os cluster with a unified dashboard, harvest and persist logs using the elk stack and filebeat, and inspect service health, node metrics, and marathon tasks.
Learn to monitor a dc/os cluster via apis, using system health and aggregation endpoints to automate health checks, track nodes, services, and packages, and trigger alerts.
Learn how to push app code from git repositories to Docker Hub, build a fresh container image with a docker file, and deploy updated containers in DC/OS using automated builds.
Push code changes to DC/OS by creating a marathon branch and pull request, triggering a new container image build and blue green environment deployment.
Deploy a dockerized web app on DC/OS using docker-compose and a dockerfile, with a Python Flask app backed by Redis and a hits counter, behind external and internal load balancers.
Verify the Python app is reachable on the public network, with traffic routed by the external Marathon load balancer to front end and back end containers.
Discover additional resources and exclusive discounts in this bonus lecture, inviting you to explore more courses, subscribe to newsletters, connect on social media, and provide feedback to improve content.
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.
As the title suggests – this course aims to provide you enough knowledge about Docker, Apache Mesos, and DC/OS so that you can run and operate your own data center using these components together. But specifically: