Skip to content
This repository has been archived by the owner on May 31, 2021. It is now read-only.
/ docker-sem Public archive

Monorepo for high school seminar work (3rd grade).

Notifications You must be signed in to change notification settings

jmeinlschmidt/docker-sem

Repository files navigation

Ročníková práce

Monorepo pro práci Serverové služby, která (ne)vznikala na @sps-cl ve třetím ročníku (2017/18) jako má ročníková práce. For legal reasons, není součástí repozitáře celá práce, nýbrž jen praktická část a stručné shrnutí. Pro její pochopení a případné navázání to jistě stačí.

📃 Licence

Ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským, ve znění pozdějších předpisů (dále jen autorský zákon) jsou práva k maturitním nebo ročníkovým pracím následující:

  • Zadavatel má výhradní práva k využití práce, a to včetně komerčních účelů.

  • Autor práce bez svolení zadavatele nesmí využít práci ke komerčním účelům.

  • Škola má právo využít práci k nekomerčním a výukovým účelům i bez svolení zadavatele a autora práce.

📋 Anotace

Tato práce se zabývá praktickým využitím paravirtualizace s využitím služby Docker v serverovém prostředí. V rámci ročníkové práce v oboru Informačních technologií jsem navrhl vlastní systém se jménem DockerControl, sloužící pro dynamické řízení virtuálních instancí napříč dostupnými fyzickými počítači, a to s pomocí vlastního API rozhraní nebo navržené webové aplikace ve frameworku verze Angular 5.

📚 Dokumentace

Práce je primárně postavena na ovládání Docker API. Ukazuje možnosti správy instancí (vytváření/ukončování), monitoring (prostředky, health check) a poskytuje rozhraní pro koncového uživatele.

Dělí se na tři samostatné balíčky, propojené vlastním Rest API:

architecture diagram
Figure 1. Ukázka architektury

Uživatelské rozhrání

user interface
Figure 2. Ukázka uživatelského rozhraní

Jak začít

Je potřeba npm, nodejs a Docker. Spusťte jednotlivé projekty — může běžet i v rámci jednoho stroje. Worker instance musí poskytovat požadované API (viz implementovaný worker server). Daemon instance je vyžadována právě jedna.

Konfigurace:

  • dockercontrol-app: V souboru src/environments/environment.ts nastavte API URL na instanci daemon serveru.

  • dockercontrol-daemonserver: V poli machines je potřeba registrovat všechny požadované worker instance včetně portů, na kterých naslouchá jejich API.

  • dockercontrol-workerserver: V objektu config nastavte port na kterém bude naslouchat TCP server pro ovládání worker instace.

🏆 Závěr

Práce dává minimalistický a přímočarý základ pro pochopení dynamické správy virtuálních instancí a dává prostor pro pokračování. Jako ideální pokračování se jeví například implementace load balancing principů, které by studenta vedly k základnímu pochopení této oblasti. Svým řešením nabízí transparentní a jednoduchý pohled na komplikovanou problematiku, pracuje s moderními nástroji a je velmi snadno provozovatelná.

Úspěšné pokračovatele této práce rád pozvu na pivo.[1]


1. K zveřejnění této práce mě navedl Silák, kterého tímto srdečně zdravím a těším se, až usedneme k příštímu pivu.