News

Co je samoléčivý software a jaké jsou hlavní principy?

DATE:
July 2, 2021
READING TIME:
10min

Když jsou lidé zraněni, jejich těla se zotavují sama. Co kdyby technologie dokázala totéž? Co kdybychom vám řekli, že může?

Společnosti se snaží vybudovat samoléčivé systémy, které mají potenciál zvýšit kvalitu, ušetřit náklady a zvýšit důvěru spotřebitelů. Například, IBM experimentuje se samokonfigurujícími, samo-ochrannými a samoléčebnými zařízeními právě kvůli tomu.

Obsah

Co je samoléčebný systém?

Samoléčivý software může detekovat poruchy ve svém provozu a přizpůsobit se bez lidského zapojení a vrátit se do funkčnějšího stavu.

Samoléčivé aplikace fungují na základě následujících mechanismů:

  1. Detekce poruch: Systém neustále sleduje neobvyklé chování a sleduje, když se něco pokazí. Tento dohled zahrnuje celý systém a zajišťuje, že žádné anomálie neuniknou detekci.
  2. Izolace poruch: Jakmile je zjištěno neobvyklé chování, dalším zásadním krokem je určení jeho hlavní příčiny. Mechanismus izolace poruch dělá přesně to - identifikuje původ nebo spouštěč chyby.
  3. Obnova závad: Po identifikaci zdroje poruchy přichází do hry nedílnější součást samoléčebného systému - mechanismus obnovy. Zde software autonomně přijímá nápravná opatření. Nejde jen o vyřešení problému, ale spíše, cílem je obnovit normální provoz co nejrychleji.

Samoléčivé systémy jsou rozděleny do tří úrovní, z nichž každá má svou vlastní velikost a požadavky na zdroje:

Úroveň aplikace

Problémy jsou často zaznamenány v „protokolu výjimek“ pro budoucí vyšetřování. Většina problémů je malá a může být přehlížena. Vážné problémy mohou vyžadovat ukončení aplikace (například neschopnost připojení k databázi, která byla převedena do režimu offline).

Samoléčivé aplikace na druhé straně zahrnují designové aspekty, které pomáhají řešit problémy. Aplikace, které používají Akka, například uspořádat prvky v hierarchii a přidělit problémy aktéra jeho nadřízenému. Mnoho z těchto nástrojů a rámců pomáhá aplikacím, které jsou navrženy tak, aby se samy léčily.

Úroveň systému

Samoléčení na úrovni systému, na rozdíl od samoléčení na úrovni aplikace, je nezávislé na programovacím jazyce nebo jednotlivých komponentách. Spíše, bez ohledu na jejich základní komponenty, mohou být zobecněny a použity pro jakékoli služby a aplikace.

Poruchy procesů (obvykle řešené přerozmístěním nebo restartováním) a potíže s dobou odezvy jsou nejčastějšími chybami na systémové úrovni (často řešeny škálováním a odstraňováním vodního kamene). Samoléčivé systémy monitorují zdraví různých komponent a zkoušejí opravy (například přemístění), aby je obnovili do jejich ideálního stavu.

Úroveň hardwaru

Samoléčení na hardwarové úrovni přesouvá služby z nestabilního uzlu na zdravý. Provádí také zdravotní prohlídky různých komponent. Stávající řešení na úrovni hardwaru jsou primárně řešení na úrovni systému, protože skutečné samoléčení na úrovni hardwaru (například počítač, který dokáže léčit problémy s pamětí nebo opravit poškozený pevný disk) neexistuje.

Typy samoléčebných procesů: Reaktivní vs. preventivní

Pokud jde o samoléčení, můžeme hovořit o reaktivním a preventivním léčení:

Reaktivní samoléčení

Léčení, ke kterému dochází v reakci na chybu, je známé jako reaktivní léčení a již se používá. Reaktivní léčení například zahrnuje přesunutí aplikace do nového fyzického uzlu v reakci na chybu, čímž se zabrání prostojům.

Množství nebezpečí, které může systém snášet, určuje úroveň reaktivního hojení, které je žádoucí. Pokud se systém spoléhá na jediné datové centrum, šance, že celé datové centrum ztratí energii a všechny uzly selžou, jsou tak vzdálené, že vytvoření systému, který by reagoval na tuto možnost, je zbytečné a nákladné. Pokud je však systém důležitý, může mít smysl jej sestavit tak, aby se v případě poruchy automaticky obnovil.

Preventivní samoléčení

V tomto typu scénáře se chybám proaktivně vyhýbá. Vezměme si například použití dat v reálném čase k proaktivnímu zabránění problémům s dobou zpracování. Chcete-li sledovat stav služby a lépe využívat zdroje, vydáte požadavek HTTP. Systém sestavíte tak, aby se škáloval, pokud reakce trvá více než 500 milisekund, a navrhnete systém tak, aby odvápňoval, pokud odpověď trvá méně než 100 milisekund.

