DevOps

DevOps je súbor postupov, nástrojov a paradigiem, ktoré automatizujú a integrujú procesy medzi tímom vývoja softvéru a IT.

https://www.ibm.com/topics/devops

Nepretržitá integrácia (CI)

je postup vývoja softvéru, pri ktorom sa často a automaticky vytvárajú, testujú a integrujú zmeny kódu do zdieľaného úložiska.

Hlavným cieľom CI je:

  • odhaliť a opraviť integračné problémy čo najskôr v procese vývoja.
  • zabezpečiť, aby aplikácia bola vždy v stabilnom stave a pripravená na testovanie, nasadenie alebo doručenie používateľom.

Postup CI

zdrojové súbory                obraz kontajnera
    |                                   ^
    v                                   |
+-----+    +-------+    +------+    +----------+
| git | -> | build | -> | test | -> | registry |
+-----+    +-------+    +------+    +----------+

Continous Delivery (CD)

je postup vývoja softvéru, pri ktorom sa zmeny kódu automaticky zostavujú, testujú a pripravujú na uvoľnenie do produkcie.

Hlavným cieľom CD:

  • zabezpečiť, aby softvér mohol byť kedykoľvek spoľahlivo a rýchlo uvoľnený do výroby s minimálnym rizikom defektov alebo porúch.
  • zmeny kódu sa automaticky nasadzujú do pracovného alebo produkčného prostredia, kde prechádzajú ďalším testovaním a schvaľovaním pred ich uvoľnením pre koncových používateľov.
  • CD zaisťuje, že softvér je vždy v produkčnom stave.

Postup CD

      CI                             Zákazník
      |                                ^
      v                                |
+----------+    +------------+    +-----------+
| register | -> | integračné | -> | produkčné |
| onrazov  |    | testovanie |    | nasadenie |
+----------+    +------------+    +-----------+

Rozdiely medzi nepretržitým nasadením a nepretržitým doručovaním

  • Pri nepretržitom doručovaní (continuous delivery) sa človek rozhoduje, kedy sa nasadí do produkcie.
  • Pri nepretržitom nasadzovaní (contionuous deployment) je kód automaticky nasadený do produkcie po absolvovaní všetkých testov.

DevOps v Azure Cloud

Azure DevOps

je komplexná sada nástrojov a služieb na riadenie celého životného cyklu vývoja softvéru. Zahŕňa funkcie pre správu verzií, automatizáciu zostavovania a vydávania, testovanie a spoluprácu. Azure DevOps podporuje integráciu s populárnymi nástrojmi CI/CD, ako sú Jenkins, Travis CI a CircleCI.

Azure Pipelines

je cloudová služba, ktorá poskytuje nepretržitú integráciu a nepretržité doručovanie (CI/CD) pre vaše aplikácie. Podporuje množstvo jazykov, platforiem a rámcov, vrátane .NET, Java, Python a Node.js. Azure Pipelines ponúka agentov hostených v cloude aj agentov s vlastným hosťovaním na vytváranie a nasadzovanie aplikácií.

Azure Functions

Azure Functions je serverless výpočtová služba, ktorá umožňuje vývojárom spúšťať kód riadený udalosťami na škálovateľnej a nákladovo efektívnej platforme. Azure Functions je možné integrovať s Azure Pipelines, aby sa umožnilo automatizované nasadenie funkčných aplikácií.

  • Travis CI: Cloudová platforma CI, ktorá ponúka jednoduchú integráciu s GitHub.
  • CircleCI: Cloudová platforma CI, ktorá ponúka rýchle zostavenie a jednoduchú konfiguráciu.

DevOps v súkromnom cloude

Tímová spolupráca:

  • GitLab: Správa zdrojového kódu, diskusie, hlásenie chýb a diskusie
  • Jira: Projektový manažment

Nástroje CI

  • Jenkins: Automatizačný server na vytváranie, testovanie a nasadzovanie softvéru.
  • GitLab CI/CD: Nástroj CI/CD zabudovaný do platformy GitLab.
  • Tekton: Natívny rámec CI/CD od Kubernetes, ktorý poskytuje sadu stavebných blokov na vytváranie vlastných postupov CI/CD.

Nástroje na monitorovanie a protokolovanie

  • Prometheus: Populárna súprava nástrojov na monitorovanie a upozorňovanie s otvoreným zdrojom pre Kubernetes.
  • Grafana: Populárna platforma s otvoreným zdrojom na vizualizáciu a analýzu údajov časových radov.
  • Elastic Stack: Zbierka nástrojov s otvoreným zdrojom na monitorovanie a protokolovanie, vrátane Elasticsearch, Logstash a Kibana.

Referencie

  • https://codefresh.io/learn/ci-cd/
  • ChatGPT
Reload?