Ներկայացնում ենք InterSystems API Manager-ը (+ webinar)

Մենք վերջերս թողարկեցինք InterSystems API Manager (IAM)՝ InterSystems IRIS տվյալների պլատֆորմի նոր բաղադրիչ, որն ապահովում է վեբ API-ի տրաֆիկի տեսանելիություն, վերահսկում և կառավարում ՏՏ ենթակառուցվածքում:

Այս հոդվածում ես ձեզ ցույց կտամ, թե ինչպես կարգավորել IAM-ը և ցույց տալ IAM-ի միջոցով ձեզ հասանելի բազմաթիվ հնարավորություններից մի քանիսը: InterSystems API Manager-ը թույլ է տալիս՝

  • Վերահսկեք API-ն, հասկացեք, թե ով է օգտագործում API-ն, որ API-ներն են ամենատարածվածը և որոնք են բարելավման կարիք ունեն:
  • Վերահսկեք, թե ով է օգտագործում API-ն և սահմանափակեք API-ի օգտագործումը՝ մուտքի պարզ սահմանափակումներից մինչև հարցումների վրա հիմնված սահմանափակումներ. դուք ունեք հատուկ հսկողություն և կարող եք արագ արձագանքել API-ի սպառման փոփոխվող օրինաչափություններին:
  • Ապահովեք API-ները՝ օգտագործելով կենտրոնացված անվտանգության մեխանիզմներ, ինչպիսիք են OAuth2.0, LDAP կամ Key Token Authentication-ը:
  • Դյուրինացրեք երրորդ կողմի ծրագրավորողներին և ապահովեք նրանց API-ի բարձրակարգ փորձ՝ բացելով հատուկ մշակողների պորտալ:
  • Մեծացրեք API-ն և ապահովեք պատասխանի նվազագույն ուշացում:

API-ի կառավարումը կարևոր է SOA-ին կամ միկրոծառայությունների ճարտարապետությանը անցնելու համար՝ պարզեցնելով անհատական ​​(միկրո) ծառայությունների միջև ինտեգրումը, դրանք հասանելի դարձնելով բոլոր արտաքին և ներքին սպառողների համար: Արդյունքում, նոր API-ների ստեղծումը, պահպանումը և սպառումը դառնում է ավելի հեշտ:

Եթե ​​դուք արդեն օգտագործում եք InterSystems IRIS, կարող եք ավելացնել IAM տարբերակը ձեր լիցենզիայում: IAM տարբերակը անվճար է InterSystems IRIS հաճախորդների համար, բայց դուք պետք է պահանջեք նոր լիցենզիայի բանալի InterSystems-ից՝ IAM-ի օգտագործումը սկսելու համար:

Եթե ​​դեռ չեք օգտագործում InterSystems IRIS-ը և նախատեսում եք փորձել InterSystems API Manager-ը, խնդրում ենք կապվել InterSystems-ի հետ:

Սկսում և տեղադրում

InterSystems-ի հաճախորդները կարող են ներբեռնել IAM բաշխումը կայքից WRC բաժին «Ծրագրաշարերի բաշխում» և գործարկվում որպես Docker կոնտեյներ: Համակարգի նվազագույն պահանջներ.

Սկզբում դուք պետք է ներբեռնեք Docker պատկերը (Կարևոր է: WRC-ով արխիվը Docker պատկեր չէ, դուք պետք է բացեք այն, ներսում կա Docker պատկեր):

docker load -i iam_image.tar

Այս հրամանը IAM պատկերը հասանելի կդարձնի ձեր սերվերում հետագա օգտագործման համար: IAM-ն աշխատում է որպես առանձին կոնտեյներ, այնպես որ կարող եք այն չափել անկախ InterSystems IRIS-ից: IAM-ի գործարկման համար անհրաժեշտ է մուտք գործել InterSystems IRIS՝ լիցենզիա ներբեռնելու համար:

Ստեղծեք InterSystems IRIS.

  • Միացնել վեբ հավելվածը /api/IAM
  • Միացնել օգտվողին IAM
  • Փոխել օգտվողի գաղտնաբառը IAM

Հիմա եկեք սկսենք IAM կոնտեյները: Արխիվում դուք կգտնեք սցենարներ iam-setup Windows-ի և Unix-ի համար (և Mac): Այս սկրիպտները կօգնեն ձեզ ճիշտ սահմանել շրջակա միջավայրի փոփոխականները՝ թույլ տալով IAM կոնտեյներին կապ հաստատել InterSystems IRIS-ի հետ: Ահա 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

Ինչպես տեսնում եք, ամբողջական պատկերի անունը, IP հասցեն, InterSystems IRIS պորտը և IAM օգտվողի գաղտնաբառը այն ամենն են, ինչ ձեզ հարկավոր է սկսելու համար:

Սկրիպտ գործարկելու փոխարեն կարող եք ձեռքով սահմանել շրջակա միջավայրի փոփոխականները.

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

Գործարկել

Այժմ եկեք գործարկենք IAM-ը՝ գործարկելով հրամանը.

docker-compose up -d

Այս հրամանը կազմակերպում է IAM կոնտեյներները և ապահովում, որ ամեն ինչ ճիշտ է աշխատում: Բեռնարկղերի կարգավիճակը ստուգվում է հրամանի միջոցով.

docker ps

Բացեք ադմինիստրատորի միջերեսը ձեր բրաուզերում localhost:8002.

Ներկայացնում ենք InterSystems API Manager-ը (+ webinar)

Առայժմ այն ​​դատարկ է, քանի որ այն բոլորովին նոր հանգույց է: Եկեք դա փոխենք։ IAM-ն աջակցում է API-ները մոդուլների և/կամ հրամանների բաժանելու աշխատանքային տարածքների հայեցակարգին: Գնացեք «կանխադրված» աշխատանքային տարածք, որը մենք կօգտագործենք մեր փորձերի համար:

Ներկայացնում ենք InterSystems API Manager-ը (+ webinar)

Այս աշխատանքային տարածքի հարցումների թիվը դեռ զրոյական է, բայց դուք պատկերացում կունենաք IAM-ի հիմնական հասկացությունների մասին ձախ կողմում գտնվող մենյուում: Առաջին երկու տարրերը՝ ծառայություններն ու երթուղիները ամենակարևորն են.

  • Ծառայությունն այն API-ն է, որին մենք ցանկանում ենք հասանելիություն ապահովել սպառողներին: Այսպիսով, REST API-ն InterSystems IRIS-ում Ծառայություն է, ինչպես, օրինակ, Google API-ն, եթե ցանկանում եք օգտագործել այն:
  • Երթուղին որոշում է, թե որ Ծառայության մուտքային հարցումները պետք է փոխանցվեն: Յուրաքանչյուր երթուղի ունի որոշակի պայմաններ, և եթե դրանք բավարարվեն, հարցումն ուղարկվում է համապատասխան ծառայությանը: Օրինակ, երթուղին կարող է համապատասխանել IP-ին, ուղարկողի տիրույթին, HTTP մեթոդներին, URI-ի մասերին կամ այս օրինակների համակցությանը:

Ծառայություն

Եկեք ստեղծենք InterSystems IRIS ծառայություն՝ հետևյալ արժեքներով.

Դաշտ
Արժեք
Նկարագրություն

անուն
ծիածանաթաղանթ
Ծառայության անվանումը

հյուրընկալող
IP
InterSystems IRIS սերվերի հոսթ կամ ip

նավահանգիստ
52773
InterSystems IRIS սերվերի վեբ-պորտ

ճանապարհ
/api/ատելիե
Արմատային ուղի

արձանագրություն
HTTP
Արձանագրություն

Մնացած արժեքները թողեք որպես լռելյայն: Սեղմեք կոճակը Create և գրեք ստեղծված Ծառայության ID-ն:

Ուղեւորություն

Հիմա եկեք ստեղծենք երթուղի.

Դաշտ
Արժեք
Նկարագրություն

ճանապարհ
/api/ատելիե
Արմատային ուղի

արձանագրություն
HTTP
Արձանագրություն

service.id
ուղեցույց 3-ից
Ծառայություն (Նախորդ քայլի ID-ն)

Մնացած արժեքները թողեք որպես լռելյայն: Սեղմեք կոճակը Create և գրեք ստեղծված երթուղու ID-ն: Լռելյայնորեն, IAM-ը լսում է մուտքային հարցումները 8000 նավահանգստում: Այժմ հարցումներն ուղարկվում են http://localhost:8000 և սկսած /api/atelier վերահղված են InterSystems IRIS:

Փորձարկում

Փորձենք ստեղծել հարցում REST հաճախորդում (ես օգտագործում եմ Փոստատար).

Ներկայացնում ենք InterSystems API Manager-ը (+ webinar)

