باز کردن قدرت زیرساخت “از” کد با Encore: یک راه حل مناسب برای توسعه دهندگان

زیرساخت به عنوان کد و محاسبات بدون سرور
Infrastructure as Code (IaC) سالهاست که موجی در صنعت توسعه نرم افزار ایجاد کرده است. در اصل، IaC فرآیند مدیریت و تأمین زیرساخت (سرورهای فکری، ذخیره سازی، شبکه و موارد مشابه) از طریق کد به جای پیکربندی دستی است. با این رویکرد، توسعهدهندگان میتوانند زیرساختهای خود را با استفاده از سیستم کنترل نسخه مشابهی که برای کد خود استفاده میکنند، کنترل کنند، و همکاری، آزمایش و استقرار تغییرات زیرساخت را سادهتر میکند.
با این وجود، همانطور که گرایش به سمت محاسبات بدون سرور ادامه دارد، بسیاری از توسعه دهندگان توجه خود را از مدیریت زیرساخت و به سمت کدنویسی معطوف می کنند. محاسبات بدون سرور توسعه دهندگان را قادر می سازد تا برنامه های کاربردی را بدون بار مدیریت زیرساخت ایجاد و اجرا کنند. این رویکرد دارای مزایای متعددی است، از جمله زمان سریعتر به بازار، هزینه عملیاتی کمتر و مقیاس بندی خودکار.
با این حال، یک گرفتاری وجود دارد. هنگامی که با یک پشته بدون سرور شروع می کنید، تغییر به یک ارائه دهنده یا مدل میزبانی متفاوت می تواند دشوار باشد. APIهایی که با زیرساخت بدون سرور تعامل دارند با کد شما تعبیه شده اند و مهاجرت به ارائه دهنده دیگری را به چالشی تبدیل می کند، حتی اگر وعده کاهش هزینه یا ویژگی های برتر را بدهد.
آینده تامین: زیرساخت از کد
اگر بتوانید روی کدنویسی تمرکز کنید و اجازه دهید زیرساخت از خودش مراقبت کند چه؟ اگر زیرساخت می توانست خود کد و ارائه شما را درک کند چه؟ این آینده تامین است و در حال حاضر در حال حرکت است.
اخیراً با Encore برخورد کردم. Encore با بیان زیرساخت ها با استفاده از حاشیه نویسی و چارچوب مورد استفاده در برنامه های کاربردی باطنی یا میکروسرویس های شما، توسعه بک اند را ساده می کند. شما می توانید از تعداد زیادی از Terraform، boilerplate و پیکربندی عبور کنید. تقریباً شبیه جادو است!
import (
"context"
)
// This is a REST API that responds with a personalized greeting.
//
//encore:api public path=/hello/:name
func World(ctx context.Context, name string) (*Response, error) {
msg := "Hello, " + name + "!"
return &Response{Message: msg}, nil
}
type Response struct {
Message string
}
این به عنوان مثال یک REST API است که به زبان گلانگ نوشته شده است که با یک سلام شخصی پاسخ می دهد. ما از * استفاده می کنیمencore:api
** دستورالعمل/ حاشیهنویسی برای گفتن به Encore که این تابع باید بهعنوان یک API نمایش داده شود، و ما مسیری را که باید برای دسترسی به آن استفاده شود، مشخص میکنیم.*
مزایای استفاده از Encore
رویکرد Encore بر اساس اصل درک پایگاه کد شما بنا شده است. این باعث میشود که توسعه میکروسرویسها با تمام مزایای ساخت برنامههای یکپارچه بسیار روان باشد. اجرای آن به صورت محلی و روی زیرساخت ابری شما ساده است و تیم حتی یک محیط توسعه رایگان را نیز فراهم می کند. این نشان می دهد که آنها چقدر به تأثیر محصولشان بر استارتاپ ها اهمیت می دهند و چگونه می تواند به رشد سریع آنها کمک کند.
هر چیزی که Encore را بسیار جالب می کند منبع باز است، بنابراین اگر تصمیم گرفتید با این ابزار ادامه ندهید، همچنان می توانید برنامه خود را اجرا کنید. و اگر می خواهید مهاجرت کنید، ساده است زیرا بیشتر کدهایی که می نویسید Golang است. این فوقالعاده است، زیرا وقتی به جلوگیری از قفل شدن فروشنده افتخار میکنید، مطمئن شوید که تبدیل به چیزی نمیشوید که از آن جلوگیری میکنید.
همه اینها امکان پذیر است زیرا Encore می تواند پایگاه کد شما را درک کند. از تجزیه و تحلیل استاتیک برای درک برنامه شما استفاده می کند و به شما امکان می دهد کد قابل حملی بنویسید که می تواند بر روی ارائه دهندگان مختلف زیرساخت اجرا شود. این بدان معناست که میتوانید برنامه بکاند خود را با Encore توسعه دهید و سپس آن را در ارائهدهنده ابری مورد نظر خود، خواه AWS، GCP یا Azure استقرار دهید. Encore تهیه و مدیریت منابع زیرساخت شما را انجام می دهد و به شما امکان می دهد روی ایجاد برنامه خود و ارائه ارزش به کاربران خود تمرکز کنید.
برای من، این رویکرد مناسب تر است. وقتی درک عمیقی از کد داشته باشید، هر چیزی ممکن می شود. با دسترسی به همه متغیرها از جمله نحوه استفاده کد از منابع، Encore می تواند تصمیمات آگاهانه تری در مورد زیرساخت بگیرد. این رویکرد به تجربه توسعهدهنده اولویت میدهد تا از آنها بخواهد نحوه تهیه را یاد بگیرند و زمان و تلاش لازم برای استقرار را کاهش دهد.
توانایی Encore برای درک کد شما و ارائهدهی به ارائهدهنده ابری دلخواه شما، مهاجرت به ارائهدهنده دیگر را در صورت لزوم آسانتر میکند. علاوه بر این، توانایی تنها تامین منابع لازم منجر به راه حل مقرون به صرفه تر، بهینه سازی استفاده از زیرساخت و کاهش هزینه های غیر ضروری می شود.
یکی از محدودیت های Encore این است که در حال حاضر فقط از گلانگ api/برنامه ها پشتیبانی می کند. با این حال، طی تماسی با بنیانگذار Andrè، او اشاره کرد که آنها به دنبال پشتیبانی از زبان های دیگر در آینده هستند.
Encore چندین مزیت تجاری را ارائه می دهد، از جمله زمان سریعتر به بازار، کاهش سربار عملیاتی و صرفه جویی در هزینه.
بعدی در افق
Infrastructure From Code گام بعدی در تکامل مدیریت زیرساخت است، زیرا توسعه دهندگان را قادر می سازد تا منابع زیرساختی را هنگام کدنویسی تهیه و مدیریت کنند. این رویکرد امکان همکاری کارآمدتر بین توسعه دهندگان و تیم های عملیاتی را فراهم می کند و روند توسعه را تسریع می بخشد.
Encore در این رویکرد پیشرو است و از تجزیه و تحلیل استاتیک برای درک پایگاه کد شما و تهیه خودکار منابع مورد نیاز استفاده می کند. این نه تنها به توسعهدهندگان اجازه میدهد تا روی نوشتن کد تمرکز کنند، بلکه همکاری بین تیمها را ارتقا میدهد و در نتیجه زمان تحویل سریعتر، کاهش هزینههای عملیاتی و صرفهجویی در هزینه را به همراه دارد.
با پیشرفت فناوری، بسیار مهم است که از منحنی ها جلوتر بمانیم و رویکردهای نوآورانه ای مانند Infrastructure From Code اتخاذ کنیم تا رقابتی بمانیم. Encore نمونه فوقالعادهای از این است، و من برای دیدن آینده این فناوری انقلابی هیجانزده هستم.
برای کسب اطلاعات بیشتر درباره Encore، اسناد آنها را کاوش کنید یا با جامعه در حال رشد آنها تعامل داشته باشید اینجا.