Deployment automation with ChatOps and Ansible
Juopperi, Markus (2017)
Juopperi, Markus
Metropolia Ammattikorkeakoulu
2017

Creative Commons Attribution-NonCommercial-ShareAlike 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201705158169
https://urn.fi/URN:NBN:fi:amk-201705158169
Tiivistelmä
Insinöörityön tarkoituksena oli vertailla vaihtoehtoja verkkosovellusten ylläpitotehtävien au-tomatisointiin ja toteuttaa tuotantoonsiirron automatisointi olemassa olevaa sovellusta var-ten. Työssä perehdyttiin ChatOps-toimintamallin soveltuvuuteen tähän tehtävään ja sen hyötyihin toteutettaessa monimutkaisia toimintoja, kuten sini-vihreäpäivityksiä.
Työ aloitettiin perehtymällä alkuperäiseen toimintamalliin ja sen kohtaamiin ongelmiin. Ongelmista merkittävimpiä olivat palvelukatkokset tuotantoonsiirtojen aikana ja olemassa olevien työkalujen huono käytettävyys. Työssä kehitettiin uusia automaattisia toimintoja käyttäen ChatOps-toimintamallia ja arvioitiin sen soveltuvuutta näiden ongelmien ratkaisemiseen. ChatOps-toimintamallissa erilaisia ylläpitotehtäviä tehdään komentamalla robotteja keskustelupalvelun kautta sen sijaan, että ohjelmoija itse ajavat komentoja komentoriviltä.
Työssä käytettiin Ansible-sovellusta palvelininfrastruktuurin hallinnan automatisointiin. Tämä oli tarpeen palvelukatkottomien sovelluspäivitysten aikaansaamiseksi niin sanottujen sini-vihreäpäivitysten avulla. Näissä päivityksissä luodaan täysin uusi ympäristö uudella sovellusversiolla korvaamaan edellisiä palvelimia sen sijaan, että sovellukset päivitettäisiin vanhoilla palvelimilla.
Insinöörityön löydökset ja esimerkit perustuvat tosielämän käyttökokemuksiin kehitetystä tuotantoonsiirtomenetelmästä vajaan puolen vuoden ajalta. ChatOpsin todettiin olevan toi-miva vaihtoehto jopa pienelle kehitystiimille ilman ylläpitoon keskittynyttä henkilöstöä. Suurin etu tässä toimintamallissa on kyky automatisoida prosessin monimutkaisimmat osat pitäen silti kokonaisuuden hallinnan ja tehtävien ajoituksen kehittäjien hallinnassa. Perusominaisuuksien kehittämisen jälkeen jatkokehitys havaittiin helpoksi olettaen, että koodin rakenne pidetään hyvänä.
Työ aloitettiin perehtymällä alkuperäiseen toimintamalliin ja sen kohtaamiin ongelmiin. Ongelmista merkittävimpiä olivat palvelukatkokset tuotantoonsiirtojen aikana ja olemassa olevien työkalujen huono käytettävyys. Työssä kehitettiin uusia automaattisia toimintoja käyttäen ChatOps-toimintamallia ja arvioitiin sen soveltuvuutta näiden ongelmien ratkaisemiseen. ChatOps-toimintamallissa erilaisia ylläpitotehtäviä tehdään komentamalla robotteja keskustelupalvelun kautta sen sijaan, että ohjelmoija itse ajavat komentoja komentoriviltä.
Työssä käytettiin Ansible-sovellusta palvelininfrastruktuurin hallinnan automatisointiin. Tämä oli tarpeen palvelukatkottomien sovelluspäivitysten aikaansaamiseksi niin sanottujen sini-vihreäpäivitysten avulla. Näissä päivityksissä luodaan täysin uusi ympäristö uudella sovellusversiolla korvaamaan edellisiä palvelimia sen sijaan, että sovellukset päivitettäisiin vanhoilla palvelimilla.
Insinöörityön löydökset ja esimerkit perustuvat tosielämän käyttökokemuksiin kehitetystä tuotantoonsiirtomenetelmästä vajaan puolen vuoden ajalta. ChatOpsin todettiin olevan toi-miva vaihtoehto jopa pienelle kehitystiimille ilman ylläpitoon keskittynyttä henkilöstöä. Suurin etu tässä toimintamallissa on kyky automatisoida prosessin monimutkaisimmat osat pitäen silti kokonaisuuden hallinnan ja tehtävien ajoituksen kehittäjien hallinnassa. Perusominaisuuksien kehittämisen jälkeen jatkokehitys havaittiin helpoksi olettaen, että koodin rakenne pidetään hyvänä.