Kubernetes on Azure (AKS)
Kubernetes cluster migration (latest version : 1.20.7)
APIs migration before update, then rolling upgrade.
Helm v3 evangelisation.
Multi Ingress controllers (Nginx Kubernetes community) + cert_manager (Let's encrypt).
SLL/TLS keys and certificates managed by cert-manager.
Persistent storage
In fact, only 2 storage classes are available on Azure ("default" : RWO ; "azurefile" : RWX which is much more expensive). Switch to the appropriate storage class (persitent volume claims) according to rolling upgrade needs.
Monitoring console (Grafana for metrics and logs).
Grafana 8.1 deployed inside a K8s cluster.
Prometheus deployed and customized inside all K8s clusters to collect all metrics.
Promtail + Loki deployed and customized inside all K8s clusters to collect all logs.
Custom dasboards added on Grafana to display relevant graphics and logs.
Distributed tracing (all components deployed in a K8s cluster).
OpenTelemetry to collect tracing.
both Jaeger and Zipkin user interfaces.
Continuous integration.
Avoid Dockerfile to use BuildPacks (Paketo builder).
Kubernetes on premise:
Kubernetes cluster installation using CRI-O container engine + Calico or Cilium CNI.
Helm v3:
Deploy chart information stored into a PostgreSQL database instead of Kubertes Secret resources.
Many tutorials published on LinkedIn : ********-********-226b657/detail/recent-activity/shares/
Evangelize good practices and adapted utilities:
Helm v3 promotion for the deployment of Kubernetes resources; separate the configuration of these resources from the application settings; modularity of applications using umbrella charts).
Writing use case examples.
Promote community graphics: ******** and edits them as needed.
Promote tools that improve productivity; readability and maintainability (management of secrets by sealed-secrets; continuous deployment using suitable tools such as ArgoCD or FluxCD; moving towards "serverless" technologies (e.g Fission ; Knative).
Update the existing Openshift 3.11 cluster:
to correct mistakes and security flaws
to make operative the first version of the CI / CD pipeline
to make specific OpenShift resources compliant with Kubernetest :
DeploymentConfig -> Deployment
Route -> Ingress + Secret
SecurityContextConstraint -> PodSecurityPolicy
to consider OpenShift 4.x migration (How to proceed, difficulties)
Edit Helm (v3) charts:
to manage Sonatype Nexus Helm repositories (proxy/hosted)
to define dependencies (modularity).
Review and correct the OCI image creation pipeline using Kaniko builder (Jenkins PodTemplate)
Use Helm charts to deploy utilities (e.g. Sonarqube ; Jenkins ...).
Provide expertise for security (image vulnerability, RBAC: service accounts + user accounts).
Modular design promotion (a configurable role limited to one action such as for example to manage "logrotate", and which will be used in different playbooks or other roles), to consider a continuous integration pipeline (e.g. using "molecule" as test tool).
Promotion of the use of (commit) tags for installation ; upgrade and cleanup.
Installing roles via ansible-galaxy.
Encryption of passwords and sensitive files using "ansible-vault".
Use of the community roles of ******** hub, even if it requires modifying them, creating other branches (Git), to avoid "reinventing the wheel"
Development of complete roles and playbooks for utilities deployment.
SELinux
"context" settings (files; ports) mandotory for REHL 8.x (e.g. non RedHat service).
NetApp/Trident
storagesclass settings for Kubernetes stateful applications.
"clone volume" feature for persistent volumes backup.
Agile, DevOps
Agile methodology
Promote the notion of difficulty (story points <=> complexity and amount of sweat), risk of failure, possibility of abandonment or change of solution for engineering projects, and maintain the notion of size of T-shirts for more common operations.
DevOps
Instead of the continuous integration chain leading to a deployment, promote GitOps principles where Git repositories (hosted by tools like BitBucket; GitLab ...) are the benchmark of truth. Continuous integration chains (which creates images, Helm cards) deposit in these registers on one side, and on the other, continuous deployment tools (such as ArgoCD; FluxCD ...) are absorbed in these repositories all the artifacts needed to deploy or update any application (hosted in a Kubernetes cluster).
Due to the Covid-19 pandemic, the mission for BNP Paribas was suspended ...
Tutorials about RHEL / CentOS 8.1 upgrade:
NetworkManager.
KVM.
Docker/Kubernetes/Helm et intégration de nouveaux
projets.
Intégrer sous Docker/kubernetes.
◦ Adapter des applications wealth management à un cluster Docker (Swarm ou/et
Kubernetes) configuré pour répondre aux exigences sécuritaires du client.
◦ Renforcer la sécurité des containers Docker.
◦ Deploiement d'applications dans un cluster Kubernetes (Docker EE).
◦ Rédaction de guides de bonnes pratiques et évangélisation des principes de
containerisation :
◦ Docker :
▪ construction optimisée des images
▪ construction "multi staging"
◦ Kubernetes :
▪ principes de base : namespace ; pod ; service ; configmap ; secret
▪ réalisation de scripts bâtis autour de la commande "kubectl" en utilisant le filtre
JSONPath
▪ les contrôleurs : Deployment ; Job ; CronJob ; DaemonSet
▪ non persistent storage, Secret ; ConfigMap
▪ persistent storage : StorageClass ; PersistentVolume ; persistentVolumeClaim
▪ services : ClusterIP ; NodePort
▪ limitiation des resources au niveau d'un Namespace: LimitRange (pod/container) ;
ResourceQuota
▪ Events ; logs & metrics
▪ éviction des pods d'un node ("cordon" ; "drain" ; "undrain" ; "PodDisruptionBudget")
▪ label des nodes, "nodeSelector"
▪ Ingress
▪ création de containers "sidecar" pour récupérer les logs d'un autre container du
même pod
Configuration des hooks "PreStart" et "PostStop" au niveau container.
◦ Sécurité :
▪ RBAC
ServiceAccount ; x509 user account
Role ; CluserRole
RoleBinding ; ClusterRoleBinding
◦ Helm v2/v3
▪ création de charts pour déployer des applications
▪ installation de la stack EFK (Elasticsearch ; Fluent bit ; Kibana) pour collecter les logs.
Attention : la suite ELK n'est pas adaptée à Kubernetes !
◦ Kubernetes operator :
▪ Etudier l'installation de MongoDB EE via un operator
Intégrer de nouvelles applications.
◦ Mettre en place dans l'environnement du client, des applications conçues par des startup, Toucan Toco par exemple : ********-bnpwealth-management-mise-sur-toucan-toco-pour-sa-dataviz-72814.html .
Mission de conseil :
◦ Intégration DevOps dans un mode GitOps (Git est la référence de tous les artifacs,
l'intégration continue dépose dans un repository Git les images de container + Helm
charts + custom resources ; le déploiement continu se fait à l'aide de webhooks définis
dans Git).
◦ Remplacement de Docker pour construire les images OCI par des alternatives : Kaniko et
Jib.
Déploiements dans le cloud (à la maison) :
◦ Création de tutoriels dans un cluster Kubernetes dans un cloud DigitalOcean.
containerisation des logiciels middleware.
L’objectif est de délivrer tous les logiciels middleware sous la forme de containers Docker.
◦ Création des fichiers Dockerfile et Jenkinsfile ("stages" : récupérations des fichiers Git ;
construction des images et envoi vers le Docker registry approprié géré par Portus).
◦ Fabrication des images grâce à un POD OpenShift (Jenkins slave server on demand).
◦ Validation des images à l'aide de "docker inspect" et BATS.
◦ La construction des images (Jenkins pipelines) se fait dans des pods OpenShift hébergé
sur un cloud Azure.
En inter-mission : approfondissement des compétences orientées DevOps pour rebondir sur de
nouvelles missions.
L’objectif est d’obtenir un déploiement d’applications sous la forme de containers Docker.
◦ Création de machines virtuelles KVM pour limiter le nombre de machines physiques à
utiliser.
◦ Création de nouvelles images à partir des images de base de la forge Docker Hub.
◦ Stockage de ces images dans une "registry".
◦ Étude de solutions d’orchestration.
◦ Configuration des machines à l’aide de l’outil Ansible.
Les tutoriels sont à découvrir sur http://frederic-********.*
Reprise en main de l’existant pour le rendre de nouveau opérationnel et en assurer le support
niveau 3.
◦ Correction des étapes de validation des modules Puppet dans Jenkins, et écriture de
nouveaux modules Puppet.
◦ Proposition de simplification : regrouper les classes Puppet à appliquer et leur
paramétrage dans "hiera" uniquement, synchroniser Jenkins par un "hook" dans Git et
revoir la configuration de R10k, migrer Puppet 3.8 → 5.3 (+ PuppetDB + Puppetboard) et
séparer par communauté les modules issus de la forge pour résoudre les problèmes de
dépendance.
◦ Promotion des containers Docker pour les outils dans un premier temps, Jenkins comme
exemple.
◦ Sécurité : étude des failles de sécurité Meltdown et Spectre : mesure des dégradations
des performances après application des correctifs, analyse des risques réels et
formulation de recommandations.
Mise en œuvre du cluster Apache Hadoop HDP de production.
◦ Installer et rendre opérationnel un cluster Hadoop Data Platform, géré par Ambari, avec
les composants Ambari metrics ; smartsense ; HDFS ; Zookeeper ; Yarn ; Oozie Les composants ont été mis en mode haute disponibilité.
◦ Ajout des services NiFi et Kafka.
◦ Gestion des accès par Ranger (en relation avec un Active Directory).
◦ Protection du cluster grâce à Knox gateway.
◦ SSL : Shiro ; Kerberos : Spnego.
******** est spécialisée dans l’anonymisation des données
pour lesprojets de recherche médicale.
Responsable de l'infrastructure et de la sécurité.
Responsable de l'infrastructure et de la sécurité.
Maintenir l’infrastructure existante et la faire évoluer selon les nouvelles orientations et
projets de la société.
◦ Maintien opérationnel de l’existant.
▪ Résolution de tous les changements et incidents.
▪ Migration des serveurs XenServer et des version Linux.
▪ Compilation et distribution d’applications dans des containers Docker.
▪ Développement de classes Puppet.
◦ Mise en œuvre d’un environnement complet Big Data Apache Hadoop.
▪ Test des solutions Cloudera et Hortonworks.
▪ Réalisation d’un POC Hadoop (solution Hortonworks retenue) : Clusters HDP et HDF
gérés par Ambari