4 مرحله مهم برای ساخت یک کاتالوگ بزرگ از اتصالات بسیار جالب توجه

_0_gg_g0g_g0g_sg_g06_g0g06x2-y01 = “https://hackernoon.com/images/avatars/rGWF1RDlLZchb3zju0HpnW7gT6X2.jpg” alt = “عکس پروفایل نویسنده”>

هنر ساخت یک کاتالوگ بزرگ اتصالات در اندیشه است لایه های پیاز.

ما در حال ساخت یک سیستم عامل منبع باز یکپارچه در Airbyte هستیم. ما حدود یک ماه پیش MVP خود را راه اندازی کردیم. ما از میزان بازخورد و پشتیبانی ما از جامعه هیجان زده شدیم. ما در این هفته حتی اولین درخواست بزرگ جذب خود را از یک مشارکت کننده دریافت کردیم (2000+ کد بیشتر). اما در طول این ماه کامل ، هیچ اتصال دهنده جدیدی منتشر نکردیم. ممکن است تعجب کنید که چرا ما بر آن حرکت حرکت نکردیم. اگر مردم با اینکه MVP ما فقط 6 رابط داشت از آن هیجان زده بودند ، ممکن است فکر کنید ما باید در سریعترین زمان ممکن تعداد کانکتورها را افزایش دهیم. ما این کار را به دو دلیل بسیار مهم و متمایز انجام ندادیم.

اول ، ما دقیقاً تعریف می کردیم که اگر بخواهیم یکبار برای همیشه ادغام داده ها را حل کنیم ، بهترین پروتکل داده چیست. ، و این برای همه شرکت ها است. می توانید در اینجا درباره مشخصات ما بیشتر بدانید. حتی اگر هنوز نهایی نشده باشد ، شما نگاهی اجمالی به چشم انداز ما برای آینده خواهید داشت.

دوم ، و به همان اندازه مهم ، ما در حال ساخت یک کارخانه تولید واقعی برای اتصالات یکپارچه سازی داده ها بودیم. ببینید ، تیم ما منجر به ادغام داده ها در Liveramp شد ، که دارای بیش از 1000 اتصال دهنده مصرف داده و 1000+ اتصال دهنده توزیع است. بنابراین ما تجربه انتزاع آنچه را که می توان انتزاع کرد و ساده ساخت ادغام جدید (اغلب بدون کد) را داریم. ما کارخانه تولید خود را به طور کامل احداث نکرده ایم ، اما مهندسان از قبل می توانند هر روز یک اتصال جدید به آن اضافه کنند.

این مقاله نحوه ساخت این کارخانه تولید اتصالات را شرح می دهد.

آنچه که باید هنگام ساخت تعداد زیادی کانکتور در مورد آن فکر کنید

هنگام ساخت کاتالوگ بزرگ اتصالات ، موارد مختلفی وجود دارد که باید از طریق آنها فکر کنید .

ساخت اولیه

این زمانی است که شما از یک صفحه خالی شروع می کنید. این مرحله معمولاً نیاز به کمی برنامه ریزی دارد زیرا شامل ارتباط با تیم ها / شرکت های خارجی است.

مرحله ساخت اولیه شامل:

  • دسترسی به اسناد منبع / مقصد
  • دسترسی به حساب های آزمایشی ، زیرساخت های آزمون و غیره
  • استفاده از مسیر طلایی برای رمزگذاری روش های خوب
  • استفاده از بهترین زبان برای کار: امروز ، ما از جاوا و پایتون پشتیبانی می کنیم ، اما هر کسی می تواند زبان خودش را اضافه کند C
  • مستند سازی مجدد
  • تعریف ورودی های لازم

آزمایشات

آزمایشات برای اطمینان از اینکه هرگونه تغییر کد یا پروتکل بر اتصالات تأثیر نمی گذارد ، ضروری است. آنها باید قبل از هر ادغام اجرا شوند.

آنها همچنین اطمینان حاصل می کنند که اتصال دهنده همانطور که انتظار دارید رفتار می کند. برای این منظور باید اتصال خود را با سرویس تولید واقعی اجرا کنید. به عنوان مثال ، اگر روی اتصال دهنده Salesforce کار می کنید ، باید مطمئن شوید که Salesforce در واقع همان گونه که انتظار دارید رفتار می کند. غیر معمول نیست که یک API یا اسناد سرویس واقعیت را کاملاً منعکس نمی کند.

