Configure and run Solum¶
Configuration Reference¶
To alter the default compute flavor edit /etc/solum/templates/*.yaml
flavor:
type: string
description: Flavor to use for servers
default: m1.tiny
Edit the default section to the desired value.
Administrator Guide¶
High Availability Guide¶
Operations Guide¶
Solum has been successfully running in production environments with the following example architecture:
Solum application deployment follows this flow:
Load Balancer listening on HTTPS port
Traffic travels across private net to 2+ nodes to Nginx listening on port 443
Nginx tears down SSL and redirects traffic over loopback to port 9777 to Solum API service
Solum API Service authenticates with Keystone service (open up outbound traffic to only keystone service from Solum API)
To retrieve Solum applications, API service would send messages to Conductor service, which communicates over service net to Trove to retrieve data
During app deployment, Solum API service sends a queue message to Rabbit MQ service [1] (should be multi-node over private net)
Solum Worker service picks up a queue message from Rabbit MQ [2] and pulls down a git repository, builds it, runs unit tests (if specified), builds a docker container, and uploads it to Swift * This is a fairly lengthy process and completely blocks this service. You should scale out your infrastructure to easily accommodate your traffic. A performance test based on your expected load can give you a good idea of how many nodes and how many worker services per node you need.
Solum Worker persists application state to Trove via Conductor service
Upon completion, worker service sends a message to Rabbit MQ [3]
Solum Deployer service picks up the message from Rabbit MQ [4] and calls Heat to deploy a heat stack with user’s information and newly created docker container * Deployer service also blocks on this call so your infrastructure should scale out to support your user load
Deployer service persists application state to Trove via Conductor service
Solum deployment infrastructure is dependent on existence of the following OpenStack services:
Nova
Keystone
Trove
Swift
Glance
Heat
To assist with deploying a new Solum architecture, please refer to the following cookbooks to get started: