Коначна листа ДевОпс алата

„Razvoj sistema, a ne softvera“

DevOps je postao jedan od najpopularnijih pojmova u tehnološkom svetu, nudeći organizacijama značajne prednosti u skraćivanju ciklusa razvoja softvera.

Šta je DevOps?

Ne postoji jedinstvena definicija ili tačan odgovor na pitanje „Šta je DevOps?“.

DevOps nije alat, tehnologija ili okvir; to je pre filozofija i pristup. Predstavlja skup praksi koje kombinuju razvoj softvera (Dev) i IT operacije (Ops), sa ciljem ubrzanja životnog ciklusa razvoja sistema i osiguranja kontinuirane integracije i isporuke visokokvalitetnog softvera.

Ukoliko ste početnik, preporučujemo vam da pogledate ovaj uvodni post ili pohađate ovaj onlajn kurs – Docker za apsolutne početnike.

Prednosti DevOps-a

  • Poboljšana saradnja i komunikacija
  • Brža isporuka softvera ili proizvoda
  • Kontinuirano smanjenje troškova
  • Unapređeni procesi
  • Brže rešavanje problema

U DevOps okruženju ne postoji jedinstveni, univerzalni alat. Ključ je u odabiru pravih alata koji odgovaraju specifičnim potrebama organizacije. Pogledajmo neke od njih.

Kontinuirana integracija

Jenkins

Jenkins je jedan od najpopularnijih DevOps alata otvorenog koda koji omogućava kontinuiranu integraciju i isporuku. Podržava kontinuiranu integraciju i kontinuiranu isporuku projekata, bez obzira na platformu, uz pomoć različitih procesa za izgradnju i implementaciju. Jenkins se može integrisati sa brojnim alatima za testiranje i implementaciju.

Travis CI

Travis CI je distribuirana platforma za kontinuiranu integraciju koja se hostuje u oblaku i koristi se za izradu i testiranje projekata hostovanih na GitHub-u i Bitbucket-u. Konfiguracija se vrši dodavanjem YAML datoteke.

Besplatan je za projekte otvorenog koda, dok se za privatne projekte naplaćuje.

Bamboo

Bamboo je popularan proizvod kompanije Atlassian, namenjen podršci kontinuiranoj integraciji. Većina njegovih funkcionalnosti je ugrađena, što znači da nije potrebno preuzimati dodatne ekstenzije, kao što je slučaj sa Jenkins-om. Takođe, podržava integraciju sa drugim Atlassian proizvodima, poput JIRA i Bitbucket.

Hudson

Hudson je besplatan softver napisan u JAVA programskom jeziku i radi u servlet kontejnerima kao što su GlassFish i Apache Tomcat. Omogućava pokretanje paketa za automatizaciju sa bilo kojim izmenama u sistemu za upravljanje izvornim kodom, kao što su GIT, SVN itd. Takođe podržava sve Maven i Java bazne projekte.

TeamCity

TeamCity je server baziran na kontinuiranoj integraciji, razvijen od strane JetBrains-a. Poseduje jednostavan i intuitivan korisnički interfejs (UI) i pruža detaljne informacije o napredku izgradnje i istoriji svih konfiguracija i projekata.

CircleCI

CircleCI je dostupan kao rešenje u oblaku i kao lokalno rešenje za kontinuiranu integraciju. Lako se i brzo postavlja, i podržava konfiguracije u YAML formatu koje su jednostavne za čitanje.

Postoji još mnogo CI alata koje možete istražiti.

Planiranje i saradnja

JIRA

JIRA je jedan od popularnih alata za upravljanje projektima, razvijen od strane Atlassian-a, koji se koristi za praćenje problema, grešaka i projekata. Omogućava korisniku da prati status projekata i pojedinačnih problema. Lako se može integrisati sa drugim Atlassian proizvodima, kao što je Bitbucket, i sa drugim DevOps alatima, kao što je Jenkins.

Slack

Slack je besplatan alat za saradnju, baziran na oblaku, koji omogućava komunikaciju i saradnju timova na jednom mestu. Ovaj alat se takođe može koristiti za deljenje dokumenata i drugih informacija između članova tima. Takođe, lako se može integrisati sa drugim alatima, kao što su GIT, Jenkins, JIRA itd.

Zoom

Zoom je platforma za veb konferencije i trenutno deljenje ekrana. Omogućava timu da se poveže putem audio ili video poziva.

Bez obzira na veličinu vašeg tima, Zoom može da primi do 1000 učesnika na onlajn sastanku.

Clarizen

Clarizen je softver za saradnju i upravljanje projektima, koji pomaže u praćenju problema, upravljanju zadacima i upravljanju projektnim portfoliom. Lako se prilagođava i ima interaktivan, jednostavan korisnički interfejs.

Asana

Asana je mobilna i veb aplikacija, dizajnirana da pomogne timovima da organizuju, prate i upravljaju svojim radom na efikasan način. Koristi se za praćenje dnevnih zadataka tima i podršku za razmenu poruka i komunikaciju unutar organizacije.

Upravljanje izvornim kodom

SVN

SVN je centralizovana verzija i alat za kontrolu izvora, razvijen od strane Apache-a. Pomaže programerima da održavaju različite verzije izvornog koda i da imaju punu istoriju svih izmena.

Git

Git je distribuirani sistem za kontrolu verzija, koji je fokusiran na brzinu, integritet podataka i podršku za distribuirane, nelinearne tokove rada. Osim za upravljanje izvornim kodom, može se koristiti i za praćenje promena u bilo kom skupu datoteka.

Bitbucket

Bitbucket je veb platforma za hostovanje, razvijena od strane Atlassian-a. Bitbucket takođe nudi efikasan sistem za pregled koda i beleži svaku promenu u kodu. Lako se može integrisati sa drugim DevOps alatima, kao što su Jenkins i Bamboo.

GitHub

GitHub je platforma za hostovanje koda, dizajnirana za kontrolu verzija i saradnju. Nudi sve funkcije kontrole distribuiranih verzija i upravljanja izvornim kodom (SCM) Git-a, pored dodatnih funkcionalnosti.

Nudi kontrolu pristupa i funkcije saradnje, kao što su praćenje grešaka, kreiranje zahteva i zahteva za spajanje, upravljanje zadacima, itd. za projekat.

Izgradnja

Ant

Apache Ant je alat otvorenog koda, baziran na Javi, za izgradnju i implementaciju. Podržava XML format datoteka. Ima nekoliko ugrađenih zadataka koji omogućavaju kompajliranje, sklapanje, testiranje i pokretanje Java aplikacija.

Maven

Maven je alat za automatizaciju izgradnje, koji se uglavnom koristi za Java projekte. Sadrži XML datoteku koja opisuje softverski projekat koji se gradi, njegove zavisnosti od drugih spoljnih komponenti i modula, redosled izrade, direktorijume i druge potrebne dodatke.

Grunt

Grunt je JavaScript alat komandne linije koji pomaže u izgradnji aplikacija i automatizaciji ponavljajućih zadataka, kao što su kompajliranje, testiranje jedinica, provera koda, itd. To je dobra alternativa alatima kao što su Make ili Ant.

Gradle

Gradle je sistem za automatizaciju izgradnje otvorenog koda, zasnovan na konceptima Apache Maven i Apache Ant. Podržava Groovy programski jezik umesto XML konfiguracione datoteke. Nudi podršku za inkrementalne izrade, tako što automatski detektuje koji delovi su ažurirani.

Upravljanje konfiguracijom

Puppet

Puppet je alat otvorenog koda za upravljanje konfiguracijom, koji se koristi za konfigurisanje, implementaciju i upravljanje velikim brojem servera. Ovaj alat podržava koncept infrastrukture kao koda i napisan je u Ruby DSL-u. Takođe podržava dinamičko povećavanje i smanjivanje mašina po potrebi.

Chef

Chef je alat za upravljanje konfiguracijom otvorenog koda, razvijen od strane Opscode, koji koristi Ruby za upravljanje infrastrukturom na virtuelnim ili fizičkim mašinama. Pomaže u upravljanju složenom infrastrukturom na virtuelnim, fizičkim i cloud mašinama.

