Atlassian Approaches API Governance
عبارت «حاکمیت فناوری» اغلب تصاویری از بوروکراسی پیچیده به ذهن میآورد که حتی باتجربهترین برنامهنویسان را هم آزار میدهد. با این حال، حاکمیت بهنظر میرسد یک مسیر جذاب (و شاید ضروری) برای کاهش پراکندگی فناوری، افزایش بدهی فنی و الگوهای توسعه نامنسجم باشد. و بهطور قابلبحث، هیچجایی بهاندازه طراحی و توسعه API نیازمند حاکمیت نیست.
یک سازمان که با حاکمیت داخلی API آزمایش کرده است، Atlassian است، بهویژه بخش تحقیق و توسعه (R&D). Atlassian استانداردهایی به نام Extensibility Standards را در یک پلتفرم حاکمیتی داخلی نگهداری میکند، و هدف این است که این قوانین برای انجام بررسیهای خودکار انطباق با APIهای جدید اعمال شوند.
من اخیراً با Dugald Morrow، نماینده توسعهدهندگان در Atlassian، گفتوگو کردم تا درباره پیشرفتهای آنها در تشویق به استانداردها برای APIهای داخلیشان اطلاعات بیشتری کسب کنم. به گفته Morrow، فرآیند آنها هنوز در حال توسعه است اما تاکنون نتایج امیدوارکنندهای داشته و باعث کاهش تغییرات نامطلوب API و ایجاد یک «DNA اکوسیستم» شده است.
وضعیت پورتفولیوی API
نبود استانداردهای API یک سناریو رایج در سازمانهای دیجیتال امروز است. Morrow میگوید: «این یک مشکل بزرگ است و رسیدگی به آن دشوار است.» برای مثال، نبود هماهنگی در مدیریت تغییرات API میتواند پیامدهای منفی برای یکپارچگیها ایجاد کند.
قبل از اجرای استراتژی حاکمیت، توسعه API بهصورت جزیرهای در Atlassian بسیار رایج بود. Morrow میگوید: «تیمهای R&D ما خیلی اوقات بهطور ناخواسته APIها را خراب میکردند که بر شرکا و مشتریان تأثیر میگذاشت.» علتهای متعددی وجود داشت، اما در نهایت به دلیل عملکرد مستقل تیمها و از دست دادن برخی مراحل بود.
نبود استاندارد در مدیریت تغییرات به اکوسیستم Atlassian آسیب میرساند، اما یافتن علت اولیه واضح نبود. «ما میدانستیم که مشکل مدیریت تغییرات داریم، اما مدتی طول کشید تا بفهمیم نبود استانداردها، رویهها و ابزارها علت اصلی است.» این درک عمدتاً از پایین به بالا شکل گرفت.
معرفی چارچوب حاکمیت API
برای رفع این مشکلات، Atlassian استانداردهای Extensibility خود را تولید میکند که بهصورت داخلی مستندسازی شده و بهطور خودکار در طول توسعه APIها اعمال میشوند. چارچوب حاکمیت خودکار Atlassian شامل چند مؤلفه است:
مستندسازی قوانین:
استانداردهای Extensibility بهصورت خصوصی در developer.atlassian.com مستندسازی شدهاند. این پلتفرم شامل استانداردها، راهنماها، قوانین، استانداردهای احراز هویت و تعاریف است که در یک مخزن Bitbucket به شکل فایلهای JSON و YAML ساختار یافته ذخیره شدهاند.
امکانات ویرایش آسان قوانین:
این مخزن یک اپلیکیشن وب برای ویرایش استانداردها دارد و راهنماهایی برای نگهداری آنها ارائه میدهد. همچنین پردازش CI را فراهم میکند تا مستندات استانداردها بهطور خودکار تولید شوند.
اجرای خودکار بررسیهای حاکمیتی:
Morrow میگوید Atlassian گزارشی Node/TypeScript از انطباق با قوانین دارد. فرآیند با استفاده از رویکرد مبتنی بر مشخصات برای lint قوانین انجام میشود. این شامل ساخت یک مجموعه قوانین Spectral از استانداردها، بازیابی تمامی مشخصات OpenAPI محصولات و خدمات، اجرای Spectral و گزارش نتایج به دادهلیک و صفحات داخلی Confluence است.
مدیریت changelog:
پردازش CI گزارشهایی از سلامت changelog و تأخیر در اعلام آنها تولید میکند. یک اپلیکیشن داخلی نیز ابزارهایی برای پیشنمایش changelogها، ارزیابی تأثیر تغییرات API و محاسبه دورههای منسوخ شدن ارائه میدهد.
تأمین دادههای عملیاتی:
تیم استانداردهای Extensibility تلاش کرده است چرخه زندگی API را ساده کند و گزارشدهی و مصورسازی مفید ارائه دهد. Morrow میگوید: «هدف این است که تا حد امکان گزارشدهی خودکار باشد و تیمها دادهها را در جلسات TechOps تحلیل کنند.»
مشاهده نتایج
اگرچه Atlassian در مراحل ابتدایی است، تیمها تاکنون نتایج ملموسی از حاکمیت API دیدهاند:
-
کاهش تعداد حوادث و تغییرات نامطلوب API
-
افزایش تعامل و همکاری تیمها و تقویت «DNA اکوسیستم» با استفاده از فرایندهایی مانند RFC
-
افزایش بهرهوری ناشی از ابزارهای بهتر و روشهای کارآمدتر
درسآموزی از استراتژی Atlassian
نکاتی که رهبران مهندسی میتوانند از Atlassian یاد بگیرند:
-
اجرای تغییرات از پایین به بالا: مشارکت توسعهدهندگان در مراحل اولیه بهترین نتیجه را دارد.
-
توضیح دلیل قوانین: برای پذیرش قوانین، ارائه دلیل و توضیح آنها ضروری است.
-
ارائه ابزار مناسب: ابزارهایی که پیادهسازی و ویرایش قوانین را آسان کنند.
-
خودکارسازی کامل: از بهروزرسانی قوانین تا تولید گزارش و اجرای قوانین، همه چیز باید خودکار باشد.
Morrow میگوید: «کار زیادی است، اما رویکرد ما تاکنون مؤثر بوده است.»
نیاز فزاینده به حاکمیت API
تجربه Atlassian مدل جالبی برای حاکمیت API ارائه میدهد. این پلتفرم داخلی تلاش دارد روشی مشارکتی و بینتیمی برای مدیریت استانداردهای API فراهم کند.
در بیشتر سازمانها، تعداد APIهای در حال توسعه کاهش نمییابد. شرکتهای بزرگ با سبکهای مختلف API سروکار دارند و مهندسان همزمان ابزارهای مدیریت چرخه زندگی مختلفی را استفاده میکنند.
بنابراین، صرفاً داشتن یک راهنمای سبک یا توصیهها کافی نیست. فناوری مناسب، مانند پلتفرم داخلی Atlassian، برای اجرای و تکرار استانداردهای API لازم است. این کار به توسعه فرهنگی منسجمتر و شکلگیری ذهنیت سالم API کمک میکند.
