Skip to main content
GSA Logo

Cloud Economics

About MCaaS

Github Repository Structure

All github repositories should have only one Dockerfile, located at the root level as shown below:

Important

Each microservice application should have it’s own github repository.

Repository Naming Convention

Tenants must follow the below naming convention for their github repositories:

NAMEEXAMPLE
<module>-<application>-<service>module1-robotshop-web

Gitflow and Application Deployment

The application deployment Gitflow mechanisms defined by Jenkins and Git are integral to the MCaaS modern software delivery philosophy.

Each tenant repository will contain it’s own github repository, as stated above, and each of these repositories will have the following four protected, reserved branches.

These branches are:

  • development
  • test
  • staging
  • production

When code is merged into any of these four branches, that code will automatically be deployed to that MCaaS environment.

The MCaaS branching strategy to traverse code throughout these four environments is a follows:

A developer creates a feature branch from the development branch. The developer commits some code to this feature branch. When the developer is satisfied with this code and is ready to perform some tests, the developer will open a pull request FROM the Feature branch TO the development branch. This action will trigger various tests, scans, etc., of the code and will require approval from another member of the tenant developer team.

Once this pull request receives approval and the feature branch is merged into the development branch, the MCaaS platform will automatically deploy this version of the code to the tenant’s developer environment.

Code can then traverse the various MCaaS environments via the same pattern of opening a pull request, conducting additional tests and scans, receiving tenant developer team approvals, and finally merging the code.

Which tests happen during which phase of this Gitflow process and what kind of approvals are required will most likely vary based on the tenant and microservice, but the overarching process will remain the same.

A barebones diagram of this process can be found below:

test