Cyclozzo

Architecture

A Cloud in Cyclozzo's terms is a cluster, running services which manage database, file system, and application instances. Cyclozzo has a System Cloud exclusively to manage other Application clouds (Application Clouds host your GAE Compatible apps). Each Cloud can be configured to have its own Load Balancer with fail over. Applications hosted can have their own public domain names using any preferred third party DNS service.

Cyclozzo Architecture

System/Management Cloud

System Cloud's main functionality is to deploy Application Clouds, which involves PXE booting a set of machines and associating them with roles (Manager/AppServer).

System Requirement

Although Cyclozzo could be configured to run in just two machine cluster, We recommend the specs mentioned above.

Machine Configuration goes here...

Application Cloud

Manages application instances and reports stats to System cloud.

System Requirement

Machine configuration goes here...

Cyclozzo Architecture

Cyclozzo OSE

About Cyclozzo OSE

Cyclozzo's Opensource Edition allows you to run Google App Engine compatible applications in a distributed environment. It lacks the features of the proprietary version such as automatic scaling, load balancing, metrics collection, management UI etc. Using Cyclozzo OSE, you will be able to create a cluster where you can host your applications. Cyclozzo's opensource version only provides the yellow colored layer in the Application Cloud diagram.

Comparison

Cyclozzo OSE Cyclozzo Plus
Cluster Management
Sandboxed environment
Hypertable driver
HDFS for distributed storage
SL support for application
Application code caching
CLI based instance launcher
Google Python SDK compatibility (1.3.8)
Google JAVA SDK compatibility (1.3.8)
Web console for Cloud and application management
Performance graphs, logs and reports
Auto scalability
Application metrics

Getting sources

git clone git@github.com:cyclozzo/cyclozzo.git

Building Cyclozzo

Cyclozzo's build system can build deb packages from the sources. Once you have all the dependencies ready in the deps directory, do

cd cyclozzo/buildbot
make all

and publish the debian repository,

make publish

Now you'll have an apt repository with all the packages and dependencies under repo directory.

ls ../repo
i386    all     x86_64

You have to share the repo directory to have anonymous FTP/HTTP access so that apt can access the packages.

Deploying Cyclozzo

Once the repository is ready, you can add the repository url to all the cluster nodes and install Cyclozzo

sudo add-apt-repository 'deb ftp://<REPOSITORY-ADDRESS-HERE>/all  /'
sudo add-apt-repository 'deb ftp://<REPOSITORY-ADDRESS-HERE>/x86_64  /'
sudo apt-get update
sudo apt-get install cyclozzo-ose

NOTE: You may need to enter a password for SSH keys generated during installation. Leave it empty for passwordless SSH access.

Configuring Cyclozzo cluster

First of all you need to select a master node. This is the node from where you control all the other nodes and run commands. Once you are on the master node, issue

sudo nano `cyclozzo --settings`

and change the master and slave node ip addresses. Then do,

cyclozzo --exchange-keys

to exchange the SSH keys generated during installation to all the slave nodes.

Now, its time to configure/format the cluster

cyclozzo --configure --format all

This command synchronizes the configuration across all the nodes cleans Hadoop Filesystem and Hypertable databases.

Starting Cyclozzo cluster

cyclozzo --start cluster

Starting applications

cyclozzo --start application --dir guestbook/ --port 8080

About Stackless Recursion

Please visit http://gostackless.com/