Difficile de dresser une liste complète des outils qu’un devops doit connaître. D’ailleurs on pourrait aussi graduer le niveau requis dans chaque outil. En effet, je pense qu’un devops doit être ce qu’il y a de plus polyvalent et avoir quelques domaines privilégiés.
Sur le papier, certains imaginent le devops comme un MacGyver qui va être capable de faire du dev et de l’ops. Concrètement et au vue des précédents articles et vidéos que j’ai publié vous pouvez vous douter que mon point de vue est un peu différent. En outre, le cloud fait partie e ces outils mais n’est pas impératif.
Rappelons-le, le devops est là pour automatiser et organiser les déploiements pour permettre d’itérer trsè facilement les nouvelles versions de vos services.
Les schedulers ou ordonnanceurs de tâches sont donc inévitables :
- Jenkins : mon préféré car il repose sur la fondation Apache, possède une grande communauté et est totalement gratuit
- Gitlab : allie à la fois l’organisation des équipes, les déploiements et le code, il n’y a pas plus complet sauf qu’une partie repose sur la version d’entreprise payante
- Rundeck : outil gratuit mais moins complet et un peu moins adapté à l’élaboration de pipeline
- CircleCI : très bon outil assez complet mais avec une version payant à partir d’un certain niveau d’utilisation
Les orchestrateurs pour compléter les ordonnanceurs de tâches :
- Ansible : de loins mon préféré par sa simplicité et dans un contexte de pipeline de déploiement d’applicatif, simple en python à base de ssh
- Puppet : plus adapté à de la gestion globale d’une infrastructure
- Chef : un peu plus complexe et plus adapté à une gestion d’une infra
Les outils de tests :
- Jmeter : là encore mon préféré issue de la fondation Apache avec une large communauté et gratuit surtout
- Postman : idéal pour tester des API mais les fonctions les plus intéressantes sont dans la version payante
- JUnit : pour les tests unitaires du langage Java il existe dans tous les langages ce genre de librairie
Le monitoring, la collecte de métriques ou de logs :
- prometheus : une base de données timeseries qui scrappe les routes qui lui sont données. Peut être rendu dynamique avec Consul ou le DNS par exemple. N2cessite des exporter pour afficher les métriques sur des routes au format openmetrics.
- influxdb : une autre base timeseries qui ne scrape pas mais permet une bonne rétention des métriques (sur la durée, à la différence de prometheus).
- zabbix : très bon outil complet de monitoring et collecte de métriques, fonctionne avec des agents.
- munin/nagios : solution similaire à zabbix
- grafana : incontournable pour visualiser des métriques et créer des alertes
- elasticsearch/logstash/kibana : la triplette la plus puissante en matière de cllecte de logs et de leur analyse sous différentes formes.
- Netdata : pour disposer de la plupart des métriques de votre machines, s’installe en une simple ligne de commande.
En matière d’organisation de dépôt l’inévitable gitflow qui permet d’organiser ses branches git pour collaborer facilement en équipe tout en ayant une construction robuste d’outils de production.
Les bases de données, en avoir quelques notions :
- postgresql
- elasticsearch
- cassandra
- mariadb
- sqlite