29
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

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

Embed Size (px)

DESCRIPTION

Intelligens rendszerfelügyelet. Automatikus infrastruktúra menedzsment és alkalmazástelepítés. Szatmári Zoltán. Egyszerű alkalmazás telepítése. Telepítés kézzel „ Release unit” Másolás utáni egyéb beállítások: pl. registry Telepítő script Telepítés automatizálása - PowerPoint PPT Presentation

Citation preview

Page 1: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 2: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 3: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

3

Tartalom

Automatikus konfigurációkezeléso Környezetfüggő konfigurációo Dinamikus konfigurációk

Page 4: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 5: Automatikus infrastruktúra menedzsment és alkalmazástelepí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.

Page 6: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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)

Page 7: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

7

Chef architektúra

Kliens

Konfigurációmenedzsment szerver

Menedzselt csomópontok

Ágens: chef-client

Kliens:Böngésző vagy

Knife eszköz

Page 8: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 9: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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.

Page 10: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

10

Deklaratív konfigurációmegadás Szerep (role)

o Receptek felsorolása Csomópont (node)

o Szerepeko Recepteko Attribútumok

Page 11: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 12: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

12

Fontosabb erőforrások Csomag Felhasználó Csoport Cronjob SVN repository Mount IPConfig

Page 13: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

13

Fontosabb erőforrások Fájlok

o Cookbookban definiálto Távoli URL-en elérhető

Könyvtárako Cookbookban definiált

Page 14: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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 -%>

Page 15: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 16: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

16

Változók Mitől lesz ez testre szabható?

Változók definiálásao Cookbook szinteno Role szinteno Node szinten

Page 17: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 18: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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.

Page 19: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

19

Chef search CMDB információk felhasználása

o Receptekbeno Sablonokban

Pl.:

hosts = search(:node, "recipes:irfapp") .map { |n| webhost_data(n) }

Page 20: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 21: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 22: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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?

Page 23: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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

Page 24: Automatikus infrastruktúra menedzsment és alkalmazástelepíté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ó

Page 25: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

25

A kofigurációs rendszer főbb feladatai

Konfigurációs modell

Gépvezérelt konfigurálás

Monitorozás

Beavatkozás

Page 26: Automatikus infrastruktúra menedzsment és alkalmazástelepíté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)

Page 27: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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)

Page 28: Automatikus infrastruktúra menedzsment és alkalmazástelepítés

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.