bfansports / CloudProcessingEngine

[decomissioned] Distribute and scale processes using AWS services
http://sportarchive.github.io/CloudProcessingEngine/
GNU General Public License v2.0
27 stars 6 forks source link

Join the chat at https://gitter.im/sportarchive/CloudProcessingEngine Scrutinizer Code Quality

What is the Cloud Processing Engine (CPE) ?

CPE allows you to run workflows and distribute processing accross many machines located anywhere (any cloud provider or local). If you have processes that need to scale, then CPE is for you.

Technology

CPE use the following AWS services to run your tasks at scale:

Before getting started, you need a good understanding of those two services. Read the AWS documentation.

How to use it?

To use CPE, you need to deploy the CPE stack which is composed of three components:

Each ActivityPoller executes Activities that you develop. You must create an Activity for each type of task your workflow will handle. So you can have several types of workers handling different type of activities in your workflow. Each worker is a daemon that run on a box or in a Docker container, locally or in the Cloud.

Workflows are arbitrary and are defined using a YAML plan that you must write yourself. A plan defines your workflow steps and which ActivityPoller type will execute each step. Input and Output data can be passed on from one activity to another.

Example

Transcoding media files (videos, audio, documents, etc) requires processing power on demand and must be elastic if a lot of transcoding is required. This business requirement gave birth to CPE.

The Cloud Transcode (CT) project implements activities (workers) in charge of transcoding media files. The ActivityPoller loads those activities and use them to process incoming transcoding tasks. CT activities download the media files from AWS S3, transcode them at scale and upload them back to S3.

See the Cloud Transcode documentation for a working example of CPE activities and more information: https://github.com/sportarchive/CloudTranscode

Documentation

Read the detailed CPE documentation for more information about CPE and how to:

See: http://sportarchive.github.io/CloudProcessingEngine/

High Level Architecture

Alt text

Task tracking

Check the project status and tasks on Pivotal Tracker: