Developing with Roost

Here is a typical scenario that we want the developer team(s) to follow and how Roost solves their need.

 

About the Application:

The application captures votes from the end-user and provides a distribution of the total as a final result. There are a minimum of 2 micro-services built by different teams that come together to complete the functionality.

Microservice & Team:

Microservice

Team/Langugage

Git Repo

Microservice

Team/Langugage

Git Repo

Ballot API

API (Golang)

github.com/acme/ballot.git

Voter UI

UI (NodeJS, React JS)

github.com/acme/voter.git

 

Application Dependency:

Voter UI calls Ballot API to complete the voting transaction

 

Environments and Roost:

There can be 3 or more environments with the team.

Environment

Access Scope

Roost Perspective

Usage

Environment

Access Scope

Roost Perspective

Usage

DEV

Individual

Local Cluster and dedicated

For build, unit test and peer collaboration

SIT

Whole Team

Remote Roost Cluster configured as team cluster

Individuals stage their deployments on this team cluster.

UAT & PROD

Restricted

Can be any cluster (beyond Roost)

Typically integrated with JX pipeline for automation

 

Development Flow

  • Developer spins up Local Roost cluster and writes the code

  • Generates DockerFile and k8s yaml

  • Builds and deploys the code in the Local Roost cluster

  • Iterates the above step, till the unit-tests are all good


  • Collaborates the yaml along with docker images amongst peer for further validation.


  • Switches to the team & team cluster

  • Deploys the yaml (& image) to team cluster

  • This triggers “Roost Service Fitness”

 

Roost Service Fitness Framework

The fitness framework is driven by the Application Manifest. This is to be defined once for the application by the team architect or team lead. Service Fitness Framework