Predstavitev InterSystems API Manager (+ spletni seminar)

Nedavno smo izdali InterSystems API Manager (IAM), novo komponento podatkovne platforme InterSystems IRIS, ki zagotavlja vidnost, nadzor in upravljanje prometa spletnih API-jev v infrastrukturi IT.

V tem članku vam bom pokazal, kako nastavite IAM, in prikazal nekatere od številnih zmožnosti, ki so vam na voljo z IAM. InterSystems API Manager vam omogoča, da:

  • Spremljajte API, razumejte, kdo uporablja API, kateri API-ji so najbolj priljubljeni in katere je treba izboljšati.
  • Nadzirajte, kdo uporablja API, in omejite uporabo API-ja od preprostih omejitev dostopa do omejitev na podlagi zahtev – imate nadzor po meri in se lahko hitro odzovete na spreminjajoče se vzorce porabe API-ja.
  • Zavarujte API-je z uporabo centraliziranih varnostnih mehanizmov, kot so OAuth2.0, LDAP ali preverjanje pristnosti žetona ključa.
  • Olajšajte delo razvijalcem tretjih oseb in jim zagotovite vrhunsko izkušnjo API-ja, tako da odprete namenski portal za razvijalce.
  • Povečajte API in zagotovite minimalno zakasnitev odziva.

Upravljanje API-jev je bistvenega pomena za prehod na arhitekturo SOA ali mikrostoritev, saj poenostavi integracijo med posameznimi (mikro)storitvami, tako da so na voljo vsem zunanjim in notranjim uporabnikom. Posledično je nove API-je lažje ustvariti, vzdrževati in uporabljati.

Če že uporabljate InterSystems IRIS, lahko svoji licenci dodate možnost IAM. Možnost IAM je brezplačna za stranke InterSystems IRIS, vendar morate od InterSystems zahtevati nov licenčni ključ, da začnete uporabljati IAM.

Če še ne uporabljate InterSystems IRIS in nameravate preizkusiti InterSystems API Manager, se obrnite na InterSystems.

Začetek in namestitev

Stranke InterSystems lahko distribucijo IAM prenesejo s spletnega mesta WRC razdelek »Distribucija programske opreme« in zaženite kot vsebnik Docker. Minimalne sistemske zahteve:

Najprej morate prenesti sliko Dockerja (Pomembno! Arhiv z WRC ni slika Dockerja, morate ga razpakirati, notri je slika Dockerja):

docker load -i iam_image.tar

S tem ukazom bo slika IAM na voljo za poznejšo uporabo na vašem strežniku. IAM deluje kot ločen vsebnik, tako da ga lahko prilagajate neodvisno od InterSystems IRIS. Zagon IAM zahteva dostop do InterSystems IRIS za prenos licence.

Nastavite InterSystems IRIS:

  • Omogoči spletno aplikacijo /api/IAM
  • Omogoči uporabnika IAM
  • Spremenite uporabniško geslo IAM

Zdaj pa zaženimo vsebnik IAM. V arhivu boste našli skripte iam-setup za Windows in Unix (in Mac). Ti skripti vam bodo pomagali pravilno nastaviti spremenljivke okolja, kar bo vsebniku IAM omogočilo vzpostavitev povezave z InterSystems IRIS. Tukaj je primer skripta, ki se izvaja na Macu:

source ./iam-setup.sh 
Welcome to the InterSystems IRIS and InterSystems API Manager (IAM) setup script.
This script sets the ISC_IRIS_URL environment variable that is used by the IAM container to get the IAM license key from InterSystems IRIS.
Enter the full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
Enter the IP address for your InterSystems IRIS instance. The IP address has to be accessible from within the IAM container, therefore, do not use "localhost" or "127.0.0.1" if IRIS is running on your local machine. Instead use the public IP address of your local machine. If IRIS is running in a container, use the public IP address of the host environment, not the IP address of the IRIS container. xxx.xxx.xxx.xxx               
Enter the web server port for your InterSystems IRIS instance: 52773
Enter the password for the IAM user for your InterSystems IRIS instance: 
Re-enter your password: 
Your inputs are:
Full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
IP address for your InterSystems IRIS instance: xxx.xxx.xxx.xxx
Web server port for your InterSystems IRIS instance: 52773
Would you like to continue with these inputs (y/n)? y
Getting IAM license using your inputs...
Successfully got IAM license!
The ISC_IRIS_URL environment variable was set to: http://IAM:****************@xxx.xxx.xxx.xxx:52773/api/iam/license
WARNING: The environment variable is set for this shell only!
To start the services, run the following command in the top level directory: docker-compose up -d
To stop the services, run the following command in the top level directory: docker-compose down
URL for the IAM Manager portal: http://localhost:8002

Kot lahko vidite, je vse, kar potrebujete za začetek, polno ime slike, naslov IP, vrata InterSystems IRIS in geslo za uporabnika IAM.

