Skip to content
AlekseyAleev edited this page Aug 2, 2012 · 1 revision

Project

The top-level logical unit of Genesis domain which consist of environments is a project. That means environment can be created only in scope of project. Project is configurable unit. It can be associated with various types of users or user groups with different access permissions to project as well it can be pointed on some project in version control system (VCS) with environment templates.

Environment

The set of virtual or hardware servers, network devices, storage, services deployed on servers, third-party services all this together forms environment. A various types of environments like qa, performance, development and so on are possible. Name and content of environment depends on the environment purpose.

Environment Template

A textual description of environment life cycle on a domain-specific language which is specially designed for this case is environment template. The basic DSL is a subset of Groovy programming language and any valid Groovy code can also be a part of template. As well other types of DSL are possible based on other languages (XML, Scala, etc). To support new DSL Genesis has to be extended with new DSL processor.

Environment Status

The generalization of environment components statuses is a status of whole environment. The possible environment statues are ready, busy, broken and destroyed.

Service

The application or several applications deployed on one or several virtual or hardware servers that provides specific informational facility and serves specific needs is a service. Service can be simple consisting of one simple application or complex including several interdependent services distributed across several virtual and hardware servers.

Service Status

The possible statues of services are requested, deploying, ready, failed and destroyed. The status of complex service is a generalization of simple service statuses that complex service consists of.

Virtual Server

A virtual machine provided by public or private cloud provider or by other ways dedicated to running one or more services is a virtual server.

Virtual Server Status

The possible statuses of virtual servers are requested, provisioning, ready, failed and destroyed.

Hardware Server

A physical computer dedicated to running one or more services is hardware server.

Hardware Server Status

The possible statuses of hardware servers are ready, unavailable.

Workflow

The set of steps which are described particular actions over environment is a workflow. For example one environment could have 'create', 'destroy', 'scale-up', 'scale-down', 'redeploy' workflows. Everything that happens with the environment must be described as an environment workflow.

Workflow Status

The generalization of workflow steps statuses is workflow status. The possible statuses of Workflow are requested, executing, succeed, failed, suspended, canceled.

Workflow Step

Each workflow consists of dependent steps. One step describes particular action performed over environment. Two steps can be executed sequentially or simultaneously. Each step has two common attributes - phase and dependent phases and some set of step specific attributes

Workflow Step Status

The possible statuses of workflow step are requested, executing, succeed, failed, suspended, canceled.

Workflow Step Phase

Workflow Step Phase describes the time when step will be executed. The general rule is that step is executed after all steps with phases in step preceding phases have been completed.

Clone this wiki locally