Application Abstraction

Introduction

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

abstraction levels

Attraction levels

Package

We define a package as a method to deploy an application, in a method using Install Anywhere package, as tar ball image with scripts, RPM, MSI, etc.

Formulas

PBScloud.io uses Saltstack to install and configure applications. We may provide other configuration manager in the future such for example Ansible, Puppet, or Chef. Contact our support team if you have interests in anyone of these options.

A formulas is the artifact used by Saltstack to describe the way to configure application is named formulas. You can find a lot of existing Salt Stack formulas here. This formulas may require inputs from the user to be run (like a license server, a deployment parameter, …). To manage these inputs, see installer section.

Installers

Installer is an abstraction introduced by PBScloud.io. It aims to manage parameters that the user should specify to deploy their application. These parameters can be technical information or high level one. An installer may inclue:

  • Formulas
  • Json file to describe your input parameters.

Application resources

Application resources are the highest level of abstraction for application. An application resource can be embedded with one or more installers within itself.

Available resources:

  • Constraints : hardware constraints such as how many cpus and memory required to run an application
  • Dependencies : defines what application(s) are required on the same machine for this application to work with
  • Links : defines what information can be shared among applications
  • Imports / exports : information that an application may import/export to/from other linked applications
  • List of installers : list of installers to integrate into the application resource
  • Exposed port : ports that have to be accessible from on the internet