Szerkesztés

Megosztás a következőn keresztül:


Átjárókiszervezési minta

Azure Application Gateway

A megosztott vagy specializált szolgáltatásműködést kiszervezheti egy átjáró proxyra. Ez a minta leegyszerűsítheti az alkalmazásfejlesztést a megosztott szolgáltatásfunkciók, például az SSL-tanúsítványok használatának az átjáróba való áthelyezésével.

Kontextus és probléma

Bizonyos funkciókat több szolgáltatás is használ, és ezek a funkciók beállítást, felügyeletet és karbantartást igényelnek. A minden alkalmazástelepítéskor elosztott megosztott vagy speciális szolgáltatások növelik az adminisztrációs terhelést és a telepítési hibák esélyét. A megosztott funkciók frissítéseit a funkciót használó összes szolgáltatásban telepíteni kell.

A biztonsági problémák megfelelő kezelése (tokenérvényesítés, titkosítás, SSL-tanúsítványkezelés) és egyéb összetett feladatok elvégzése speciális szaktudást kívánhat meg. Például az egy alkalmazás számára szükséges tanúsítványt konfigurálni és telepíteni kell az alkalmazás összes példányán. Minden új telepítés esetében szükség van a tanúsítvány kezelésére, hogy az ne járjon le. Ha közeledik egy közös tanúsítvány lejárati ideje, akkor frissíteni, majd tesztelni és ellenőrizni kell azt minden alkalmazástelepítésen.

Más közös szolgáltatásokat, például a hitelesítést, az engedélyezést, a naplózást, a monitorozást vagy a szabályozást nehéz implementálni és felügyelni nagy számú telepítés esetén. Érdemes lehet konszolidálni az ilyen típusú funkciókat a terhelés és a hibák esélyének csökkentése érdekében.

Megoldás

Egyes funkciók kiszervezése az átjárókba, különösen az olyan átfogó szempontok, mint a tanúsítványkezelés, a hitelesítés, az SSL-leállítás, a monitorozás, a protokollfordítás vagy a szabályozás.

Az alábbi ábrán egy átjáró látható, amely megszakítja a bejövő SSL-kapcsolatokat. Adatokat kér le az eredeti kérelmező nevében az átjáró bármely HTTP-kiszolgálójáról.

Az átjáró kiszervezési mintájának diagramja

A minta használata többek között a következő előnyökkel jár:

  • Egyszerűsíti a szolgáltatások fejlesztését, mivel nincs szükség a támogató erőforrások (például a webkiszolgáló-tanúsítványok és a biztonságos webhelyek konfigurációja) elosztására és karbantartására. Az egyszerűbb konfigurálás könnyebb felügyeletet és skálázhatóságot jelent, és így könnyebb a szolgáltatásfrissítés is.

  • A speciális szakértelmet igénylő funkciók implementálását (például biztonság) bízza külön erre a célra létrehozott csapatokra. Így a központi csapat az alkalmazás működésére koncentrálhat, és a több szolgáltatást érintő, de speciális kérdések megoldását a szakértőkre hagyhatja.

  • Egységesítse a kérések és válaszok naplózását és monitorozását. Beállíthatja, hogy az átjáró akkor is végezzen minimális monitorozási és naplózási tevékenységet, ha a szolgáltatás nem lett megfelelően kialakítva.

Problémák és megfontolandó szempontok

  • Győződjön meg arról, hogy az átjáró magas rendelkezésre állású, és ellenáll a hibáknak. Az átjáró több példányának futtatásával elkerülheti az egyetlen meghibásodási pontot.
  • Gondoskodjon arról, hogy az átjáró megfelel az alkalmazás és a végpontok kapacitási és skálázási követelményeinek. Gondoskodjon arról, hogy az átjáró ne váljon szűk keresztmetszetté az alkalmazás számára, és megfelelően skálázható legyen.
  • Csak olyan funkciókat szervezzen ki, amelyeket a teljes alkalmazás használ, például a biztonsági és az adatátviteli funkciókat.
  • Az üzleti logikát soha nem szabad kipakolva az átjáróba.
  • Ha nyomon kell követnie a tranzakciókat, érdemes korrelációs azonosítókat létrehozni a naplózáshoz.

Mikor érdemes ezt a mintát használni?

