Prezantimi i InterSystems API Manager (+ webinar)

Së fundmi kemi lëshuar InterSystems API Manager (IAM), një komponent i ri i Platformës së të Dhënave InterSystems IRIS që ofron shikueshmëri, kontroll dhe menaxhim të trafikut të API-ve në internet në të gjithë infrastrukturën e TI-së.

Në këtë artikull, unë do t'ju tregoj se si të konfiguroni IAM dhe të demonstroj disa nga shumë aftësi që janë në dispozicion për ju me IAM. InterSystems API Manager ju lejon të:

  • Monitoroni API-në, kuptoni se kush e përdor API-në, cilat API janë më të njohurat dhe cilat kërkojnë përmirësim.
  • Kontrolloni se kush përdor API-në dhe kufizoni përdorimin e API-së nga kufizimet e thjeshta të aksesit te kufizimet e bazuara në kërkesë - ju keni kontroll të personalizuar dhe mund t'i përgjigjeni shpejt ndryshimit të modeleve të konsumit të API.
  • Siguroni API-të duke përdorur mekanizma të centralizuar të sigurisë si OAuth2.0, LDAP ose Authentication Key Token.
  • Bëni më të lehtë për zhvilluesit e palëve të treta dhe siguroni atyre një përvojë superiore API duke hapur një portal të dedikuar zhvilluesish.
  • Shkalloni API-në dhe siguroni vonesë minimale të përgjigjes.

Menaxhimi i API-ve është thelbësor për kalimin në arkitekturën SOA ose mikroservice, duke thjeshtuar integrimin midis (mikro)shërbimeve individuale, duke i bërë ato të disponueshme për të gjithë konsumatorët e jashtëm dhe të brendshëm. Si rezultat, API-të e reja bëhen më të lehta për t'u krijuar, mirëmbajtur dhe konsumuar.

Nëse tashmë po përdorni InterSystems IRIS, mund të shtoni opsionin IAM në licencën tuaj. Opsioni IAM është falas për klientët InterSystems IRIS, por ju duhet të kërkoni një çelës të ri licence nga InterSystems për të filluar përdorimin e IAM.

Nëse nuk po përdorni ende InterSystems IRIS dhe po planifikoni të provoni InterSystems API Manager, ju lutemi kontaktoni InterSystems.

Fillimi dhe instalimi

Klientët e InterSystems mund të shkarkojnë shpërndarjen IAM nga faqja e internetit WRC seksioni "Shpërndarja e softuerit" dhe ekzekutohet si një kontejner Docker. Kërkesat minimale të sistemit:

Fillimisht, duhet të shkarkoni imazhin Docker (E rëndësishme! Arkivi me WRC nuk është një imazh Docker, duhet ta shpaketoni, ka një imazh Docker brenda):

docker load -i iam_image.tar

Kjo komandë do ta bëjë imazhin IAM të disponueshëm për përdorim të mëvonshëm në serverin tuaj. IAM funksionon si një kontejner i veçantë, kështu që ju mund ta shkallëzoni atë në mënyrë të pavarur nga InterSystems IRIS. Ekzekutimi i IAM kërkon qasje në InterSystems IRIS për të shkarkuar një licencë.

Konfiguro InterSystems IRIS:

  • Aktivizo aplikacionin në ueb /api/IAM
  • Aktivizo përdoruesin IAM
  • Ndryshoni fjalëkalimin e përdoruesit IAM

Tani le të fillojmë kontejnerin IAM. Në arkiv do të gjeni skriptet iam-setup për Windows dhe Unix (dhe Mac). Këto skripta do t'ju ndihmojnë të vendosni saktë variablat e mjedisit, duke lejuar kontejnerin IAM të krijojë një lidhje me InterSystems IRIS. Këtu është një shembull i skriptit që funksionon në Mac:

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

Siç mund ta shihni, emri i plotë i imazhit, adresa IP, porta InterSystems IRIS dhe fjalëkalimi për përdoruesin IAM janë gjithçka që ju nevojitet për të filluar.

Në vend që të ekzekutoni një skript, mund të vendosni manualisht variablat e mjedisit:

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

lëshim

Tani le të nisim IAM duke ekzekutuar komandën:

docker-compose up -d

Kjo komandë organizon kontejnerët IAM dhe siguron që gjithçka të funksionojë siç duhet. Statusi i kontejnerëve kontrollohet duke përdorur komandën:

docker ps

Hapni ndërfaqen e administratorit në shfletuesin tuaj localhost:8002.

Prezantimi i InterSystems API Manager (+ webinar)

Tani për tani është bosh sepse është një nyje krejtësisht e re. Le ta ndryshojmë atë. IAM mbështet konceptin e hapësirave të punës për ndarjen e API-ve në module dhe/ose komanda. Shkoni te hapësira e punës "e parazgjedhur" që do të përdorim për eksperimentet tona.

