DC/OS Software Development Kit Status: Alpha

Frequently Asked Questions

What is the DC/OS SDK?

The DC/OS SDK is a collection of tools, libraries, and documentation for integrating services with DC/OS.

When should I use the DC/OS SDK?

Independent software vendors (ISVs) interested in offering production-grade services for DC/OS should use the SDK.

How can I get commercial support for the DC/OS SDK?

Mesosphere offers support to approved ISVs as part of the Mesosphere Partner Program.

What is a DC/OS service?

A DC/OS service is a service (typically a distributed service) in a DC/OS cluster. These services often have multiple instances that run on discrete DC/OS agents and provide redundancy and high availability. DC/OS services built using the DC/OS SDK implement schedulers, which allow for orchestrated installation, update and backup/recovery.

What is a DC/OS package?

A DC/OS package is an artifact for installing a service to any DC/OS cluster. DC/OS packages are analogous in concept to other operation systems packages like RPMs and DEBs. A DC/OS package includes metadata such as name, version, configurable settings, and service executables.

What is a Mesos framework?

In Mesos, a framework is the component responsible for the second level of scheduling in the Apache Mesos two-level scheduler architecture. Strictly speaking, the SDK is used to build Mesos frameworks, which appear as “services” in DC/OS.

What are the advantages of using the DC/OS SDK vs. building a framework from scratch?

The SDK dramatically simplifies integrating services with DC/OS and Mesosphere Enterprise DC/OS so that you can focus on your goals. In the past, integrating existing services with DC/OS meant developing a scheduler to evaluate and accept resource offers, launch and monitor tasks, and handle task reconciliation. Stateful services introduce additional concerns like reserving and accounting for resources, such as persistent volumes, and more complicated failure recovery semantics. Prior to the SDK, integrating services with DC/OS required tens of thousands of lines of code and months of development and maintenance. With the SDK, even the most complex services require only a few hundred lines of code to integrate with DC/OS.

Do I need to be a Java developer to use the DC/OS SDK?

No, the SDK offers a YAML interface suitable for simple integrations. Basic Java development skills are necessary for more complex integrations.

How long will it take to build my DC/OS service?

A developer with basic Java experience will find it easy to use the SDK to integrate existing services with DC/OS. A basic integration generally takes 1-3 days to develop, test, and release. Advanced integrations that include custom maintenance plans and automated recovery strategies usually take around 2-3 weeks to develop, test, and release.

How can I distribute my DC/OS package?

You have can distribute your DC/OS package in several ways:

When you want to maximize reach, DC/OS Universe is the recommended distribution channel. DC/OS Universe is an online repository of DC/OS packages available to all community and commercial users. Users install packages with a few clicks from Universe.

When you need to control distribution, we recommend bypassing DC/OS Universe and distributing your DC/OS package directly to your users. Your users can add your DC/OS package to their DC/OS cluster, then install your package with a few clicks as usual.

Can I use the DC/OS SDK to build a proprietary DC/OS package?

Yes, you can use the SDK to build a proprietary package. The SDK is licensed under the Apache License 2.0, which permits proprietary derivative works.

Can I contribute to the DC/OS SDK?

Yes, contributions are welcome. See CONTRIBUTING.

Will the DC/OS SDK work with Apache Mesos (without DC/OS)?

Yes, the DC/OS SDK can be used with Apache Mesos. DC/OS and Mesosphere Enterprise DC/OS offer APIs in additional to those available in Apache Mesos. These APIs are only available on DC/OS and Enterprise DC/OS. At this time, Mesosphere only tests the SDK libraries with open source DC/OS and Enterprise DC/OS. The reference implementations may depend on DC/OS APIs.