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&rsquoobjectif 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&rsquoobjectif est d&rsquoobtenir un déploiement d&rsquoapplications 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&rsquoorchestration.
◦ Configuration des machines à l&rsquoaide de l&rsquooutil Ansible.
Les tutoriels sont à découvrir sur http://frederic-********.*
Reprise en main de l&rsquoexistant 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 &oeliguvre 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&rsquoanonymisation 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&rsquoinfrastructure existante et la faire évoluer selon les nouvelles orientations et
projets de la société.
◦ Maintien opérationnel de l&rsquoexistant.
▪ Résolution de tous les changements et incidents.
▪ Migration des serveurs XenServer et des version Linux.
▪ Compilation et distribution d&rsquoapplications dans des containers Docker.
▪ Développement de classes Puppet.
◦ Mise en &oeliguvre d&rsquoun environnement complet Big Data Apache Hadoop.
▪ Test des solutions Cloudera et Hortonworks.
▪ Réalisation d&rsquoun POC Hadoop (solution Hortonworks retenue) : Clusters HDP et HDF
gérés par Ambari