🔵 عنوان مقاله
How to Reproduce and Fix an I/O Data Race with Go and DTrace
🟢 خلاصه مقاله:
در این مقاله نویسنده با یک باگ مبهم روبهرو میشود که فقط در CI رخ میدهد: یک data race در سطح I/O فایلها که باعث شکست گهگاه تستها میشود. چون این رقابت در مرز فایلسیستم رخ میدهد و نه در حافظه مشترک، ابزار race detector در Go آن را تشخیص نمیدهد. برای بازتولید محلی، نویسنده شرایط شبیه CI را ایجاد میکند: اجرای تکراری تستها، افزایش همزمانی، و ایجاد تنوع زمانی تا ترتیبهای نادری که خطا را میسازند آشکار شوند. با استفاده از DTrace و رصد فراخوانیهای سیستمی مانند open، write، fsync و rename، الگوی واقعی آشکار میشود: خواندن فایل همزمان با نوشتن/حذف جزئی یا قبل از تحویل اتمی محتوا.
راهکار با اتمیسازی و هماهنگسازی است: نوشتن در فایل موقت و سپس os.Rename برای تحویل اتمی، افزودن fsync در نقاط لازم، و در صورت نیاز قفل/کانال برای سریالسازی دسترسی به مسیرهای مشترک. در تستها نیز از t.TempDir() برای جداسازی حالت، پرهیز از تکیه بر mtime، و اتکا به سیگنالهای قطعی بهجای تأخیرهای زمانی استفاده میشود. نتیجه، حذف flaky بودن در CI و همگرایی رفتار محلی و CI است؛ و درس اصلی اینکه برای رقابتهای I/O باید به ابزارهای ردیابی سطح سیستم تکیه کرد و پروتکل I/O را صریح و اتمی طراحی نمود.
#Go #DTrace #Concurrency #CI #Filesystem #Testing #Debugging #RaceCondition
🟣لینک مقاله:
https://golangweekly.com/link/175360/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How to Reproduce and Fix an I/O Data Race with Go and DTrace
🟢 خلاصه مقاله:
در این مقاله نویسنده با یک باگ مبهم روبهرو میشود که فقط در CI رخ میدهد: یک data race در سطح I/O فایلها که باعث شکست گهگاه تستها میشود. چون این رقابت در مرز فایلسیستم رخ میدهد و نه در حافظه مشترک، ابزار race detector در Go آن را تشخیص نمیدهد. برای بازتولید محلی، نویسنده شرایط شبیه CI را ایجاد میکند: اجرای تکراری تستها، افزایش همزمانی، و ایجاد تنوع زمانی تا ترتیبهای نادری که خطا را میسازند آشکار شوند. با استفاده از DTrace و رصد فراخوانیهای سیستمی مانند open، write، fsync و rename، الگوی واقعی آشکار میشود: خواندن فایل همزمان با نوشتن/حذف جزئی یا قبل از تحویل اتمی محتوا.
راهکار با اتمیسازی و هماهنگسازی است: نوشتن در فایل موقت و سپس os.Rename برای تحویل اتمی، افزودن fsync در نقاط لازم، و در صورت نیاز قفل/کانال برای سریالسازی دسترسی به مسیرهای مشترک. در تستها نیز از t.TempDir() برای جداسازی حالت، پرهیز از تکیه بر mtime، و اتکا به سیگنالهای قطعی بهجای تأخیرهای زمانی استفاده میشود. نتیجه، حذف flaky بودن در CI و همگرایی رفتار محلی و CI است؛ و درس اصلی اینکه برای رقابتهای I/O باید به ابزارهای ردیابی سطح سیستم تکیه کرد و پروتکل I/O را صریح و اتمی طراحی نمود.
#Go #DTrace #Concurrency #CI #Filesystem #Testing #Debugging #RaceCondition
🟣لینک مقاله:
https://golangweekly.com/link/175360/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
How Cloudflare Found a Bug in Go's arm64 Compiler
🟢 خلاصه مقاله:
Cloudflare در مقیاسی بسیار بزرگ از Go روی زیرساختهای متنوع، بهویژه arm64، استفاده میکند؛ جایی که خطاهای نادر هم بهدفعات رخ میدهند. آنها با مجموعهای از اختلالهای پراکنده که فقط در بیلدهای arm64 دیده میشد مواجه شدند و با مقایسه میان معماریها، کاناریکردن، و ساخت یک نمونه حداقلی، سرنخها را از منطق برنامه به سمت ابزار ساخت هدایت کردند. ریشه مشکل، یک خطای تولید کد در بخش arm64 کامپایلر Go بود که در شرایط خاص به بدترجمهسازی منجر میشد. تیم Cloudflare با همکاری تیم Go، مشکل را گزارش، بازتولید و برطرف کرد و پس از انتشار پچ، آن را بهصورت مرحلهای در کل ناوگان اعمال نمود. نتیجه این تجربه: آزمون میانمعماری، کاناریکردن ارتقاهای ابزار، و تقویت مشاهدهپذیری برای مقابله با خطاهای کمشیوع اما پرهزینه در مقیاس بالا حیاتی است.
#Cloudflare #Go #arm64 #Compiler #Bug #ProductionScale #Reliability #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/175353/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How Cloudflare Found a Bug in Go's arm64 Compiler
🟢 خلاصه مقاله:
Cloudflare در مقیاسی بسیار بزرگ از Go روی زیرساختهای متنوع، بهویژه arm64، استفاده میکند؛ جایی که خطاهای نادر هم بهدفعات رخ میدهند. آنها با مجموعهای از اختلالهای پراکنده که فقط در بیلدهای arm64 دیده میشد مواجه شدند و با مقایسه میان معماریها، کاناریکردن، و ساخت یک نمونه حداقلی، سرنخها را از منطق برنامه به سمت ابزار ساخت هدایت کردند. ریشه مشکل، یک خطای تولید کد در بخش arm64 کامپایلر Go بود که در شرایط خاص به بدترجمهسازی منجر میشد. تیم Cloudflare با همکاری تیم Go، مشکل را گزارش، بازتولید و برطرف کرد و پس از انتشار پچ، آن را بهصورت مرحلهای در کل ناوگان اعمال نمود. نتیجه این تجربه: آزمون میانمعماری، کاناریکردن ارتقاهای ابزار، و تقویت مشاهدهپذیری برای مقابله با خطاهای کمشیوع اما پرهزینه در مقیاس بالا حیاتی است.
#Cloudflare #Go #arm64 #Compiler #Bug #ProductionScale #Reliability #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/175353/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The Cloudflare Blog
How we found a bug in Go's arm64 compiler
84 million requests a second means even rare bugs appear often. We'll reveal how we discovered a race condition in the Go arm64 compiler and got it fixed.
❤1
Forwarded from Bardia & Erfan
پاول دوروف: آزادی اینترنت در حال نابودیه; ۴۱ سالگی رو جشن نمیگیرم
پاول دوروف در تولد ۴۱ سالگیاش نوشت:
«دیگه حس جشن ندارم؛ چون نسل ما داره اینترنت آزادی رو از دست میده که پدرانمون ساختن.
کشورهایی که روزی آزاد بودن، دارن به سمت کنترل کامل پیش میرن — از شناسه دیجیتال در بریتانیا تا اسکن پیامهای خصوصی در اتحادیه اروپا.
در آلمان منتقدان دولت تحت پیگردن، در بریتانیا مردم برای توییتهاشون زندانی میشن و در فرانسه از مدافعان آزادی بازجویی میشه.
ما فریب خوردیم تا باور کنیم باید سنت، حریم خصوصی و آزادی بیان رو قربانی کنیم.
من جشن نمیگیرم... چون زمان ما برای نجات آزادی تموم میشه.»
پاول دوروف در تولد ۴۱ سالگیاش نوشت:
«دیگه حس جشن ندارم؛ چون نسل ما داره اینترنت آزادی رو از دست میده که پدرانمون ساختن.
کشورهایی که روزی آزاد بودن، دارن به سمت کنترل کامل پیش میرن — از شناسه دیجیتال در بریتانیا تا اسکن پیامهای خصوصی در اتحادیه اروپا.
در آلمان منتقدان دولت تحت پیگردن، در بریتانیا مردم برای توییتهاشون زندانی میشن و در فرانسه از مدافعان آزادی بازجویی میشه.
ما فریب خوردیم تا باور کنیم باید سنت، حریم خصوصی و آزادی بیان رو قربانی کنیم.
من جشن نمیگیرم... چون زمان ما برای نجات آزادی تموم میشه.»
👍2
Forwarded from AI Labdon
اگه به پروژههای اوپنسورس و ساختار و معماریشون علاقهمندین سایت DeepWiki رو داشته باشین
این سایت با هوشمصنوعی جزییات پروژههای اوپنسورس رو در اختیارتون میذاره
هر پروژه که روی گیتهاب هست رو کافیه به جای دامنه github.com بیاین deepwiki.com قرار بدین
مثلا فریمورک لاراول:
https://deepwiki.com/laravel/laravel
<Λmir/>
این سایت با هوشمصنوعی جزییات پروژههای اوپنسورس رو در اختیارتون میذاره
هر پروژه که روی گیتهاب هست رو کافیه به جای دامنه github.com بیاین deepwiki.com قرار بدین
مثلا فریمورک لاراول:
https://deepwiki.com/laravel/laravel
<Λmir/>
DeepWiki
laravel/laravel | DeepWiki
This document provides an overview of the Laravel application skeleton repository at https://github.com/laravel/laravel. This is a Laravel 12.x skeleton application that serves as a starting point for
🔵 عنوان مقاله
be experimenting with
🟢 خلاصه مقاله:
از کتابخانههای زیادی که میخواهند به مخاطبان بیشتری برسند، در حال حاضر نسخههای JavaScript ارائه میشود تا هم در مرورگر و هم در محیطهای Node.js، Deno و Bun در دسترس باشند. مزیت اصلی، دسترسی گسترده، توزیع ساده از طریق npm و تجربه کاربری یکپارچه بین فرانتاند و بکاند است.
دو مسیر رایج وجود دارد: بازنویسی بومی با TypeScript برای ارائه APIهای استاندارد، تایپهای دقیق و قابلیت tree-shaking؛ یا پورت از زبانهای سطح پایین به WebAssembly برای حفظ کارایی و استفاده مجدد از کد موجود. ابزارهایی مانند Emscripten، wasm-bindgen و ابزارهای Go این کار را تسهیل میکنند و با ارائه TypeScript declarations سطح استفادهپسند ایجاد میشود.
چالشها شامل انتخاب بین ESM و CJS، بهینهسازی اندازه باندل و داراییهای WASM، محدودیتهای مرورگر (فایلسیستم و سوکت خام)، تفاوتهای اجرا در Node.js/Deno/Bun، و مدیریت کارایی و زمان راهاندازی است. استفاده از Web Workers، بارگذاری تدریجی، بنچمارکگیری در محیطهای مختلف و مستندسازی دقیق کمککننده است. در حوزه امنیت نیز باید مراقب زنجیره تأمین، نسخهبندی SemVer، تست و انتشار مرحلهای بود.
نمونههای موفق شامل OpenCV.js، نسخه WASM از SQLite، TensorFlow.js، ONNX Runtime Web و Pyodide است که نشان میدهند با طراحی API مناسب و ابزار درست، پورتهای جدی عملی است. قاعده تصمیمگیری: اگر کتابخانه سنگین و بهینه است، WASM انتخاب خوبی است؛ اگر هدف تجربه توسعهدهنده در اکوسیستم JavaScript است، بازنویسی با TypeScript بهتر است؛ و برای قابلیتهای سختافزاری/سیستمی، رویکرد هیبریدی یا سمت سرور منطقی است. با پیشرفت WebAssembly/WASI، WebGPU و پلتفرمهای edge مانند Cloudflare Workers و Vercel Edge، زمان مناسبی برای آزمایش و تکرار است.
#JavaScript #WebAssembly #TypeScript #NodeJS #Deno #npm #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/175359/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
be experimenting with
🟢 خلاصه مقاله:
از کتابخانههای زیادی که میخواهند به مخاطبان بیشتری برسند، در حال حاضر نسخههای JavaScript ارائه میشود تا هم در مرورگر و هم در محیطهای Node.js، Deno و Bun در دسترس باشند. مزیت اصلی، دسترسی گسترده، توزیع ساده از طریق npm و تجربه کاربری یکپارچه بین فرانتاند و بکاند است.
دو مسیر رایج وجود دارد: بازنویسی بومی با TypeScript برای ارائه APIهای استاندارد، تایپهای دقیق و قابلیت tree-shaking؛ یا پورت از زبانهای سطح پایین به WebAssembly برای حفظ کارایی و استفاده مجدد از کد موجود. ابزارهایی مانند Emscripten، wasm-bindgen و ابزارهای Go این کار را تسهیل میکنند و با ارائه TypeScript declarations سطح استفادهپسند ایجاد میشود.
چالشها شامل انتخاب بین ESM و CJS، بهینهسازی اندازه باندل و داراییهای WASM، محدودیتهای مرورگر (فایلسیستم و سوکت خام)، تفاوتهای اجرا در Node.js/Deno/Bun، و مدیریت کارایی و زمان راهاندازی است. استفاده از Web Workers، بارگذاری تدریجی، بنچمارکگیری در محیطهای مختلف و مستندسازی دقیق کمککننده است. در حوزه امنیت نیز باید مراقب زنجیره تأمین، نسخهبندی SemVer، تست و انتشار مرحلهای بود.
نمونههای موفق شامل OpenCV.js، نسخه WASM از SQLite، TensorFlow.js، ONNX Runtime Web و Pyodide است که نشان میدهند با طراحی API مناسب و ابزار درست، پورتهای جدی عملی است. قاعده تصمیمگیری: اگر کتابخانه سنگین و بهینه است، WASM انتخاب خوبی است؛ اگر هدف تجربه توسعهدهنده در اکوسیستم JavaScript است، بازنویسی با TypeScript بهتر است؛ و برای قابلیتهای سختافزاری/سیستمی، رویکرد هیبریدی یا سمت سرور منطقی است. با پیشرفت WebAssembly/WASI، WebGPU و پلتفرمهای edge مانند Cloudflare Workers و Vercel Edge، زمان مناسبی برای آزمایش و تکرار است.
#JavaScript #WebAssembly #TypeScript #NodeJS #Deno #npm #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/175359/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
PG Back Web 0.5: A Postgres Backup System with Web Interface
🟢 خلاصه مقاله:
** PG Back Web 0.5 یک ابزار مبتنی بر Go برای مدیریت پشتیبانگیریهای Postgres از طریق یک رابط وب ساده و کاربرپسند است. این برنامه امکان زمانبندی پشتیبانها، پایش وضعیت و مشاهده تاریخچه را فراهم میکند و با webhooks میتواند اعلانها را به سامانههای بیرونی ارسال کند. استقرار آن بهصورت Docker image بسیار ساده است و در نسخه 0.5 پشتیبانی از Postgres 18 نیز اضافه شده تا با آخرین نسخه Postgres سازگار باشد.
#Postgres #Backup #Go #Docker #Database #DevOps #Webhooks #Monitoring
🟣لینک مقاله:
https://golangweekly.com/link/175372/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
PG Back Web 0.5: A Postgres Backup System with Web Interface
🟢 خلاصه مقاله:
** PG Back Web 0.5 یک ابزار مبتنی بر Go برای مدیریت پشتیبانگیریهای Postgres از طریق یک رابط وب ساده و کاربرپسند است. این برنامه امکان زمانبندی پشتیبانها، پایش وضعیت و مشاهده تاریخچه را فراهم میکند و با webhooks میتواند اعلانها را به سامانههای بیرونی ارسال کند. استقرار آن بهصورت Docker image بسیار ساده است و در نسخه 0.5 پشتیبانی از Postgres 18 نیز اضافه شده تا با آخرین نسخه Postgres سازگار باشد.
#Postgres #Backup #Go #Docker #Database #DevOps #Webhooks #Monitoring
🟣لینک مقاله:
https://golangweekly.com/link/175372/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - eduardolat/pgbackweb: 🐘 Effortless PostgreSQL backups with a user-friendly web interface! 🌐💾
🐘 Effortless PostgreSQL backups with a user-friendly web interface! 🌐💾 - eduardolat/pgbackweb
❤1
🔵 عنوان مقاله
yzma: Perform Local Inference with VLMs and LLMs
🟢 خلاصه مقاله:
yzma راهی سبک برای اجرای محلی VLMs و LLMs درون برنامههای Go است. این ابزار با استفاده از purego و ffi مستقیماً به llama متصل میشود و سربار اضافی را کاهش میدهد، در نتیجه تأخیر پایینتر، کنترل بهتر و اجرای آفلاین فراهم میشود. تمرکز yzma بر ادغام ساده در سرویسها و ابزارهای Go است تا بتوان هم پردازش متن و هم سناریوهای تصویر-متن را بدون اتکا به سرویسهای ابری انجام داد.
#Go #LLM #VLM #LocalInference #FFI #purego #llama #OnDeviceAI
🟣لینک مقاله:
https://golangweekly.com/link/175368/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
yzma: Perform Local Inference with VLMs and LLMs
🟢 خلاصه مقاله:
yzma راهی سبک برای اجرای محلی VLMs و LLMs درون برنامههای Go است. این ابزار با استفاده از purego و ffi مستقیماً به llama متصل میشود و سربار اضافی را کاهش میدهد، در نتیجه تأخیر پایینتر، کنترل بهتر و اجرای آفلاین فراهم میشود. تمرکز yzma بر ادغام ساده در سرویسها و ابزارهای Go است تا بتوان هم پردازش متن و هم سناریوهای تصویر-متن را بدون اتکا به سرویسهای ابری انجام داد.
#Go #LLM #VLM #LocalInference #FFI #purego #llama #OnDeviceAI
🟣لینک مقاله:
https://golangweekly.com/link/175368/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - hybridgroup/yzma: yzma lets you use Go to perform local inference with Vision Language Models (VLMs) and Large Language…
yzma lets you use Go to perform local inference with Vision Language Models (VLMs) and Large Language Models (LLMs) using llama.cpp without CGo. - hybridgroup/yzma
Forwarded from Bardia & Erfan
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی یک خط کد به پروزه اضافه میکنی😂
🐳3💋2🔥1
🔵 عنوان مقاله
qjs: Run JavaScript in Go
🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپهای Go است که بدون نیاز به Cgo کار میکند. بهجای اتصال به یک کتابخانه بومی، نسخه فورکشدهای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا میکند. این رویکرد کل زنجیره را در محیط خالص Go نگه میدارد و فرایند بیلد، استاتیکسازی و کراسکامپایل را سادهتر میکند. مزیت دیگر، ایزولهسازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپتنویسی، افزونهها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابلبودن و امنیت ارائه میدهد.
#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding
🟣لینک مقاله:
https://golangweekly.com/link/175350/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
qjs: Run JavaScript in Go
🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپهای Go است که بدون نیاز به Cgo کار میکند. بهجای اتصال به یک کتابخانه بومی، نسخه فورکشدهای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا میکند. این رویکرد کل زنجیره را در محیط خالص Go نگه میدارد و فرایند بیلد، استاتیکسازی و کراسکامپایل را سادهتر میکند. مزیت دیگر، ایزولهسازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپتنویسی، افزونهها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابلبودن و امنیت ارائه میدهد.
#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding
🟣لینک مقاله:
https://golangweekly.com/link/175350/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - fastschema/qjs: QJS is a CGO-Free, modern, secure JavaScript runtime for Go applications, built on the powerful QuickJS…
QJS is a CGO-Free, modern, secure JavaScript runtime for Go applications, built on the powerful QuickJS engine and Wazero WebAssembly runtime - fastschema/qjs
🔵 عنوان مقاله
Terminating Elegantly: A Guide to Graceful Shutdowns
🟢 خلاصه مقاله:
ترک شایسته در سرویسها یعنی برنامه بتواند با دریافت SIGTERM، بدون از دست دادن داده یا خراب کردن وضعیت، درخواستهای جاری را تمام کند و منابع را درست آزاد کند. در این ارائه، Alex Pliutau با تمرکز بر Go در Kubernetes، چرخه کامل خاتمه را توضیح میدهد: از دریافت سیگنال و قطعکردن ترافیک تا ضربالاجل SIGKILL.
نکتههای کلیدی شامل اینهاست: استفاده از signal.NotifyContext و context برای لغو هماهنگ، مدیریت goroutineها با sync.WaitGroup، فراخوانی http.Server.Shutdown یا معادل gRPC برای تخلیه امن اتصالها، و توقف گرفتن کار جدید در Workerها درحالیکه کارهای درحال اجرا بهصورت زماندار تمام میشوند. در Kubernetes باید readiness زودتر غیرفعال شود تا Pod از مسیر ترافیک خارج شود، از preStop برای تأخیر یا Drain سفارشی کمک بگیرید، و terminationGracePeriodSeconds را درست تنظیم کنید. پایش و آزمون نیز ضروری است: لاگ شروع/پایان Shutdown، سنجههایی مثل تعداد درخواستهای درحال پردازش و زمان خاتمه، و تست SIGTERM تحت بار. رعایت این الگوهای ساده، خاتمهای قابل اعتماد و بدون اختلال در Go روی Kubernetes فراهم میکند.
#Go #Kubernetes #GracefulShutdown #CloudNative #Microservices #DevOps #Reliability #ProductionOps
🟣لینک مقاله:
https://golangweekly.com/link/175363/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Terminating Elegantly: A Guide to Graceful Shutdowns
🟢 خلاصه مقاله:
ترک شایسته در سرویسها یعنی برنامه بتواند با دریافت SIGTERM، بدون از دست دادن داده یا خراب کردن وضعیت، درخواستهای جاری را تمام کند و منابع را درست آزاد کند. در این ارائه، Alex Pliutau با تمرکز بر Go در Kubernetes، چرخه کامل خاتمه را توضیح میدهد: از دریافت سیگنال و قطعکردن ترافیک تا ضربالاجل SIGKILL.
نکتههای کلیدی شامل اینهاست: استفاده از signal.NotifyContext و context برای لغو هماهنگ، مدیریت goroutineها با sync.WaitGroup، فراخوانی http.Server.Shutdown یا معادل gRPC برای تخلیه امن اتصالها، و توقف گرفتن کار جدید در Workerها درحالیکه کارهای درحال اجرا بهصورت زماندار تمام میشوند. در Kubernetes باید readiness زودتر غیرفعال شود تا Pod از مسیر ترافیک خارج شود، از preStop برای تأخیر یا Drain سفارشی کمک بگیرید، و terminationGracePeriodSeconds را درست تنظیم کنید. پایش و آزمون نیز ضروری است: لاگ شروع/پایان Shutdown، سنجههایی مثل تعداد درخواستهای درحال پردازش و زمان خاتمه، و تست SIGTERM تحت بار. رعایت این الگوهای ساده، خاتمهای قابل اعتماد و بدون اختلال در Go روی Kubernetes فراهم میکند.
#Go #Kubernetes #GracefulShutdown #CloudNative #Microservices #DevOps #Reliability #ProductionOps
🟣لینک مقاله:
https://golangweekly.com/link/175363/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
Terminating elegantly: a guide to graceful shutdowns - Alex Pliutau
Did you ever unplug your computer because you were frustrated? In the world of software, a similar concept exists: the hard shutdown.
This abrupt termination can cause problems like data loss or system instability.
Thankfully, there's a better way: the…
This abrupt termination can cause problems like data loss or system instability.
Thankfully, there's a better way: the…
🔵 عنوان مقاله
Go v1.25.2 and v1.24.8 have been released
🟢 خلاصه مقاله:
بهروزرسانیهای Go در نسخههای v1.25.2 و v1.24.8 منتشر شدهاند که مجموعهای از اصلاحات امنیتی را در بستههای مختلف ارائه میکند. این نسخهها از نوع وصلهای و سازگار به عقب هستند و بدون تغییر در رفتار زبان، امنیت و پایداری ابزارها و کتابخانهها را بهبود میدهند. توصیه میشود هرچه سریعتر به آخرین وصله در شاخه فعلیتان ارتقا دهید (برای v1.25 به v1.25.2 و برای v1.24 به v1.24.8)، یادداشتهای انتشار و هر CVE مرتبط را بررسی کنید، باینریها را مجدداً بسازید و ابزارهایی مانند govulncheck را برای شناسایی وابستگیهای آسیبپذیر اجرا کنید.
#Go #Golang #Security #Update #PatchRelease #CVE #DevOps #SoftwareMaintenance
🟣لینک مقاله:
https://golangweekly.com/link/175354/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go v1.25.2 and v1.24.8 have been released
🟢 خلاصه مقاله:
بهروزرسانیهای Go در نسخههای v1.25.2 و v1.24.8 منتشر شدهاند که مجموعهای از اصلاحات امنیتی را در بستههای مختلف ارائه میکند. این نسخهها از نوع وصلهای و سازگار به عقب هستند و بدون تغییر در رفتار زبان، امنیت و پایداری ابزارها و کتابخانهها را بهبود میدهند. توصیه میشود هرچه سریعتر به آخرین وصله در شاخه فعلیتان ارتقا دهید (برای v1.25 به v1.25.2 و برای v1.24 به v1.24.8)، یادداشتهای انتشار و هر CVE مرتبط را بررسی کنید، باینریها را مجدداً بسازید و ابزارهایی مانند govulncheck را برای شناسایی وابستگیهای آسیبپذیر اجرا کنید.
#Go #Golang #Security #Update #PatchRelease #CVE #DevOps #SoftwareMaintenance
🟣لینک مقاله:
https://golangweekly.com/link/175354/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍1
Gopher Academy
📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
🧱 Heap Management در Go
در Go، مفهوم heap با چیزی که در سیستمعامل میشناسیم فرق داره.
Go روی memory-mapped segments، یه لایهی مخصوص خودش ساخته به نام mheap 🧠
🔹 mheap مرکز فرماندهی حافظهست:
اختصاص (allocate) اسپنهای جدید
پاکسازی (sweep) اسپنهای بدون استفاده
مدیریت حافظهی مربوط به goroutine stackها
به بیان ساده، mheap مثل یک مدیر حافظهی مرکزی عمل میکنه که کل heap و stackهای goroutineها رو زیر نظر داره.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
در Go، مفهوم heap با چیزی که در سیستمعامل میشناسیم فرق داره.
Go روی memory-mapped segments، یه لایهی مخصوص خودش ساخته به نام mheap 🧠
🔹 mheap مرکز فرماندهی حافظهست:
اختصاص (allocate) اسپنهای جدید
پاکسازی (sweep) اسپنهای بدون استفاده
مدیریت حافظهی مربوط به goroutine stackها
به بیان ساده، mheap مثل یک مدیر حافظهی مرکزی عمل میکنه که کل heap و stackهای goroutineها رو زیر نظر داره.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍1
Gopher Academy
📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
⚙️ Span Allocation: mheap.alloc
در فضای عظیم آدرس مجازی، پیدا کردن چند صفحهی آزاد پشت سر هم (contiguous pages) کار سادهای نیست — مخصوصاً وقتی چندین goroutine همزمان در حال تخصیص حافظهان 😵💫
در نسخههای اولیهی Go، تمام عملیاتهای mheap بهصورت global sync انجام میشدن، یعنی فقط یک goroutine در آنِ واحد میتونست حافظه بگیره یا آزاد کنه.
نتیجه؟ 🔻 سرعت کم و افزایش latency در بارهای زیاد.
🧠 اما Go جدید با طراحی جدیدی به نام Scalable Page Allocator این مشکل رو حل کرده:
تقسیمبندی allocator برای کاهش قفلگذاری (lock contention)
تخصیص همزمان و مستقل در چندین CPU
بهبود چشمگیر throughput در workloadهای سنگین
در واقع، mheap.alloc امروزی طوری طراحی شده که بتونه در محیطهای بسیار concurrent هم حافظه رو سریع و هوشمند مدیریت کنه 🚀
➖➖➖➖➖➖➖➖
👑 @gopher_academy
در فضای عظیم آدرس مجازی، پیدا کردن چند صفحهی آزاد پشت سر هم (contiguous pages) کار سادهای نیست — مخصوصاً وقتی چندین goroutine همزمان در حال تخصیص حافظهان 😵💫
در نسخههای اولیهی Go، تمام عملیاتهای mheap بهصورت global sync انجام میشدن، یعنی فقط یک goroutine در آنِ واحد میتونست حافظه بگیره یا آزاد کنه.
نتیجه؟ 🔻 سرعت کم و افزایش latency در بارهای زیاد.
🧠 اما Go جدید با طراحی جدیدی به نام Scalable Page Allocator این مشکل رو حل کرده:
تقسیمبندی allocator برای کاهش قفلگذاری (lock contention)
تخصیص همزمان و مستقل در چندین CPU
بهبود چشمگیر throughput در workloadهای سنگین
در واقع، mheap.alloc امروزی طوری طراحی شده که بتونه در محیطهای بسیار concurrent هم حافظه رو سریع و هوشمند مدیریت کنه 🚀
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Gopher Academy
📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
📦 Tracking Free Pages
در Go، فضای آدرس مجازی بسیار بزرگه، بنابراین برای مشخص کردن وضعیت هر صفحه (آزاد یا در حال استفاده) از bitmap استفاده میشه
در این bitmap:
1 = صفحه در حال استفاده (توسط span)
0 = صفحه آزاد
🔹 هر bitmap شامل ۸ عدد uint64 هست (یعنی ۶۴ بایت) و وضعیت ۵۱۲ صفحهی متوالی رو نگه میداره.
🔹 از اونجا که هر arena در Go اندازهی ۶۴ مگابایت داره و هر صفحه ۸ کیلوبایت هست، پس در هر arena:
۸۱۹۲ صفحه داریم
۱۶ تا bitmap برای پوشش کل صفحات
در مجموع فقط ۱ کیلوبایت حافظه برای ذخیرهی وضعیت کل صفحات لازمه! ⚡️
اما مشکل: پیمایش bitmap برای پیدا کردن صفحات آزاد هنوز کند بود ⏳
برای حل این، Go مفهومی به نام Summary معرفی کرد که سه ویژگی داره:
start → تعداد صفرهای پشت سر هم از ابتدای bitmap
end → تعداد صفرهای پشت سر هم از انتهای bitmap
max → طولانیترین دنبالهی صفرها در کل bitmap
هر بار که صفحهای allocate یا free میشه، این summary بلافاصله بهروزرسانی میشه تا Go بتونه خیلی سریعتر صفحات آزاد رو پیدا کنه 🚀
➖➖➖➖➖➖➖➖
👑 @gopher_academy
در Go، فضای آدرس مجازی بسیار بزرگه، بنابراین برای مشخص کردن وضعیت هر صفحه (آزاد یا در حال استفاده) از bitmap استفاده میشه
در این bitmap:
1 = صفحه در حال استفاده (توسط span)
0 = صفحه آزاد
🔹 هر bitmap شامل ۸ عدد uint64 هست (یعنی ۶۴ بایت) و وضعیت ۵۱۲ صفحهی متوالی رو نگه میداره.
🔹 از اونجا که هر arena در Go اندازهی ۶۴ مگابایت داره و هر صفحه ۸ کیلوبایت هست، پس در هر arena:
۸۱۹۲ صفحه داریم
۱۶ تا bitmap برای پوشش کل صفحات
در مجموع فقط ۱ کیلوبایت حافظه برای ذخیرهی وضعیت کل صفحات لازمه! ⚡️
اما مشکل: پیمایش bitmap برای پیدا کردن صفحات آزاد هنوز کند بود ⏳
برای حل این، Go مفهومی به نام Summary معرفی کرد که سه ویژگی داره:
start → تعداد صفرهای پشت سر هم از ابتدای bitmap
end → تعداد صفرهای پشت سر هم از انتهای bitmap
max → طولانیترین دنبالهی صفرها در کل bitmap
هر بار که صفحهای allocate یا free میشه، این summary بلافاصله بهروزرسانی میشه تا Go بتونه خیلی سریعتر صفحات آزاد رو پیدا کنه 🚀
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Gopher Academy
📌 Memory Allocation in Go ❌این پست اپدیت میشود ❌ 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
🧩 Bitmap Summary در مدیریت صفحات Go
در این شکل، هر بیت از bitmap نشاندهندهی وضعیت یک صفحهی حافظه است:
0 → صفحه آزاد (free)
1 → صفحه در حال استفاده (allocated)
برای بهینهسازی جستجوی صفحات آزاد، Go برای هر bitmap سه مقدار خلاصهشده (summary) نگه میداره:
start = 3 → یعنی در ابتدای bitmap، ۳ صفحهی متوالی آزاد داریم
end = 7 → یعنی در انتهای bitmap، ۷ صفحهی متوالی آزاد داریم
max = 10 → طولانیترین دنبالهی صفحات آزاد در کل bitmap برابر با ۱۰ صفحه است
🔹 فلش در تصویر جهت افزایش آدرس حافظه (از پایین به بالا) رو نشون میده.
در نتیجه، ۳ صفحهی آزاد در بخش پایینتر حافظه (low address) و ۷ صفحهی آزاد در بالاترین بخش (high address) قرار دارن.
این ساختار باعث میشه Go خیلی سریعتر بتونه محدودههای بزرگ از صفحات آزاد رو پیدا کنه بدون اینکه کل bitmap رو اسکن کنه — فقط با نگاه کردن به summaryها! ⚡️
➖➖➖➖➖➖➖➖
👑 @gopher_academy
در این شکل، هر بیت از bitmap نشاندهندهی وضعیت یک صفحهی حافظه است:
0 → صفحه آزاد (free)
1 → صفحه در حال استفاده (allocated)
برای بهینهسازی جستجوی صفحات آزاد، Go برای هر bitmap سه مقدار خلاصهشده (summary) نگه میداره:
start = 3 → یعنی در ابتدای bitmap، ۳ صفحهی متوالی آزاد داریم
end = 7 → یعنی در انتهای bitmap، ۷ صفحهی متوالی آزاد داریم
max = 10 → طولانیترین دنبالهی صفحات آزاد در کل bitmap برابر با ۱۰ صفحه است
🔹 فلش در تصویر جهت افزایش آدرس حافظه (از پایین به بالا) رو نشون میده.
در نتیجه، ۳ صفحهی آزاد در بخش پایینتر حافظه (low address) و ۷ صفحهی آزاد در بالاترین بخش (high address) قرار دارن.
این ساختار باعث میشه Go خیلی سریعتر بتونه محدودههای بزرگ از صفحات آزاد رو پیدا کنه بدون اینکه کل bitmap رو اسکن کنه — فقط با نگاه کردن به summaryها! ⚡️
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
Reverse Engineering Doesn't Have to Be Hard
🟢 خلاصه مقاله:
این مطلب نشان میدهد مهندسی معکوس الزماً سخت نیست و با یک نمونه بدافزار نوشتهشده با Go بهصورت گامبهگام پیش میرود. بدون نیاز به دانستن Go یا کدنویسی، بر روششناسی تمرکز دارد: راهاندازی محیط امن، تریاژ اولیه (هشها، فراداده و بررسی سریع رشتهها)، تشخیص بستهبندی/ابهامسازی، تحلیل ایستا (بررسی imports، نقطههای ورود، نامگذاری تابعها، و ترسیم جریان کنترل) و در کنار آن تحلیل پویا در محیط جداافتاده برای مشاهده رفتار پردازشی، تغییرات سیستم و ترافیک شبکه. نتیجه، یک جعبهابزار فشرده از تکنیکهای پایه است که به مبتدیان اعتمادبهنفس میدهد تا منطق بدافزار را روشن کنند و نشانگرهای آلودگی (IOC) را استخراج کنند—بدون تکیه بر ترفندهای وابسته به زبان.
#ReverseEngineering #MalwareAnalysis #Golang #Infosec #StaticAnalysis #DynamicAnalysis #CyberSecurity
🟣لینک مقاله:
https://golangweekly.com/link/175361/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Reverse Engineering Doesn't Have to Be Hard
🟢 خلاصه مقاله:
این مطلب نشان میدهد مهندسی معکوس الزماً سخت نیست و با یک نمونه بدافزار نوشتهشده با Go بهصورت گامبهگام پیش میرود. بدون نیاز به دانستن Go یا کدنویسی، بر روششناسی تمرکز دارد: راهاندازی محیط امن، تریاژ اولیه (هشها، فراداده و بررسی سریع رشتهها)، تشخیص بستهبندی/ابهامسازی، تحلیل ایستا (بررسی imports، نقطههای ورود، نامگذاری تابعها، و ترسیم جریان کنترل) و در کنار آن تحلیل پویا در محیط جداافتاده برای مشاهده رفتار پردازشی، تغییرات سیستم و ترافیک شبکه. نتیجه، یک جعبهابزار فشرده از تکنیکهای پایه است که به مبتدیان اعتمادبهنفس میدهد تا منطق بدافزار را روشن کنند و نشانگرهای آلودگی (IOC) را استخراج کنند—بدون تکیه بر ترفندهای وابسته به زبان.
#ReverseEngineering #MalwareAnalysis #Golang #Infosec #StaticAnalysis #DynamicAnalysis #CyberSecurity
🟣لینک مقاله:
https://golangweekly.com/link/175361/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
reverse engineering doesn't have to be hard
https://jh.live/hex-rays || Disassemble, decompile and debug with IDA Pro! Use promo code HAMMOND50 for 50% off any IDA Pro product (license discount is only applicable to individuals for any product, not corporations https://hex-rays.com/pricing) and code…
🔵 عنوان مقاله
GopherCon Korea 2025
🟢 خلاصه مقاله:
**GopherCon Korea 2025 حدود یک ماه دیگر، در تاریخ ۹ نوامبر برگزار میشود. این رویداد جامعهمحور برای توسعهدهندگان Go (Golang) فرصتی مناسب است تا بهروزترین روندها را دنبال کنند، تجربههای عملی را به اشتراک بگذارند و شبکهسازی مؤثری داشته باشند. معمولاً نشستها به موضوعاتی مانند مفاهیم زبان و کارایی، الگوهای همزمانی، توسعه cloud-native و microservices، ابزارها و observability و مطالعات موردی در مقیاس تولید میپردازد. اگر قصد حضور دارید، اکنون زمان خوبی برای ثبتنام و برنامهریزی سفر است و پیگیری کانالهای رسمی برای جزئیات برنامه و مکان توصیه میشود.
#GopherConKorea #GopherCon #Golang #Go #TechConference #Developers #Korea #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175357/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GopherCon Korea 2025
🟢 خلاصه مقاله:
**GopherCon Korea 2025 حدود یک ماه دیگر، در تاریخ ۹ نوامبر برگزار میشود. این رویداد جامعهمحور برای توسعهدهندگان Go (Golang) فرصتی مناسب است تا بهروزترین روندها را دنبال کنند، تجربههای عملی را به اشتراک بگذارند و شبکهسازی مؤثری داشته باشند. معمولاً نشستها به موضوعاتی مانند مفاهیم زبان و کارایی، الگوهای همزمانی، توسعه cloud-native و microservices، ابزارها و observability و مطالعات موردی در مقیاس تولید میپردازد. اگر قصد حضور دارید، اکنون زمان خوبی برای ثبتنام و برنامهریزی سفر است و پیگیری کانالهای رسمی برای جزئیات برنامه و مکان توصیه میشود.
#GopherConKorea #GopherCon #Golang #Go #TechConference #Developers #Korea #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175357/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GopherCon Korea 2025
The largest annual conference for Go language users in South Korea.
❤1
🔵 عنوان مقاله
Constraining LLMs with Structured Output in Python and Go
🟢 خلاصه مقاله:
**این مجموعه به روشهای عملی برای واداشتن LLMها به تولید خروجی ساختیافته میپردازد تا ادغام در سیستمهای تولیدی قابل اعتماد، قابل اعتبارسنجی و قابل آزمون باشد. در Python با تعریف شِماهای سازگار با JSON و اتصال خروجی مدل به انواع مشخص، و در Go با استفاده از structهای نوعدار، struct tagها، و خطاهای صریح، خطر خروجی متنی آزاد و شکننده کاهش مییابد.
همچنین یک ویدئو از Rost Glukhov ساخت یک عامل کدنویس در Go را از ابتدا نشان میدهد؛ از طراحی پرامپت و برنامهریزی تا اجرای ابزار و حلقه بازخورد. در بخش کارهای زمانبندی انبوه، مقاله Bill Kennedy توضیح میدهد چگونه Timing Wheels بدون پیمایش O(n) میتوانند میلیونها کلید را منقضی کنند—الگویی مفید برای زمانبندیکنندهها، کشها و محدودکنندههای نرخ در Go. برای درک عمیقتر همروندی، نوشتار Ankur Anand رفتار و انتخابهای درست پیرامون primitives بسته sync مانند Mutex، RWMutex، WaitGroup و Cond را تشریح میکند. در پایان، مطلبی از Matheus Mina این مجموعه را کامل میکند. حاصل کار، جعبهابزاری عملی برای ساخت عاملها و سرویسهای پربازده در Python و Go است.
#Go #Python #LLM #StructuredOutput #TimingWheels #Concurrency #Golang #Agents
🟣لینک مقاله:
https://golangweekly.com/link/175364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Constraining LLMs with Structured Output in Python and Go
🟢 خلاصه مقاله:
**این مجموعه به روشهای عملی برای واداشتن LLMها به تولید خروجی ساختیافته میپردازد تا ادغام در سیستمهای تولیدی قابل اعتماد، قابل اعتبارسنجی و قابل آزمون باشد. در Python با تعریف شِماهای سازگار با JSON و اتصال خروجی مدل به انواع مشخص، و در Go با استفاده از structهای نوعدار، struct tagها، و خطاهای صریح، خطر خروجی متنی آزاد و شکننده کاهش مییابد.
همچنین یک ویدئو از Rost Glukhov ساخت یک عامل کدنویس در Go را از ابتدا نشان میدهد؛ از طراحی پرامپت و برنامهریزی تا اجرای ابزار و حلقه بازخورد. در بخش کارهای زمانبندی انبوه، مقاله Bill Kennedy توضیح میدهد چگونه Timing Wheels بدون پیمایش O(n) میتوانند میلیونها کلید را منقضی کنند—الگویی مفید برای زمانبندیکنندهها، کشها و محدودکنندههای نرخ در Go. برای درک عمیقتر همروندی، نوشتار Ankur Anand رفتار و انتخابهای درست پیرامون primitives بسته sync مانند Mutex، RWMutex، WaitGroup و Cond را تشریح میکند. در پایان، مطلبی از Matheus Mina این مجموعه را کامل میکند. حاصل کار، جعبهابزاری عملی برای ساخت عاملها و سرویسهای پربازده در Python و Go است.
#Go #Python #LLM #StructuredOutput #TimingWheels #Concurrency #Golang #Agents
🟣لینک مقاله:
https://golangweekly.com/link/175364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Rost Glukhov | Personal site and technical blog
Constraining LLMs with Structured Output: Ollama, Qwen3 & Python or Go
Constraining LLMs with Structured Output — Using Ollama and Qwen3 with examples in Python and Go
❤2
Forwarded from AI Labdon
♨️ اپل زیر تیغ شکایت تازه به خاطر دزدی ادبی از دانشمندا! 😳
▪️دو استاد عصبپژوه از دانشگاه SUNY Downstate نیویورک از اپل شکایت کردن، چون میگن این شرکت کتابها و آثار علمی اونا رو بدون اجازه برای آموزش هوش مصنوعی خودش یعنی Apple Intelligence استفاده کرده!
📘 آثار مورد بحث هم دوتا کتاب معروف هستن:
▫️Champions of Illusion
▫️Sleights of Mind
▪️به گفته شاکیا، اپل این کتابها رو از سایتهای موسوم به «کتابخونههای سایهای» (Shadow Libraries) با نرمافزارهای خزنده (Web Crawlers) جمع کرده و دادهی آموزشی مدلهاش کرده
▪️دو استاد عصبپژوه از دانشگاه SUNY Downstate نیویورک از اپل شکایت کردن، چون میگن این شرکت کتابها و آثار علمی اونا رو بدون اجازه برای آموزش هوش مصنوعی خودش یعنی Apple Intelligence استفاده کرده!
📘 آثار مورد بحث هم دوتا کتاب معروف هستن:
▫️Champions of Illusion
▫️Sleights of Mind
▪️به گفته شاکیا، اپل این کتابها رو از سایتهای موسوم به «کتابخونههای سایهای» (Shadow Libraries) با نرمافزارهای خزنده (Web Crawlers) جمع کرده و دادهی آموزشی مدلهاش کرده
👍1
Forwarded from DevOps Labdon
One of the best practical YouTube Channels to learn DevOps Tools and Skills.
یکی از بهترین کانالهایی که بصورت عملی ابزارهای DevOps رو بصورت ملموس و خیلی کوتاه و مختصر و مفید توضیح و آموزش میده
#DevOps #Terraform #Helm #Kubernetes #AWS #GCP #Azure
https://www.youtube.com/@AntonPutra
یکی از بهترین کانالهایی که بصورت عملی ابزارهای DevOps رو بصورت ملموس و خیلی کوتاه و مختصر و مفید توضیح و آموزش میده
#DevOps #Terraform #Helm #Kubernetes #AWS #GCP #Azure
https://www.youtube.com/@AntonPutra
YouTube
Anton Putra
AWS - GCP - Azure - Kubernetes - Terraform