Bob, egy kávé?

Bob, egy kávé?

February 25, 2019

Míg korábban külön platformon kommunikáltak a fejlesztők, mint amelyen dolgoztak, a ChatOps révén ma már lehetőség nyílt arra, hogy ezt ugyanazon a felületen tegyék meg. Így nő a munkafolyamatok átláthatósága, a chat history pedig akár az auditok adatforrásaként is szolgálhat.

Képzeljük el a következő szituációt: Alice és Bob fejlesztők. Az általuk írt alkalmazások üzemeltetéséért is ők felelősek. Alice és Bob egy chatszobában a következő beszélgetést folytatják le:

  • MonitoringBot> FIGYELMEZTETÉS! AweSomeApp a PROD környezetben 83% of CPU-t használ és az érték növekszik.
  • Alice> @Bob, láttad, hogy a prod awesome nyögdécsel?
  • Bob> @Alice, igen, láttam. Megnéztem a logot és azt hiszem, tudom mi a baj. Kommitolok egy javítást
  • GitBot> Bob módosítási kérelmet töltött fel az AweSomeApp repóba, melynek azonosítója: cef1e68
  • Alice> Aha, látom. Szerintem ez így jó lesz…
  • Alice> @GitBot cef1e68 elfogadva
  • GitBot> Alice elfogadta Bob cef1e68 azonosítójú módosítási kérelmét. A módosítás mentve.
  • CIBot> AweSomeApp build #43 INDUL. módosítás: cef1e68
  • CIBot> AweSomeApp build #43 SIKERES! módosítás: cef1e68
  • Bob> @DeployBot telepítsd az AweSomeApp#43 buildet a PROD környezetre.
  • DeployBot> AweSomeApp#43 telepítés SIKERES a PROD környezeten.
  • MonitoringBot> AweSomeApp állapot: NORMÁL
  • Alice> ezzel akkor meg is volnánk 🙂 @Bob, KV?!

A kollégák dolguk végeztével alighanem elégedetten kávéznak. Pillanatok alatt orvosolták a bajt. A titok – persze rátermettségük, szakmaiságuk mellett – az, hogy ChatOps környezetben dolgoznak: a forráskód kezelő, a telepítő, és a monitorozó szoftvert egyaránt bekötötték a chat platformba.

Hogy mi az a ChatOps? A szoftverfejlesztéssel és üzemeltetéssel kapcsolatos kollaboratív kommunikáció megvalósítása és vonatkozó tevékenységek végrehajtása chat kliensek, chatbot-ok, általában véve, valós idejű kommunikációs eszközök felhasználásával.

Egy ChatOps felállásban az elsődleges kommunikációs csatorna valamilyen instant messaging megoldás, közkeletűbb nevén: chat program. Ezeket a platformokat a fejlesztők és üzemeltetők, elég régóta használják. Ami újszerűnek tűnhet, az maga a tény, hogy ezeket a chat platformokat professzionális tevékenységekhez használjuk, valamint az automatizált, gépi szereplők bevonása a buliba.

A szemlélet elterjedését az is lehetővé tette, hogy ezeket a chat alkalmazásokat programozhatóvá tették a gyártók. Pár ilyen platform a teljesség igénye nélkül:

  • slack
  • mattermost
  • hipchat
  • flowdock

Ezzel megnyílt a lehetőség arra, hogy a fejlesztést és üzemeltetést támogató szoftver eszközök üzeneteket küldjenek a chat programnak, vagy üzeneteket fogadjanak onnan és az így kapott utasításokat végrehajtsák.

Ez többé-kevésbé azt jelenti, hogy az ember a kollégáival a munkával kapcsolatos dolgokat ugyanazon a platformon beszéli meg, mint amelyik felületen a fejlesztési és üzemeltetési tevékenységeit végzi.

A ChatOps-ot sokféleképpen lehet csinálni. A példában is látható “bot”-ok tetszőleges konstellációját fel lehet használni a rendszeresen ismétlődő munkafolyamatok automatizálására, ezzel csökkentve az emberi végrehajtás által képviselt hibalehetőségeket és időkiesést. Továbbá az, hogy egyazon kommunikációs platformon történnek a dolgok, nagyban növeli a munkafolyamatok átláthatóságát és egyfajta öndokumentált jelleghez vezet. Ha az üzemeltetés minden vonatkozását integrálni tudjuk a chat platformba, a chat history akár az auditok adatforrásaként is szolgálhat.

Ez egy modern megközelítés, ami előrébb viheti a módszer alkalmazóit, ugyanakkor megvannak a hátrányai is.

Nem szabad figyelmen kívül hagyni a chatbotok integrációjának ráfordítás igényét idő és munka tekintetében, ahogyan azt sem, hogy az ilyen integrációkat nem csak kifejleszteni, de karbantartani is szükséges. Mint mindig, most is az egészséges egyensúlyt kell keresni a kollaboratív integráció és a kézimunka között, ám ennek mértékét az adott projekt és annak környezete határozza meg.

Akárhogy is, érdemes a nyílt kódú megoldások között kutakodni és újrahasznosítani a közösségileg fejlesztett és karbantartott szoftvereket.

Továbbá a biztonság kérdése is fontos szempont. Elsőre nagyszerűnek tűnik, hogy mindenki lát mindent és mindenki tud mindenféle bot-nak parancsokat adni. Ám ez nem minden esetben kívánatos! Biztos, hogy minden chat résztvevőnek engedni akarjuk, hogy az éles rendszerekhez hozzáférő botoknak utasításokat adhassanak? Biztos, hogy egy bot minden rendszerhez hozzáféréssel kell, hogy rendelkezzen? A válasz a legritkább esetben egyértelműen igenlő. A biztonság mint rendszertervezési aspektus a ChatOps koncepció kidolgozásakor is elsődleges kell, hogy legyen!

Összességében a ChatOps egy remek dolog, de ész nélkül nekirohanni ennek sem érdemes.

Ákos
Cikket írta
Ákos
Olvasási idő:
5 perc
DevOps
Megosztás