ChatOps : parlons des plugins
Ceci est le deuxième article de notre série sur ChatOps
Dans notre dernier article, vous avez appris ce qu'est ChatOps, comment il fonctionne et comment il peut transformer votre organisation. En favorisant la collaboration, la communication et l’apprentissage rapide, ChatOps présente de sérieux avantages non seulement pour les ingénieurs, mais également pour les équipes non techniques.
Nous souhaitons aller un peu plus loin dans nos deux prochains articles. Une fois que vous avez choisi un framework et que vous l'avez testé un peu, vous souhaiterez probablement ajouter des fonctionnalités à votre bot. Les plugins détaillés ci-dessous peuvent être facilement ajoutés et vous aideront dans les tâches auparavant manuelles que vous deviez peut-être effectuer quotidiennement.
Chez PagerDuty, nous utilisons des outils basés sur Ruby Lita et notre chatbot, Officer URL, avec un variété de plugins , voici donc les exemples que nous allons utiliser ci-dessous. Cependant, bon nombre de ces plugins ont des alternatives dans d'autres frameworks, vous pouvez donc continuer à utiliser ce qui fonctionne le mieux au sein de votre équipe.
lita-dig & lita-whois
« dig » et « whois » sont des plugins simples pour rechercher des enregistrements DNS et whois. Ils sont faciles à installer et rapides à utiliser. Ce sont de bons exemples d'application de ChatOps à votre flux de travail quotidien. Grâce à eux, vous pouvez désormais poser des questions en ligne sur des éléments tels que les modifications d'enregistrement. Ils s'intègrent également très bien à lita-enhance, que nous aborderons plus en détail ci-dessous.
casier lita
lita-locker vous permet de définir des ressources (comme un serveur ou un dépôt Git) et des étiquettes (comme « production »).
Lorsqu'un ingénieur PagerDuty souhaite effectuer certaines actions sur un environnement, il peut signaler à tout le monde que l'environnement n'est pas disponible pour d'autres modifications en « prenant un verrou ». Puisque lita-locker a l'idée à la fois de ressources et d'étiquettes, il peut éviter les collisions accidentelles si vous avez une seule ressource et deux étiquettes différentes contenant cette ressource. (Par exemple, un serveur de base de données pourrait être une ressource pour les étiquettes « request-backend » et « job-worker ».)
lita-github
Nous utilisons Github sur PagerDuty, il est donc très utile de pouvoir demander dans une salle de discussion une révision du code et d'effectuer la fusion en ligne (en particulier avec les verrous de déploiement et d'environnement pendant que les modifications sont testées). Si vous avez un compte Github d'entreprise et que vous devez y créer un nouveau dépôt, ce plugin peut être extrêmement utile – vous n'avez désormais plus besoin de rechercher quelqu'un disposant de droits d'administrateur sur le compte.
lita-wtf
En interne, nous avons beaucoup de projets et beaucoup de noms de services. Comme mentionné dans notre dernier article, ChatOps peut aider à intégrer de nouveaux ingénieurs et employés. Lorsque de nouvelles personnes démarrent (ou qu'un nouveau projet est présenté et n'est pas encore bien connu), elles n'ont pas à se sentir ridicules en posant beaucoup de questions du type « qu'est-ce que X ? ». Tout le monde a accès à un dictionnaire en libre-service directement dans votre client de chat.
lita-améliorer
Souvent, des extraits de journaux sont collés dans une salle de discussion, mais ils contiennent des identifiants opaques tels que des adresses IP ou des identifiants d'instance AWS. lita-enhance prend ce texte et le remplace par des informations plus utiles sur certaines parties de votre infrastructure. Les adresses MAC, les adresses IP, les noms d'hôtes courts et les noms DNS peuvent tous être transformés en quelque chose de plus utile. Combiné à des plugins tels que lita-dig, vous pouvez obtenir un flux de travail comme :
statut lita
De nombreux sites disposent de pages d'état internes d'un type ou d'un autre. Et lorsqu'il y a un problème, c'est souvent le premier endroit où les gens doivent vérifier ce qui se passe. Le plugin d'état nous aide à conserver ces informations en ligne dans notre client de chat. Vous pouvez éviter l'effet « répéter ce que l'ordinateur a dit » sur les ponts téléphoniques, Google Hangouts ou quoi que ce soit d'autre pendant un incident ou une panne. Il conserve également un journal pratique pour une analyse post-mortem. (Remarque : ce plugin n'est pas encore open source, mais le sera bientôt.)
La mise en œuvre de ces plugins (et bien d'autres) chez PagerDuty nous a vraiment aidés à mesure que nous avons fait évoluer notre équipe et notre infrastructure au cours de la dernière année. Nous valorisons les éléments qui contribuent à rendre les ingénieurs plus productifs et souhaitons pouvoir partager ces éléments avec d'autres ingénieurs et entreprises. Grâce à cette idée, nous travaillons à rendre open source la plupart des éléments que nous construisons en interne.
Dans la troisième partie de notre série sur ChatOps, nous verrons comment nous effectuons les déploiements et les migrations de schémas avec Igor, notre outil de déploiement interne.