
ابر بومی (Cloud native) یک رویکرد توسعه و استقرار نرمافزارها است که به سازمانها امکان میدهد برنامههای کاربردی مقیاسپذیر، انعطافپذیر و مقاوم را در محیطهای محاسبات ابری مدرن بسازند و اجرا کنند. برخلاف برنامههای کاربردی سنتی که اغلب برای زیرساختهای ثابت و محلی طراحی شدهاند، رویکرد ابر بومی از مزایای مدلهای ابری مانند خودسرویس بودن، مقیاسپذیری بر اساس تقاضا و پرداخت به ازای مصرف بهره میبرد. معماریهای ابر بومی معمولا از مجموعهای از الگوها و فناوریها تشکیل شدهاند که هدف آنها افزایش سرعت توسعه، بهبود قابلیت استقرار و مدیریت برنامهها و بهینهسازی استفاده از منابع ابری است.
این رویکرد اغلب شامل استفاده از میکروسرویسها (برنامههای کاربردی به مولفههای کوچک و مستقل تقسیم میشوند)، کانتینرها (بستهبندی برنامهها و وابستگیهایشان برای استقرار آسان)، ارکستراسیون کانتینرها (مانند کوبرنتیس برای مدیریت و مقیاسبندی کانتینرها)، زیرساخت تغییرناپذیر (جایگزینی زیرساخت به جای تغییر آن)، و APIهای اعلانی (تعریف وضعیت مطلوب سیستم به جای دستورالعملهای گام به گام) میباشد. علاوه بر این، فرهنگ دوآپس (DevOps) و شیوههایی مانند ادغام مداوم (CI) و تحویل مداوم (CD) نقش مهمی در چرخه حیات برنامههای کاربردی ابر بومی ایفا میکنند و امکان ارائه سریعتر و مطمئنتر نرمافزار را فراهم میآورند. هدف نهایی از اتخاذ رویکرد ابر بومی، چابکتر شدن سازمان، کاهش زمان عرضه محصولات به بازار، بهبود تجربه کاربری و افزایش نوآوری از طریق استفاده بهینه از قابلیتهای محاسبات ابری است.

برنامه کاربری ابر بومی چیست؟
یک برنامه کاربردی ابر بومی، یک برنامه نرمافزاری است که به طور خاص طراحی و ساخته شده تا از تمام ویژگیها و خدمات ارائه شده توسط پلتفرمهای محاسبات ابری بهره کامل ببرد. برخلاف برنامههای کاربردی سنتی که ممکن است بدون تغییرات معماری اساسی به ابر منتقل شوند، برنامههای کاربردی ابر بومی با در نظر گرفتن محیط ابری به عنوان زمینه عملیاتی اساسی خود، تصور و توسعه داده میشوند. این حرف بدان معنا است که آنها به گونهای معماری شدهاند که با بهرهگیری از خدمات و بهترین شیوههای خاص ابر، بسیار مقیاسپذیر، انعطافپذیر، چابک و مقرون به صرفه باشند. ویژگیهای کلیدی برنامههای کاربردی ابر بومی اغلب شامل موارد مختلفی است که از مهمترین آنها باید به میکروسرویسها کانتینرها (مانند Docker) برای قابلیت حمل و سازگاری در محیطهای مختلف بستهبندی شدهاند و به طور پویا با استفاده از پلتفرمهایی مانند کوبرنتیس سازماندهی و مدیریت میشوند، و با تمرکز بر اتوماسیون از طریق خطوط لوله یکپارچهسازی مداوم و تحویل مداوم (CI/CD) ساخته شدهاند، اشاره کرد. علاوه بر این، آنها معمولا از شیوههایی مانند زیرساخت به عنوان کد، پیکربندی اعلانی و تعاملات مبتنی بر API استقبال میکنند. هدف از رویکرد ابر-بومی ارائه سریعتر ویژگیهای نوآورانه، بهبود کارایی عملیاتی و ارتقای تجربه کلی کاربر با بهرهگیری از قابلیت ارتجاعی، مقیاسپذیری و منابع درخواستی ابر است. این برنامههای کاربردی صرفا در ابر میزبانی نمیشوند؛ بلکه ذاتا برای شکوفایی در آن طراحی شدهاند و از قابلیتهای ذاتی آن برای دستیابی به چابکی و ارزش تجاری بیشتر بهره میبرند.

