1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Automatikus infrastruktúra menedzsment és alkalmazástelepítés Szatmári Zoltán Intelligens rendszerfelügyelet
Jan 03, 2016
1Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék
Automatikus infrastruktúra menedzsment és alkalmazástelepítés
Szatmári Zoltán
Intelligens rendszerfelügyelet
2
DEMO
Telepítés kézzelo „Release unit”o Másolás utáni egyéb beállítások: pl. registry
Telepítő scripto Telepítés automatizálásao Általános és gép/felhasználó-specifikus beállítások
szétválasztása Felügyelet??
o Hova, mikor, ki, miért telepítetteo Most pontosan mi is van fent?o Milyen infrastruktúrával tudok számolni?
Egyszerű alkalmazás telepítése
3
Tartalom
Automatikus konfigurációkezeléso Környezetfüggő konfigurációo Dinamikus konfigurációk
4
Motiváció Nagyméretű infrastruktúra menedzsmentje
o Központosított megoldás Hasonló konfigurációs igények, ismétlődő
feladatoko Sablon alapú technológia
Automatikus alkalmazástelepítéso Felügyelő és beavatkozó komponensek
Dinamikus infrastruktúra menedzsmento Automatikus igény szerinti alkalmazás telepítés
5
Konfigurációmenedzsment eszköz Lehetővé teszi
o Konfigurációs beállítások deklaratív megadásáto Igény esetén a konfiguráció elvégzését
Legtöbbször tartalmaz valamilyen CMDB megoldást
Technológiáko CFEngineo Puppeto Chefo stb.
6
Chef – főzzünk egy infrastruktúrát Infrastruktúra automatizációs megoldás
Deklaratív konfigurációleírás támogatásao Azt mondjuk, mit szeretnénk, nem azt, hogyano Cookbooks, recipes
Központi infrastruktúra adatbáziso Attribútumok, futási listák (run list)
7
Chef architektúra
Kliens
Konfigurációmenedzsment szerver
Menedzselt csomópontok
Ágens: chef-client
Kliens:Böngésző vagy
Knife eszköz
8
DEMO
Szükséges erőforrásokoWebszerver (Apache), PHP, stb.oWebes alkalmazáso Konfigurációs beállítások
1 gép esetén kézzel, 10 vagy 100 esetén már automatizáltan
Webes alkalmazás telepítése
9
Deklaratív konfigurációmegadás Recept (recipe)
o Erőforrások deklaratív megadásao Ruby nyelv
Szakácskönyv (cookbook)o Recepteko Attribútumoko Sablonoko Stb.
10
Deklaratív konfigurációmegadás Szerep (role)
o Receptek felsorolása Csomópont (node)
o Szerepeko Recepteko Attribútumok
11
Receptekpackage "apache2"package "apache2-mpm-prefork"
a2enmod "ldap" do file "ldap.load" notifies :reload, "service[apache2]"end
service "apache2" do supports :status => true, :restart =>
true, :reload => true action :enableend
12
Fontosabb erőforrások Csomag Felhasználó Csoport Cronjob SVN repository Mount IPConfig
13
Fontosabb erőforrások Fájlok
o Cookbookban definiálto Távoli URL-en elérhető
Könyvtárako Cookbookban definiált
14
Fontosabb erőforrások Sablonok
o Paraméterezhető fájloko Különböző típusú paraméterek• Egész érték• String érték• Objektum
# ports.conf by chef<% @ports.each do |l| -%>Listen <%= l %><% end -%>
15
Fontosabb erőforrásoktemplate "/etc/apache2/ports.conf" do source "apache2/ports.conf.erb" mode 644 owner "root" group "root" variables( :ports => node[:apache2][:ports] ) notifies :reload, "service[apache2]"end
16
Változók Mitől lesz ez testre szabható?
Változók definiálásao Cookbook szinteno Role szinteno Node szinten
17
DEMO
Attribútum beállításao Role-tól függőeno Node-tól függően
Pl.:o HTTP port beállításao Alkalmazás paraméterének beállítása
Webes rendszer testreszabott beállítása
18
Chef search Mitől lesz környezetfüggő a konfiguráció?
Konfiguráció adatbázisban információk vannak a hosztokrólo IP címo Hoszt neveo Lefuttatott recepteko OS típus, verzióo Stb.
19
Chef search CMDB információk felhasználása
o Receptekbeno Sablonokban
Pl.:
hosts = search(:node, "recipes:irfapp") .map { |n| webhost_data(n) }
20
DEMO
Egyszerű HTTP proxy (HAProxy)o Telepítéso Konfigurálás• Működő webszerverek felsorolása
Webes terheléselosztó beállítása
21
Modern, skálázható alkalmazások Cloud környezet Igény szerinti rendszerkonfiguráció
o Pl.: Terhelés függő webszerver mennyiségo VM gyorsan igényelhető és eldobható
Alkalmazásnak is támogatnia kello Állapotmentes komponenseko Laza csatolásoMinden komponens kívülről konfigurálható
Lásd félév második felében: Virtualizáció és Cloud
22
Állapotgép alapú megközelítés Visszafele is működik?
o El tudom távolítani a telepített erőforrásokat?o Le tudom állítani a szolgáltatásokat?
Mi történik, ha valami futás közben változik?o Hiba lép fel?o Túlterhelés következik be?
23
MotivációAdottságok
Dinamikusan változó terheléso időszakoso tervezett
Konfigurációk telepítése/ karbantartása
Hibás viselkedés automatikus észlelése
Szükséges támogatás Jól skálázható (scalable)
o alkalmazásoko infrastruktúra
• Cloud
Gép által vezérelt megvalósítás
Monitorozás
24
Megközelítések Állapotgép alapú megközelítés
o Eszköz példa• GLU (az előadáson ezzel foglalkozunk) https://github.com/linkedin/glu
o Megvalósítás alapja• A szolgáltatások konfigurációjának állapotgépként való leírása
o Mikor jó• Statikus és dinamikus konfigurációra is• Statikusnál jelentős lehet az overhead
Célkonfiguráció deklarálása és állapot fenntartásao Eszköz példa
• Puppet http://www.puppetlabs.com/o Megvalósítás alapja
• Erőforrásháló alapjáno Mikor jó
• Viszonylag statikus konfiguráció
25
A kofigurációs rendszer főbb feladatai
Konfigurációs modell
Gépvezérelt konfigurálás
Monitorozás
Beavatkozás
26
Állapotgép alapú megoldás – GLU Konfigurációs állapotgép
= egy véges állapotgép (Finite State Machine)
Konfigurációs állapotKonfigurációs
átmenetKezdőállapot
(Kályha)
27
Véges állapotgép 1 token van a rendszerben Nem keletkeznek és nem is tűnnek el tokenek A token jelöli ki az aktuális állapotot (Digitből ismerősnek kell lennie)
Kezdőállapot (Kályha)
28
Miért jó ez az egész? Automatikusan tudunk telepíteni 10, 100, 1000…
gépet Ha ügyesen írjuk meg a szkripteket, akkor szinte
autonóm rendszert kapunk Hol használják?
o GLU• linked-in (szakmai Facebook)
o Chef• Amazoon EC2• Stb.
29
További információ Chef: systems integration framework
GLU: Deployment Automation Platform