Եկեք ուղարկենք GET հարցում http://localhost:8000/api/atelier/ (չմոռանաս / վերջում) և ստացեք պատասխան InterSystems IRIS-ից: Յուրաքանչյուր հարցում անցնում է IAM-ի միջոցով, որը հավաքում է չափումներ.

  • HTTP կարգավիճակի կոդը:
  • Հետաձգում.
  • Մոնիտորինգ (եթե կազմաձևված է):

Ես կատարել եմ ևս մի քանի հարցում (ներառյալ երկու հարցում գոյություն չունեցող վերջնակետերին, ինչպիսիք են /api/atelier/est/), արդյունքներն անմիջապես տեսանելի են վահանակում.

Ներկայացնում ենք InterSystems API Manager-ը (+ webinar)

Պլագինների հետ աշխատելը

Այժմ, երբ մենք ունենք երթուղի կազմաձևված, մենք կարող ենք կառավարել մեր API-ն: Մենք կարող ենք ավելացնել գործառույթներ, որոնք կլրացնեն մեր ծառայությունը:

API-ի վարքագիծը փոխելու ամենատարածված միջոցը plugin ավելացնելն է: Փլագինները մեկուսացնում են առանձին ֆունկցիոնալությունը և կարող են միանալ IAM-ին կամ գլոբալ կամ միայն առանձին կազմակերպություններին, ինչպիսիք են Օգտատերերը (օգտատերերի խումբը), Ծառայությունը կամ Երթուղին: Մենք կսկսենք ավելացնելով Rate Limiting plugin-ը Route-ում: Պլագինի և երթուղու միջև կապ հաստատելու համար մեզ անհրաժեշտ է երթուղու եզակի նույնացուցիչ (ID):

Հարցումների քանակի սահմանափակում

Կտտացրեք «Plugins» ձախ կողագոտու ցանկում: Դուք կարող եք տեսնել բոլոր ակտիվ հավելումները այս էկրանին, բայց քանի որ այս IAM սերվերը նոր է, դեռևս ակտիվ պլագիններ չկան: Այսպիսով, անցեք հաջորդ քայլին՝ սեղմելով «Նոր պլագին»:

Մեզ անհրաժեշտ հավելվածը գտնվում է «Traffic Control» կատեգորիայում և կոչվում է «Rate Limiting»: Ընտրեք այն: Կան բավականին շատ կարգավորումներ, որոնք դուք կարող եք սահմանել այստեղ, բայց մենք մտածում ենք միայն երկու դաշտի մասին.

Դաշտ
Արժեք
Նկարագրություն

route_id
ID
Երթուղու ID

config.minute
5
Մեկ րոպեի հարցումների քանակը

Այսքանը: Փլագինը կազմաձևված է և ակտիվ: Նկատի ունեցեք, որ մենք կարող ենք ընտրել տարբեր ժամանակային ընդմիջումներ, օրինակ՝ րոպե, ժամ կամ օր: Կարգավորումները կարող են համակցվել (օրինակ՝ 1000 հարցում մեկ ժամում և միևնույն ժամանակ 100 հարցում մեկ րոպեում)։ Ես ընտրեցի րոպեները, քանի որ այն հեշտացնում է plugin-ի ֆունկցիոնալությունը ստուգելը:

Եթե ​​նույն հարցումը նորից ուղարկեք Փոստմենում, կտեսնեք, որ պատասխանը վերադարձվում է 2 լրացուցիչ վերնագրերով.

  • XRateLimit-Limit-րոպե՝ 5
  • XRateLimit-Մնացած րոպե՝ 4

Սա հաճախորդին ասում է, որ այն կարող է րոպեում կատարել մինչև 5 հարցում և կարող է կատարել ևս 4 հարցում ընթացիկ ժամանակային հատվածում:

Ներկայացնում ենք InterSystems API Manager-ը (+ webinar)

Եթե ​​դուք կրկին ու կրկին անում եք նույն հարցումը, ի վերջո կսպառվեք հասանելի քվոտանից և փոխարենը կստանաք HTTP կարգավիճակի կոդը 429 հետևյալ պատասխան մարմնի հետ.

Ներկայացնում ենք InterSystems API Manager-ը (+ webinar)

Սպասեք մի րոպե, և դուք կկարողանաք կրկին հարցումներ ուղարկել:

Սա հարմար մեխանիզմ է, որը թույլ է տալիս.

  • Պաշտպանեք հետնամասը ծանրաբեռնվածությունից:
  • Ասացեք հաճախորդներին, թե քանի հարցում կարող են անել:
  • Դրամայնացնել API-ն:

