title | menuWeight | redirect_from |
---|---|---|
Frequently Asked Questions |
20 |
/faq.html |
The DC/OS SDK is a collection of tools, libraries, and documentation for integrating services with DC/OS.
Independent software vendors (ISVs) interested in offering production-grade services for DC/OS should use the SDK.
Mesosphere offers support to approved ISVs as part of the Mesosphere Partner Program.
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.
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.
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.
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.
No, the SDK offers a YAML interface suitable for simple integrations. Basic Java development skills are necessary for more complex integrations.
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.
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.
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.
Yes, contributions are welcome. See CONTRIBUTING.
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.