2016-08-31 20:44:38 +03:00
|
|
|
[![Build Status](https://travis-ci.org/Azure/batch-shipyard.svg?branch=master)](https://travis-ci.org/Azure/batch-shipyard)
|
|
|
|
[![Docker Pulls](https://img.shields.io/docker/pulls/alfpark/batch-shipyard.svg)](https://hub.docker.com/r/alfpark/batch-shipyard)
|
|
|
|
[![Image Layers](https://images.microbadger.com/badges/image/alfpark/batch-shipyard.svg)](http://microbadger.com/images/alfpark/batch-shipyard)
|
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
# Batch Shipyard
|
2016-09-01 06:57:10 +03:00
|
|
|
[Batch Shipyard](https://github.com/Azure/batch-shipyard) is a tool to help
|
|
|
|
provision and execute Dockerized workloads on
|
|
|
|
[Azure Batch](https://azure.microsoft.com/en-us/services/batch/) compute
|
2016-09-01 07:43:03 +03:00
|
|
|
pools. No experience with the
|
|
|
|
[Azure Batch SDK](https://github.com/Azure/azure-batch-samples) is needed; run
|
|
|
|
your batch-style Docker tasks with easy-to-understand configuration files!
|
2016-08-31 19:38:33 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## Major Features
|
2016-08-31 20:44:38 +03:00
|
|
|
* Automated [Docker Host Engine](https://docker.io) installation on compute
|
2016-09-01 01:35:33 +03:00
|
|
|
nodes
|
|
|
|
* Automated deployment of required Docker images to compute nodes
|
2016-08-31 20:44:38 +03:00
|
|
|
* Accelerated Docker image deployment at scale to compute pools consisting of
|
2016-09-01 07:43:03 +03:00
|
|
|
a large number of VMs via private peer-to-peer distribution of Docker images
|
|
|
|
among the compute nodes
|
|
|
|
* Automated Docker Private Registry instance creation on compute nodes with
|
|
|
|
Docker images backed to Azure Storage if specified
|
2016-08-31 20:44:38 +03:00
|
|
|
* Automated
|
2016-09-01 01:35:33 +03:00
|
|
|
[Azure File Docker Volume Driver](https://github.com/Azure/azurefile-dockervolumedriver)
|
|
|
|
installation and share setup for SMB/CIFS backed to Azure Storage if
|
|
|
|
specified
|
2016-08-31 20:44:38 +03:00
|
|
|
* Seamless integration with Azure Batch job, task and file concepts along with
|
2016-09-01 07:43:03 +03:00
|
|
|
full pass-through of the
|
|
|
|
[Azure Batch API](https://azure.microsoft.com/en-us/documentation/articles/batch-api-basics/)
|
|
|
|
to containers executed on compute nodes
|
|
|
|
* Support for task dependencies allowing complex processing pipelines and
|
|
|
|
graphs with Docker containers
|
2016-08-31 20:44:38 +03:00
|
|
|
* Support for multi-instance tasks to accomodate Dockerized MPI applications
|
2016-09-01 01:35:33 +03:00
|
|
|
on compute pools
|
2016-08-31 20:44:38 +03:00
|
|
|
* Transparent assist for creating Docker containers utilizing Infiniband/RDMA
|
2016-09-01 01:35:33 +03:00
|
|
|
for MPI on
|
|
|
|
[HPC low-latency Azure VM instances](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-a8-a9-a10-a11-specs/)
|
2016-09-01 07:43:03 +03:00
|
|
|
(i.e., STANDARD\_A8 and STANDARD\_A9)
|
2016-09-01 01:35:33 +03:00
|
|
|
* Automatic set up of SSH tunneling to Docker Hosts on compute nodes if
|
|
|
|
specified
|
2016-08-31 20:44:38 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## Installation
|
2016-08-31 21:09:08 +03:00
|
|
|
Simply clone the repository:
|
|
|
|
|
|
|
|
```
|
|
|
|
git clone https://github.com/Azure/batch-shipyard.git
|
|
|
|
```
|
|
|
|
|
|
|
|
or [download the latest release](https://github.com/Azure/batch-shipyard/releases).
|
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## Requirements
|
2016-08-31 21:09:08 +03:00
|
|
|
The Batch Shipyard tool is written in Python. The client script is compatible
|
2016-08-31 20:44:38 +03:00
|
|
|
with Python 2.7 or 3.3+. You will also need to install the
|
|
|
|
[Azure Batch](https://pypi.python.org/pypi/azure-batch) and
|
|
|
|
[Azure Storage](https://pypi.python.org/pypi/azure-storage) python packages.
|
|
|
|
Installation can be performed using the [requirements.txt](./requirements.txt)
|
2016-08-31 21:09:08 +03:00
|
|
|
file via the command `pip install --user -r requirements.txt` (or via `pip3`
|
|
|
|
for python3).
|
2016-08-31 20:44:38 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## Batch Shipyard Compute Node OS Support
|
2016-08-31 20:44:38 +03:00
|
|
|
Batch Shipyard is currently only compatible with Linux Batch Compute Pools
|
|
|
|
configured via
|
|
|
|
[VirtualMachineConfiguration](http://azure-sdk-for-python.readthedocs.io/en/latest/_modules/azure/batch/models/virtual_machine_configuration.html).
|
|
|
|
Please see the list of
|
|
|
|
[Azure Batch supported Marketplace Linux VMs](https://azure.microsoft.com/en-us/documentation/articles/batch-linux-nodes/#list-of-virtual-machine-images)
|
2016-08-31 21:09:08 +03:00
|
|
|
for use with Batch Shipyard.
|
2016-08-31 19:38:33 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## Documentation
|
2016-08-31 21:09:08 +03:00
|
|
|
Please refer to
|
2016-09-01 07:43:03 +03:00
|
|
|
[this guide](https://github.com/Azure/batch-shipyard/blob/master/docs)
|
2016-08-31 21:09:08 +03:00
|
|
|
for a complete primer on concepts and usage.
|
2016-08-31 19:38:33 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
Please visit the
|
|
|
|
[recipies directory](https://github.com/Azure/batch-shipyard/blob/master/recipies)
|
|
|
|
for different sample Docker workloads using Azure Batch and Batch Shipyard
|
|
|
|
after you have completed the primer.
|
|
|
|
|
|
|
|
## Limitations
|
2016-08-31 21:09:08 +03:00
|
|
|
* Oracle Linux is not supported with Batch Shipyard at this time.
|
2016-08-31 20:44:38 +03:00
|
|
|
* Task dependencies are incompatible with multi-instance tasks. This is a
|
|
|
|
current limitation of the underlying Azure Batch service.
|
|
|
|
* Only Intel MPI can be used in conjunction Infiniband/RDMA on Azure Linux VMs.
|
2016-08-31 21:09:08 +03:00
|
|
|
This is a current limitation of the underlying VM and host drivers.
|
2016-08-31 19:38:33 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## ChangeLog
|
2016-08-31 19:38:33 +03:00
|
|
|
See the [CHANGELOG.md](https://github.com/Azure/batch-shipyard/blob/master/CHANGELOG.md)
|
|
|
|
file.
|
2016-07-18 18:15:56 +03:00
|
|
|
|
|
|
|
* * *
|
2016-08-31 17:59:45 +03:00
|
|
|
This project has adopted the
|
|
|
|
[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
|
|
|
For more information see the
|
|
|
|
[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
|
|
|
|
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any
|
|
|
|
additional questions or comments.
|