Դուք կարող եք արժեքներ սահմանել տարբեր ժամանակային ընդմիջումների համար և այդպիսով հարթեցնել API-ի տրաֆիկը որոշակի ժամանակահատվածում: Ենթադրենք, դուք թույլատրում եք ժամում 600 հարցում որոշակի երթուղու վրա: Միջին հաշվով րոպեում լինում է 10 հարցում։ Բայց ոչինչ չի խանգարում հաճախորդին կատարել բոլոր 600 հարցումները ժամի առաջին րոպեին: Գուցե սա այն է, ինչ ձեզ հարկավոր է: Կարող եք մեկ ժամվա ընթացքում ավելի համաչափ բեռի հասնել: Դաշտի արժեքը սահմանելով config.minute 20 արժեքը երաշխավորում է, որ ձեր օգտատերերը րոպեում կատարում են ոչ ավելի, քան 20 հարցում և ժամում 600 հարցում: Սա թույլ է տալիս փոքր ցատկեր մեկ րոպեանոց ընդմիջումով, համեմատած րոպեում 10 հարցումների լրիվ միջին հոսքի հետ, սակայն օգտվողները չեն կարող օգտագործել ժամային քվոտան մեկ րոպեի ընթացքում: Այժմ նրանց կպահանջվի առնվազն 30 րոպե՝ իրենց բոլոր հարցումներն օգտագործելու համար։ Հաճախորդները կստանան լրացուցիչ վերնագրեր յուրաքանչյուր նշված ժամանակային ընդմիջման համար, օրինակ՝

HTTP վերնագիր
Արժեք

X-RateLimit-Limit-ժամ
600

X-RateLimit-Remaining-hour
595

X-RateLimit-Limit-րոպե
20

X-RateLimit-Remaining-րոպե
16

Իհարկե, կան հարցումների սահմանաչափերը կարգավորելու շատ տարբեր եղանակներ՝ կախված նրանից, թե ինչ եք ուզում հասնել:

Արդյունքները

Ես կավարտեմ այստեղ, կարծում եմ, որ բավականաչափ նյութ կա InterSystems API Manager-ի մասին առաջին հոդվածի համար: Մենք օգտագործել ենք 40-ից ավելի պլագիններից միայն մեկը: Կան շատ ավելի հետաքրքիր բաներ, որոնք դուք կարող եք անել IAM-ի հետ.

  • Ավելացրեք նույնականացման կենտրոնական մեխանիզմ ձեր բոլոր API-ների համար:
  • Մեծացրեք բեռը, օգտագործելով բեռի հավասարակշռիչը մի քանի Ծառայությունների մեջ:
  • Ավելացրեք նոր գործառույթներ և սխալների շտկումներ փորձնական լսարանին մինչև ամբողջական թարմացումը:
  • Ներքին և արտաքին մշակողներին տրամադրեք հատուկ վեբ պորտալ, որը փաստաթղթավորում է բոլոր API-ները:
  • Քեշը պահանջում է նվազեցնել արձագանքման ժամանակը և նվազեցնել համակարգի բեռը:

Սայլակ

Webinar

Հրավիրում ենք Ձեզ «API Management with InterSystems API Management» վեբինարին, որը տեղի կունենա նոյեմբերի 21-ին Մոսկվայի ժամանակով ժամը 10:00-ին (GMT+3):
InterSystems API Manager-ը (IAM) InterSystems IRIS Data Platform-ի նոր բաղադրիչն է, որն ապահովում է ՏՏ ենթակառուցվածքի շրջանակներում վեբ API-ներից տրաֆիկի մոնիտորինգ, վերահսկում և կառավարում: Վեբինարում մենք կցուցադրենք InterSystems API Management-ի հիմնական հնարավորությունները.

  • API երթևեկության մոնիտորինգի գործիքներ:
  • API-ի երթևեկության վերահսկում, ներառյալ թողունակության վերահսկում, API-ի զանգերի քանակի սահմանափակում, IP հասցեների թույլատրված և մերժված ցուցակների պահպանում և այլն:
  • API անվտանգության կազմաձևման գործիքներ:
  • Մշակողների պորտալ՝ ինտերակտիվ API փաստաթղթերի հրապարակման համար:
  • API-ի մուտքի մեկ կետ:

Վեբինարը նախատեսված է ճարտարապետների, մշակողների և համակարգի ադմինիստրատորների համար։

Գրանցումը պարտադիր է!

Source: www.habr.com

Добавить комментарий