Application resource

Introduction

In pbscloud, application needs to be abstracted. So we defined various level of abstraction to manage an agnostic and coherent deployment.

abstraction levels

Packages

What we call a package is the technical package use to deploy an application, it could be an Install Anywhere package, a tarball with script, RPM, MSI, …

Formulas

PBS Cloud uses Saltstack to install, configure applications (Currently but we think about extending to other configuration manager like Ansible, Puppet, Chef, …). The artifact used by Saltstack to describe the way to configure application is named formulas. You can find a lot of existing formulas here.

This formulas may require user information to be run. To manage these inputs, see installer section.

installers

Installer is an abstraction introduced by pbscloud. It aims to manage parameters that the user should specify to deploy his application. It can be technical information or high level one. An installer includes :

  • formulas
  • a json file to describe your input parameters.

Application resources

Application resources are the higher level of abstraction for application. An application resource can embed one or more installers in it. They defines :

  • constraints : hardware constraints, how many cpu / how much ram my application requires.
  • dependencies : dependencies define which application are required on the same machine for my application to work.
  • links : links define an information sharing between application. When 2 applications are linked, each of them can use information from the other one.
  • imports / exports : they are the information that an application export/import to/from other linked application
  • list of installers : list of installers to integrate into the application resource.
  • exposed port : port that have to be reachable from internet.