Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: added in link to infra repo for partners

What does DIGIT Deployment mean

  1. Provisioning the kubernetes Cluster in any of the commercial cloud or private state datacenter or NIC
  2. Setting up the

...

  1. persistent disk volumes to attach to

...

  1. DIGIT backbone stateful containers like (Kafka, Elastic Search, ZooKeeper)
  2. Setting up the PostGres DB

...

  1. Preparing Deployment configuration using Templates from the InfraOps
    1. K8s Secrets
    2. K8s ConfigMaps

...

    1. Environment variables of each microservices
    2. Preparing DIGIT Service helm templates to deploy on kubernetes cluster
  1. Setting up Jenkins Job to build, bake images and deploy the components for the rolling updates.
  2. Setup Application monitoringDistributed TracingAlert management 

High-level sequence of deployment

  1. Create Kubernetes Cluster
  2. DB Setup
  3. Provision Persistant volumes
  4. Deploy configuration and deployment in the following Services Lists
    1. Backbone (Redis, ZooKeeper,Kafka, ES-Data, ES-Client, ES-Master)
    2. Gateway (Zuul, nginx-ingress-controller)
    3. Core Services
    4. Business Services
    5. Municipal services
    6. Infra services
    7. Frontend
  5. Setup CI Jenkins, Docker Registry
  6. Setup Deployment CI/CD

...

    • General
      • Understanding of VM Instances, LoadBalancers, SecurityGroups/Firewalls, ngnix, DB Instance, Data Volumes.
      • Experience of kubernetes, docker, jenkins, helm, Infra-as-code, Terraform
      • Clound Cloud Infra - Permission and account to provision the above resources.
    • On-premise/private cloud requirements
      • Cloud Interface access to provision above infra
    • Public cloud requirements
      • AWS or Azure account or GCP

Image Removed

Sample Kubernetes Architecture:

...

Image Added


Infrastructure Components

  1. Basic Requirements (Size, Memory)
    • Public Cloud
      • Cloud native kubernetes engine like AKS, or EKS or GKE or NIC or Provision your own on SDC
      • 6 k8s Nodes- with each 16GB RAM and 4 vCore CPUs
    • On-Prem/Data Center or custom 
      • 1 Bastion - 2GB RAM, 1vCore CPU
      • 3 k8s Master- 2 GB RAM 2 vCore CPU
      • 4-6 k8s Nodes with each 16GB RAM and 4 vCore CPUs
  2. Infrastructure type (Services, DB servers, Storage, etc)
    1. DB
    2. Persistant volumes (NFS/iSCSI/SWIFT/etc)
    3. LoadBalancer or Public IP  
    4. DNS, SSL
  3. Environments to set up (Development, Production, etc)
    1. Dev, UAT and Prod
  4. Services to be used on each Infrastructure type
    1. Backbone
    2. eGov Platform Services
    3. Municipal Services
    4. Infra Services
    5. Frontend

...

  • https://github.com/egovernments/eGov-infraOpsPython based  OR https://github.com/egovernments/Train-InfraOps
  • Golang base Deployment script that reads the value from the

    Jinja 2

    helm charts template and deploys into the cluster.       

  • Each env will have one master Template that will have the definition of all the services to be deployed, their

    dependancies

    dependencies like Config, Env, Secrets, DB Credentials, Persistent Volumes, Manifest, Routing Rules, etc.. 

 Image RemovedImage Added


Deployment Configurations

...