2018-08-10 19:17:51 +03:00
|
|
|
[![Build Status](https://azurebatch.visualstudio.com/batch-shipyard/_apis/build/status/batch-shipyard-CI)](https://azurebatch.visualstudio.com/batch-shipyard/_build/latest?definitionId=11)
|
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)
|
2017-08-10 18:48:24 +03:00
|
|
|
[![Build status](https://ci.appveyor.com/api/projects/status/3a0j0gww57o6nkpw/branch/master?svg=true)](https://ci.appveyor.com/project/alfpark/batch-shipyard)
|
2016-08-31 20:44:38 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
# Batch Shipyard
|
2023-03-21 00:30:33 +03:00
|
|
|
|
|
|
|
## PROJECT STATUS
|
|
|
|
**This toolkit is no longer actively maintained.** The `develop` branch has
|
|
|
|
proposed fixes for outstanding issues, but they will not be merged back to
|
|
|
|
`master`. Please see the main [Azure Batch](https://github.com/Azure/Batch)
|
|
|
|
GitHub repository for more information about Azure Batch.
|
|
|
|
|
2018-11-07 01:21:50 +03:00
|
|
|
<img src="https://azurebatchshipyard.blob.core.windows.net/github/README-dash.gif" alt="dashboard" width="1024" />
|
2018-06-08 23:17:40 +03:00
|
|
|
|
2016-09-01 06:57:10 +03:00
|
|
|
[Batch Shipyard](https://github.com/Azure/batch-shipyard) is a tool to help
|
2018-06-12 02:43:21 +03:00
|
|
|
provision, execute, and monitor container-based batch processing and HPC
|
|
|
|
workloads on
|
|
|
|
[Azure Batch](https://azure.microsoft.com/services/batch/). Batch Shipyard
|
|
|
|
supports both [Docker](https://www.docker.com) and
|
2019-02-27 01:30:09 +03:00
|
|
|
[Singularity](https://www.sylabs.io) containers. No experience with the
|
2016-09-01 07:43:03 +03:00
|
|
|
[Azure Batch SDK](https://github.com/Azure/azure-batch-samples) is needed; run
|
2018-02-18 01:02:07 +03:00
|
|
|
your containers with easy-to-understand configuration files. All Azure
|
|
|
|
regions are supported, including non-public Azure regions.
|
2016-08-31 19:38:33 +03:00
|
|
|
|
2017-03-22 19:53:30 +03:00
|
|
|
Additionally, Batch Shipyard provides the ability to provision and manage
|
2019-02-27 01:30:09 +03:00
|
|
|
entire [standalone remote file systems (storage clusters)](https://batch-shipyard.readthedocs.io/en/latest/65-batch-shipyard-remote-fs/)
|
2017-03-22 19:53:30 +03:00
|
|
|
in Azure, independent of any integrated Azure Batch functionality.
|
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## Major Features
|
2019-02-27 01:30:09 +03:00
|
|
|
### Container Runtime and Image Management
|
2018-10-31 00:22:27 +03:00
|
|
|
* Support for multiple container runtimes including
|
|
|
|
[Docker](https://docker.com), [Singularity](https://www.sylabs.io), and
|
|
|
|
[Kata Containers](https://katacontainers.io/) tuned for Azure Batch
|
2017-10-24 04:34:19 +03:00
|
|
|
compute nodes
|
2018-10-31 00:22:27 +03:00
|
|
|
* Automated deployment of container images required for tasks to compute nodes
|
2019-08-14 05:19:48 +03:00
|
|
|
* Support for container registries including
|
|
|
|
[Azure Container Registry](https://azure.microsoft.com/services/container-registry/)
|
|
|
|
for both Docker and Singularity images (ORAS), other Internet-accessible
|
|
|
|
public and private registries, and support for
|
|
|
|
the [Sylabs Singularity Library](https://cloud.sylabs.io/library) and
|
|
|
|
[Singularity Hub](https://singularity-hub.org/)
|
2019-02-27 01:30:09 +03:00
|
|
|
* Transparent support for GPU-accelerated container applications on both
|
|
|
|
[Docker](https://github.com/NVIDIA/nvidia-docker) and Singularity
|
|
|
|
on [Azure N-Series VM instances](https://docs.microsoft.com/azure/virtual-machines/linux/sizes-gpu)
|
2019-08-14 05:19:48 +03:00
|
|
|
* Transparent assist for running Docker and Singularity containers utilizing
|
|
|
|
Infiniband/RDMA on HPC Azure VM instances including
|
|
|
|
[A-Series](https://docs.microsoft.com/azure/virtual-machines/linux/sizes-hpc),
|
|
|
|
[H-Series](https://docs.microsoft.com/azure/virtual-machines/linux/sizes-hpc),
|
|
|
|
[Hb/Hc-Series](https://docs.microsoft.com/azure/virtual-machines/linux/sizes-hpc),
|
|
|
|
and [N-Series](https://docs.microsoft.com/azure/virtual-machines/linux/sizes-gpu)
|
2019-11-15 22:08:52 +03:00
|
|
|
* Integrated support for
|
|
|
|
[Singularity Encrypted Containers](https://batch-shipyard.readthedocs.io/en/latest/50-batch-shipyard-encrypted-containers/)
|
2019-02-27 01:30:09 +03:00
|
|
|
|
|
|
|
### Data Management and Shared File Systems
|
|
|
|
* Comprehensive [data movement](https://batch-shipyard.readthedocs.io/en/latest/70-batch-shipyard-data-movement/)
|
2018-08-06 23:21:20 +03:00
|
|
|
support: move data easily between locally accessible storage systems, remote
|
|
|
|
filesystems, Azure Blob or File Storage, and compute nodes
|
2019-02-27 01:30:09 +03:00
|
|
|
* [Standalone Remote Filesystem Provisioning](https://batch-shipyard.readthedocs.io/en/latest/65-batch-shipyard-remote-fs/)
|
2018-01-24 01:23:39 +03:00
|
|
|
with integration to auto-link these filesystems to compute nodes with
|
2018-03-14 00:59:52 +03:00
|
|
|
support for [NFS](https://en.wikipedia.org/wiki/Network_File_System) and
|
|
|
|
[GlusterFS](https://www.gluster.org/) distributed network file system
|
2018-11-01 02:06:00 +03:00
|
|
|
* Automatic shared data volume support for linking to
|
2019-02-27 01:30:09 +03:00
|
|
|
[Remote Filesystems](https://batch-shipyard.readthedocs.io/en/latest/65-batch-shipyard-remote-fs/),
|
2018-11-01 02:06:00 +03:00
|
|
|
[Azure File](https://azure.microsoft.com/services/storage/files/)
|
2018-03-14 00:59:52 +03:00
|
|
|
via SMB, [Azure Blob](https://azure.microsoft.com/services/storage/blobs/)
|
|
|
|
via [blobfuse](https://github.com/Azure/azure-storage-fuse),
|
2018-11-01 02:06:00 +03:00
|
|
|
[GlusterFS](https://www.gluster.org/) provisioned directly on compute nodes,
|
|
|
|
and custom Linux mount support (fstab)
|
|
|
|
* Support for automated on-demand, per-job distributed scratch space
|
|
|
|
provisioning via [BeeGFS BeeOND](https://www.beegfs.io/wiki/BeeOND)
|
2019-02-27 01:30:09 +03:00
|
|
|
|
|
|
|
### Monitoring
|
|
|
|
* Automated, integrated
|
|
|
|
[resource monitoring](https://batch-shipyard.readthedocs.io/en/latest/66-batch-shipyard-resource-monitoring/)
|
|
|
|
with [Prometheus](https://prometheus.io/) and [Grafana](https://grafana.com/)
|
|
|
|
for Batch pools and RemoteFS storage clusters
|
|
|
|
* Support for [Batch Insights](https://github.com/Azure/batch-insights)
|
|
|
|
|
|
|
|
### Open Source Scheduler Integration
|
|
|
|
* Support for [elastic cloud bursting](https://batch-shipyard.readthedocs.io/en/latest/69-batch-shipyard-slurm/)
|
|
|
|
on [Slurm](https://slurm.schedmd.com/) to Batch pools with automated
|
|
|
|
RemoteFS shared file system linking
|
|
|
|
|
|
|
|
### Azure Ecosystem Integration
|
|
|
|
* Support for
|
|
|
|
[serverless execution](https://batch-shipyard.readthedocs.io/en/latest/60-batch-shipyard-site-extension/)
|
|
|
|
binding with Azure Functions
|
|
|
|
* Support for credential management through
|
|
|
|
[Azure KeyVault](https://azure.microsoft.com/services/key-vault/)
|
|
|
|
|
|
|
|
### Azure Batch Integration and Enhancements
|
|
|
|
* [Federation](https://batch-shipyard.readthedocs.io/en/latest/68-batch-shipyard-federation/)
|
|
|
|
support: enables unified, constraint-based scheduling to collections of
|
|
|
|
heterogeneous pools, including across multiple Batch accounts and Azure
|
|
|
|
regions
|
|
|
|
* Support for simple, scenario-based [pool autoscale](https://batch-shipyard.readthedocs.io/en/latest/30-batch-shipyard-autoscale/)
|
2018-01-24 01:23:39 +03:00
|
|
|
and autopool to dynamically scale and control computing resources on-demand
|
2019-02-27 01:30:09 +03:00
|
|
|
* Support for [Task Factories](https://batch-shipyard.readthedocs.io/en/latest/35-batch-shipyard-task-factory-merge-task/)
|
2017-08-04 20:19:04 +03:00
|
|
|
with the ability to generate tasks based on parametric (parameter) sweeps,
|
2017-08-07 20:06:19 +03:00
|
|
|
randomized input, file enumeration, replication, and custom Python code-based
|
|
|
|
generators
|
2019-02-27 01:30:09 +03:00
|
|
|
* Support for
|
|
|
|
[multi-instance tasks](https://batch-shipyard.readthedocs.io/en/latest/80-batch-shipyard-multi-instance-tasks/)
|
|
|
|
to accommodate MPI and multi-node cluster applications packaged as Docker or
|
|
|
|
Singularity containers on compute pools with automatic job completion and
|
|
|
|
task termination
|
2019-08-09 18:41:19 +03:00
|
|
|
* Seamless, direct high-level configuration support for popular MPI runtimes
|
2019-08-14 05:19:48 +03:00
|
|
|
including OpenMPI, MPICH, MVAPICH, and Intel MPI with automatic configuration
|
|
|
|
for Infiniband, including SR-IOV RDMA VM sizes
|
2018-08-06 23:21:20 +03:00
|
|
|
* Seamless integration with Azure Batch job, task and file concepts along with
|
|
|
|
full pass-through of the
|
|
|
|
[Azure Batch API](https://azure.microsoft.com/documentation/articles/batch-api-basics/)
|
|
|
|
to containers executed on compute nodes
|
2018-03-01 00:10:14 +03:00
|
|
|
* Support for [Azure Batch task dependencies](https://azure.microsoft.com/documentation/articles/batch-task-dependencies/)
|
2018-01-24 22:30:34 +03:00
|
|
|
allowing complex processing pipelines and DAGs
|
|
|
|
* Support for merge or final task specification that automatically depends
|
|
|
|
on all other tasks within the job
|
2017-08-08 18:24:15 +03:00
|
|
|
* Support for job schedules and recurrences for automatic execution of
|
|
|
|
tasks at set intervals
|
2017-08-09 18:57:33 +03:00
|
|
|
* Support for live job and job schedule migration between pools
|
2018-08-06 23:21:20 +03:00
|
|
|
* Support for [Low Priority Compute Nodes](https://docs.microsoft.com/azure/batch/batch-low-pri-vms)
|
|
|
|
* Support for deploying Batch compute nodes into a specified
|
2019-02-27 01:30:09 +03:00
|
|
|
[Virtual Network](https://batch-shipyard.readthedocs.io/en/latest/64-batch-shipyard-byovnet/)
|
2019-08-14 05:19:48 +03:00
|
|
|
and pre-defined public IP addresses
|
2018-08-06 23:21:20 +03:00
|
|
|
* Automatic setup of SSH or RDP users to all nodes in the compute pool and
|
|
|
|
optional creation of SSH tunneling scripts to Docker Hosts on compute nodes
|
2019-02-27 01:30:09 +03:00
|
|
|
* Support for [custom host images](https://batch-shipyard.readthedocs.io/en/latest/63-batch-shipyard-custom-images/)
|
2019-08-14 05:19:48 +03:00
|
|
|
including Shared Image Gallery
|
2018-03-01 00:10:14 +03:00
|
|
|
* Support for [Windows Containers](https://docs.microsoft.com/virtualization/windowscontainers/about/)
|
2018-03-01 19:25:49 +03:00
|
|
|
on compliant Windows compute node pools with the ability to activate
|
|
|
|
[Azure Hybrid Use Benefit](https://azure.microsoft.com/pricing/hybrid-benefit/)
|
|
|
|
if applicable
|
2016-08-31 20:44:38 +03:00
|
|
|
|
2016-09-01 07:43:03 +03:00
|
|
|
## Installation
|
2019-02-27 01:30:09 +03:00
|
|
|
### Local Installation
|
|
|
|
Please see [the installation guide](https://batch-shipyard.readthedocs.io/en/latest/01-batch-shipyard-installation/)
|
|
|
|
for more information regarding the various local installation options and
|
|
|
|
requirements.
|
|
|
|
|
2017-07-21 20:56:49 +03:00
|
|
|
### Azure Cloud Shell
|
2018-03-01 19:25:49 +03:00
|
|
|
Batch Shipyard is integrated directly into
|
|
|
|
[Azure Cloud Shell](https://docs.microsoft.com/azure/cloud-shell/overview)
|
|
|
|
and you can execute any Batch Shipyard workload using your web browser or
|
|
|
|
the Microsoft Azure [Android](https://play.google.com/store/apps/details?id=com.microsoft.azure&hl=en)
|
|
|
|
and [iOS](https://itunes.apple.com/us/app/microsoft-azure/id1219013620?mt=8)
|
|
|
|
app.
|
2017-07-21 20:56:49 +03:00
|
|
|
|
2018-03-01 19:25:49 +03:00
|
|
|
Simply request a Cloud Shell session and type `shipyard` to invoke the CLI;
|
2019-08-14 05:19:48 +03:00
|
|
|
no installation is required. Try Batch Shipyard now
|
|
|
|
[in your browser](https://shell.azure.com).
|
2018-01-27 01:53:21 +03:00
|
|
|
|
2017-10-03 18:03:47 +03:00
|
|
|
## Documentation and Recipes
|
2016-11-18 09:07:30 +03:00
|
|
|
Please refer to the
|
2019-02-27 01:30:09 +03:00
|
|
|
[Batch Shipyard Documentation on Read the Docs](https://batch-shipyard.readthedocs.io/).
|
2016-08-31 21:09:08 +03:00
|
|
|
|
2017-10-03 18:03:47 +03:00
|
|
|
Visit the
|
2016-11-18 09:07:30 +03:00
|
|
|
[Batch Shipyard Recipes](https://github.com/Azure/batch-shipyard/blob/master/recipes)
|
2017-12-09 03:28:25 +03:00
|
|
|
section for various sample container workloads using Azure Batch and Batch
|
2017-10-03 18:03:47 +03:00
|
|
|
Shipyard.
|
2016-08-31 20:44:38 +03:00
|
|
|
|
2018-03-01 19:25:49 +03:00
|
|
|
## Batch Shipyard Compute Node Host OS Support
|
2018-05-02 17:47:26 +03:00
|
|
|
Batch Shipyard is currently compatible with popular Azure Batch supported
|
2018-03-01 00:10:14 +03:00
|
|
|
[Marketplace Linux VMs](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros),
|
2019-02-27 01:30:09 +03:00
|
|
|
[compliant Linux custom images](https://batch-shipyard.readthedocs.io/en/latest/63-batch-shipyard-custom-images/),
|
2017-11-05 22:48:08 +03:00
|
|
|
and native Azure Batch
|
2018-03-01 00:10:14 +03:00
|
|
|
[Windows Server with Containers](https://azuremarketplace.microsoft.com/marketplace/apps/Microsoft.WindowsServer?tab=Overview)
|
2018-02-21 18:47:03 +03:00
|
|
|
VMs. Please see the
|
2019-02-27 01:30:09 +03:00
|
|
|
[platform image support](https://batch-shipyard.readthedocs.io/en/latest/25-batch-shipyard-platform-image-support/)
|
2018-03-01 19:25:49 +03:00
|
|
|
documentation for more information specific to Batch Shipyard support of
|
|
|
|
compute node host operating systems.
|
2016-08-31 19:38:33 +03:00
|
|
|
|
2016-12-09 22:32:05 +03:00
|
|
|
## Change Log
|
2017-10-03 20:39:38 +03:00
|
|
|
Please see the
|
2019-02-27 01:30:09 +03:00
|
|
|
[Change Log](https://batch-shipyard.readthedocs.io/en/latest/CHANGELOG/)
|
2017-10-03 20:39:38 +03:00
|
|
|
for project history.
|
2016-07-18 18:15:56 +03:00
|
|
|
|
|
|
|
* * *
|
2017-08-29 18:04:30 +03:00
|
|
|
Please see this project's [Code of Conduct](CODE_OF_CONDUCT.md) and
|
|
|
|
[Contributing](CONTRIBUTING.md) guidelines.
|