Infrastructure

This document provides a concise guide to various implementation paths for deploying our solutions, tailored to specific organizational needs. It includes options like using our SaaS codebase as a development springboard, deploying our product as a PaaS in your Azure cloud, and reusing code components for custom integration, each offering distinct advantages in terms of development time, customization, and infrastructure control.

Implementation Paths

Depending on your needs, you may choose from several approaches to use our solutions locally.

1. SaaS - Codebase as bootstrap

Use our codebase as a starting point and get ahead of the game.
This path would save you several years of development in order to reach a fully working, comprehensive, and extendable SaaS.

2. PaaS (Product as a Service)

Deploy and run 1:1 our solution in your own Azure cloud.
This path would allow you to create your own working version in just a few weeks.

3. Code reuse (Base)

Codebase contains an enormous amount of well-structured and production-proven components.
You can integrate or reuse any of them within your solution

  • Internal services
  • .Net Nugets
  • Entire Modules
  • Application infrastructure components
  • Advanced features Business logic as modules or suggestions

Modules

You may choose to implement our solutions in full or opt for one of the following modules

  • Mapping module (Mapping.Works and Room.Works)
  • Connectivity module (HSP)
  • BI and insights module (Bi.Works). Requires both modules set above.

Delivery packages

With each of the modules, you receive :

  • IaC (Infrastructure as a code)
    • Terraform-based workflow for building, changing, and managing the infrastructure in the Azure cloud.
    • In the future, this will be expanded to support other Cloud providers
  • Codebase
    • Azure DevOps repositories. Both Git and bvbnm
  • CI/CD
    • Fully operational and automated pipelines for each of the services
  • Documentation
    • HLDs
    • Guides
    • Workflows

More information about Product Delivery & Infrastructure breakdown - Click here


Technology Stack

List of major tech stack components:

  • .Net Framework and .Net Core in C#
  • WCF, Rest APIs
  • Entity Framework and EFCore for work with Azure SQL DBs
  • Redis cache
  • Azure services (major)
  • Blob storage
  • Logic app
  • Functions
  • Data factory
  • ASP.Net MVC and Angular 2/7 for Websites

Tech details

Cloud Hosting

Azure Cloud

Codebase repository

Azure DevOps only and under it, a mixture of TFVC or Git for different projects.

CI/CD pipelines

Azure DevOps Pipelines:

  • Artifacts stored in Storage accounts for non-K8s deployments
  • Azure Container Registry for K8s docker images. Using Helm charts

SSL

  • TLS 1.2 in all our projects.
  • SSL certificate expirations are either automatic or maintained in a dedicated file, tracked/handled/fixed by DevOps.
  • Whitelabel certificates are applied manually via Portal, eg Back office (requires file+password)
  • AKS certificates are auto-renewed using acme.cert-manager.io in the cluster
  • HSP API certificate
    • Azure Key vault certificate
  • Thumbprint and Identifier for the above certificate are added to the deployment configuration

DNS record management

We use Google Cloud DNS but it’s in no way binding and can be managed at your choice.

Maintenance procedures

  • Automated tasks in Azure via Logic apps
  • Automated tasks in our “Robots” application
  • Documentation for DevOps personnel to monitor and maintain anomalies and adjustments as per behavior change
  • Tracking and adopting Azure recommendations

User access management

All of our public-facing websites and APIs we use either:

  • Applicative Authentication and Authorization using:
    • Identity
    • Membership (for legacy)
  • Microsoft accounts Authentication via a dedicated NPM package.

Internal communication

We have a significant number of vnets and NSGs for internal communication.
Internal communication is done in several different ways, be it:

  • HTTP
  • TCP
  • Service bus
  • rabbitMQ

Disaster recovery plan/procedures

  • Microsoft service-specific SLAs
  • Continuous backups for SQL servers

Migration efforts

For both infrastructure and database, everything is covered in IaC including schemas and Seed data.