🔵 عنوان مقاله
xdatabase-proxy – Kubernetes-Aware DB Proxy Service
🟢 خلاصه مقاله:
**xdatabase-proxy یک DB proxy آگاه به Kubernetes و نوشتهشده با Go است که برای کارایی بالا در خوشههای Kubernetes طراحی شده. این ابزار با انجام TLS termination امنیت ارتباطات را متمرکز میکند، و با اتکا به Kubernetes labels مسیریابی پویا را ممکن میسازد تا ترافیک بر اساس محیط، تَنَنت یا استراتژیهای استقرار مثل blue/green و canary بهصورت لحظهای هدایت شود. همچنین با مدیریت اتصال سبک، سربار منابع و تأخیر را کاهش میدهد و برای بارهای کاری مایکروسرویس مناسب است. مخزن پروژه در github.com/hasirciogli در دسترس است.
#Kubernetes #DatabaseProxy #Go #TLS #CloudNative #Microservices #DevOps #K8s
🟣لینک مقاله:
https://ku.bz/gsskv052H
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
xdatabase-proxy – Kubernetes-Aware DB Proxy Service
🟢 خلاصه مقاله:
**xdatabase-proxy یک DB proxy آگاه به Kubernetes و نوشتهشده با Go است که برای کارایی بالا در خوشههای Kubernetes طراحی شده. این ابزار با انجام TLS termination امنیت ارتباطات را متمرکز میکند، و با اتکا به Kubernetes labels مسیریابی پویا را ممکن میسازد تا ترافیک بر اساس محیط، تَنَنت یا استراتژیهای استقرار مثل blue/green و canary بهصورت لحظهای هدایت شود. همچنین با مدیریت اتصال سبک، سربار منابع و تأخیر را کاهش میدهد و برای بارهای کاری مایکروسرویس مناسب است. مخزن پروژه در github.com/hasirciogli در دسترس است.
#Kubernetes #DatabaseProxy #Go #TLS #CloudNative #Microservices #DevOps #K8s
🟣لینک مقاله:
https://ku.bz/gsskv052H
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
🔵 عنوان مقاله
Helmper – Helm Charts and Image Registry Manager
🟢 خلاصه مقاله:
Helmper یک ابزار سبک در Go است که Helm Charts را از رجیستریهای OCI میخواند، تصاویر کانتینری ارجاعشده در آنها را به رجیستریهای شما mirror میکند و در صورت نیاز OS-level vulnerability patching را روی آن تصاویر اعمال میکند. این کار کنترل منبع pull را به شما میدهد، قابلیت اتکا را بالا میبرد و با الزامات امنیتی و انطباق سازمانی همراستا است. Helmper بهخوبی در CI/CD، اجرای زمانبندیشده برای تازهسازی mirrorها و سناریوهای مهاجرت به رجیستری خصوصی جا میگیرد. استفادههای متداول شامل محیطهای air-gapped، دورزدن نرخمحدودیت رجیستریهای عمومی و اعمال حاکمیت متمرکز بر تصاویر است. توجه کنید که patch کردن سطح OS جایگزین بهروزرسانیهای لایهٔ اپلیکیشن نیست و نیاز به تست سازگاری دارد.
#Helm #Kubernetes #OCI #DevOps #ContainerSecurity #Go #Registry #SupplyChainSecurity
🟣لینک مقاله:
https://ku.bz/Cp52CfjHg
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Helmper – Helm Charts and Image Registry Manager
🟢 خلاصه مقاله:
Helmper یک ابزار سبک در Go است که Helm Charts را از رجیستریهای OCI میخواند، تصاویر کانتینری ارجاعشده در آنها را به رجیستریهای شما mirror میکند و در صورت نیاز OS-level vulnerability patching را روی آن تصاویر اعمال میکند. این کار کنترل منبع pull را به شما میدهد، قابلیت اتکا را بالا میبرد و با الزامات امنیتی و انطباق سازمانی همراستا است. Helmper بهخوبی در CI/CD، اجرای زمانبندیشده برای تازهسازی mirrorها و سناریوهای مهاجرت به رجیستری خصوصی جا میگیرد. استفادههای متداول شامل محیطهای air-gapped، دورزدن نرخمحدودیت رجیستریهای عمومی و اعمال حاکمیت متمرکز بر تصاویر است. توجه کنید که patch کردن سطح OS جایگزین بهروزرسانیهای لایهٔ اپلیکیشن نیست و نیاز به تست سازگاری دارد.
#Helm #Kubernetes #OCI #DevOps #ContainerSecurity #Go #Registry #SupplyChainSecurity
🟣لینک مقاله:
https://ku.bz/Cp52CfjHg
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
GitHub
GitHub - ChristofferNissen/helmper: Import Helm Charts to OCI registries, optionally with vulnerability patching
Import Helm Charts to OCI registries, optionally with vulnerability patching - ChristofferNissen/helmper
🔵 عنوان مقاله
A practical guide to error handling in Go (10 minute read)
🟢 خلاصه مقاله:
** این مقاله یک راهنمای عملی ۱۰ دقیقهای برای مدیریت خطا در Go است که نشان میدهد این زبان از طراحی مینیمال مبتنی بر بازگرداندن و بررسی error شروع کرده و به مرور با الگوهایی مثل افزودن کانتکست و استفاده از errors.Is و errors.As غنیتر شده است. چالش مهم، نبود ردیابی داخلی برای دیدن مسیر انتشار خطا است؛ ابزارهای Datadog یعنی Error Tracking و Orchestrion این شکاف را با ارائه دید شفاف از محل بروز خطا و نحوه انتشار آن در کد پوشش میدهند و عیبیابی را سریعتر و دقیقتر میکنند. جمعبندی: بهکارگیری الگوهای idiomatic در Go در کنار این ابزارها، خطاها را از پیامهای کوتاه به روایتی قابل پیگیری از رخداد تا رفع تبدیل میکند.
#Go #Golang #ErrorHandling #Datadog #ErrorTracking #Orchestrion #Tracing #Observability
🟣لینک مقاله:
https://www.datadoghq.com/blog/go-error-handling/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
A practical guide to error handling in Go (10 minute read)
🟢 خلاصه مقاله:
** این مقاله یک راهنمای عملی ۱۰ دقیقهای برای مدیریت خطا در Go است که نشان میدهد این زبان از طراحی مینیمال مبتنی بر بازگرداندن و بررسی error شروع کرده و به مرور با الگوهایی مثل افزودن کانتکست و استفاده از errors.Is و errors.As غنیتر شده است. چالش مهم، نبود ردیابی داخلی برای دیدن مسیر انتشار خطا است؛ ابزارهای Datadog یعنی Error Tracking و Orchestrion این شکاف را با ارائه دید شفاف از محل بروز خطا و نحوه انتشار آن در کد پوشش میدهند و عیبیابی را سریعتر و دقیقتر میکنند. جمعبندی: بهکارگیری الگوهای idiomatic در Go در کنار این ابزارها، خطاها را از پیامهای کوتاه به روایتی قابل پیگیری از رخداد تا رفع تبدیل میکند.
#Go #Golang #ErrorHandling #Datadog #ErrorTracking #Orchestrion #Tracing #Observability
🟣لینک مقاله:
https://www.datadoghq.com/blog/go-error-handling/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Datadog
A practical guide to error handling in Go | Datadog
Learn about error handling patterns in Go and how they can be further enhanced by using Orchestrion with Datadog Error Tracking.
🔵 عنوان مقاله
How we found a bug in Go's arm64 compiler (11 minute read)
🟢 خلاصه مقاله:
Cloudflare یک باگ از نوع race condition را در کامپایلر Go برای معماری arm64 پیدا کرد که باعث panicهای پراکنده روی ماشینهای arm64 به دلیل خرابشدن پشته میشد. این باگ وقتی فعال میشد که asynchronous preemption دقیقا بین دستورهای تنظیم پیاپی اشارهگر پشته در جریان garbage collection رخ میداد و در نتیجه پشته موقتا در وضعیت نامعتبر دیده میشد.
راهکار این است که بهجای تغییر پلهای اشارهگر پشته، ابتدا offset در یک رجیستر موقت ساخته میشود و سپس همان مقدار در قالب یک opcode غیرقابلتفکیک به RSP اضافه میگردد تا اشارهگر پشته همواره معتبر باشد. این اصلاح در نسخههای go1.23.12، go1.24.6 و go1.25.0 منتشر شده و کاربران Go روی arm64 باید برای جلوگیری از این کرشهای نادر اما جدی، ارتقا دهند.
#Go #arm64 #Compiler #RaceCondition #Cloudflare #GarbageCollection #Concurrency #BugFix
🟣لینک مقاله:
https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
How we found a bug in Go's arm64 compiler (11 minute read)
🟢 خلاصه مقاله:
Cloudflare یک باگ از نوع race condition را در کامپایلر Go برای معماری arm64 پیدا کرد که باعث panicهای پراکنده روی ماشینهای arm64 به دلیل خرابشدن پشته میشد. این باگ وقتی فعال میشد که asynchronous preemption دقیقا بین دستورهای تنظیم پیاپی اشارهگر پشته در جریان garbage collection رخ میداد و در نتیجه پشته موقتا در وضعیت نامعتبر دیده میشد.
راهکار این است که بهجای تغییر پلهای اشارهگر پشته، ابتدا offset در یک رجیستر موقت ساخته میشود و سپس همان مقدار در قالب یک opcode غیرقابلتفکیک به RSP اضافه میگردد تا اشارهگر پشته همواره معتبر باشد. این اصلاح در نسخههای go1.23.12، go1.24.6 و go1.25.0 منتشر شده و کاربران Go روی arm64 باید برای جلوگیری از این کرشهای نادر اما جدی، ارتقا دهند.
#Go #arm64 #Compiler #RaceCondition #Cloudflare #GarbageCollection #Concurrency #BugFix
🟣لینک مقاله:
https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
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
🔵 عنوان مقاله
How Swiss Tables Work in Go's Built-in Map (28 minute read)
🟢 خلاصه مقاله:
در زبان برنامهنویسی Go، نسخه جدید ساختار نگهداری دادههای نقشه (مپ) از طراحی مبتنی بر جدول سوئیس بهره میبرد. این طراحی، ورودیها را در بلوکهای کوچک به همراه بایتهای کنترل فشرده قرار میدهد، که این امر اجازه میدهد بسیاری از جایگاههای احتمالی برای ورود دادهها قبل از مقایسه کامل کلیدها بررسی شوند. این روش به ویژه در پردازشگرهای مدرن با قابلیتهای SIMD مؤثر است، زیرا میتوان چندین بایت کنترل را همزمان مقایسه کرد که سرعت جستجو را بسیار بالا میبرد. علاوه بر این، چیدمان این ساختار و استراتژی توسعه آن به گونهای طراحی شده است که در بهبود محلیسازی حافظه و کارایی جستجو نقش بسزایی دارد، و در نتیجه عملیات کار با مپ در برنامههای نویسنده به شکل قابل توجهی سریعتر انجام میگیرد.
مطمئناً، این فناوری نوآورانه در ساختار داخلی مپ در زبان Go، باعث بهبود چشمگیر در عملکرد برنامهها میشود و توسعهدهندگان را قادر میسازد تا برنامههایی با کارایی بالا و سرعت مناسب را پیادهسازی کنند. این پیشرفتها نشان میدهد که تیم توسعه Go همواره در جستجوی راهحلهای نوآورانه برای بهبود اثربخشی زبان و ابزارهای مربوطه است.
#برنامهنویسی #Go #ساختار داده #پرفورمنس
🟣لینک مقاله:
https://victoriametrics.com/blog/go-swiss-table-map/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
How Swiss Tables Work in Go's Built-in Map (28 minute read)
🟢 خلاصه مقاله:
در زبان برنامهنویسی Go، نسخه جدید ساختار نگهداری دادههای نقشه (مپ) از طراحی مبتنی بر جدول سوئیس بهره میبرد. این طراحی، ورودیها را در بلوکهای کوچک به همراه بایتهای کنترل فشرده قرار میدهد، که این امر اجازه میدهد بسیاری از جایگاههای احتمالی برای ورود دادهها قبل از مقایسه کامل کلیدها بررسی شوند. این روش به ویژه در پردازشگرهای مدرن با قابلیتهای SIMD مؤثر است، زیرا میتوان چندین بایت کنترل را همزمان مقایسه کرد که سرعت جستجو را بسیار بالا میبرد. علاوه بر این، چیدمان این ساختار و استراتژی توسعه آن به گونهای طراحی شده است که در بهبود محلیسازی حافظه و کارایی جستجو نقش بسزایی دارد، و در نتیجه عملیات کار با مپ در برنامههای نویسنده به شکل قابل توجهی سریعتر انجام میگیرد.
مطمئناً، این فناوری نوآورانه در ساختار داخلی مپ در زبان Go، باعث بهبود چشمگیر در عملکرد برنامهها میشود و توسعهدهندگان را قادر میسازد تا برنامههایی با کارایی بالا و سرعت مناسب را پیادهسازی کنند. این پیشرفتها نشان میدهد که تیم توسعه Go همواره در جستجوی راهحلهای نوآورانه برای بهبود اثربخشی زبان و ابزارهای مربوطه است.
#برنامهنویسی #Go #ساختار داده #پرفورمنس
🟣لینک مقاله:
https://victoriametrics.com/blog/go-swiss-table-map/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
VictoriaMetrics
How Go’s Built-in Map Works with Swiss Tables
Go 1.24 replaced the built-in map’s bucket-based runtime with Swiss Tables. This article explains groups, control bytes, H1 and H2, probing, table growth, directories, deletion, load factor, and the experimental split-group layout.
🔵 عنوان مقاله
How I Built a Custom Kubernetes Ingress in Rust/Go That Outperforms Nginx by 11%
🟢 خلاصه مقاله:
در دنیای مدیریت زیرساختهای ابری و سرویسهای وب، تنظیم و پیکربندی بخش ورودی (Ingress) در کلاسترهای Kubernetes نقش حیاتی دارد. در این مقاله، من داستان ساخت یک بخش ورودی سفارشی بر پایه زبانهای برنامهنویسی Rust و Go را به اشتراک میگذارم که توانسته است نسبت به سرور محبوب Nginx عملکرد بهتری داشته باشد. هدف من این بود که راهکاری بهینهتر و کارآمدتر ارائه دهم تا بار ترافیکی سنگین و درخواستهای متعددی را با کارایی بالا مدیریت کند.
پس از بررسی نیازهای خاص پروژه، تصمیم گرفتم یک اینگریس سفارشی طراحی کنم که بر اساس زبانهای قدرتمندی چون Rust و Go ساخته شده باشد. این زبانها امکانات خوبی برای توسعه سرویسهای سریع و در عین حال امن فراهم میکنند. با تمرکز بر بهبود سرعت پاسخگویی و کاهش مصرف منابع، شروع به توسعه و تست کردم. نتیجه نهایی، یک سیستم اینگریس مخصوص بود که توانسته است در تستهای مقایسهای، نسبت به Nginx شاهد بهبود عملکرد ۱۱ درصدی باشد، چیزی که در دنیای در حال رقابت تکنولوژیکی امروز اهمیت بالایی دارد.
در پایان، نشان دادم که با بهکارگیری فناوریهای مدرن و طراحی هوشمندانه، میتوان به نتایج قابل توجهی در بهبود عملکرد سرویسهای وب دست یافت. این نمونه نشان میدهد که توسعهدهندگان و مدیران فناوری اطلاعات میتوانند با نوآوری و تغییر رویکرد، راهحلهای مناسب و بهینهتری برای زیرساختهای خود خلق کنند.
#کلاسترهای_کوبنرتیس #بهینهسازی_سرورها #Rust #Go
🟣لینک مقاله:
https://ku.bz/zTSm2MLtf
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
How I Built a Custom Kubernetes Ingress in Rust/Go That Outperforms Nginx by 11%
🟢 خلاصه مقاله:
در دنیای مدیریت زیرساختهای ابری و سرویسهای وب، تنظیم و پیکربندی بخش ورودی (Ingress) در کلاسترهای Kubernetes نقش حیاتی دارد. در این مقاله، من داستان ساخت یک بخش ورودی سفارشی بر پایه زبانهای برنامهنویسی Rust و Go را به اشتراک میگذارم که توانسته است نسبت به سرور محبوب Nginx عملکرد بهتری داشته باشد. هدف من این بود که راهکاری بهینهتر و کارآمدتر ارائه دهم تا بار ترافیکی سنگین و درخواستهای متعددی را با کارایی بالا مدیریت کند.
پس از بررسی نیازهای خاص پروژه، تصمیم گرفتم یک اینگریس سفارشی طراحی کنم که بر اساس زبانهای قدرتمندی چون Rust و Go ساخته شده باشد. این زبانها امکانات خوبی برای توسعه سرویسهای سریع و در عین حال امن فراهم میکنند. با تمرکز بر بهبود سرعت پاسخگویی و کاهش مصرف منابع، شروع به توسعه و تست کردم. نتیجه نهایی، یک سیستم اینگریس مخصوص بود که توانسته است در تستهای مقایسهای، نسبت به Nginx شاهد بهبود عملکرد ۱۱ درصدی باشد، چیزی که در دنیای در حال رقابت تکنولوژیکی امروز اهمیت بالایی دارد.
در پایان، نشان دادم که با بهکارگیری فناوریهای مدرن و طراحی هوشمندانه، میتوان به نتایج قابل توجهی در بهبود عملکرد سرویسهای وب دست یافت. این نمونه نشان میدهد که توسعهدهندگان و مدیران فناوری اطلاعات میتوانند با نوآوری و تغییر رویکرد، راهحلهای مناسب و بهینهتری برای زیرساختهای خود خلق کنند.
#کلاسترهای_کوبنرتیس #بهینهسازی_سرورها #Rust #Go
🟣لینک مقاله:
https://ku.bz/zTSm2MLtf
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
DEV Community
How I Built a Custom Kubernetes Ingress in Rust/Go That Outperforms Nginx by 11%
How I Built a Custom Kubernetes Ingress in Rust/Go That Outperforms Nginx by 11% ...