CASE STUDY - Extension of Containerization Project
Versione Italiana
LA SFIDA
Il cliente voleva comprendere come il loro modello di sviluppo e gestione delle applicazioni, fortemente legato ad un ambiente ed approccio legacy, potesse essere applicato al mondo container senza stravolgere gli altri processi.
LA SOLUZIONE
In un contesto dall'esito incerto, il cliente ha preferito utilizzare una soluzione open-source, per limitare rischi e costi.
La soluzione proposta, insieme al Sircle DevOps Engineering, comprende la realizzazione di un ecosistema composto con le seguenti tecnologie:
IL NOSTRO LAVORO
Utilizzando la metodologia GitOps è stato sviluppato un playbook Ansible che si occupa delle seguenti attività:
- Deploy 12 VM su vSphere, tramite Packer.
- Installazione kubernetes vanilla, tramite Kubeadm. 2 clusters (3 masters - 3 workers).
- Installazioni componenti aggiuntive al cluster kubernetes (Gitlab-runner, vault agent, cilium, vSphere CSI ecc.., ), tramite Helm.
- Aggiornamento cluster kubernetes e componenti aggiuntive.
- Scale up e scale down cluster.
Sono stati installati e configurati i server di Gitlab e Hashicorp Vault.
Così facendo il team di infrastruttura ha a disposizione un meccanismo automatico di deploy ed update dell'ecosistema kubernetes, versionato e consistente che può utilizzare in modo autonomo.
Utilizzando la metodologia DevOps sono state sviluppate tramite Gitlab CI/CD le seguenti pipeline:
- Un nuovo workflow di CI che permette di standardizzare le applicazioni mediante adozione di convenzioni nella struttura dei progetti e velocizzare il workflow di sviluppo.
- Un nuovo processo CD su misura di deploy rapido degli applicativi invocabile da strumenti di terze parti e con Segregation of duties per i vari utenti/gruppi.
Così facendo il team di sviluppo ha a disposizione un meccanismo automatico di deploy e rilascio applicativo sul cluster kubernetes, analogo a quello utilizzato nel modello legacy.
METODOLOGIA GITOPS
GitOps è una metodologia che utilizza Git come unica fonte di verità su cui definire l'infrastruttura come codice, in modo da standardizzare il workflow, aumentare la sicurezza e la consistenza tra gli ambienti.
Utilizzando questa metodologia, l'infrastruttura viene gestita come codice e viene ampliata all'utilizzo della CI/CD.
Siamo certi che l'approccio GitOps sia una parte fondamentale per una gestione più chiara e facilitata per il cliente.
METODOLOGIA DEVOPS
L'approccio DevOps permette di accelerare la parte dev ed operation tramite automazione, collaborazione, feedback veloci e miglioramenti iterativi.
Utilizzando questa metodologia, il rilascio di codice viene semplificato ed automatizzato, portando il ciclo di sviluppo ad essere molto più veloce.
Il cliente andrà in produzione con questa infrastruttura il 24 Novembre
English Version
THE CHALLENGE
The client would understand how their developing model and application management, strongly linked to legacy infrastructure and approach, could be applied to the world of containers without altering other processes.
THE SOLUTION
In an uncertain context, the client preferred to use an open-source solution, to reduce risk and cost.
The proposed solution, with Sircle DevOps Engineering, includes the realization of an ecosystem composed of these technologies:
- Gitlab: versioning and pipeline (CI/CD)
- HashiCorp Vault: secret managment
- Kubernetes vanilla: container orchestrator
- Ansible and Packer: GitOps management
- Helm and Kustomize: GitOps management
OUR WORK
Using GitOps methodology had been developed an Ansible playbook that manages these activities:
- Deploy of 12 VMs on vSphere, with Packer.
- Kubernetes vanilla installation, with Kubeadm. 2 clusters (3 workers – 3 masters)
- Kubernetes additional component installation (Gitlab-runner, vault agent, cilium, vSphere CSI, etc...), with Helm
- Kubernetes cluster and additional components update.
- Cluster scale up and scale down.
Gitlab and Hashicorp Vault servers were installed and configured.
In this way, the infrastructure team has an automatic deployment and update mechanism of the Kubernetes ecosystem, versioned and in a consistent form that could be used independently.
Using DevOps methodology had been developed with Gitlab CI/CD these pipelines:
- A new CI workflow that put a standard method in the structure of developing the applications and raised the speed of development.
- A new CD tailor-made process of rapid application deployment invokable from third-party instruments and Segregation of duties for users/groups
In this way, the developing team has an automatic deployment and application release mechanism on Kubernetes, like the legacy one.
GITOPS METHODOLOGY
GitOps is a methodology that uses Git as a single source of truth that defines the infrastructure as code, to standardize the workflow, and increase security and consistency between the environments.
Using this methodology, the infrastructure is managed as code, and it's extended with the use of CI/CD.
We are sure that the GitOps approach is a fundamental part of clearer and easier management.
DEVOPS METHODOLOGY
The DevOps approach allows you to accelerate the dev and operation part with automation, cooperation, fast feedback, and iterative improvements.
Using this methodology, the code release is simplified and automated, making the development cycle much faster.
The client will use this infrastructure in production the 24 November