Használja ezt a mintát, ha:

  • Az alkalmazástelepítésben vannak közös feladatok, például az SSL-tanúsítványok vagy a titkosítás.
  • Közös funkciója van több alkalmazástelepítésnek, amelyek erőforrásigényei eltérőek (például memória-erőforrások, tárterület vagy hálózati kapcsolatok).
  • Bizonyos feladatokat egy speciális csapatra szeretne átruházni (például hálózati biztonság, szabályozás, hálózathatárokkal kapcsolatos kérdések).

Nem érdemes ezt a mintát használni, ha összekapcsol egyes szolgáltatásokat.

Számítási feladatok tervezése

Az tervezőknek értékelniük kell, hogyan használható az átjáró-kiszervezési minta a számítási feladat kialakításában az Azure Well-Architected Framework pilléreiben foglalt célok és alapelvek kezelésére. Példa:

Pillér Hogyan támogatja ez a minta a pillércélokat?
A megbízhatósági tervezési döntések segítenek a számítási feladatnak ellenállóvá válni a hibás működéssel szemben, és biztosítani, hogy a hiba bekövetkezése után teljesen működőképes állapotba kerüljön. Ennek a felelősségnek az átjáróra való kiszervezése csökkenti az alkalmazáskód összetettségét a háttércsomópontokon. Bizonyos esetekben a kiszervezés teljesen lecseréli a funkciókat egy megbízható platform által biztosított funkcióra.

- RE:01 Egyszerűség és hatékonyság
A biztonsági tervezési döntések segítenek biztosítani a számítási feladatok adatainak és rendszereinek titkosságát, integritását és rendelkezésre állását. Az átjáró kérési folyamatba való felvételével központosíthatja a biztonsági funkciókat, például a webalkalmazási tűzfalakat és az ügyfelekkel létesített TLS-kapcsolatokat. A platform által biztosított kiszervezett funkciók már nagyobb biztonságot nyújtanak.

- SE:06 Hálózati vezérlők
- SE:08 Erőforrások keményítése
A költségoptimalizálás a számítási feladatok megtérülésének fenntartására és javítására összpontosít. Ez a minta lehetővé teszi, hogy a csomópontonként elköltendő erőforrások költségeit átirányítsa az átjáró implementációjába. A központosított feldolgozási modell költségei gyakran alacsonyabbak, mint az elosztott modellé.

- CO:14 Konszolidáció
Az operatív kiválóság szabványosított folyamatok és a csapat kohéziója révén segít a számítási feladatok minőségének biztosításában. Ebben a mintában a kiszervezett funkciók konfigurációja és felügyelete egyetlen pontból történik, nem pedig több csomópontról történő kezelés helyett.

- OE:04 Eszközök és folyamatok
A teljesítményhatékonyság a skálázás, az adatok és a kód optimalizálásával segíti a számítási feladatok hatékony kielégítését . Ha kiszervezési átjárót ad hozzá a kérési folyamathoz, az lehetővé teszi, hogy csomópontonként kevesebb erőforrást használjon, mert a funkciók központosítva lesznek az átjárón. A kiszervezett funkciók implementációját az alkalmazáskódtól függetlenül optimalizálhatja. A kiszervezett platform által biztosított funkciók már valószínűleg nagy teljesítményűek.

- PE:03 Szolgáltatások kiválasztása

Mint minden tervezési döntésnél, fontolja meg az ezzel a mintával bevezethető többi pillér céljaival szembeni kompromisszumokat.

Példa

Ha az Nginxet használja SSL-kiszervezési berendezésként, a következő konfiguráció leállítja az összes beérkező SSL-kapcsolatot, és elosztja azt három felső rétegbeli HTTP-kiszolgáló között.

upstream iis {
        server  10.3.0.10    max_fails=3    fail_timeout=15s;
        server  10.3.0.20    max_fails=3    fail_timeout=15s;
        server  10.3.0.30    max_fails=3    fail_timeout=15s;
}

server {
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/ssl/domain.cer;
        ssl_certificate_key /etc/nginx/ssl/domain.key;

        location / {
                set $targ iis;
                proxy_pass http://$targ;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
        }
}

Ez az Azure-ban az SSL-leállítás beállításával érhető el az Application Gatewayen.