Developing DC/OS Services

Developing DC/OS Services

This section describes the developer-specific DC/OS components, explaining what is necessary to package and provide your own service on DC/OS.

The Mesosphere Datacenter Operating System (DC/OS) provides the optimal user experience possible for orchestrating and managing a datacenter. If you are an Apache Mesos developer, you are already familiar with developing a framework. DC/OS extends Apache Mesos by including a web interface for health checks and monitoring, a command-line, a service packaging description, and a repository that catalogs those packages.

Package Repositories

The DC/OS Universe contains all of the services that are installable on DC/OS. For more information on DC/OS Universe, see the GitHub Universe repository.

All packaged services are required to meet a certain standard as defined by Mesosphere. For details on submitting a DC/OS service, see Getting Started with Universe.

DC/OS service structure

Each DC/OS service in the Universe repo is comprised of JSON configuration files. These files are used create the packages that are installed on DC/OS.

Filename Description Required
config.json Specifies the supported configuration properties, represented as a JSON-schema. No
marathon.json.mustache Specifies a mustache template that creates a Marathon app definition capable of running your service. No
package.json Specifies the high level metadata about the package. Yes
resource.json Specifies all of the required externally hosted resources (e.g. Docker images, HTTP objects and images). No

For more information, see Getting Started with Universe.

CLI Specification

This document is intended for a developer creating new DC/OS CLI commands.

    Access by Proxy and VPN

    When developing services on DC/OS, you may find it helpful to access your cluster from your local machine via SOCKS proxy, HTTP proxy, or VPN. For instance, you can work from your own development environment and immediately test against your DC/OS cluster.