ارکان شکلدهنده ابر بومی
الگواره ابر-بومی بر چند رکن اساسی استوار است که به طور جمعی توسعه و بهرهبرداری از برنامههای کاربردی مقیاسپذیر، انعطافپذیر و چابک را در محیطهای ابری امکانپذیر میسازد. یک رکن حیاتی کانتینریسازی است که شامل بستهبندی برنامههای کاربردی و وابستگیهای آنها در کانتینرهای قابل حمل و سبک، به ویژه با استفاده از داکر (Docker)، میشود. این امر سازگاری را در محیطهای مختلف، از توسعه تا تولید، تضمین میکند و استقرار و مدیریت را ساده میسازد. میکروسرویسها رکن اصلی دیگری را تشکیل میدهند و از تجزیه برنامههای کاربردی یکپارچه به سرویسهای کوچک، مستقل و با اتصال سست که میتوانند به طور جداگانه توسعه، مستقر و مقیاس شوند، حمایت میکنند. این معماری جداسازی خطا را بهبود میبخشد، امکان استفاده از فناوریهای متنوع را در بین تیمها فراهم میکند و چرخههای انتشار سریعتر را تسهیل مینماید. ارکستراسیون، که معمولا از طریق پلتفرمهایی مانند کوبرنتیس به دست میآید، برای مدیریت و مقیاسبندی میکروسرویسهای کانتینریشده ضروری است. این امر استقرار، مقیاسبندی، ترمیم و شبکهبندی کانتینرها را خودکار میکند و از دسترسیپذیری بالا و استفاده کارآمد از منابع اطمینان میدهد. Service Mesh رکن حیاتی دیگری را تشکیل میدهد و یک لایه زیرساختی اختصاصی برای مدیریت ارتباطات بین سرویسها فراهم میکند. این لایه ویژگیهایی مانند مدیریت ترافیک، امنیت (به عنوان مثال، TLS متقابل) و قابلیت مشاهده (به عنوان مثال، ردیابی، متریکها) را بدون نیاز به تغییر در کد برنامه ارائه میدهد. رابطهای برنامهنویسی کاربردی برای فعال کردن ارتباط و تعامل بین میکروسرویسها و سایر اجزا در اکوسیستم ابر-بومی اساسی هستند. واسطهای برنامهنویسی کاربردی به خوبی تعریف شده، ماژولار بودن را ارتقا میبخشند و به تیمها اجازه میدهند به طور مستقل کار کنند. در نهایت، شیوههای DevOps و خطوط لوله CI/CD (یکپارچهسازی مداوم/تحویل مداوم) ارکان جداییناپذیری هستند که بر اتوماسیون، همکاری بین تیمهای توسعه و عملیات و انتشار مکرر و تدریجی نرمافزار تأکید میکنند و امکان ایجاد حلقههای بازخورد سریعتر و ارائه سریعتر ارزش به کاربران را فراهم میآورند. این ارکان به هم پیوسته و به صورت همافزا عمل میکنند تا پتانسیل کامل محاسبات ابر-بومی را تحقق بخشند.

