DC/OS 101

DC/OS 101

This DC/OS 101 tutorial will guide you through the steps necessary to get started using DC/OS.

The tutorial is designed to provide users and applications developers an overview of the basic pieces of DC/OS. We will discuss basic recipes for developing and orchestrating applications for a distributed landscape. To provide hands-on experience, we will develop and deploy multiple applications (including stateful, dockerized, and non-dockerized) on an actual cluster during each step of the tutorial. To provide even more rationale and background information the tutorial also includes optional deep dives into relevant topics.

The DC/OS 101 tutorial includes the following sessions:


First Steps

Welcome to part 1 of the DC/OS 101 Tutorial.

    Installing First Package

    Welcome to part 2 of the DC/OS 101 Tutorial.

      Deploying First Application

      We now have a working persistence layer -redis- running in our cluster. In this section we deploy the first app connecting to redis. Note that we deliberately choose to focus on the principles and to deploy a very simple app with no further logic than connecting to redis.

        Service Discovery

        Our application in the previous part used redis.marathon.l4lb.thisdcos.directory:6379 as the address for connecting to redis. As redis might be running on any agent in the cluster (and furthermore on different ports), how does this address link to the actual running redis instance? In this section, we will learn about DC/OS service discovery by exploring the different options for service discovery for apps in DC/OS.

          Native Applications

          We already deployed an app which is running internally in our cluster (i.e., it is not targeted to users directly). Next, will deploy an app which provides a web UI to users. We want to deploy this app natively, i.e., not relying on Docker (which is third-party dependency and hence adds complexity).

            Exposing Apps Publicly

            In this section we will make app2 available from outside the cluster by running it on a public agent node with Marathon-LB.

              Load-balancing

              In this final session, we will scale our application to multiple instances and learn how internal and external services choose which instance to use once the application has been scaled.

                Understanding Resources

                In this section we will learn how to monitor and understand our resource utilization, how resource limits are enforced, and how to debug resource management issues.