Un retour vers l'open-source : Vos outils DevOps préférés et leurs équivalents open-source
La controverse de Hashicorp Terraform qui a secoué le monde de l’IT l'année passée a donné une nouvelle trajectoire au monde déjà en constante évolution de l'open-source. La capitalisation des géants du cloud sur l’open-source en raflant tout le profit sans rien donner en retour en est le plus grand responsable. Malgré tout ça, l’open-source continue à évoluer et les news que ElasticSearch vient tout juste de repasser à une licence open-source après trois ans et demi en est la preuve.
Que vous utilisez des bases de données MySQL ou encore MongoDB, L’open-source est partout! Selon une étude de Sonatype, State of the Software Supply Chain, plus de 90% des composants d'application proviennent de logiciels open-source, ce qui signifie que la majeure partie de ce que nous utilisons pour créer des logiciels provient de la chaîne d'approvisionnement mondiale en logiciels open-source.
L’open-source désigne des logiciels dont le code source est accessible à tous, permettant de l'examiner, le modifier et le distribuer librement. Selon l’Open Source Initiative, il favorise la collaboration et l’innovation. Il existe plusieurs licences open-source qui diffèrent les une des autres selon leurs termes. Dont les principales sont:
-
BSL (Business Source License) : Initialement fermé, le code devient open-source après un certain délai, offrant un contrôle commercial temporaire.
-
Licence Apache : Permissive, elle permet de modifier et distribuer librement le code tout en reconnaissant l’auteur original.
-
MPL (Mozilla Public License) : Combinaison entre permissive et copyleft, elle impose que les modifications du code open-source restent accessibles tout en permettant l’intégration de code propriétaire.
Dans cet article, je vous ai concocté une liste d’outils DevOps open-source répartis en plusieurs catégories principales pour remplacer vos outils payants préférés pour éviter la dépendance aux géants des providers Cloud.
Infrastructure as Code (IaC)**
CloudFormation (payant) vs. OpenTofu & Terraform (open-source)
Terraform
Probablement, la raison principale de l'écriture de cet article. Terraform est l’outil indispensable de l’Infrastructure as Code par Hashicorp, il permet de provisionner et manager vos infrastructures sur n’importe quel cloud en toute sécurité et prévisibilité.
A noter que OpenTofu ou OpenTF est le fork open-source de Terraform en réponse à la décision de retirer la licence open-source des nouvelles versions. Ceci lui aura même valu l'intégration aux “THE LINUX FOUNDATION PROJECTS”.
CloudFormation
CloudFormation est un service AWS permettant de modéliser et de gérer les ressources d'infrastructure AWS de manière automatisée et sécurisée.
Pulumi
Pulumi est un outil d’IaC open-source qui permet la gestion et le provisionning d’infrastructures dans le langage de programmation de votre choix pour plusieurs fournisseurs cloud. En plus de ne pas être limité à un langage spécifique, Pulumi propose aussi la gestion de secrets.
Les solutions payantes comme CloudFormation d'AWS offrent une intégration native et fluide avec l'écosystème cloud AWS. Pulumi permet d'utiliser des langages de programmation classiques pour la configuration, évitant d'apprendre un langage spécifique d'IaC. D'autre part, les outils open-source comme Terraform et OpenTofu permettent de gérer une infrastructure sur plusieurs plateformes cloud, mais nécessitent un apprentissage plus long et des efforts de gestion supplémentaires, surtout si les licences changent, comme cela s'est déjà produit avec Terraform.
Observabilité et monitoring
Splunk & Datadog (payant)
Splunk excelle dans l’indexation, collecte et analyse des logs. Il offre aussi un monitoring de bout-en-bout, une observabilité en temps réel ainsi qu’un système de dashboarding et d’alerting.\
DataDog intègre metrics, logs, tracing, dashboarding et alerting le tout, sur la même plateforme. Ceci en fait une plateforme de monitoring et d'observabilité largement adoptée et assez complète qui s'intègre avec une grande partie de l'écosystème cloud.
Prometheus Stack & OpenTelemetry (open-source)
Le stack Prometheus, Grafana et Loki s'intègre parfaitement : l'agrégation des logs avec Loki est visualisée dans Grafana, et les données peuvent être requêtées à l'aide de langages comme PromQL (pour Prometheus).
OpenTelemetry est un outil open-source d’instrumentation, de génération, de collecte et d’exportation de données de télémétrie (logs, metrics, traces…). OpenTelemetry est un projet de la Cloud Native Computing Foundation (CNCF) qui s'intègre tout aussi bien avec le stack Prometheus qu'avec le stack Elasticsearch, Kibana et Logstash (ELK)
Les outils comme Splunk et Datadog sont certes coûteux mais puissants pour la gestion des logs des grandes entreprises, et unifient la surveillance cloud-native dans le cas de Datadog. Le stack open-source Prometheus-Grafana-Loki et OpenTelemetry bien que flexibles demandent beaucoup de ressources, et nécessitent un apprentissage important et souffrent encore de problèmes de compatibilité, respectivement.
Orchestration
Red Hat Openshift (payant)
Red Hat Openshift est un service de type platform as a service permettant de déployer des projets dans des conteneurs basé sur Docker et Kubernetes.
Kubernetes & Rancher (open-source)
Rancher est une plateforme d’orchestration multi-cluster open-source permettant aux équipes de gérer, déployer et sécuriser leur clusters Kubernetes.
Kubernetes est un outil open-source pour automatiser le déploiement, la gestion et la scalabilité des applications conteneurisées.
Les solutions payantes comme OpenShift se distinguent par une intégration complète avec CI/CD et une sécurité renforcée mais avec une compatibilité limitée à Red Hat et ses dérivés. À l'inverse, Kubernetes, open-source, est flexible et extensible, mais reste difficile à prendre en main pour les équipes sans expertise. Rancher, également open-source, simplifie la gestion des clusters Kubernetes avec une interface intuitive, mais il peut manquer de certaines fonctionnalités intégrées offertes par des solutions payantes.
Container Registry
ECR (aws) & GCR (GCP) & ACR (Azure) (payants)
Elastic Container Registry (ECR), Google Artifact Registry (GAR) et Azure Container Registry (ACR) sont les services respectifs de AWS, GCP et Azure pour créer, stocker, gérer, répliquer… vos images et autres artefactes.
Harbor & Docker Registry (open-source)
Harbor est une solution open-source pour sécuriser et gérer les images de conteneurs, offrant des fonctionnalités telles que la gestion des vulnérabilités, les signatures d’images et la réplication multi-cluster.
Docker Registry est un service open-source pour stocker, distribuer et gérer les images Docker, permettant aux développeurs de pousser et tirer des images vers des dépôts centralisés.
Les solutions payantes comme ECR, ACR, et GCR offrent des fonctionnalités intégrées comme le scan de vulnérabilité, la purge automatique et une bonne intégration avec les pipelines CI/CD, mais sont limitées à leurs écosystèmes respectifs. Harbor, open-source, propose une gestion avancée des images avec des politiques de rétention et des intégrations CI/CD, mais peut être complexe à installer pour les petites équipes. Docker Registry, une plateforme massive, fournit un accès facile à des millions d'images, mais nécessite des configurations supplémentaires pour des fonctionnalités avancées comme la sécurité et la rétention.
CI/CD
AWS CodePipeline, AWS CodeBuild, AWS CodeDeploy. Azure DevOps. Google Cloud Build, Google Cloud Deploy (payant) vs. ArgoCD, Jenkins, Gitlab CI/CD, Tekton (open-source)
Dans AWS, CodePipeline automatise les workflows CI/CD, CodeBuild compile et teste les applications, tandis que CodeDeploy déploie les mises à jour dans différents environnements, assurant la continuité du service. Dans Azure DevOps fournit des outils pour gérer les pipelines CI/CD, la gestion des versions et le suivi de projets, facilitant le déploiement automatisé et collaboratif du code. Et dans Google, Cloud Build automatise la création et le test de builds, tandis que Cloud Deploy gère les déploiements continus, particulièrement pour les environnements Kubernetes.
ArgoCD est un outil open-source pour le déploiement natif Kubernetes basé sur GitOps, facilitant la gestion des versions et le suivi des modifications des clusters Kubernetes. Plus d'infos.
Jenkins est un serveur open-source d'automatisation qui permet de configurer et d'exécuter des pipelines CI/CD avec une grande flexibilité grâce à ses nombreux plugins.
GitLab CI/CD intègre directement des fonctionnalités d'intégration et de livraison continues au sein de GitLab, permettant de créer des pipelines DevOps complets et automatisés.
Tekton est un framework open-source Kubernetes natif conçu pour créer, gérer et exécuter des pipelines CI/CD de manière modulaire et flexible.
Les services cloud comme AWS, Azure, et Google Cloud offrent une intégration étroite avec leurs écosystèmes respectifs, ce qui facilite l’automatisation des pipelines CI/CD, notamment via des outils comme CodePipeline, Azure DevOps ou Google Cloud Build. Cependant, leur tarification peut vite augmenter, et leur configuration peut devenir complexe pour les petites équipes. Les solutions open-source d’une autre part, telles que ArgoCD, Jenkins, GitLab CI/CD et Tekton permettent une personnalisation poussée et sont libres, mais elles nécessitent souvent plus de compétences techniques et une gestion de l'infrastructure plus intense, ce qui peut représenter un obstacle pour les équipes moins expérimentées.
Backup
Velero (open-source)/ Veeam Kasten, Trilio (payant)
Velero est un outil open-source pour la sauvegarde et la restauration des ressources Kubernetes et des volumes persistants, facilitant la récupération après sinistre et la migration de clusters.
Veeam Kasten est une plateforme native pour Kubernetes qui assure la sauvegarde, la restauration et la récupération après sinistre des applications déployées sur Kubernetes.
Trilio est une solution de protection des données cloud-native, offrant des fonctionnalités de sauvegarde, restauration et migration pour les environnements Kubernetes, OpenStack et Red Hat Virtualization.
Veeam Kasten et Trilio sont des solutions payantes offrant une protection avancée pour les environnements Kubernetes et multi-cloud, avec des fonctionnalités robustes de sauvegarde et de récupération. Velero, en tant qu'outil open-source, s'intègre bien avec Kubernetes et est une alternative flexible, mais nécessite plus de gestion et de configuration par rapport aux solutions payantes.
Storage
Azure Blob Storage, Google Cloud Storage, S3 (payant)
Azure Blob Storage et Google Cloud Storage offrent un stockage d'objets pour des données non structurées, permettant un accès à grande échelle et une haute durabilité. Google Cloud Storage se distingue par ses classes de stockage adaptées à divers scénarios d'accès et de coût. Amazon S3 est un service de stockage d'objets extrêmement scalable avec différentes classes de stockage, connu pour sa robustesse et sa sécurité.
MinIO (open-source)
MinIO, une solution open-source, est compatible S3, optimisée pour des performances élevées et souvent utilisée dans des environnements cloud-native.
Les solutions comme Amazon S3, Azure Blob Storage et Google Cloud Storage offrent un stockage évolutif, sécurisé et intégré dans des environnements cloud, adapté aux grandes entreprises cherchant à simplifier la gestion des données. En revanche, MinIO, une alternative open-source compatible S3, est une option flexible pour ceux qui recherchent une solution personnalisable, mais qui nécessite une gestion plus poussée et des compétences techniques pour son déploiement et sa maintenance.
Secrets management
AWS Secrets Manager, Google Cloud Secret Manager, Azure Key Vault (payant)
AWS Secrets Manager, Google Cloud Secret Manager, Azure Key Vault sont des services cloud gérés permettent de stocker et gérer des secrets (comme des clés API, des mots de passe, ou des certificats) de manière sécurisée. Ils offrent des fonctionnalités de rotation automatique des secrets, de contrôle d'accès via des politiques, et d'audit intégré, simplifiant la gestion des secrets à grande échelle.
Hashicorp Vault, Bitnami Sealed Secrets (open-source)
HashiCorp Vault est un outil open-source pour sécuriser, stocker et gérer l'accès aux secrets et identités dans des environnements multi-cloud et on-premise. Il propose des fonctionnalités avancées comme le chiffrement de données et la gestion des accès dynamiques.
Sealed Secrets est une extension open-source de Kubernetes qui chiffre les secrets pour les sécuriser dans les clusters. Seuls les contrôleurs dans le cluster peuvent déchiffrer les secrets, assurant la sécurité même en CI/CD. Plus d'infos.
Les solutions payantes comme AWS Secrets Manager, Google Cloud Secret Manager et Azure Key Vault facilitent la gestion sécurisée des secrets via leurs écosystèmes cloud, mais sont coûteuses et liées à ces environnements. HashiCorp Vault permet une gestion multi-cloud plus flexible, mais sa complexité et l'absence totale d'open-source pour les nouvelles versions freinent son adoption. Bitnami Sealed Secrets, conçu pour Kubernetes, est utile en CI/CD mais limité à cet environnement.
Authentication
KeyCloak, SuperTokens (open-source)
Keycloak est une solution open-source de gestion des identités offrant des fonctionnalités comme l'authentification unique (SSO), l'intégration LDAP/AD, et la gestion centralisée des utilisateurs et des rôles.
SuperTokens propose une authentification open-source simple et sécurisée, incluant la gestion des sessions, des connexions par email/mot de passe et des connexions sociales. Il est conçu pour être léger et facilement intégrable dans divers projets web et mobile.
Okta, Auth0 (payant)
Okta est une plateforme payante de gestion des identités destinée aux entreprises, offrant des solutions complètes de SSO, MFA et gestion des utilisateurs. Elle s'intègre à de nombreuses applications pour faciliter la sécurisation des accès à grande échelle.
Auth0 est une plateforme payante qui simplifie la gestion des identités et des accès grâce à des fonctionnalités comme SSO, MFA et des connexions sociales. Elle est très flexible et s'intègre facilement à différentes applications pour sécuriser les utilisateurs.
Les solutions payantes comme Okta et Auth0 fournissent des services SaaS puissants pour une gestion simplifiée des utilisateurs et une intégration rapide. À l'inverse, les solutions open-source comme KeyCloak et SuperTokens offrent flexibilité et personnalisation, mais nécessitent une gestion plus complexe et un savoir-faire technique approfondi.
Conclusion
Vous l’aurez donc compris! La plupart de vos outils DevOps payants préférés ont leur.s équivalent.s open-source. Au final, le choix de ces outils dépend étroitement des besoins de votre entreprise. Mais à mesure que le vendor lock-in devient une crainte de plus en plus considérable et qu’on commence à opter davantage pour une approche multi-cloud ou encore hybrid-cloud. L’open-source ne perd en rien de sa popularité et reste même toujours l’une des solutions favorites. Vous pouvez soutenir le mouvement open-source en partageant les outils, en y contribuant pour les faire évoluer ou surtout en y investissant en faisant des dons…
Découvrez les derniers articles d'alter way
- Big Data & AI Paris 2024 : L'IA au cœur de toutes les transformations.
- Un retour vers l'open-source ? Vos outils DevOps préférés et leurs equivalents open-source.
- Prowler : L'outil de sécurité multi-cloud indispensable pour renforcer votre infrastructure
- Kubernetes : plateforme "star" de l'IT et levier d'innovation des entreprises
- AI_dev2024
- : DirectPV : Avoir du stockage bloc distribué facilement dans kubernetes