Outils Open Source Devops : lesquels déployer ?
Aujourd’hui, les solutions open source ne manquent pas. Aussi bien, que de grands groupes (Amazon AWS, Google Cloud, etc. ) les intègrent de plus en plus à l’instar des entreprises de plus petites taille.
Les solutions open source sont présentes dans plusieurs secteurs de l’informatique , et quasiment dans toutes les grandes familles des logicielles (Systèmes d’exploitations, Serveurs Web, Bases de données, ERP, Solution de messagerie, Firewall…) et plus spécifiquement dans l’Agilité, le déploiement ou l’intégration continue, les outils collaboratifs, de supervision… Les domaines sont vastes et les outils open source non moindre.
Pour ne citer que ceux-là, vous trouverez :
- Pour tous vos projets de déploiement, des outils comme : Ansible, Puppet, CF Engine ou bien Chef… Chez Syloé, nous avons opté d’abord pour CfEngine, puis pour Ansible, pour sa simplicité et sa portabilité.
- Le choix d’un outil d’intégration continue (Jenkins,Gitlab-CI,Circle-CI,Travis-CI, etc.) dépendra de vos projets et de vos équipes.
- Les outils d’orchestration open source (Docker, Kubernettes, Openshift, Mesos…) sont également nombreux. Chez Syloé, nous vous conseillons et vous orientons sur le bon choix et selon vos usages.
Il n’y a pas à notre sens un logiciel meilleur qu’un autre dans la même catégorie. Il y a par contre forcément une application qui sera la plus appropriée à votre écosystème. C’est pourquoi un accompagnement Devops dans le choix de vos outils peut être nécessaire et même recommandé.
Pourquoi adopter le Devops ?
Le devops et l’open source ont-ils pour vocation d’améliorer l’agilité ? Depuis le début, la méthode agile promet d’allier le déploiement continu et l’intégration continue. Dans notre accompagnement Devops, nous mettons ces deux concepts au centre de vos projets. Le but étant de permettre une évolution continue basée sur votre productivité.
La notion de déploiement continu peut être scindée en 3 groupes :
- La Gestion de contrôle de Sources ( VCS ou SCM ) qui permet de rassembler le code, les branches et les versions.
- La Plate-forme d’intégration continue qui sera en lien avec le VCS et effectuera des tests, ou bien générera des rapports aux développeurs.
- La plate-forme de livraison qui permet le « provisionning » des versions sur des serveurs, des clusters ou toute autre plateforme de production.
Les différentes étapes et outils open source Devops à deployer pour une meilleur mise en oeuvre
Les 3 groupes principaux peuvent se décomposer en 5 étapes pour une meilleure planification et mise en œuvre dans le processus Devops.
1 – La gestion des Contrôles des sources (SCM)
On y trouve donc entre autres comme outils :
- SVN: c’est un système de gestion centralisée historique, et n’est plus très utilisé.
- Git : système de gestion décentralisé le plus couramment utilisé, car il permet d’offrir la notion de dépôt multibranche et permet à tout un chacun d’en cloner une partie précise sur sa propre machine. Il contient aussi une notion avancée relative à la gestion des droits des utilisateurs et contributeurs.
- Mercurial : identique à peu de chose près à Git.
L’idée derrière une gestion des sources est bien évidemment d’éviter les conflits entre le code des développeurs et d’avoir un accès continu et régulier aux codes « commit », commenter ses actions, créer des branches à chaque changement, et ne pousser que du code sur le dépôt.
2 – Les tests et l’intégration continue
C’est une étape importante pour la livraison finale. En effet, ici se feront les divers tests et permettront de générer des rapports de régressions, suivant les résultats obtenus.
On trouve divers outils open source :
- Jenkins : outil développé en Java avec une gestion des taches automatisée.
- Gitlab-CI : interface graphique agréable, peut s’installer partout et peut être publique ou privée. À Syloe, nous vous proposons des formations sur les outils Git/Gitlab notamment.
- Strider : développé en NodeJs et utilise la BDD MongoDB, d’où une consommation en ressource bien moindre que ses concurrents.
3 – La gestion et l’automatisation des déploiements
Les différents outils existants sont entre autres : Ansible, Puppet, Chef, Go Continuous Delivery.
Fabric et Ansible utilise SSH et tous les deux sont codés en Python. Ansible, de son côté utilise le YAML pour ses jeux d’instructions. Si bon nombre d’outils nécessitent l’utilisation d’un agent sur la machine ciblée, Ansible n’en requiert aucun.
Si vous préférez les outils écrits en Ruby vous avez Chef ou bien Puppet, vous offrant de l’analyse et des rapports de déploiement.
Un autre outil puissant est Go Continuous Delivery, précurseur dans ce domaine, il supporte différents outils SCM tels que Git, Mercurial ou bien Subversion.
4 – La gestion des conteneurs
Avec l’émergence du cloud, les outils d’orchestration sont devenus de plus en plus vitaux pour les entreprises. De là, la notion de cloud privé a pris son envol.
Ces outils fournissent non seulement des services aux clients, mais apportent à l’entreprise de la structuration, du contrôle, une meilleure gestion des systèmes.
Dans l’open source on trouve Docker et Docker-Compose pour une solution de gestion d’images et de contenus applicatifs.
Mais vous trouverez aussi MesOS et Kubernetes avec leur gestion de cluster. Kubernetes lié à Docker, par exemple, vous permettra d’avoir une solution en mode PaaS assez simplement. Ou bien OpenShift qui est une solution regroupant 3 briques (Docker, Kubernetes et Atomic) vous permettant d’avoir une solution SaaS.
5 – Supervision et monitoring en continu
Il nous parait primordial d’associer les processus de supervision systèmes et applicatifs aux premières livraisons de code, bien avant le passage en production. Les environnements de Test, PreProd, Demo doivent eux aussi être monitorés au même titre que la production. C’est pour cela que la fabrication des checks de supervision et des graphes de monitorings applicatifs doit avoir la même priorité de réalisation que la documentation qui accompagne les lignes de codes des applications.
Chez Syloé nous vous proposons une solution de supervision et de monitoring open source, puissante et scallable : Zabbix.
Zabbix est une solution de monitoring complète, avec des agents multi-plateformes. Le serveur Zabbix peut travailler en mode HA et propose également des proxies pour récolter des données.
Des outils de visualisation de données métriques tels que Grafana s’intègrent parfaitement à Zabbix, les 2 produits embarquant leur propre API. D’autres outils existent tels que Nagios, EON, etc.
Choisir des outils open source Devops : vous faire accompagner par des experts
Avec l’essor de l’internet et la démocratisation de son accès, puis avec l’informatisation croissante de tous les secteurs d’activités, les outils open source se sont multipliés. Les entreprises faisant de plus en plus appel à ses services : fiabilité, évolutivité, indépendance.
Nous vous proposons notre expertise sur tous ces domaines et ses outils. Contactez l’un de nos experts pour trouver la prestation de service la plus adaptée à vos besoins.
Outillage Devops pour le cloud : la machine de services Syloé - Blog Syloé
[…] solution : des outils DevOps indépendants des fournisseurs Cloud mais pouvant accéder à tout Cloud disposant d’une API publique. […]
Changer de Cloud Provider : les adhérences aux services cloud | Syloé
[…] y a les outils DevOps fournis (SCM, Pipeline …) qui sont spécifiques à chaque Cloud. Il faudra donc redéfinir […]
Les enjeux de la supervision IOT (Internet of Things) - Blog Syloé
[…] soient hautement sécurisés. Le projet doit être modulable, pouvoir grandir, se reposer sur des logiciels open source et générer des données à la fois lisible et réutilisable […]
Devez-vous migrer vers le cloud hybride ? Faites le diagnostic ! - Syloé
[…] sont opensource. On les trouve dans les cloud publics, et on peut mettre en oeuvre ces outils Open Source aussi pour gérer les infrastructures dédiés. Ainsi, avec une unique usine logicielle, vous allez […]
Top 5 : nos articles les plus lus - Avril 2019 - Blog Syloé
[…] Lire l’article […]
Les articles les plus lus durant l'été 2019 - Blog Syloé
[…] Lire l’article […]
Développement applicatif : optimiser son flux de travail grâce au multi-environnements - Blog Syloé
[…] types de déploiements d’applications, mais aussi des processus de réflexion collaborative. Les outils DevOps mis en place doivent avoir la capacité de déployer du code dans des clouds publics, privés et […]