What does DIGIT Deployment mean
- Provisioning the kubernetes Cluster in any of the commercial cloud or private state datacenter or NIC
- Setting up the
...
- persistent disk volumes to attach to
...
- DIGIT backbone stateful containers like (Kafka, Elastic Search, ZooKeeper)
- Setting up the PostGres DB
...
- Preparing Deployment configuration using Templates from the InfraOps
- K8s Secrets
- K8s ConfigMaps
...
- Environment variables of each microservices
- Preparing DIGIT Service helm templates to deploy on kubernetes cluster
- Setting up Jenkins Job to build, bake images and deploy the components for the rolling updates.
- Setup Application monitoring, Distributed Tracing, Alert management
High-level sequence of deployment
- Create Kubernetes Cluster
- DB Setup
- Provision Persistant volumes
- Deploy configuration and deployment in the following Services Lists
- Backbone (Redis, ZooKeeper,Kafka, ES-Data, ES-Client, ES-Master)
- Gateway (Zuul, nginx-ingress-controller)
- Core Services
- Business Services
- Municipal services
- Infra services
- Frontend
- Setup CI Jenkins, Docker Registry
- 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
Sample Kubernetes Architecture:
...
Infrastructure Components
- Basic Requirements (Size, Memory)
- Infrastructure type (Services, DB servers, Storage, etc)
- DB
- Persistant volumes (NFS/iSCSI/SWIFT/etc)
- LoadBalancer or Public IP
- DNS, SSL
- Environments to set up (Development, Production, etc)
- Dev, UAT and Prod
- Services to be used on each Infrastructure type
- Backbone
- eGov Platform Services
- Municipal Services
- Infra Services
- 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 2helm 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
dependanciesdependencies like Config, Env, Secrets, DB Credentials, Persistent Volumes, Manifest, Routing Rules, etc..
Deployment Configurations
...