Namesto izvajanja skripta lahko spremenljivke okolja nastavite ročno:

ISC_IAM_IMAGE=intersystems/iam:0.34-1-1
ISC_IRIS_URL=http://IAM:<PASS>@<IP>:<PORT>/api/iam/license

Izstrelite

Zdaj pa zaženimo IAM z ukazom:

docker-compose up -d

Ta ukaz organizira vsebnike IAM in zagotavlja, da vse deluje pravilno. Stanje vsebnikov se preveri z ukazom:

docker ps

Odprite skrbniški vmesnik v brskalniku localhost:8002.

Predstavitev InterSystems API Manager (+ spletni seminar)

Zaenkrat je prazen, ker je popolnoma novo vozlišče. Spremenimo to. IAM podpira koncept delovnih prostorov za razdelitev API-jev na module in/ali ukaze. Pojdite na "privzeti" delovni prostor, ki ga bomo uporabili za naše poskuse.

Predstavitev InterSystems API Manager (+ spletni seminar)

Število zahtev za ta delovni prostor je še vedno nič, vendar boste v meniju na levi dobili predstavo o osnovnih konceptih IAM. Prva dva elementa: storitve in poti sta najpomembnejša:

  • Storitev je API, do katerega želimo zagotoviti dostop potrošnikom. Tako je REST API v InterSystems IRIS storitev, kot je na primer Google API, če ga želite uporabljati.
  • Route se odloči, kateri storitvi naj se posredujejo dohodne zahteve. Vsaka pot ima določen niz pogojev in če so izpolnjeni, se zahteva pošlje ustrezni storitvi. Na primer, Route se lahko ujema z IP-jem, domeno pošiljatelja, metodami HTTP, deli URI-ja ali kombinacijo teh primerov.

Orodja

Ustvarimo storitev InterSystems IRIS z naslednjimi vrednostmi:

Polje
Vrednost
Opis

Ime
iris
Ime storitve

gostitelj
IP
Gostitelj strežnika InterSystems IRIS ali ip

pristanišče
52773
Spletna vrata strežnika InterSystems IRIS

pot
/api/atelje
Korenska pot

protokol
http
Protokol

Preostale vrednosti pustite kot privzete. Kliknite gumb Create in zapišite ID ustvarjene storitve.

Pot

Zdaj pa ustvarimo pot:

Polje
Vrednost
Opis

pot
/api/atelje
Korenska pot

protokol
http
Protokol

service.id
vodnik od 3
Storitev (ID iz prejšnjega koraka)

Preostale vrednosti pustite kot privzete. Kliknite gumb Create in zapišite ID ustvarjene poti. IAM privzeto posluša dohodne zahteve na vratih 8000. Zdaj so zahteve poslane na http://localhost:8000 in začenši z /api/atelier so preusmerjeni na InterSystems IRIS.

Testiranje

Poskusimo ustvariti zahtevo v odjemalcu REST (uporabljam Poštar).

Predstavitev InterSystems API Manager (+ spletni seminar)

Pošljimo zahtevo GET na http://localhost:8000/api/atelier/ (ne pozabi / na koncu) in prejmete odgovor InterSystems IRIS. Vsaka zahteva gre skozi IAM, ki zbira meritve:

  • Statusna koda HTTP.
  • Zamuda
  • Spremljanje (če je konfigurirano).

Naredil sem še nekaj zahtev (vključno z dvema zahtevama na neobstoječe končne točke, kot je /api/atelier/est/), rezultati so takoj vidni na nadzorni plošči:

Predstavitev InterSystems API Manager (+ spletni seminar)

Delo z vtičniki

Zdaj, ko imamo konfigurirano pot, lahko upravljamo naš API. Dodamo lahko funkcije, ki bodo dopolnile našo storitev.

Najpogostejši način za spreminjanje delovanja API-ja je dodajanje vtičnika. Vtičniki izolirajo posamezne funkcije in jih je mogoče povezati z IAM globalno ali samo s posameznimi entitetami, kot je uporabnik (skupina uporabnikov), storitev ali pot. Začeli bomo z dodajanjem vtičnika Rate Limiting na pot. Za vzpostavitev povezave med vtičnikom in potjo potrebujemo edinstven identifikator (ID) poti.

Omejitev števila zahtevkov

V meniju na levi stranski vrstici kliknite Vtičniki. Na tem zaslonu lahko vidite vse aktivne vtičnike, a ker je ta strežnik IAM nov, še ni aktivnih vtičnikov. Zato nadaljujte z naslednjim korakom s klikom na »Nov vtičnik«.

Vtičnik, ki ga potrebujemo, je v kategoriji »Nadzor prometa« in se imenuje »Omejevanje hitrosti«. Izberite ga. Tu lahko nastavite kar nekaj nastavitev, vendar nas zanimata samo dve polji:

Polje
Vrednost
Opis

route_id
ID
ID poti

config.minute
5
Število zahtevkov na minuto

To je vse. Vtičnik je konfiguriran in aktiven. Upoštevajte, da lahko izbiramo različne časovne intervale, na primer minuto, uro ali dan. Nastavitve lahko kombinirate (npr. 1000 zahtevkov na uro in hkrati 100 zahtevkov na minuto). Izbral sem minute, ker olajšajo preverjanje delovanja vtičnika.

Če ponovno pošljete isto zahtevo v programu Postman, boste videli, da je odgovor vrnjen z 2 dodatnima glavama:

  • XRateLimit-Limit-minute: 5
  • XRateLimit-Preostala minuta: 4

To odjemalcu pove, da lahko naredi do 5 zahtev na minuto in lahko naredi še 4 zahteve v trenutnem časovnem intervalu.

Predstavitev InterSystems API Manager (+ spletni seminar)

Če znova in znova postavljate isto zahtevo, vam bo sčasoma zmanjkalo razpoložljive kvote in namesto tega boste prejeli kodo stanja HTTP 429 z naslednjim telesom odgovora:

Predstavitev InterSystems API Manager (+ spletni seminar)

Počakajte malo in znova boste lahko oddali zahteve.

To je priročen mehanizem, ki vam omogoča:

  • Zaščitite zadnji del pred prenapetostjo.
  • Strankam povejte, koliko zahtev lahko vložijo.
  • Monetizirajte API.

Nastavite lahko vrednosti za različne časovne intervale in tako izravnate promet API-ja v določenem časovnem obdobju. Recimo, da na določeni poti dovolite 600 zahtevkov na uro. Povprečno je 10 zahtevkov na minuto. Toda nič ne preprečuje stranki, da izpolni vseh 600 zahtevkov v prvi minuti ure. Mogoče je to tisto, kar potrebujete. Morda boste želeli doseči bolj enakomerno obremenitev v eni uri. Z nastavitvijo vrednosti polja config.minute Vrednost 20 zagotavlja, da vaši uporabniki ne naredijo več kot 20 zahtev na minuto in 600 zahtev na uro. To omogoča majhne skoke v enominutnem intervalu v primerjavi s popolnoma povprečnim pretokom 10 zahtevkov na minuto, vendar uporabniki ne morejo uporabiti urne kvote za eno minuto. Zdaj bodo potrebovali vsaj 30 minut za uporabo vseh svojih zahtev. Stranke bodo prejele dodatne glave za vsak določen časovni interval, na primer:

Glava HTTP
Vrednost

X-RateLimit-Limit-hour
600

X-RateLimit-Preostala-ura
595

X-RateLimit-Limit-minute
20

X-RateLimit-Preostala minuta
16

Seveda obstaja veliko različnih načinov za konfiguriranje omejitev poizvedb, odvisno od tega, kaj želite doseči.

Ugotovitve

Tukaj bom končal, mislim, da je dovolj materiala za prvi članek o InterSystems API Managerju. Uporabili smo le enega od več kot 40 vtičnikov. Z IAM lahko počnete še veliko zanimivih stvari:

  • Dodajte osrednji mehanizem za preverjanje pristnosti za vse svoje API-je.
  • Povečajte obremenitev z uporabo izravnalnika obremenitve v več storitvah.
  • Dodajte nove funkcije in popravke napak testnemu občinstvu pred popolno posodobitvijo.
  • Notranjim in zunanjim razvijalcem zagotovite namenski spletni portal, ki dokumentira vse API-je.
  • Predpomnite zahteve za skrajšanje odzivnega časa in zmanjšanje obremenitve zaledja sistema.

reference

Webinar

Vabimo vas na spletni seminar »Upravljanje API-jev z InterSystems API Management«, ki bo potekal 21. novembra ob 10:00 po moskovskem času (GMT+3).
InterSystems API Manager (IAM) je nova komponenta podatkovne platforme InterSystems IRIS, ki omogoča spremljanje, nadzor in upravljanje prometa do/iz spletnih API-jev znotraj IT infrastrukture. Na webinarju bomo prikazali ključne zmogljivosti InterSystems API Management:

  • Orodja za spremljanje prometa API.
  • Nadzor prometa API, vključno z nadzorom pasovne širine, omejevanjem števila klicev API, vzdrževanjem seznamov dovoljenih in zavrnjenih seznamov naslovov IP itd.
  • Orodja za konfiguracijo varnosti API.
  • Portal za razvijalce za objavo interaktivne dokumentacije API-ja.
  • Enotna točka dostopa do API-ja.

Webinar je namenjen arhitektom, razvijalcem in sistemskim skrbnikom.

Registracija je obvezna!

Vir: www.habr.com

Dodaj komentar