سرویسهای ابر بومی
سرویسهای Cloud-Native به مجموعهای از خدمات گفته میشود که به طور خاص برای استفاده در محیطهای محاسبات ابری طراحی و بهینهسازی شدهاند و به توسعهدهندگان امکان میدهند برنامههای کاربردی مقیاسپذیر، انعطافپذیر و با قابلیت اطمینان بالا را با بهرهگیری از معماریهای ابر-بومی ایجاد و اجرا کنند. این سرویسها معمولا به صورت خودسرویس و بر اساس تقاضا ارائه میشوند و مدل پرداخت آنها مبتنی بر میزان مصرف است، که این امر به سازمانها کمک میکند تا هزینههای زیرساختی خود را بهینه کنند و تنها برای منابعی که واقعاً استفاده میکنند هزینه بپردازند.
سرویسهای ابر-بومی طیف گستردهای از قابلیتها را شامل میشوند، از جمله سرویسهای محاسباتی (مانند ماشینهای مجازی مقیاسپذیر و توابع بدون سرور)، سرویسهای ذخیرهسازی (مانند ذخیرهسازی شیء، پایگاههای داده مدیریتشده و صفهای پیام)، سرویسهای شبکه (مانند شبکههای مجازی، متعادلکنندههای بار و شبکههای تحویل محتوا)، سرویسهای مدیریت کانتینر (مانند پلتفرمهای ارکستراسیون کانتینر مانند کوبرنتیس و سرویسهای رجیستری کانتینر)، سرویسهای نظارت و لاگبرداری، و همچنین سرویسهای امنیتی و مدیریت هویت.
ویژگی کلیدی این سرویسها، تجرید پیچیدگیهای زیرساختی است، به این معنی که توسعهدهندگان میتوانند بر روی نوشتن کد برنامه کاربردی خود تمرکز کنند و نیازی به مدیریت مستقیم سرورها، شبکهها یا زیرساختهای ذخیرهسازی ندارند. ارائهدهندگان خدمات ابری مسئولیت مدیریت، مقیاسبندی و اطمینان از دسترسپذیری این سرویسها را بر عهده دارند، که این امر به تیمهای توسعه اجازه میدهد تا با سرعت بیشتری نوآوری کرده و برنامههای کاربردی خود را به بازار عرضه کنند. استفاده از سرویسهای ابر-بومی به سازمانها کمک میکند تا چابکی خود را افزایش دهند، زمان عرضه به بازار را کاهش دهند، هزینهها را بهینه کنند و در نهایت، تجربه کاربری بهتری را ارائه دهند.
ابر-بومی بر پایه چه معماریهایی پیادهسازی میشود؟
ابر-بومی بر پایه معماریهای مختلفی پیادهسازی میشود که هر کدام مجموعهای از اصول و الگوها را برای ساخت و اجرای برنامههای کاربردی در محیطهای ابری ارائه میدهند. یکی از پایههای اصلی، معماری میکروسرویسها است که در آن یک برنامه کاربردی بزرگ به مجموعهای از سرویسهای کوچک، مستقل و با اتصال پایدار تقسیم میشود که هر کدام مسئولیت یک قابلیت تجاری خاص را بر عهده دارند و از طریق APIها با یکدیگر ارتباط برقرار میکنند. این معماری امکان توسعه، استقرار و مقیاسبندی مستقل هر سرویس را فراهم میکند. کانتینریسازی با استفاده از فناوریهایی مانند داکر، امکان بستهبندی برنامهها و تمام وابستگیهای آنها در واحدهای قابل حمل و سازگار را فراهم میکند که استقرار و مدیریت آنها را در محیطهای مختلف آسان میسازد. ارکستراسیون کانتینرها، به ویژه با استفاده از کوبرنتیس، برای مدیریت چرخه حیات کانتینرها، شامل استقرار، مقیاسبندی، حفظ سلامت و شبکه آنها، ضروری است.
اصل زیرساخت تغییرناپذیر (Immutable Infrastructure) نیز از اهمیت بالایی برخوردار است، به این معنی که زیرساخت پس از استقرار تغییر نمیکند و در صورت نیاز به تغییر یا بهروزرسانی، زیرساخت جدید جایگزین قبلی میشود، که این امر از بروز مشکلات ناشی از تغییرات پیکربندی جلوگیری میکند. استفاده از APIهای اعلانی (Declarative APIs) به جای APIهای دستوری، به کاربران اجازه میدهد تا وضعیت مطلوب سیستم را تعریف کنند و مسئولیت رسیدن به آن وضعیت را به سیستم واگذار کنند. علاوه بر این، رویکردهای DevOps و استفاده از خطوط لوله CI/CD (یکپارچهسازی مداوم/تحویل مداوم) برای خودکارسازی فرآیند توسعه و استقرار نرمافزار و ارائه سریعتر و مطمئنتر ارزش به کاربران، جزء جداییناپذیر پیادهسازی معماریهای ابر-بومی هستند. این معماریها با تکیه بر این اصول و فناوریها، امکان ساخت برنامههای کاربردی انعطافپذیر، مقیاسپذیر و با قابلیت اطمینان بالا را در محیطهای ابری فراهم میآورند.
چه تفاوتی میان ابر بومی و ابر وجود دارد؟
ابر در حالت کلی و جامع، به استفاده از زیرساختهای محاسباتی (مانند سرورها، ذخیرهسازی، شبکه و نرمافزار) اشاره دارد که از طریق اینترنت و توسط یک ارائهدهنده خدمات ابری در دسترس قرار میگیرد. سازمانها و افراد میتوانند بدون نیاز به مالکیت و نگهداری زیرساخت فیزیکی، از این منابع به صورت برونسپاری و بر اساس تقاضا استفاده کنند. در مقابل، ابر-بومی یک رویکرد خاص در طراحی، ساخت و بهرهبرداری از برنامههای کاربردی است که به طور کامل از ویژگیها و خدمات ارائه شده توسط محیطهای ابری مدرن بهره میبرد. به عبارت دیگر، در حالی که “ابر” به محل استقرار و نحوه دسترسی به منابع محاسباتی اشاره دارد، “ابر-بومی” به چگونگی ساخت و مدیریت برنامههای کاربردی برای استفاده بهینه از این محیط ابری میپردازد. برنامههای کاربردی ابر-بومی به طور خاص برای محیطهای ابری طراحی میشوند و از الگوها و فناوریهایی مانند میکروسرویسها، کانتینرها، ارکستراسیون (مانند Kubernetes) و DevOps استفاده میکنند تا مقیاسپذیر، انعطافپذیر، مقاوم در برابر خطا و با قابلیت استقرار سریع باشند. بنابراین، هر برنامه ابر-بومی در ابر اجرا میشود، اما هر برنامهای که در ابر اجرا میشود، لزوماً ابر-بومی نیست؛ ممکن است یک برنامه سنتی باشد که صرفاً به محیط ابری منتقل شده باشد بدون اینکه از مزایای معماریهای ابر-بومی بهره ببرد.
مزایای ابر بومی چیست؟
مزایای رویکرد ابر-بومی برای سازمانها و تیمهای توسعه نرمافزار بسیار چشمگیر و چندجانبه است. یکی از مهمترین این مزایا، افزایش چابکی و سرعت در توسعه و استقرار نرمافزار است؛ استفاده از میکروسرویسها و کانتینرها امکان توسعه و استقرار مستقل اجزای مختلف برنامه را فراهم میکند، در نتیجه چرخههای انتشار کوتاهتر شده و سازمانها میتوانند سریعتر به نیازهای بازار و مشتریان پاسخ دهند. بهبود مقیاسپذیری یکی دیگر از مزایای کلیدی است؛ معماریهای ابر-بومی به گونهای طراحی میشوند که بتوانند به طور پویا و بر اساس تقاضا، منابع خود را افزایش یا کاهش دهند، که این امر به سازمانها کمک میکند تا در زمانهای اوج بار کاری عملکرد مطلوبی داشته باشند و در زمانهای کمبار، هزینههای خود را کاهش دهند. افزایش قابلیت اطمینان و تحمل خطا نیز از دیگر مزایای مهم است؛ معماریهای مبتنی بر میکروسرویسها و ارکستراسیون کانتینرها به گونهای طراحی میشوند که در صورت بروز مشکل در یک جزء، سایر اجزا به کار خود ادامه دهند و کل سیستم از کار نیفتد.
بهینهسازی هزینهها از طریق مدل پرداخت به ازای مصرف و استفاده کارآمد از منابع ابری نیز یک مزیت قابل توجه است؛ سازمانها تنها برای منابعی که واقعاً استفاده میکنند هزینه میپردازند و نیازی به سرمایهگذاری اولیه سنگین در زیرساختهای فیزیکی ندارند. علاوه بر این، رویکرد ابر-بومی با تکیه بر اتوماسیون و شیوههای دوآپس، بهرهوری تیمهای توسعه و عملیات را افزایش میدهد و امکان تمرکز بر نوآوری و ارائه ارزش بیشتر به مشتریان را فراهم میآورد. در نهایت، استفاده از سرویسهای مدیریتشده ابری، بار مدیریتی زیرساخت را کاهش میدهد و به تیمها اجازه میدهد تا بر روی توسعه منطق تجاری اصلی خود تمرکز کنند.
حمیدرضا تائبی