Jump to: navigation, search

Difference between revisions of "Solum/FeatureBlueprints/GitIntegration"

(Git Deployment)
(Git Deployment)
Line 57: Line 57:
 
|}
 
|}
  
The general workflow for a git based deployment is as follows:
+
The general workflow for a git based deployment is as follows:<br />
# Precondition: the user is already registered as an OpenStack user, and has been associated with the Solum service (see the blueprint "authentication" for details)
+
1. Precondition: the user is already registered as an OpenStack user, and has been associated with the Solum service (see the blueprint "authentication" for details)<br />
# Precondition: Initialize a local git repo and commit application code/config to it
+
2. Precondition: Initialize a local git repo and commit application code/config to it<br />
# RegisterApp: registers the new application with Solum (generates a remote git repository in Solum and associates it with the new app).
+
3. RegisterApp: registers the new application with Solum (generates a remote git repository in Solum and associates it with the new app).<br />
* Inputs: AppName (Optional), if no AppName is provided, Solum will generate one
+
:* Inputs: AppName (Optional), if no AppName is provided, Solum will generate one
* Returns: URL of the remote git repository
+
:* Returns: URL of the remote git repository<br />
# Git push (deploys the application and returns the URL (for web apps) of a running app.
+
4. Git push (deploys the application and returns the URL (for web apps) of a running app.
git push will use the default application characteristics (per the default values specified in the Application Characteristics table above). The default values can be overridden by specifying the values in an application meta-data file and storing the file along with the application source.   
+
Git push will use the default application characteristics (per the default values specified in the Application Characteristics table above). The default values can be overridden by specifying the values in an application meta-data file that is stored along with the application source.   
 
   
 
   
 
    
 
    

Revision as of 23:56, 9 October 2013

Blueprint

Git Deployment

Generic note on Solum's User Interface
Solum exposes its "user interface" via the following mechanisms:

  • REST API
    • Consumed by:
      • CLI interface
      • GIT
      • a set of SDK's in various languages
      • UI Console
      • IDE Plugins

The CLI, GIT, SDK's and the UI console all consume the REST API. User can also directly call into the REST API.

End Generic Note

Functionality

Definitions

  • A deployment unit (DU) is a unit of deployment for the application being deployed. For example, if Solum is configured to use containers for deploying application code, then the a DU would refer to a container instance.


As an application developer, I want to push my code to my git repository, and have the platform automatically detect the code push and generate a running application using the new code.

I would be able to use git push for deploying a new application, or to update an existing application.

I would be able to specify the application characteristics (AppName, size and number of deployment units, auto scale policies, etc) while deploying my app.

Following are the application characteristics that can be specified (this is an indicative list, not intended to be a comprehensive list).

Application Characteristics

Attribute name Description Required?
AppName Name of application (Unique at tenant level) Optional (if AppName is not provided, Solum generates one)
DU Count Initial number of deployment units. Optional (default = 1)
Flavor Size of each DU (as determined by RAM, CPU, disk space, allocated to each DU). Small, medium, large, extra large, etc. the sizing characteristics of what is small and what is large is configurable by the platform service provider Optional (if no flavor is provided, then a default flavor will be used. The default flavor is configurable by the service provider)
AutoScale Should the application auto-scale (Y/N) Optional (default = N)
MinInstances Minimum number of DU's (lower threshold for the auto scale policy) Optional (default = 1)
MaxInstances Maximum number of DU's (upper threshold for the auto scale policy) Optional (default = specified DU Count during app creation)
ShellEnvironment Set application specific shell environment variables at app start up Optional
LanguagePack User could specify the language pack (say MyPythonPack) to be used during app creation. If no language pack is specified, then the platform would auto-detect the default language pack associated with the code being pushed. Optional
Services List of services that the application will bind to (e.g.Trove, NewRelic). The services list would also optionally contain any service initialization parameters if the service support it. An example of this will be an SQL script passed to a database service to create the custom application scheme. Optional

The general workflow for a git based deployment is as follows:
1. Precondition: the user is already registered as an OpenStack user, and has been associated with the Solum service (see the blueprint "authentication" for details)
2. Precondition: Initialize a local git repo and commit application code/config to it
3. RegisterApp: registers the new application with Solum (generates a remote git repository in Solum and associates it with the new app).

  • Inputs: AppName (Optional), if no AppName is provided, Solum will generate one
  • Returns: URL of the remote git repository

4. Git push (deploys the application and returns the URL (for web apps) of a running app. Git push will use the default application characteristics (per the default values specified in the Application Characteristics table above). The default values can be overridden by specifying the values in an application meta-data file that is stored along with the application source.



Implementation