Offer your Software as a Service, Cloud Natively.

View the Project on GitHub icclab/hurtle


Q: Why is it Called hurtle?

A: Cos we like turtles and recursion.

Q: What is your motto?

A: "Confusing name, simple orchestration".


Why hurtle?

hurtle lets you:

offer your software as a service i.e. "hurtle it!"

Hurtle lets you automate the life-cycle management of your service, from deployment of cloud resources all the way to configuration and runtime management (e.g., scaling).

*But here comes the best part: *

hurtle has been designed since its inception to support service composition, so that you can run complex services by (recursively!) composing simple ones. Welcome to truly modular cloud service composition! Microservices anyone?

hurtle enables service and infrastructure orchestration to easily compose, deploy, provision and manage distributed systems

Its functionality all revolves around this idea, so the service offered is also one that can be designed with the cloud in mind, based on the cloud-native application research of the ICCLab.

Where From?

hurtle has two origins in:

  1. the ICCLab's Cloud Orchestration Initiative
  2. the telcom world and in particular Network Function Virtualisation (NFV). Here hurtle has been used to offer services that have been to date executed directly on or embedded in hardware.

And well, it's all powered upon another hurtle ;-)

Questions that Hurtle Aims to Address


This repository provides documentation for hurtle and pointers to the other repositories that make up a complete hurtle system. See the repository list.

hurtle consists of the following components:

For more details, see:


How Does hurtle Work?

The easiest way to understand how hurtle works is through how its life cycle of an application is managed. There are 6 key phases to understand:

hurtle Text
  1. Design: where the topology and dependencies of each service component is specified. The model here typically takes the form of a graph.
  2. Implementation: This is where the developer(s) needs to implement the actual software that will be provided as a service through hurtle
  3. Deploy: the complete fleet of resources and services are deployed according to a plan executed by hurtle. At this stage they are not configured.
  4. Provision: each resource and service is correctly provisioned and configured by hurtle. This must be done such that one service or resource is not without a required operational dependency (e.g. a php application without its database).
  5. Runtime: once all components of an hurtle orchestration are running, the next key element is that they are managed. To manage means at the most basic level to monitor the components. Based on metrics extracted, performance indicators can be formulated using logic-based rules. These when notified where an indicator’s threshold is breached, an Orchestrator could take a remedial action ensuring reliability.
  6. Disposal: Where a hurtle service instance is destroyed.

More details are in the logical and technical architecture documents.

Getting Started


A complete installation guide can be found here


Note: The Vagrant boxes are quiet demanding (6GB and 2GB of RAM) on your System.

The Vagrant boxes give you a complete environment to play around: OpenStack, OpenShift and the hurtle-sample-so are preinstalled.

# Clone this repo
git clone

# Spin up the Vagrant boxes
cd vagrant 
vagrant up

# Grab a coffee, this could take a while (~3GB download)

# Once the machines are booted up, check out the hurtle-sample-so README file


Hurtling along soon:

Community & Support


Report bugs and request features using GitHub Issues. For additional resources, you can contact the maintainers directly. Community discussion about turtle happens in one main place:

You can follow @hurtle_it on Twitter for updates and of course on the ICCLab blog


To report bugs or request features, submit issues here on GitHub.. If you're contributing code, make pull requests to the appropriate repositories (see the repo overview). If you're contributing something substantial, you should first contact developers on the hurtle-discuss mailing list (subscribe).

For urgent questions please contact the maintainers directly.

Hurtle repositories follow no written Guidelines to date.


hurtle is licensed under the Apache License version 2.0. See the file LICENSE.

Made by

Supported by