Code Validation and Code Segregation

BioT’s supports implementing and integrating continuous delivery pipelines. A continuous delivery pipeline is the process for getting software from version control right through to system users and end customers.

BioT Leverage Continues Development and Continues Integration methodology making sure the code is bug free and has no viruses nor security vulnerabilities before released to customers.

In pilot and production stages BioT is leveraging Continuous Development and Continuous Integration methodology.
Under this methodology 3 environments are installed.
Accounts are applied with strict Identity and Access Management (IAM) permissions.

EnvironmentDescription
DevelopmentThe development environment serves as a dedicated space for developers to author, evaluate, and refine code. It is segregated to guarantee that experimental modifications do not impact either the pilot or production settings. This environment may host multiple variations of your ongoing projects, including works in progress. It may also feature different versions of plugins code, entities, and prospective changes to the data model. Additionally, the availability configurations in this environment are intentionally distinct from those in production to facilitate a more streamlined development process and minimize associated costs.
StagingThe staging environment exclusively houses the finalized version of the product intended for release to either the pilot or production stages. It is equipped with security, resiliency, and availability features that are required in production, thereby enabling rigorous real-world scenario support.
ProductionThe production environment is the live environment where actual users access and use the final version of the platform. It is important to ensure that the production environment is stable and reliable, and that any changes are made carefully and with minimal downtime.
Production environments are monitored closely to detect any errors or performance issues.

Key Reasons for Environment Separation

  1. Risk Mitigation: In both production and pilot stages, the primary objective is to minimize the risk of operational disruptions. Establishing distinct staging and/or production environments ensures that developmental changes or errors do not inadvertently compromise the integrity of the pilot or production phases.
  2. Performance Validation: The staging environment, in PoCs or in Production scenarios allow you to validate the performance of your solution under conditions that closely resemble the eventual live environment. This is crucial for identifying any scalability or reliability issues early on.
  3. Data Isolation: Even in cases where the pilot is internal, it's prudent to keep test data separate from the data generated during the pilot. This ensures clarity in results and maintains data integrity.
    Debugging and Troubleshooting: If any issues arise during pilot or production, they can be more efficiently diagnosed and resolved when the environments are separate. This ensures that the pilot/production progresses smoothly and yields reliable results.
  4. Version Control: The management of software versions is simplified when development and staging/production environments are distinct. This is particularly advantageous when transitioning from the pilot phase to full-scale production, as it enables a more seamless rollout of validated features.

Microservices Segregation

All services adhere to a permission control mechanism that governs their entitlements. For every service a role is defined and the associated permissions allowed for this role. JWT tokens are used to authenticate services and check for their run-time permissions.