Prezantimi i InterSystems API Manager (+ webinar)

Numri i kërkesave për këtë hapësirë ​​pune është ende zero, por ju do të merrni një ide për konceptet bazë të IAM në menynë në të majtë. Dy elementët e parë: Shërbimet dhe Rrugët janë më të rëndësishmet:

  • Shërbimi është API në të cilin ne duam t'u ofrojmë akses konsumatorëve. Kështu, API REST në InterSystems IRIS është një Shërbim, siç është, për shembull, API Google nëse dëshironi ta përdorni.
  • Itinerari vendos se cilit Shërbimi duhet t'i dërgohen kërkesat hyrëse. Çdo Linjë ka një sërë kushtesh specifike, dhe nëse ato plotësohen, kërkesa i dërgohet Shërbimit përkatës. Për shembull, një rrugë mund të përputhet me IP, domenin e dërguesit, metodat HTTP, pjesë të një URI ose një kombinim të këtyre shembujve.

Shërbim

Le të krijojmë një shërbim InterSystems IRIS, me vlerat e mëposhtme:

Fushë
Vlerë
Përshkrim

emër
shpatore
Emri i shërbimit

mikpritës
IP
Pritësi ose ip i serverit InterSystems IRIS

port
52773
Porta e internetit e serverit InterSystems IRIS

rrugë
/api/atelier
Rruga e rrënjës

protokoll
http
Protokolli

Lërini vlerat e mbetura si parazgjedhje. Klikoni butonin Create dhe shkruani ID-në e Shërbimit të krijuar.

Маршрут

Tani le të krijojmë një rrugë:

Fushë
Vlerë
Përshkrim

rrugë
/api/atelier
Rruga e rrënjës

protokoll
http
Protokolli

shërbimi.id
udhëzues nga 3
Shërbimi (ID nga hapi i mëparshëm)

Lërini vlerat e mbetura si parazgjedhje. Klikoni butonin Create dhe shkruani ID-në e rrugës së krijuar. Si parazgjedhje, IAM dëgjon për kërkesat hyrëse në portin 8000. Tani kërkesat dërgohen te http://localhost:8000 dhe duke filluar me /api/atelier janë ridrejtuar te InterSystems IRIS.

Testimi

Le të përpiqemi të krijojmë një kërkesë në një klient REST (po përdor postier).

Prezantimi i InterSystems API Manager (+ webinar)

Le të dërgojmë një kërkesë GET te http://localhost:8000/api/atelier/ (mos harro / në fund) dhe merrni një përgjigje nga InterSystems IRIS. Çdo kërkesë kalon përmes IAM i cili mbledh metrikë:

  • Kodi i statusit HTTP.
  • Vonesa.
  • Monitorimi (nëse është konfiguruar).

Bëra disa kërkesa të tjera (duke përfshirë dy kërkesa për pika fundore jo-ekzistente si /api/atelier/est/), rezultatet janë menjëherë të dukshme në panelin e kontrollit:

Prezantimi i InterSystems API Manager (+ webinar)

Puna me shtojca

Tani që kemi konfiguruar një Rrugë, ne mund të menaxhojmë API-në tonë. Ne mund të shtojmë veçori që do të plotësojnë shërbimin tonë.

Mënyra më e zakonshme për të ndryshuar sjelljen e një API është të shtoni një shtojcë. Shtojcat izolojnë funksionalitetin individual dhe mund të lidhen me IAM ose globalisht ose vetëm me entitete individuale, si p.sh. një Përdorues (grup përdoruesish), Shërbimi ose Rrugë. Ne do të fillojmë duke shtuar shtojcën e Kufizimit të Çmimeve në Route. Për të krijuar një lidhje midis shtojcës dhe rrugës, na duhet një identifikues unik (ID) i itinerarit.

Kufizimi i numrit të kërkesave

Klikoni "Plugins" në menunë e shiritit anësor të majtë. Ju mund t'i shihni të gjitha shtojcat aktive në këtë ekran, por meqenëse ky server IAM është i ri, nuk ka ende shtojca aktive. Pra, vazhdoni në hapin tjetër duke klikuar "Plugin i ri".

Shtojca që na nevojitet është në kategorinë “Traffic Control” dhe quhet “Rate Limiting”. Zgjidhni atë. Ka mjaft cilësime që mund të vendosni këtu, por ne kujdesemi vetëm për dy fusha:

Fushë
Vlerë
Përshkrim

itinera_rruga
ID
ID e itinerarit

konfigurim.minuta
5
Numri i kërkesave për minutë

Kjo eshte e gjitha. Shtojca është e konfiguruar dhe aktive. Vini re se ne mund të zgjedhim intervale të ndryshme kohore, të tilla si një minutë, një orë ose një ditë. Cilësimet mund të kombinohen (për shembull, 1000 kërkesa në orë dhe në të njëjtën kohë 100 kërkesa në minutë). Zgjodha minutat sepse e bën të lehtë kontrollimin e funksionalitetit të shtojcës.

