🔵 عنوان مقاله
More devops than I bargained for
🟢 خلاصه مقاله:
یک مهاجرت «ساده» از x86 به ARM64 تبدیل شد به یک بحران تمامعیار DevOps. بهمحض ورود نودهای ARM64، مشکلها از چند جهت فوران کرد: نبودن base imageهای arm64، وابستگی سرویسها به باینریها و پکیجهای بومی، و CrashLoop بهخاطر “exec format error”. با ساخت multi-arch image و manifest list و اصلاح CI بخشی حل شد، اما Helm chartها هنوز فرضهای amd64 داشتند و باعث زمانبندی نادرست، ImagePullBackOff و ناسازگاری در sidecarها شدند. بدتر از همه، شبکه بود: در کلاستر dual-stack، IPv6 زیر بار میبرید؛ MTU ناهماهنگ، تنظیمات CNI، iptables/nft و محدودیتهای conntrack دستبهدست هم دادند و ما را ساعت ۴ صبح پای tcpdump و تنظیم sysctl نشاندند. جمعبندی: تغییر معماری، بهروزرسانی OS، دستکاری CNI و فعالسازی dual-stack را یکجا انجام ندهید؛ برای هرکدام پنجره تست و rollback جدا بگذارید، observability و ابزارهای eBPF اضافه کنید، Ingress و sidecarها را از نظر multi-arch راستیآزمایی کنید و پوشش تست multi-arch را در CI اجباری کنید.
#DevOps #Kubernetes #ARM64 #x86 #IPv6 #CNI #Containers #CloudNative
🟣لینک مقاله:
https://ku.bz/svxMcSqWJ
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
More devops than I bargained for
🟢 خلاصه مقاله:
یک مهاجرت «ساده» از x86 به ARM64 تبدیل شد به یک بحران تمامعیار DevOps. بهمحض ورود نودهای ARM64، مشکلها از چند جهت فوران کرد: نبودن base imageهای arm64، وابستگی سرویسها به باینریها و پکیجهای بومی، و CrashLoop بهخاطر “exec format error”. با ساخت multi-arch image و manifest list و اصلاح CI بخشی حل شد، اما Helm chartها هنوز فرضهای amd64 داشتند و باعث زمانبندی نادرست، ImagePullBackOff و ناسازگاری در sidecarها شدند. بدتر از همه، شبکه بود: در کلاستر dual-stack، IPv6 زیر بار میبرید؛ MTU ناهماهنگ، تنظیمات CNI، iptables/nft و محدودیتهای conntrack دستبهدست هم دادند و ما را ساعت ۴ صبح پای tcpdump و تنظیم sysctl نشاندند. جمعبندی: تغییر معماری، بهروزرسانی OS، دستکاری CNI و فعالسازی dual-stack را یکجا انجام ندهید؛ برای هرکدام پنجره تست و rollback جدا بگذارید، observability و ابزارهای eBPF اضافه کنید، Ingress و sidecarها را از نظر multi-arch راستیآزمایی کنید و پوشش تست multi-arch را در CI اجباری کنید.
#DevOps #Kubernetes #ARM64 #x86 #IPv6 #CNI #Containers #CloudNative
🟣لینک مقاله:
https://ku.bz/svxMcSqWJ
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
fasterthanli.me
More devops than I bargained for
Background
I recently had a bit of impromptu disaster recovery, and it gave me a hunger for more! More downtime! More kubernetes manifest! More DNS! Ahhhh!
The plan was really simple. I love dedica...
I recently had a bit of impromptu disaster recovery, and it gave me a hunger for more! More downtime! More kubernetes manifest! More DNS! Ahhhh!
The plan was really simple. I love dedica...
🔵 عنوان مقاله
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
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