Pokud však reakční časy často kolísají, použití dat v reálném čase může být problematické, protože systém bude neustále škálovat a odstraňovat vodní kámen (to může použít mnoho zdrojů v rigidní architektuře a menší množství zdrojů v architektuře mikroslužeb).

Tři principy samoléčebných systémů

  1. Pochopte svůj systém. Samozřejmě, pokud důkladně rozumíte svému systému, budete lépe připraveni předvídat, kde problém nastane a jak budete reagovat. Jaké jsou nejčastější scénáře? Jaká je závažnost chyb, které se mohou vyskytnout?
  2. Stavět pro prevenci. Díky automatizaci, distribuovanému úložišti, výpočtům a analýzám jsou preventivní opatření jednoduchá a nákladově efektivní. Chybám se lze vyhnout, pokud zaujmete proaktivní a preventivní přístup.
  3. Usnadněte věci zúčastněným lidem. Samoléčivé systémy snižují pracovní zátěž údržby vašeho týmu. I když chyby nebo potenciální chyby vyžadují lidský zásah, udělejte proces co nejjednodušší a nejpřímější. Vaši zaměstnanci vám budou vděční.

Pětibodový plán pro samoléčivé systémy

  1. Považujte neměnnou infrastrukturu jako kód
  2. Automatizujte testování pro efektivní kódovou základnu
  3. Instalace komplexních monitorovacích systémů
  4. Začleňte do své strategie špičková inteligentní upozornění, spouštěče a prediktivní analýzy.
  5. Zvažte, jak může systém zlepšit samoučení

Výhody samoléčebného softwaru

Mezi mnoha dalšími jsou to hmatatelné výhody, které samoléčivé aplikace přinášejí:

  • Snížení prostojů: Samoléčivé aplikace jsou navrženy tak, aby detekovaly, diagnostikovaly a řešily problémy bez lidského zásahu. To výrazně snižuje prostoje a zvyšuje výkon, což podnikům umožňuje hladce provozovat své operace.
  • Inovativní uživatelská zkušenost: S menším přerušením v důsledku selhání systému si uživatelé užívají plynulejší a pohodlnější prostředí, zvláště důležité v kritických aplikacích.
  • Důraz na neustálé zlepšování: Implementace samoléčebného softwaru není jednorázovým procesem. Místo toho nabízí příležitost k neustálému učení, zlepšování a zlepšování mechanismů samoléčení, což zajišťuje odolný a robustní systém.
  • Potenciál pro automatizaci: Samoléčivé aplikace zahrnují automatizace, s cílem vytvořit autonomnější, soběstačné systémy. To zase snižuje nutnost lidského zásahu, minimalizuje potenciální lidské chyby a zvyšuje efektivitu.
  • Odolnost vůči neúspěchům: Díky schopnosti plánovat potenciální selhání může samoléčivý software účinně detekovat, reagovat a zotavit se z těchto poruch automaticky a zajistit integritu systému.
  • Vliv AI a strojového učení: Dopad pokročilých technologií, jako je umělá inteligence a strojové učení, významně obohacuje samoléčivé aplikace a posouvá je do nových výšin účinnosti a efektivity.

Samoléčivé systémy: Klíčové poznatky

Samoléčivé systémy a aplikace (nebo ještě lépe systémy a aplikace, které automaticky detekují chyby a vyhýbají se jim) mohou zlepšit kvalitu, snížit náklady a zvýšit důvěru spotřebitelů. Dokonce i ty největší systémy vyžadují lidskou interakci, ale mohou být navrženy tak, aby byly lehké a pro člověka jednoduché. Mohlo by to být také samoléčivý kód je budoucnost softwaru.

I když jsou výhody samoléčebného softwaru působivé, musíte si být vědomi toho, že implementace těchto pokročilých systémů není bez problémů. Ale SnapStack může pomoci!

READ MORE ON OUR BLOG
Discover similar posts
Swift vs. Objective-C: Co je lepší vybrat?

Zásadním rozhodnutím, které ovlivňuje osud produktu, je výběr nejlepšího vývojového prostředí. Nesprávné volby mohou mít za následek selhání vývoje. Budeme diskutovat o dvou průmyslových titánech, kteří dnes poskytují aplikace pro zařízení Apple, a určíme, které bude výhodnější použít v roce 2022: Objective-C nebo Swift. Přečtěte si tuto příručku a získejte odpovědi na všechny své otázky.

Read More
Jak blockchain přináší revoluci v procesech dodavatelského řetězce

Revoluce blockchainu rychle přebírá různá průmyslová odvětví a řízení dodavatelského řetězce nezůstalo pozadu. Blockchain se stává poskytovatelem řešení pro pokračující výzvy, které stagnují pokrok v procesech dodavatelského řetězce. Jak, můžete se zeptat? Pojďme se dostat k niternosti toho všeho!

Read More
Je Rust budoucnost?

There’s been a lot of talk about Rust and its unbeatable performance, memory safety, and concurrency. Is this simply a high tide of popularity on the tech horizon as more and more programming languages are emerging or is Rust the programming language of the future?

Read More