Məhsul səhifəsi deyir ki, onun API-si var, və inteqrasiya iclası ikinci sualda ilişib qalır. Hansı əməliyyat, hansı obyekt üzərində, kim tərəfindən çağırılır və nə uğur sayılır? Məhsulları müqayisə etməzdən əvvəl bu dördünü cavablandırmaq adətən namizədlərin yarısını aradan qaldırır. O, həm də qalan müqayisəni testin həll edə biləcəyi bir şeyə çevirir.

API var ifadəsini bir əməliyyatla əvəz edin

API bir nəqliyyat vasitəsidir, qabiliyyət deyil. REST son nöqtəsi, lokal soket və əmr sətri sarğısı hamısı API adlandırıla bilər, lakin onlar ekvivalent əməliyyatlar təklif etmir.

Əməliyyatı sənədləşdirməyə baxmazdan əvvəl bir cümlə kimi yazın.

Lokal bağlantının başladılması qarşısında istifadəçi olan müştəri tərəfli hərəkətdir. Cihaz profilin verilməsi arxasında inventar olan təchizat hərəkətidir. İstifadəçinin girişinin söndürülməsi audit izi olan inzibati hərəkətdir. Bu üçü adətən fərqli komponentlərdə, fərqli komandaların mülkiyyətində və fərqli səlahiyyətlə yaşayır.

Müqaviləni test edilə bilən edən dörd sahə

Hər əməliyyat üçün dörd sahə doldurun: obyekt, əməliyyat, çağıran və uğur şərti. Sahəsi çatışmayan müqavilə bir arzudur.

Cədvəl bütün iş vərəqidir:

FieldQuestionExample
ObjectWhat is being acted on?One enrolled device
ActionObserve, create, change, start, stop, or revoke?Revoke
CallerWhich identity calls it?Deployment service
SuccessWhat observable state proves it?Future sign-in denied

Uğur şərti insanların atladığı sahədir və inteqrasiyanın işləyib-işləmədiyini həll edən də elə həmin sahədir. Yadda saxlanılan parametr aktiv tunel deyil, söndürülmüş hesab da bitmiş sessiya deyil.

Əgər iki əməliyyat fərqli çağıranlara ehtiyac duyursa, bunlar iki inteqrasiyadır. Onları bir xidmət hesabında birləşdirmək adətən hər ikisinin ehtiyac duyduğundan daha çox səlahiyyət verilməsi deməkdir.

İnterfeysi real qatına uyğunlaşdırın

OpenVPN-in icma idarəetmə interfeysi TCP və ya Unix soketi vasitəsilə daemon ilə danışır. Onun əmrlərinə vəziyyət müşahidəsi və daemon siqnalları daxildir.

Bu onu daemon nəzarət kanalı edir, hostinq abunə API-si və ya istifadəçi qeydiyyatı xidməti deyil. Sənədlərini diqqətlə oxumaq sizi obyektə sahib olmayan qat üzərində qurmaqdan xilas edir.

Həmin sənədlər həmçinin deyir ki, protokolun öz şifrləməsi yoxdur. Soketə çata bilən hər kəs daemonu idarə edə bilər, ona görə də ona metrik axını kimi deyil, həssas nəzarət kimi yanaşın. Onu loopback və ya Unix soketinə bağlayın və uzaq çağıran lazımdırsa, məhdudlaşdırılmış bir quruluş arxasına qoyun. Rahatlıq üçün onu internetə açmaq nəzarət kanalını insidentə çevirir.

Çağırışdan sonrakı davranışı müəyyən edin

Qəbul etmə tamamlanma ilə eyni deyil. Daemon tunel qalxmazdan əvvəl qayıda bilər, ona görə də sənədləşdirilmiş tamamlanma və ya uğursuzluq hadisəsini gözləyin və onu göndərdiyiniz sorğuya bağlayın.

Cavab itərsə, çağıranın nə edəcəyinə qərar verin. Yaradılmanı və ya yenidən qoşulmanı kor-koranə təkrarlamaq birinci sorğunun artıq təsir edib-etmədiyini yoxlamaqla eyni deyil.

Girişin silinməsi ən azı üç fərqli hərəkətdir: gələcək daxil olmanı bloklamaq, canlı sessiyanı sonlandırmaq və etimadnaməni ləğv etmək. Siyasətin həqiqətən tələb etdiyini istəyin və müqavilədə hansının hansı olduğunu deyin. Bir uğurlu hesab yeniləməsini sübut olmadan tam ləğv adlandırmayın. Fərq insident zamanı, saat işləyərkən vacibdir.

Müqaviləni pilotla yoxlayın

Kiçik təsdiqlənmiş pilot uğuru, rəddi, kəsilməni və təkrar cəhdi, ardınca icazə verilməli və ya qadağan edilməli tətbiq əməliyyatını əhatə etməlidir.

Daemon səviyyəsindəki interfeys üçün iki əmr müşahidəni və bir siqnalı tətbiq edir:

echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505

Yalnız əməliyyatın tələb etdiyi səlahiyyəti verin. Sirləri adi jurnallardan kənarda saxlayın və hansı hədəfin təsirləndiyini və nə ilə bitdiyini demək üçün kifayət qədər şəxsi detal qeyd edin.

Nəzarət API-nin özü işləmədikdə bərpa yolunu yazın. Obyektə və onun həyat dövrünə sahib olan interfeysi seçin; məhsul səhifəsindəki avtomatlaşdırma iddiaları əvəzedici deyil.

Əlaqəli məqalələr