-
Notifications
You must be signed in to change notification settings - Fork 13
Home
Open Job Description is a flexible open specification started by the team behind AWS Thinkbox Deadline for defining batch processing jobs that are portable between different scheduling system deployments. Making jobs portable across pipelines allows technical pipeline developers to more easily and flexibly test, adapt, and deploy the best scheduling solutions for their projects, eliminating the need for studios and developers to recreate every render submission variant from scratch.
We created Open Job Description after hearing frequently from studios that they found the choice of render farm management tools to be daunting due to the effort required to update or replace their tooling around the render farm. We also heard from software developers that they were unable to realistically release render farm plugins for their own applications despite being the most qualified to do so, as the render farm landscape was fractured and releasing multiple plugins for different render farm solutions would quickly siphon all their development capacity away from improving their software.
By creating and using tools that produce and/or consume portable jobs in Open Job Description form, you can develop a flexible production pipeline that directs these jobs to different scheduling system, or stores the jobs outside of any scheduling system for later processing.
Open Job Description is under active development. We want your feedback and participation as we move forward, together, in defining and implementing a specification that solves the problems in the space. Open Job Description needs to grow to be able to express all the jobs and workflows we'd love to support.
For deeper insight into our thought process and goals, we recommend this Academy Software Foundation talk by Pauline Koh, Senior Product Manager at Amazon Web Services, titled Portable Jobs for Open Source Content Production. If you want to keep going, this follow-up talk, also by Pauline Koh, at the subsequent Academy Software Foundation gathering titled Portable and Open Render Job Specifications is a gentle introduction into what you can accomplish with OpenJD. If you've already watched the first talk, you can start here on the second talk.
The fastest way to understand the bones of Open Job Description is to understand both How Jobs Are Constructed and How Jobs Are Run, followed by the Introduction to Creating a Job and browsing the provided sample templates in this GitHub repository.
We want your input! Please see our Contributing Guidelines for additional information.
- Discussions: We encourage you to post about what you would like to see in future revisions of the specification, share, and brag about how you are using Open Job Description, and engage with us and the community.
- Request for Comment: This repository exists because we want your comments on the specification. Please consider submitting an RFC if you have thoughts on how the specification could be improved.
- Issues: We encourage you to use the GitHub issue tracker to report bugs.
- Pull Requests: We welcome pull requests to improve this wiki documentation. Simply make your changes in our GitHub Repository and post a pull request.
If you have an Open Job Description project that you would like to advertise here then please submit a pull request.
- openjd-cli - A command-line interface for running and working with Open Job Description templates.
- openjd-model - A Python implementation of the data model for Open Job Description's template schemas.
- openjd-sessions - A Python library that can be used to build a runtime that is able to run Jobs in a Session as defined by Open Job Description.
This work is licensed under CC BY-ND 4.0