Ansible

Ansible je alat otvorenog koda za upravljanje IT konfiguracijom, obezbeđivanje softvera, orkestraciju i implementaciju aplikacija. To je jednostavan, ali moćan alat za automatizaciju jednostavnih i složenih višeslojnih IT aplikacija.

SaltStack

SaltStack je softver otvorenog koda, napisan u Python-u i koristi push model za izvršavanje komandi preko SSH protokola. Nudi podršku za horizontalno i vertikalno skaliranje. Podržava YAML šablone za pisanje bilo koje skripte.

Terraform

Terraform je alat otvorenog koda za bezbednu i efikasnu izgradnju, izmenu, implementaciju i verzionisanje infrastrukture. Koristi se za upravljanje postojećim i popularnim provajderima usluga, kao i prilagođenim internim rešenjima. Pomaže u definisanju infrastrukture u konfiguraciji/kodu i omogućava korisniku da ponovo izgradi, izmeni i prati promene na infrastrukturi na jednostavan način.

Vagrant

Vagrant je jedan od popularnih alata za kreiranje i upravljanje virtuelnim mašinama (VM). Ima jednostavan i konfigurabilan tok rada, fokusiran na automatizaciju. Pomaže da se smanji vreme podešavanja razvojnog okruženja, povećavajući paritet produkcije.

Kontinuirana bezbednost

Snyk

Integrisati Snyk u životni ciklus razvoja da automatski pronađe i popravi bezbednosne propuste u kodu otvorenog koda. Podržava JS, .Net, PHP, NPM, jQuery, Python, Java, itd. i može se integrisati u kodiranje, upravljanje kodom, CI/CD, kontejnere i implementaciju.

Snyk ima najobimniju bazu podataka ranjivosti otvorenog koda.

Invicti

Invicti automatski skenira vašu aplikaciju u potrazi za sigurnosnim propustima i pruža izveštaje na koje se možete osloniti, omogućavajući vam da preduzmete mere na osnovu prioriteta. U DevSecOps scenariju, ispituje se svaka nova izmena i greška se prijavljuje direktno u sistem za praćenje, kao što je Jira ili GitHub. Skeniranje se ponavlja nakon što programer popravi grešku. Ovo se može integrisati u svakoj fazi SDLC-a.

Testiranje

Selenium

Selenium je najpopularniji alat za testiranje otvorenog koda. Podržava automatizaciju testiranja u različitim pretraživačima i operativnim sistemima. Lako se može integrisati sa alatima za upravljanje testiranjem, kao što su ALM i JIRA, kao i sa drugim DevOps alatima, kao što su Jenkins, Teamcity i Bamboo.

JUnit

JUnit je okvir za testiranje jedinica otvorenog koda, koji programeri koriste za pisanje i pokretanje testova. Podržava različite testne anotacije pomoću kojih programer može da napiše test slučajeve. Može se lako integrisati sa drugim DevOps alatima, kao što su Jenkins i GIT.

TestNG

TestNG je okvir za testiranje otvorenog koda, koji je dizajniran po uzoru na JUnit i NUnit. Lako se može integrisati sa Selenium Webdriver-om za konfigurisanje i pokretanje skripti za automatizaciju testiranja. Takođe generiše različite izveštaje o testiranju, kao što su HTML ili XSLT.

Praćenje

Nagios

Nagios je alat otvorenog koda i jedan od najpopularnijih za kontinuirano praćenje. Nagios pomaže u nadgledanju sistema, aplikacija, usluga i poslovnih procesa u DevOps kulturi. Upozorava korisnike kada dođe do problema sa infrastrukturom i obaveštava ih kada je problem rešen.

Sensu

Sensu je alat za praćenje otvorenog koda, napisan u Ruby-u, koji pomaže u nadgledanju servera, usluga, aplikacija i cloud infrastrukture na jednostavan i efikasan način. Lako se skalira, tako da se mogu pratiti hiljade servera.

Datadog

