Infrastructure

Introduction


Every environment has an infrastructure that is provisioned while creating the environment, this infrastructure depicts which technology the environment is using to deploy source code and resources.

Infrastructure technologies are derived from the infrastructure cloud provider that were selected and attached while creating the environment.

SOAJS supports all types of infrastructure ( container technology - bare metal virtual machines ) however SOAJS handles the deployment of source code and resources differently based on the technology of the infrastructure attached to the environment being used.







Infrastructure Technologies


Bare metal

Requires administrators to personal set up all infrastructure machines, ensure network communication between them.

Requires administators to set up reachability to where SOAJS core database is running. 

Imposes manual intervention when deploying microservices, pulling and applying code updates.  

Deployed microservices communicate with the core database to pull the environment registry upon starting to learn about the environment they are in.

Once microservices are deployed and started, you can monitor them and execute configuration reload operations ONLY.

Container Technology

Relies on Infra Code Templates to automate provisioning all infrastructure machines, network communication and reachability.

Supports all features offered by container technologies and reduces manual intervention when it comes to provisioning and deployment to a bare minimum.

Offers the ability to leverage containers to deploy microservices with replicated instances and scaling capability to ensure high availability.

Deploying microservices and resources as well pulling and applying updates is automated via Continuous Delivery. 

Provides metric analytics and multiple IT operations for each of the deployed service.




Attaching & Detaching Container Technology


When creating an environment, the first step is to pick the environment type: Manual Development - Single Cloud Clustering - Multi Cloud Clustering.

An environment type depicts which infrastructure technology can be attached to handle deploying source code and resources, then the environment is created accordingly.

You can change the type of an environment after you create by changing the infrastructure technology it is using.

The wizard helps you switch the environment type between Remote Development and Single / Multi Cloud Clustering as it assists you to attach container technology to Remote Development environments or detach container technology from Single & Multi Cloud Clustering environments.


Attach Container Technology

Transforms your environment from using bare metal to adopt  container technology as its infrastructure technology, Read More.

Step 1: Attach Container TechnologyStep 2: Select Provider and technology



Step 3: Status ProgressStep 4: Infrastructure Updated


Detach Container Technology

You can also detach the container technology and transform your environment to use bare metal as its infrastructure technology, Read More.

Important to know

If you detach a container technology, all deployments, secrets and services that are using container technology for this environment will be stopped and removed and this step is irreversible 

Step 1: Detach Container TechnologyStep 2: Infrastructure Updated




Provisioning and Managing Virtual Machines 


Virtual Machines are also part of an environment infrastructure and the wizard also assist you in provisioning and managing virtual machine layers that you can then use to deploy source code & resources in them.

Virtual machine layers are created using Infra As Code templates on Infra Cloud Providers where these templates are built to run on Native drivers such as AWS Cloud Formation or even 3rd party technologies such as Terraform.

Once you integrate your Infra Cloud Providers and import/prepare your Infra As Code Templates, the wizard will assist you in configuring and creating Virtual Machine Layers with multiple instances as well as offer you the mechanism to manage already created VM Layers.

Managing Existing VM Layers

Create New VM Layer ( choose infra provider )
Create New VM Layer ( select template )