Nëse e dërgoni përsëri të njëjtën kërkesë në Postman, do të shihni që përgjigja kthehet me 2 tituj shtesë:

  • XRateLimit-Limit-minuta: 5
  • XRateLimit-Minuta e mbetur: 4

Kjo i tregon klientit se mund të bëjë deri në 5 kërkesa në minutë dhe mund të bëjë 4 kërkesa të tjera në slotin aktual të kohës.

Prezantimi i InterSystems API Manager (+ webinar)

Nëse bëni të njëjtën kërkesë vazhdimisht, përfundimisht do t'ju mbarojë kuota e disponueshme dhe në vend të kësaj do të merrni një kod statusi HTTP prej 429 me trupin e mëposhtëm të përgjigjes:

Prezantimi i InterSystems API Manager (+ webinar)

Prisni një minutë dhe do të jeni në gjendje të paraqisni përsëri kërkesat.

Ky është një mekanizëm i përshtatshëm që ju lejon të:

  • Mbroni pjesën e pasme nga rritjet e ngarkesës.
  • Tregojuni klientëve sa kërkesa mund të bëjnë.
  • Fito para nga API.

Ju mund të vendosni vlera për intervale të ndryshme kohore dhe kështu të qetësoni trafikun API për një periudhë të caktuar kohore. Le të themi se ju lejoni 600 kërkesa në orë në një itinerar të caktuar. Mesatarisht ka 10 kërkesa në minutë. Por asgjë nuk e pengon klientin të plotësojë të 600 kërkesat në minutën e parë të orës. Ndoshta kjo është ajo që ju nevojitet. Ju mund të dëshironi të arrini një ngarkesë më të barabartë gjatë një ore. Duke vendosur vlerën e fushës config.minute Një vlerë prej 20 siguron që përdoruesit tuaj të bëjnë jo më shumë se 20 kërkesa në minutë dhe 600 kërkesa në orë. Kjo lejon rritje të vogla në një interval një minutësh në krahasim me një fluks mesatarisht të plotë prej 10 kërkesash në minutë, por përdoruesit nuk mund të përdorin kuotën për orë për një minutë. Tani atyre do t'u duhen të paktën 30 minuta për të përdorur të gjitha kërkesat e tyre. Klientët do të marrin tituj shtesë për çdo interval kohor të caktuar, për shembull:

Kreu HTTP
Vlerë

X-RateLimit-Limit-orë
600

X-RateLimit-Ora e mbetur
595

X-RateLimit-Limit-minuta
20

X-RateLimit-Remaining-minuta
16

Sigurisht, ka shumë mënyra të ndryshme për të konfiguruar kufijtë e pyetjeve në varësi të asaj që dëshironi të arrini.

Gjetjet

Do të përfundoj këtu, mendoj se ka mjaft material për artikullin e parë rreth InterSystems API Manager. Ne përdorëm vetëm një nga mbi 40 shtojcat. Ka shumë gjëra të tjera interesante që mund të bëni me IAM:

  • Shtoni një mekanizëm qendror vërtetimi për të gjitha API-të tuaja.
  • Rriteni ngarkesën duke përdorur një balancues ngarkese në shumë shërbime.
  • Shtoni funksionalitete të reja dhe rregullime të gabimeve në një audiencë testuese përpara një përditësimi të plotë.
  • Ofroni zhvilluesve të brendshëm dhe të jashtëm një portal të dedikuar në internet që dokumenton të gjitha API-të.
  • Kërkesat e memories për të reduktuar kohën e përgjigjes dhe për të zvogëluar ngarkesën në pjesën e pasme të sistemit.

Referencat

Webinar

Ju ftojmë në webinarin "Menaxhimi i API me Menaxhimin e InterSystems API", i cili do të zhvillohet më 21 nëntor në orën 10:00 me orën e Moskës (GMT+3).
InterSystems API Manager (IAM) është një komponent i ri i Platformës së të Dhënave InterSystems IRIS që ofron monitorim, kontroll dhe menaxhim të trafikut drejt/nga web API-të brenda infrastrukturës së TI-së. Në webinar do të demonstrojmë aftësitë kryesore të InterSystems API Management:

  • Mjetet e monitorimit të trafikut API.
  • Kontrollet e trafikut API, duke përfshirë kontrollin e gjerësisë së brezit, kufizimin e numrit të thirrjeve API, mbajtjen e listave të listave të lejuara dhe të mohuara të adresave IP, etj.
  • Mjetet e konfigurimit të sigurisë API.
  • Portali i zhvilluesve për publikimin e dokumentacionit interaktiv API.
  • Pika e vetme e aksesit në API.

Webinari është i destinuar për arkitektë, zhvillues dhe administratorë të sistemit.

Kërkohet regjistrimi!

Burimi: www.habr.com

Shto një koment