ما در حال حاضر پایه چارچوب آزمون خود را داریم. به توسعه دهندگان این امکان را می دهد که فقط در تأمین ورودی و خروجی متمرکز شوند و بقیه موارد توسط این چارچوب انجام می شود.

این تست ها 90٪ اطمینان به عملکرد کامل اتصال می دهد. اگر موارد لبه ای وجود داشته باشد ، همیشه می توان آزمایشات سفارشی بیشتری را اضافه کرد.

سرزندگی و تشخیص تغییر

اطمینان از اینکه منبع یا مقصد به همان روشی که در مرحله ساخت اولیه رمزگذاری شده است ادامه یابد و اطمینان حاصل شود که منبع یا مقصد برای اهداف نظارت همچنان زنده است ، ضروری است.

این تأییدها باید با سرعت انجام شود و هرگونه خرابی باید بررسی و برطرف شود که منجر به مرحله نگهداری می شود.

< strong> Maintenance

ما باید نحوه به روزرسانی اتصال ، فشار دادن تغییرات و انتشار تغییرات را در همه موارد در حال اجرا Airbyte مشخص کنیم.

هنر ساختن اتصالات ، تفکر در لایه های پیاز است

تقسیم بندی کد گاو

ساختن به موازات مفهوم حیوان خانگی / گاو که در DevOps / Infrastructure به خوبی شناخته شده است ، یک رابط کد گاو است و شما می خواهید تا آنجا که ممکن است زمان کمتری را صرف آن کنید. هر کاری که می توانید انجام دهید تا مانع انجام کار در آینده شوید ، باید آن را انجام دهید. این سرعت تولید شما را بسیار شتاب می بخشد.

انتزاع به عنوان لایه های پیاز

حداکثر کار با اهرم بالا شما را به سمت ساخت معماری خود را با یک ساختار پیاز esque به:

< p class = "paragraph"> مرکز پایین ترین سطح API را تعریف می کند. اجرای یک کانکتور در آن سطح نیاز به زمان مهندسی زیادی دارد. اما ، این دریچه فرار شما برای اتصالات بسیار پیچیده است که در آن شما به کنترل زیادی نیاز دارید.

سپس ، شما لایه های جدیدی از انتزاع ایجاد می کنید که به مقابله با خانواده های اتصالات بسیار سریع کمک می کند.

امروز ، ما یکی از این چکیده ها را برای پشتیبانی از ادغام Singer موجود ساخته ایم. ایجاد یک اهرم استفاده از Singer کمتر از 3 ساعت طول می کشد و هدف ما پایین آوردن آن به کمتر از 10 دقیقه است.

ما برای هر خانواده دیگری از منابع و مقصدها جاه طلبی یکسانی داریم.

همانطور که ما به کارخانه تولید خود ادامه می دهیم برای اتصالات ، ما ابزاری خواهیم ساخت که به ما امکان می دهد 95٪ از ادغام ها را بدون کد یا تعداد بسیار کمی مدیریت کنیم. چگونه می خواهیم ادغام ها را به یک کالا تبدیل کنیم.

آنچه Airbyte در حال حاضر ساخته است

ما موارد زیر را ساخته ایم:

  • مرکز پیاز
  • مسیر طلایی در جاوا و پایتون برای ساخت اتصالات جدید
  • اولین نسخه از چارچوب آزمون یکپارچه
  • اتصالات : 10 منبع با نرخ 1 منبع جدید در روز ، و 4 مقصد
  • لایه ای برای پشتیبانی سریع از ادغام های خواننده

اهداف ما با این کارخانه تولید اتصالات چیست

ما می خواهیم به نرخ 5 کانکتور در روز برسیم و شتاب بگیریم حتی فراتر از آن

ما همچنین می خواهیم ابزارهای بیشتری برای ساخت و کمک به اتصالات خود به جامعه ارائه دهیم. در حالت ایده آل ، 95٪ اتصالات را می توان بدون رمز به Airbyte اضافه کرد.

امیدواریم که این به شما درک بهتری از آنچه که ما دوست داشتیم و اهداف واقعی ما باشد. اگر راهی برای بهبود این معماری می بینید ، همه ما گوش می کنیم. دریغ نکنید که به Slack ما بپیوندید تا درباره هر گونه س orال یا پیشنهادی با تیم بحث کنید.

قبلاً در https://airbyte.io/articles/data-engineering-thoughts/how منتشر شده است -to-build-ათასობით-of-connectors /