Datadog je alat za praćenje metrika, baziran na agentima. Podržava integraciju sa različitim web serverima, aplikacijama i serverima u oblaku. Njegova kontrolna tabla pruža različite grafikone za nadgledanje u realnom vremenu.

ELK

ELK je kolekcija od tri proizvoda otvorenog koda — Elasticsearch, Logstash i Kibana, koje razvija i održava kompanija Elastic. Omogućava korisnicima da sakupljaju podatke iz bilo kog izvora, u bilo kom formatu, a zatim da pretražuju, analiziraju i vizualizuju te podatke u realnom vremenu.

Sematext

Sematext je sveobuhvatno rešenje za praćenje, koje vam daje uvid u vašu IT infrastrukturu. Pruža praćenje performansi front-end i back-end sistema, praćenje logova, API i nadgledanje neprekidnog rada i performansi web lokacija, praćenje korisničkog iskustva i još mnogo toga.

Iako dolazi sa kontrolnim tablama i pravilima upozorenja za popularne aplikacije i infrastrukturu, kao što su baze podataka, NoSQL skladišta, cloud serveri, mreže, kontejneri itd., možete lako da prilagodite kontrolne table i upozorenja vašim potrebama nadgledanja. Sematext nudi moćno upozoravanje sa detekcijom anomalija, otkrivanjem neuspelog otkucaja srca, raspoređivanjem i brojnim integracijama za isporuku obaveštenja o upozorenjima.

Grafana

Grafana je analitička platforma otvorenog koda za praćenje svih metrika iz infrastrukture, aplikacija i hardverskih uređaja. Možete da vizualizujete podatke, kreirate i delite kontrolne table, podešavate upozorenja i sarađujete. Možete da preuzimate podatke iz više od 30 izvora, uključujući Prometheus, InfluxDB, Elasticsearch, AWS CloudWatch itd.

New Relic

New Relic je proizvod za softversku analitiku za praćenje performansi aplikacija (APM), koji u realnom vremenu isporučuje podatke o performansama web aplikacija i zadovoljstvu krajnjih korisnika. Podržava praćenje transakcija od početka do kraja i prikazuje ih pomoću različitih grafikona i izveštaja.

Cloud hosting

AWS

AWS je platforma za web hosting, kreirana od strane Amazona, koja nudi fleksibilna, pouzdana, skalabilna, jednostavna za korišćenje i isplativa rešenja. Korišćenjem ove cloud platforme, nema potrebe brinuti o postavljanju IT infrastrukture, za koju je obično potrebno dosta vremena.

GCP

Google Cloud je kompletan skup usluga za hostovanje u javnom oblaku i računarske usluge, koje nudi Google. Podržava širok spektar usluga za računanje, skladištenje i razvoj aplikacija, koristeći Google hardver.

Azure

Azure je platforma za cloud računarstvo, koju je dizajnirao Microsoft, za izgradnju, implementaciju, testiranje i upravljanje aplikacijama i uslugama, putem globalne mreže svojih data centara. Usluge koje pruža Microsoft Azure su u obliku PaaS (platforma kao usluga) i IaaS (infrastruktura kao usluga).

Kontejnerizacija/Orkestracija

Docker

Docker je alat za kreiranje, implementaciju i pokretanje aplikacija korišćenjem kontejnera. Kontejner omogućava programeru da spakuje aplikaciju sa svim potrebnim komponentama, kao što su biblioteke i druge zavisnosti, i da ih isporuči u obliku jednog paketa. Radi na konceptu „izgradi jednom, pokreni bilo gde“.

Kubernetes

Kubernetes je sistem za orkestraciju kontejnera otvorenog koda, koji je prvobitno dizajnirao Google, a sada ga održava Cloud Native Computing Foundation. Koristi se za automatizaciju postavljanja, skaliranja i upravljanja aplikacijama. Takođe radi sa drugim alatima za kontejnere, uključujući Docker.

Istražite više alata za orkestraciju kontejnera.

Zaključak

Nadam se da će vam ovi alati pomoći na vašem DevOps putu.

Da li ste uživali u čitanju članka? Šta kažete na deljenje sa drugima?