Forwarded from Gopher Academy
🔵 عنوان مقاله
explains more, including why this matters.
🟢 خلاصه مقاله:
آخرین شماره Golang Weekly مقالهای دارد که یک موضوع بهروز در اکوسیستم Go را با زمینهسازی روشن و کاربردی شرح میدهد: چرا اکنون مهم است، چه مزایا و ملاحظاتی دارد و چه بدهبستانهایی پیشِروست. با توضیحهای فشرده و مثالهای قابل اتکا، الگوهای مناسب تولید، خطاهای رایج و مسیرهای مهاجرت برای سرویسها و کتابخانهها را نشان میدهد. همچنین به پیامدهای معمول چنین تغییراتی بر modules، مدیریت وابستگی، CI، راهبرد تست، بنچمارک و پروفایلینگ میپردازد و راهکارهایی برای کاهش ریسک و سازگاری پیشنهاد میکند. در پایان، اثر آن بر جامعه و تیمها را جمعبندی کرده و منابع تکمیلی برای مطالعه بیشتر معرفی میکند؛ نکاتی عملی، چه برای بکاندهای پُرترافیک و چه برای CLIهای کوچک.
#Go #Golang #GolangWeekly #SoftwareEngineering #Backend #DevOps #Performance #Concurrency
🟣لینک مقاله:
https://golangweekly.com/link/174442/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
explains more, including why this matters.
🟢 خلاصه مقاله:
آخرین شماره Golang Weekly مقالهای دارد که یک موضوع بهروز در اکوسیستم Go را با زمینهسازی روشن و کاربردی شرح میدهد: چرا اکنون مهم است، چه مزایا و ملاحظاتی دارد و چه بدهبستانهایی پیشِروست. با توضیحهای فشرده و مثالهای قابل اتکا، الگوهای مناسب تولید، خطاهای رایج و مسیرهای مهاجرت برای سرویسها و کتابخانهها را نشان میدهد. همچنین به پیامدهای معمول چنین تغییراتی بر modules، مدیریت وابستگی، CI، راهبرد تست، بنچمارک و پروفایلینگ میپردازد و راهکارهایی برای کاهش ریسک و سازگاری پیشنهاد میکند. در پایان، اثر آن بر جامعه و تیمها را جمعبندی کرده و منابع تکمیلی برای مطالعه بیشتر معرفی میکند؛ نکاتی عملی، چه برای بکاندهای پُرترافیک و چه برای CLIهای کوچک.
#Go #Golang #GolangWeekly #SoftwareEngineering #Backend #DevOps #Performance #Concurrency
🟣لینک مقاله:
https://golangweekly.com/link/174442/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
River
Dependabot + private Go proxies: how they work and why it matters - River blog
GitHub's Dependabot can now work with private Go proxies/registries. But how do Go proxies even work? Learn how they function, how to configure them for private modules, and why ordering matters.
Forwarded from Gopher Academy
🔵 عنوان مقاله
koanf 2.3: Read Configuration with Multiple Sources and Formats
🟢 خلاصه مقاله:
اkoanf 2.3 ابزاری برای خواندن و ترکیب پیکربندی از چند منبع و چند فرمت است؛ از JSON، TOML و YAML تا متغیرهای محیطی، command line، فایلهای محلی و سرویسهای ابری مانند S3. شما میتوانید این منابع را لایهبندی کنید، قواعد تقدم و ادغام تعیین کنید و بدینترتیب رفتار پیکربندی را در محیطهای مختلف کنترل کنید. این نسخه بهعنوان جایگزینی «سبکتر» برای Viper معرفی میشود و با تکیه بر سادگی، وابستگیهای کمتر و API جمعوجور، ادغام و نگهداری را آسانتر میکند.
#koanf #Configuration #Viper #JSON #YAML #TOML #S3 #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/174428/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
koanf 2.3: Read Configuration with Multiple Sources and Formats
🟢 خلاصه مقاله:
اkoanf 2.3 ابزاری برای خواندن و ترکیب پیکربندی از چند منبع و چند فرمت است؛ از JSON، TOML و YAML تا متغیرهای محیطی، command line، فایلهای محلی و سرویسهای ابری مانند S3. شما میتوانید این منابع را لایهبندی کنید، قواعد تقدم و ادغام تعیین کنید و بدینترتیب رفتار پیکربندی را در محیطهای مختلف کنترل کنید. این نسخه بهعنوان جایگزینی «سبکتر» برای Viper معرفی میشود و با تکیه بر سادگی، وابستگیهای کمتر و API جمعوجور، ادغام و نگهداری را آسانتر میکند.
#koanf #Configuration #Viper #JSON #YAML #TOML #S3 #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/174428/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - knadh/koanf: Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML,…
Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. - knadh/koanf
Forwarded from Gopher Academy
🔵 عنوان مقاله
Why I Ditched Docker for Podman (And You Should Too)
🟢 خلاصه مقاله:
مهاجرت از Docker به Podman برای من بیشتر یک انتخاب عملی بود تا بحث سلیقه؛ بهویژه در جریانهای کاری مرتبط با Go که در Golang Weekly هم زیاد دیده میشود. دلیل اصلی، معماری سادهتر و امنتر Podman است: بدون daemon و با اجرای rootless بهصورت پیشفرض، پس سطح حمله و دردسرهای دسترسی کاهش مییابد و سرویس پرامتیازِ دائمی لازم نیست. مهاجرت هم کماصطکاک است؛ چون Podman با CLI و فرمت OCI سازگار است و دستورات رایج مثل podman build/run عملاً جایگزین مستقیم میشوند. برای Compose، ابزار Podman Compose و برای رابط گرافیکی، Podman Desktop وجود دارد؛ روی macOS و Windows هم podman machine تجربهای سبک و قابلاتکا میدهد. ادغام بومی با systemd، مدیریت لاگها و قابلیتهایی مثل pods و podman generate kube، راه را برای استفاده در CI/CD و حتی انتقال به Kubernetes هموار میکند. در پروژههای Go، ساخت چندمرحلهای، ایمیجهای کمحجم، و mountهای rootless بدون مشکل دسترسی، چرخه توسعه و تست را سریع و قابلاعتماد میکند. هرچند تفاوتهایی مثل مسیر socket و جزئیات volumes نسبت به Docker وجود دارد، اما راهکارهای روشن و مستندی برایشان هست. نتیجه: اگر Docker جوابگو است، خوب؛ اما Podman در اکثر سناریوهای روزمره توسعه و CI تجربهای امنتر، سادهتر و سازگار ارائه میدهد.
#Podman #Docker #Containers #DevOps #Go #GolangWeekly #Kubernetes #Security
🟣لینک مقاله:
https://golangweekly.com/link/174075/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Why I Ditched Docker for Podman (And You Should Too)
🟢 خلاصه مقاله:
مهاجرت از Docker به Podman برای من بیشتر یک انتخاب عملی بود تا بحث سلیقه؛ بهویژه در جریانهای کاری مرتبط با Go که در Golang Weekly هم زیاد دیده میشود. دلیل اصلی، معماری سادهتر و امنتر Podman است: بدون daemon و با اجرای rootless بهصورت پیشفرض، پس سطح حمله و دردسرهای دسترسی کاهش مییابد و سرویس پرامتیازِ دائمی لازم نیست. مهاجرت هم کماصطکاک است؛ چون Podman با CLI و فرمت OCI سازگار است و دستورات رایج مثل podman build/run عملاً جایگزین مستقیم میشوند. برای Compose، ابزار Podman Compose و برای رابط گرافیکی، Podman Desktop وجود دارد؛ روی macOS و Windows هم podman machine تجربهای سبک و قابلاتکا میدهد. ادغام بومی با systemd، مدیریت لاگها و قابلیتهایی مثل pods و podman generate kube، راه را برای استفاده در CI/CD و حتی انتقال به Kubernetes هموار میکند. در پروژههای Go، ساخت چندمرحلهای، ایمیجهای کمحجم، و mountهای rootless بدون مشکل دسترسی، چرخه توسعه و تست را سریع و قابلاعتماد میکند. هرچند تفاوتهایی مثل مسیر socket و جزئیات volumes نسبت به Docker وجود دارد، اما راهکارهای روشن و مستندی برایشان هست. نتیجه: اگر Docker جوابگو است، خوب؛ اما Podman در اکثر سناریوهای روزمره توسعه و CI تجربهای امنتر، سادهتر و سازگار ارائه میدهد.
#Podman #Docker #Containers #DevOps #Go #GolangWeekly #Kubernetes #Security
🟣لینک مقاله:
https://golangweekly.com/link/174075/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
CodeSmash
Switching from Docker to Podman
Podman offers better security, uses fewer resources, and integrates seamlessly with Linux and Kubernetes, making it a superior Docker alternative
Forwarded from Gopher Academy
🔵 عنوان مقاله
Kubernetes CPU Limits and Go
🟢 خلاصه مقاله:
بهروزرسانی این مقاله توضیح میدهد که چرا runtime زبان Go بهطور پیشفرض از محدودیتهای CPU در Kubernetes خبر ندارد و چگونه همین موضوع میتواند به oversubscription و در نتیجه throttling و جهشهای تاخیری منجر شود. راهحل عملی، همراستاکردن GOMAXPROCS با سهم واقعی CPU کانتینر (براساس cgroups) است؛ یا با تنظیم متغیر محیطی GOMAXPROCS یا با استفاده از کتابخانه go.uber.org/automaxprocs تا runtime با ظرفیت واقعی زمانبندی کند. از نظر عملیاتی، برای سرویسهای حساس به تاخیر بهتر است از limit سخت CPU پرهیز کرده و به request بههمراه HPA اتکا کنید؛ در صورت اجبار به limit، سقف را طوری بگذارید که throttling حداقلی باشد و در صورت نیاز از CPU pinning و QoS مناسب بهره بگیرید. ارزیابی این تنظیمات با سنجههایی مانند container_cpu_cfs_throttled_seconds_total و توزیع تاخیر و نیز متریکهای runtime در Go، تصویر دقیقی از تاثیر بهینهسازیها ارائه میکند.
#Kubernetes #Go #GOMAXPROCS #cgroups #CPUThrottling #ContainerPerformance #DevOps #SRE
🟣لینک مقاله:
https://golangweekly.com/link/174644/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Kubernetes CPU Limits and Go
🟢 خلاصه مقاله:
بهروزرسانی این مقاله توضیح میدهد که چرا runtime زبان Go بهطور پیشفرض از محدودیتهای CPU در Kubernetes خبر ندارد و چگونه همین موضوع میتواند به oversubscription و در نتیجه throttling و جهشهای تاخیری منجر شود. راهحل عملی، همراستاکردن GOMAXPROCS با سهم واقعی CPU کانتینر (براساس cgroups) است؛ یا با تنظیم متغیر محیطی GOMAXPROCS یا با استفاده از کتابخانه go.uber.org/automaxprocs تا runtime با ظرفیت واقعی زمانبندی کند. از نظر عملیاتی، برای سرویسهای حساس به تاخیر بهتر است از limit سخت CPU پرهیز کرده و به request بههمراه HPA اتکا کنید؛ در صورت اجبار به limit، سقف را طوری بگذارید که throttling حداقلی باشد و در صورت نیاز از CPU pinning و QoS مناسب بهره بگیرید. ارزیابی این تنظیمات با سنجههایی مانند container_cpu_cfs_throttled_seconds_total و توزیع تاخیر و نیز متریکهای runtime در Go، تصویر دقیقی از تاثیر بهینهسازیها ارائه میکند.
#Kubernetes #Go #GOMAXPROCS #cgroups #CPUThrottling #ContainerPerformance #DevOps #SRE
🟣لینک مقاله:
https://golangweekly.com/link/174644/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
pkg.go.dev
automaxprocs package - go.uber.org/automaxprocs - Go Packages
Package automaxprocs automatically sets GOMAXPROCS to match the Linux container CPU quota, if any.
Forwarded from Byteforge / بایــت فورج 🛸
Kube-Copilot
یک دستیار هوش مصنوعی برای Kubernetes , که مدیریت و نگهداری خوشهها رو هوشمندتر و سادهتر میکنه. این ابزار با اتصال مستقیم به API سرور، پروسه های پیچیده رو خودکار میکنه و پیشنهادهای عملی برای بهبود پایداری و امنیت ارائه میکنه.
قابلیتهای اصلی Kube-Copilot :
تولید و بهینهسازی مانفیستهای YAML برای منابعی مثله Deployment، Service، Ingress و ConfigMap
بررسی وضعیت Pod ها و Nodeها و ارائه راهکار برای خطاها یا CrashLoopBackOff
تحلیل لاگها و پیشنهاد اقدامات اصلاحی در سطح workload
پشتیبانی از استراتژیهای دیپلویمنت مثل Rolling Update و Canary Rollout
اتوماسیون وظایف تکراری مانند scale کردن، بهروزرسانی ایمیجها و مانیتورینگ سلامت سرویسها
ارائه توصیههای امنیتی برای جلوگیری از misconfiguration و آسیبپذیریها
با استفاده از Kube-Copilot، تیمها یجورایی میتونن، زمان دیباگ و عملیات روزمره رو به حداقل برسونن ، در عین حال از پایداری، امنیت و کارایی بیشتر در خوشههای Kubernetes برخوردار بشن.
یک دستیار هوش مصنوعی برای Kubernetes , که مدیریت و نگهداری خوشهها رو هوشمندتر و سادهتر میکنه. این ابزار با اتصال مستقیم به API سرور، پروسه های پیچیده رو خودکار میکنه و پیشنهادهای عملی برای بهبود پایداری و امنیت ارائه میکنه.
قابلیتهای اصلی Kube-Copilot :
تولید و بهینهسازی مانفیستهای YAML برای منابعی مثله Deployment، Service، Ingress و ConfigMap
بررسی وضعیت Pod ها و Nodeها و ارائه راهکار برای خطاها یا CrashLoopBackOff
تحلیل لاگها و پیشنهاد اقدامات اصلاحی در سطح workload
پشتیبانی از استراتژیهای دیپلویمنت مثل Rolling Update و Canary Rollout
اتوماسیون وظایف تکراری مانند scale کردن، بهروزرسانی ایمیجها و مانیتورینگ سلامت سرویسها
ارائه توصیههای امنیتی برای جلوگیری از misconfiguration و آسیبپذیریها
با استفاده از Kube-Copilot، تیمها یجورایی میتونن، زمان دیباگ و عملیات روزمره رو به حداقل برسونن ، در عین حال از پایداری، امنیت و کارایی بیشتر در خوشههای Kubernetes برخوردار بشن.
github.com/feiskyer/kube-copilot
#DevOps
#kubernetes
#byteforge
@byteforge_chan 🛸
Forwarded from Byteforge / بایــت فورج 🛸
از ایده تا انتشار بدون ریسک؛ Flagr چه کمکی به تیمهای فنی میکند؟
انتشار یه قابلیت جدید همیشه ریسک داره. خیلی وقتا لازمه تغییرات اول فقط برای بخشی از کاربرا فعال بشه تا عملکردش بررسی بشه و بعد برای همه ارائه بشه.
Flagr یه سرویس متنبازه که با زبان Go نوشته شده و دقیقاً برای همین طراحی شده. این ابزار امکان مدیریت Feature Flag، اجرای A/B تست و همینطور پیکربندی پویا رو به تیمهای فنی میده.
قابلیتهای اصلی Flagr:
روشن یا خاموش کردن فیچرها برای گروههای مشخص از کاربرا
اجرای تستهای مقایسهای برای سنجش بازخورد واقعی
تغییر پیکربندی سرویسها در لحظه، بدون نیاز به دیپلوی مجدد
ارائه API استاندارد (Swagger REST) برای یکپارچگی ساده با سرویسها
نصب روی سرور داخلی (Self-hosted) و کنترل کامل روی دادهها
با Flagr، تیم توسعه میتونه تغییراتش رو مطمئن، مرحلهای و بدون اختلال منتشر کنه.
انتشار یه قابلیت جدید همیشه ریسک داره. خیلی وقتا لازمه تغییرات اول فقط برای بخشی از کاربرا فعال بشه تا عملکردش بررسی بشه و بعد برای همه ارائه بشه.
Flagr یه سرویس متنبازه که با زبان Go نوشته شده و دقیقاً برای همین طراحی شده. این ابزار امکان مدیریت Feature Flag، اجرای A/B تست و همینطور پیکربندی پویا رو به تیمهای فنی میده.
قابلیتهای اصلی Flagr:
روشن یا خاموش کردن فیچرها برای گروههای مشخص از کاربرا
اجرای تستهای مقایسهای برای سنجش بازخورد واقعی
تغییر پیکربندی سرویسها در لحظه، بدون نیاز به دیپلوی مجدد
ارائه API استاندارد (Swagger REST) برای یکپارچگی ساده با سرویسها
نصب روی سرور داخلی (Self-hosted) و کنترل کامل روی دادهها
با Flagr، تیم توسعه میتونه تغییراتش رو مطمئن، مرحلهای و بدون اختلال منتشر کنه.
سورسکد و مستندات:
github.com/openflagr/flagr
#DevOps
#flagr
#byteforge
@byteforge_chan 🛸
Forwarded from Gopher Academy
🔵 عنوان مقاله
celebrates its tenth anniversary with a look
🟢 خلاصه مقاله:
این مقاله دهمین سالگرد یک ابزار زیرساختی متنباز مبتنی بر Go را جشن میگیرد و نشان میدهد چگونه از یک ابزار کوچک به مولفهای بالغ و شناختهشده در تیمهای DevOps و SRE تبدیل شده است؛ با بهبودهای کارایی و پایداری، معماری افزونهپذیر، API/CLI پایدار و تمرکز جدی بر امنیت و زنجیره تأمین. اکوسیستم آن با جامعهای پویا، مستندات بهتر، نسخهبندی معنادار، سازگاری عقبرو و یکپارچگی گسترده با فضای ابری، CI/CD و ابزارهای مشاهدهپذیری رشد کرده است. در ادامه، نقشهراه بر بهبود تجربه کاربری، غنیتر شدن API/SDK، تقویت policy-as-code، مدیریت بهتر وضعیت و دریفت، و اتوماسیون ایمنتر در مقیاس تأکید میکند.
#Go #Infrastructure #DevOps #OpenSource #Cloud #Automation #Security #Observability
🟣لینک مقاله:
https://golangweekly.com/link/175053/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
celebrates its tenth anniversary with a look
🟢 خلاصه مقاله:
این مقاله دهمین سالگرد یک ابزار زیرساختی متنباز مبتنی بر Go را جشن میگیرد و نشان میدهد چگونه از یک ابزار کوچک به مولفهای بالغ و شناختهشده در تیمهای DevOps و SRE تبدیل شده است؛ با بهبودهای کارایی و پایداری، معماری افزونهپذیر، API/CLI پایدار و تمرکز جدی بر امنیت و زنجیره تأمین. اکوسیستم آن با جامعهای پویا، مستندات بهتر، نسخهبندی معنادار، سازگاری عقبرو و یکپارچگی گسترده با فضای ابری، CI/CD و ابزارهای مشاهدهپذیری رشد کرده است. در ادامه، نقشهراه بر بهبود تجربه کاربری، غنیتر شدن API/SDK، تقویت policy-as-code، مدیریت بهتر وضعیت و دریفت، و اتوماسیون ایمنتر در مقیاس تأکید میکند.
#Go #Infrastructure #DevOps #OpenSource #Cloud #Automation #Security #Observability
🟣لینک مقاله:
https://golangweekly.com/link/175053/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Traefik Labs
Traefik's 10-Year Anniversary: A Community's Journey
10 years ago, I made a small reverse proxy project public. Fast forward to today and Traefik has 3.4B downloads and 56k GitHub stars. See how it unfolded.
Forwarded from Ninja Learn | نینجا لرن
تا حالا کلی مطالب خفن و کاربردی تو کانال NinjaLearn براتون آماده کردیم و الان صدها مطلب مختلف و جذاب داریم.
این شما و این لیست دستهبندیهای کانال🔻:
هر کدوم از این هشتگها برای یه موضوع خاص طراحی شده تا شما به راحتی بتونید محتوای مورد نظرتون رو پیدا کنید. دیگه لازم نیست کلی تو کانال بگردید 😊
راستی میتونید بنر کانال رو برای دوستاتون هم بفرستید تا اونا هم به جمع ما بپیوندن و از این مطالب مفید استفاده کنن 😉
➖➖➖➖➖➖➖➖➖
از اونجایی که مطالب کانال خیلی متنوع و زیاد شده، تصمیم گرفتیم یه دستهبندی مرتب و منظم برای همهی پستها داشته باشیم تا شما عزیزان راحتتر بتونید محتوای مورد نظرتون رو پیدا کنید
این شما و این لیست دستهبندیهای کانال🔻:
🦫 #go: آموزشها و نکات کاربردی زبان گو
💻 #programming: مطالب برنامه نویسی
🐍 #python: ترفندها و نکات پایتونی
🦄 #django: مطالب فریمورک جنگو
⚡️ #fastapi: مطالب فریم ورک فست
🌐 #web: مطالب مرتبط به وب
📡 #network: مطالب مرتبط به شبکه
🗂️ #db: معرفی و نکات دیتابیس
🔖 #reference: معرفی مقاله و ویدیو
📢 #notif: اطلاع رسانی ها
❓ #question: سوالات جالب در برنامه نویسی
🎊 #event: رویداد هایی که معرفی کردیم
🎬 #movie: معرفی فیلم و سریال
📚 #book: معرفی کتابهای تخصصی
🤖 #AI: مطالب مرتبط به هوش مصنوعی
📊 #ml: مطالب مرتبط به یادگیری ماشین
🛠️ #backend: آموزشها و ترفندهای بکاند
🔒 #security: نکات امنیتی
⚙ #devops: مطالب مرتبط به دواپس
📺 #YouTube: ویدیوهای چنل یوتیوب ما
🌏 #geo: تکنولوژی های جغرافیایی
هر کدوم از این هشتگها برای یه موضوع خاص طراحی شده تا شما به راحتی بتونید محتوای مورد نظرتون رو پیدا کنید. دیگه لازم نیست کلی تو کانال بگردید 😊
اگه موضوع جدیدی به مطالب کانال اضافه بشه، حتماً تو این لیست قرار میگیره ✅
راستی میتونید بنر کانال رو برای دوستاتون هم بفرستید تا اونا هم به جمع ما بپیوندن و از این مطالب مفید استفاده کنن 😉
NinjaLearn Banner 🥷🤝
#category
➖➖➖➖➖➖➖➖➖
🔆 CHANNEL | GROUP
Forwarded from 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
Forwarded from 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
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…
Forwarded from 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
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
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
Forwarded from Gopher Academy
🔵 عنوان مقاله
How to Get Started with GitHub Copilot CLI
🟢 خلاصه مقاله:
** این مطلب با راهنماییای عملی از Andrea Griffiths (GitHub) نشان میدهد چگونه با GitHub Copilot CLI شروع کنید تا در ترمینال، درخواستهای زبانی خود را به دستورات شِل تبدیل کنید، خطاها و فلگهای ناشناخته را توضیح بگیرید و سریعتر اشکالزدایی کنید. روند آغاز کار ساده است: نصب و ورود به GitHub CLI، افزودن افزونه Copilot و بررسی فعال بودن دسترسی Copilot روی حساب GitHub؛ سپس با gh copilot help و دستورات تولید/توضیح فرمانها، میتوانید قبل از اجرا خروجیها را بررسی کنید تا از ایمنی کار مطمئن شوید. این ابزار روی Bash، Zsh و PowerShell کار میکند و برای وظایف روزمره مثل جستوجو، مدیریت پردازهها و کار با Git چرخه بازخورد را کوتاه میکند.
همزمان، نوشتهای از Redowan Delowar درباره Organizing Go Tests پیشنهاد میشود که ساختاردهی حرفهای تستهای Go را مرور میکند: کنار هم نگهداشتن فایلهای *_test.go با کد، بهکارگیری تستهای جدولمحور و زیربخشها با t.Run، استفاده از پوشه testdata برای دادههای تست، همراه با بنچمارکها، مثالها، نامگذاری شفاف، گزارش پوشش و اتصال go test به CI. مجموع این توصیهها هم بهرهوری توسعه را بالا میبرد و هم کیفیت و قابلیت اعتماد تستها را.
#GitHub #Copilot #CLI #Go #Testing #DeveloperTools #Productivity #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/175637/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How to Get Started with GitHub Copilot CLI
🟢 خلاصه مقاله:
** این مطلب با راهنماییای عملی از Andrea Griffiths (GitHub) نشان میدهد چگونه با GitHub Copilot CLI شروع کنید تا در ترمینال، درخواستهای زبانی خود را به دستورات شِل تبدیل کنید، خطاها و فلگهای ناشناخته را توضیح بگیرید و سریعتر اشکالزدایی کنید. روند آغاز کار ساده است: نصب و ورود به GitHub CLI، افزودن افزونه Copilot و بررسی فعال بودن دسترسی Copilot روی حساب GitHub؛ سپس با gh copilot help و دستورات تولید/توضیح فرمانها، میتوانید قبل از اجرا خروجیها را بررسی کنید تا از ایمنی کار مطمئن شوید. این ابزار روی Bash، Zsh و PowerShell کار میکند و برای وظایف روزمره مثل جستوجو، مدیریت پردازهها و کار با Git چرخه بازخورد را کوتاه میکند.
همزمان، نوشتهای از Redowan Delowar درباره Organizing Go Tests پیشنهاد میشود که ساختاردهی حرفهای تستهای Go را مرور میکند: کنار هم نگهداشتن فایلهای *_test.go با کد، بهکارگیری تستهای جدولمحور و زیربخشها با t.Run، استفاده از پوشه testdata برای دادههای تست، همراه با بنچمارکها، مثالها، نامگذاری شفاف، گزارش پوشش و اتصال go test به CI. مجموع این توصیهها هم بهرهوری توسعه را بالا میبرد و هم کیفیت و قابلیت اعتماد تستها را.
#GitHub #Copilot #CLI #Go #Testing #DeveloperTools #Productivity #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/175637/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The GitHub Blog
GitHub Copilot CLI: How to get started
From cloning a repository to opening a pull request, here’s how to streamline your workflow with Copilot CLI.
Forwarded from Gopher Academy
🔵 عنوان مقاله
AWS Lambda for Go 1.50
🟢 خلاصه مقاله:
این مقاله اعلام میکند که AWS Lambda از Go 1.50 پشتیبانی میکند و مجموعهای از نمونهها و ابزارها برای ساخت سرویسهای Serverless ارائه میدهد. محورها شامل استفاده از کتابخانه aws-lambda-go، ادغام با رویدادهای Amazon API Gateway، Amazon S3، Amazon DynamoDB و AWS Step Functions، و مشاهدهپذیری از طریق Amazon CloudWatch و AWS Lambda Powertools for Go است. برای استقرار و اتوماسیون، از AWS SAM، AWS CDK و Serverless Framework استفاده میشود؛ تست محلی با AWS SAM CLI و شبیهساز رابط زماناجرا ممکن است، و استقرار هم بهصورت zip و هم Container Image پشتیبانی میشود. نکات عملی شامل ساخت باینریهای کوچک برای linux/amd64 یا linux/arm64، بهرهگیری از Lambda Layers، بهینهسازی سرداستارت با مقداردهی اولیه سراسری و Provisioned Concurrency، تنظیم بهینه حافظه/CPU، انتخاب arm64 برای کارایی-بهازای-هزینه، و مدیریت امن رازها با AWS Secrets Manager یا AWS Systems Manager Parameter Store است؛ همچنین برای مهاجرت از نسخههای قبلی Go بر بررسی وابستگیها و تنظیم پرچمهای ساخت تأکید میشود.
#AWS #AWSLambda #Go #Serverless #Cloud #DevOps #InfrastructureAsCode #Observability
🟣لینک مقاله:
https://golangweekly.com/link/175649/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
AWS Lambda for Go 1.50
🟢 خلاصه مقاله:
این مقاله اعلام میکند که AWS Lambda از Go 1.50 پشتیبانی میکند و مجموعهای از نمونهها و ابزارها برای ساخت سرویسهای Serverless ارائه میدهد. محورها شامل استفاده از کتابخانه aws-lambda-go، ادغام با رویدادهای Amazon API Gateway، Amazon S3، Amazon DynamoDB و AWS Step Functions، و مشاهدهپذیری از طریق Amazon CloudWatch و AWS Lambda Powertools for Go است. برای استقرار و اتوماسیون، از AWS SAM، AWS CDK و Serverless Framework استفاده میشود؛ تست محلی با AWS SAM CLI و شبیهساز رابط زماناجرا ممکن است، و استقرار هم بهصورت zip و هم Container Image پشتیبانی میشود. نکات عملی شامل ساخت باینریهای کوچک برای linux/amd64 یا linux/arm64، بهرهگیری از Lambda Layers، بهینهسازی سرداستارت با مقداردهی اولیه سراسری و Provisioned Concurrency، تنظیم بهینه حافظه/CPU، انتخاب arm64 برای کارایی-بهازای-هزینه، و مدیریت امن رازها با AWS Secrets Manager یا AWS Systems Manager Parameter Store است؛ همچنین برای مهاجرت از نسخههای قبلی Go بر بررسی وابستگیها و تنظیم پرچمهای ساخت تأکید میشود.
#AWS #AWSLambda #Go #Serverless #Cloud #DevOps #InfrastructureAsCode #Observability
🟣لینک مقاله:
https://golangweekly.com/link/175649/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - aws/aws-lambda-go: Libraries, samples and tools to help Go developers develop AWS Lambda functions.
Libraries, samples and tools to help Go developers develop AWS Lambda functions. - aws/aws-lambda-go
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide
🟢 خلاصه مقاله:
این راهنما برای محیطهای bare‑metal و air‑gapped که به LoadBalancerهای ابری دسترسی ندارند، روشی عملی برای اکسپوز کردن سرویسهای Kubernetes ارائه میدهد. با ترکیب MetalLB و NGINX Ingress، ابتدا MetalLB یک IP پایدار به Serviceهای نوع LoadBalancer اختصاص میدهد، سپس NGINX Ingress ترافیک را بر اساس host و path به سرویسهای داخلی مسیردهی میکند. نتیجه، یک نقطه ورودی واحد با IP ثابت، مدیریت سادهتر DNS و عدم نیاز به باز کردن پورتهای متعدد است. آموزش شامل نصب و پیکربندی MetalLB (L2 یا BGP)، استقرار NGINX Ingress، تعریف Ingressها، و نکاتی درباره TLS، پایداری، و عیبیابی است؛ و نشان میدهد چرا این الگو نسبت به NodePort یا hostNetwork تمیزتر و مقیاسپذیرتر بوده و تجربهای مشابه فضای ابری را بدون وابستگی به آن فراهم میکند.
#Kubernetes #MetalLB #NGINXIngress #BareMetal #AirGapped #DevOps #Ingress #LoadBalancer
🟣لینک مقاله:
https://ku.bz/CDWB9HJg7
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide
🟢 خلاصه مقاله:
این راهنما برای محیطهای bare‑metal و air‑gapped که به LoadBalancerهای ابری دسترسی ندارند، روشی عملی برای اکسپوز کردن سرویسهای Kubernetes ارائه میدهد. با ترکیب MetalLB و NGINX Ingress، ابتدا MetalLB یک IP پایدار به Serviceهای نوع LoadBalancer اختصاص میدهد، سپس NGINX Ingress ترافیک را بر اساس host و path به سرویسهای داخلی مسیردهی میکند. نتیجه، یک نقطه ورودی واحد با IP ثابت، مدیریت سادهتر DNS و عدم نیاز به باز کردن پورتهای متعدد است. آموزش شامل نصب و پیکربندی MetalLB (L2 یا BGP)، استقرار NGINX Ingress، تعریف Ingressها، و نکاتی درباره TLS، پایداری، و عیبیابی است؛ و نشان میدهد چرا این الگو نسبت به NodePort یا hostNetwork تمیزتر و مقیاسپذیرتر بوده و تجربهای مشابه فضای ابری را بدون وابستگی به آن فراهم میکند.
#Kubernetes #MetalLB #NGINXIngress #BareMetal #AirGapped #DevOps #Ingress #LoadBalancer
🟣لینک مقاله:
https://ku.bz/CDWB9HJg7
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Medium
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide
“How do I expose my apps in an air‑gapped Kubernetes cluster without any cloud load balancer?”
Forwarded from Byteforge / بایــت فورج 🛸
یک pipeline واحد برای همه چیز در Kubernetes!
Fatih Koç توی این پست نشون میده چطور با OpenTelemetry میتونیم لاگ، متریک و تراس رو در یک مسیر جمع کنیم و از alert تا root cause فقط چند ثانیه فاصله بگیریم.
اگر با observability و incident response سر و کار داری، این مقاله رو از دست نده 👇
https://fatihkoc.net/posts/opentelemetry-kubernetes-pipeline
Fatih Koç توی این پست نشون میده چطور با OpenTelemetry میتونیم لاگ، متریک و تراس رو در یک مسیر جمع کنیم و از alert تا root cause فقط چند ثانیه فاصله بگیریم.
اگر با observability و incident response سر و کار داری، این مقاله رو از دست نده 👇
🔗 Building a Unified OpenTelemetry Pipeline in Kubernetes
#DevOps
#kubernetes
#byteforge
@byteforge_chan 🛸
https://fatihkoc.net/posts/opentelemetry-kubernetes-pipeline
Fatih Koç
Building a Unified OpenTelemetry Pipeline in Kubernetes
Deploy OpenTelemetry Collector in Kubernetes to unify metrics, logs, and traces with correlation, smart sampling, and insights for faster incident resolution.
Forwarded from Academy and Foundation unixmens | Your skills, Your future
پیشنهاد میکنم ، openstack را روی کانتینر راه اندازی نکنید . مگر برای اون توجیحی داشته باشید .
در واقع سرویسهای OpenStack به کتابخانهها، پورتها و شبکههای متعدد وابستهاند که در محیط containerized پیچیدگی را افزایش میدید .و در کانتینر با namespaceها و bridgeهای مجازی پیچیده تداخل دارد.
اگر orchestration بهدرستی تنظیم نشود (مثلاً در Kolla-Ansible یا Kubernetes)، upgrade یا restart ساده میتواند سرویسهای اصلی را از کار بیندازد
برخلاف اپلیکیشنهای cloud-native، سرویسهای OpenStack خودشان "stateful" هستند و containerization مزیت خاصی ایجاد نمیکند.
اما برای محیط Lab / PoC تست سریع نسخهها و سرویسها بدون نیاز به نصب کامل Kolla-Ansible, DevStack, MicroStack و پیاده سازی تست ها قبل از عملیاتی کردن یا operation میتونه خوب باشه .
#openstack #devops
در واقع سرویسهای OpenStack به کتابخانهها، پورتها و شبکههای متعدد وابستهاند که در محیط containerized پیچیدگی را افزایش میدید .و در کانتینر با namespaceها و bridgeهای مجازی پیچیده تداخل دارد.
اگر orchestration بهدرستی تنظیم نشود (مثلاً در Kolla-Ansible یا Kubernetes)، upgrade یا restart ساده میتواند سرویسهای اصلی را از کار بیندازد
برخلاف اپلیکیشنهای cloud-native، سرویسهای OpenStack خودشان "stateful" هستند و containerization مزیت خاصی ایجاد نمیکند.
اما برای محیط Lab / PoC تست سریع نسخهها و سرویسها بدون نیاز به نصب کامل Kolla-Ansible, DevStack, MicroStack و پیاده سازی تست ها قبل از عملیاتی کردن یا operation میتونه خوب باشه .
#openstack #devops
Forwarded from Gopher Academy
🔵 عنوان مقاله
SFTPGo 2.7: A Full Featured File Transfer Solution
🟢 خلاصه مقاله:
این نسخه از SFTPGo 2.7 یک سرور انتقال فایل مبتنی بر Go است که پروتکلهای SFTP، HTTP/S، FTP/S و WebDAV را در یک راهکار یکپارچه ارائه میدهد. تمرکز آن بر پیکربندی منعطف و کنترل دقیق دسترسی است تا مدیران بتوانند سیاستها، مسیرها و رفتار کاربران را مطابق نیاز تنظیم کنند. نقطهقوت اصلی، تعامل با storageهای ابری است؛ میتوان backendهایی مانند Amazon S3، Google Cloud Storage و Azure Blob را مانند پوشههای محلی در اختیار کلاینتها گذاشت و همان داده را همزمان از چند پروتکل ارائه کرد. امنیت انتقال با TLS و رمزنگاری مدرن تضمین میشود و ثبت رویدادها نیز برای نظارت و انطباق در دسترس است. نسخه 2.7 بر پایداری و بلوغ خط v2 تأکید دارد و گزینهای مناسب برای نوسازی جریانهای انتقال فایل و پلزدن میان کلاینتهای قدیمی و زیرساختهای cloud-first است.
#SFTPGo #SFTP #FTP #WebDAV #GoLang #CloudStorage #FileTransfer #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/176312/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
SFTPGo 2.7: A Full Featured File Transfer Solution
🟢 خلاصه مقاله:
این نسخه از SFTPGo 2.7 یک سرور انتقال فایل مبتنی بر Go است که پروتکلهای SFTP، HTTP/S، FTP/S و WebDAV را در یک راهکار یکپارچه ارائه میدهد. تمرکز آن بر پیکربندی منعطف و کنترل دقیق دسترسی است تا مدیران بتوانند سیاستها، مسیرها و رفتار کاربران را مطابق نیاز تنظیم کنند. نقطهقوت اصلی، تعامل با storageهای ابری است؛ میتوان backendهایی مانند Amazon S3، Google Cloud Storage و Azure Blob را مانند پوشههای محلی در اختیار کلاینتها گذاشت و همان داده را همزمان از چند پروتکل ارائه کرد. امنیت انتقال با TLS و رمزنگاری مدرن تضمین میشود و ثبت رویدادها نیز برای نظارت و انطباق در دسترس است. نسخه 2.7 بر پایداری و بلوغ خط v2 تأکید دارد و گزینهای مناسب برای نوسازی جریانهای انتقال فایل و پلزدن میان کلاینتهای قدیمی و زیرساختهای cloud-first است.
#SFTPGo #SFTP #FTP #WebDAV #GoLang #CloudStorage #FileTransfer #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/176312/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Sftpgo
SFTP & FTP as a Managed Service (SaaS) and On-premise
Fully featured and highly configurable SFTP server with HTTP/S Web UI, FTP/S and WebDAV - As a Managed Service, On-premise, Cloud, Hybrid Cloud - Data at Rest Encryption, S3, Google Cloud, Azure Blob.
Forwarded from Byteforge / بایــت فورج 🛸
فرض کن یه رستوران بزرگ داری
توی آشپزخونهات کلی آشپز (Container) داری، هرکدوم یه بخش خاص از غذا رو درست میکنن
Kubernetes مثل مدیر رستورانه. خودش تصمیم میگیره چند تا آشپز لازم داری، کی یکی اضافه بشه یا اگه یکی خسته شد یا رفت، یکی دیگه جاش بیاد. اگه یه آشپز مریض شد یا سوختگی گرفت ( یعنی یه کانتینر کرش کرد)، Kubernetes سریع یه آشپز جدید (Pod جدید) جای اون میفرسته تا کار متوقف نشه.
اگه jاتفاقی مشتریها زیاد شدن (یعنی ترافیک زیاد شد)، Kubernetes خودش میگه
اگه شب شد و مشتریا رفتن، میگه
تازه Kubernetes حتی بلده اگه برق یه آشپزخونه رفت (یعنی یه Node از کار افتاد)، آشپزها رو بفرسته تو یه آشپزخونه دیگه که هنوز برق داره (یعنی تو یه Node سالم).
توی آشپزخونهات کلی آشپز (Container) داری، هرکدوم یه بخش خاص از غذا رو درست میکنن
Kubernetes مثل مدیر رستورانه. خودش تصمیم میگیره چند تا آشپز لازم داری، کی یکی اضافه بشه یا اگه یکی خسته شد یا رفت، یکی دیگه جاش بیاد. اگه یه آشپز مریض شد یا سوختگی گرفت ( یعنی یه کانتینر کرش کرد)، Kubernetes سریع یه آشپز جدید (Pod جدید) جای اون میفرسته تا کار متوقف نشه.
اگه jاتفاقی مشتریها زیاد شدن (یعنی ترافیک زیاد شد)، Kubernetes خودش میگه
«خب بچهها! باید آشپزخونهمون رو بزرگتر کنیم!»
و چند تا آشپز (Pod) دیگه اضافه میکنه.
اگه شب شد و مشتریا رفتن، میگه
«اوکی، الان لازم نیست ۱۰ تا آشپز کار کنن، ۳ تا کافیه.»
و خودش بقیه رو میفرسته خونه تا منابع هدر نره.
تازه Kubernetes حتی بلده اگه برق یه آشپزخونه رفت (یعنی یه Node از کار افتاد)، آشپزها رو بفرسته تو یه آشپزخونه دیگه که هنوز برق داره (یعنی تو یه Node سالم).
#DevOps
#cluster
#kubernetes
#byteforge
@byteforge_chan 🛸
Forwarded from PhiloLearn | فیلولرن
Telegram
FuckingProgrammingBook
Django for Professionals by William S. Vincent
@FuckingProgrammingBooks
@PhiloLearn
@FuckingProgrammingBooks
@PhiloLearn
Docker یک ابزار بسیار محبوب برای مدیریت پروژههای Django است. بسیاری از توسعهدهندگان حرفهای از آن استفاده میکنند، اما به نظرم هنوز برای بسیاری از تازهواردها گیجکننده است. در این مطلب تلاش میکنم توضیح دهم Docker چیست و چرا چنین افزودهٔ قدرتمندی برای کار با Django محسوب میشود.
Docker چیست؟
سادهترین راه برای درک Docker این است که آن را مانند یک محیط مجازی بزرگ در نظر بگیریم که همهچیز لازم برای پروژهٔ Django ما را در خود دارد: وابستگیها، پایگاههای داده، سرویسهای کش، و هر ابزار دیگری که نیاز باشد.
این موضوع با یک محیط مجازی (virtual environment) فرق دارد. محیط مجازی تنها به ایزولهکردن پکیجهای نرمافزاری کمک میکند؛ مثل اینکه از چه نسخهای از Django استفاده میکنید یا دیگر پکیجهای پایتون. اما محیط مجازی نمیتواند سرویسهای خارجی مثل پایگاهداده PostgreSQL را شامل شود. Docker میتواند. Docker یک محیط توسعهٔ کاملاً مستقل است که هم به صورت محلی و هم در محیط عملیاتی (production) قابل استفاده است.
پایگاههای داده در محیط عملیاتی
Django به طور پیشفرض با SQLite عرضه میشود و این انتخاب خوبی برای نمونهسازی سریع است. اما… شما هرگز نمیخواهید در محیط عملیاتی از SQLite استفاده کنید؛ در عوض معمولاً از PostgreSQL یا MySQL استفاده میشود. هرچند میتوانید از SQLite در محیط توسعه و از یک پایگاهداده دیگر در محیط عملیاتی استفاده کنید، اما این کار توصیه نمیشود. زیرا تفاوت بین محیط توسعه و محیط عملیاتی میتواند باعث بروز باگهای زیادی شود.
راهحل این است که یک نسخهٔ محلی از PostgreSQL یا مشابه آن اجرا کنید. اما این کار چالشهای خاص خودش را دارد. باید PostgreSQL را درست نصب و اجرا کنید، سپس آن را به Django متصل کنید. شدنی است، اما مستعد خطا است.
و اگر سرویسهای دیگری مثل Redis هم در محیط عملیاتی دارید، تنظیم آنها در محیط محلی هم سخت است اما با Docker بسیار سادهتر میشود. Docker به شما اجازه میدهد محیط محلی را دقیقاً مشابه محیط عملیاتی بسازید؛ که این آرزوی هر توسعهدهندهٔ وب است.
تیمها
حالا تصور کنید عضو یک تیم توسعه هستید. چطور مطمئن میشوید که همهٔ اعضای تیم روی یک محیط محلی یکسان کار میکنند؟ مخصوصاً وقتی پایگاهدادهٔ محلی و تنظیمات آن ممکن است در سیستم هر توسعهدهنده متفاوت باشد؟
اینجاست که Docker واقعاً میدرخشد. با Docker میتوانید مطمئن باشید که هر عضو تیم دقیقاً روی همان محیط توسعهٔ محلی که شما استفاده میکنید کار میکند، که مزیت بسیار بزرگی است. اگر این مسئله را از تجربهٔ شخصی نیاموختهاید، شانس آوردهاید.
Docker، Docker، Docker
پس چرا باید از Docker استفاده کنیم؟ زیرا تنظیم کردن محیط توسعهٔ محلی را بسیار ساده میکند. زیرا نصب Postgres، Redis و دیگر وابستگیها به صورت محلی کابوس است. و چون Docker تضمین میکند که دقیقاً روی همان مشخصاتی کار کنید که دیگر اعضای تیم دارند.
Docker بیشتر دربارهٔ فرایند استقرار (deployment) نیست، بلکه دربارهٔ ساخت محیط محلیای است که محیط عملیاتی را دقیقاً بازآفرینی کند. و این همان نقطهای است که Docker در آن میدرخشد.
اگر دوست دارید یاد بگیرید چگونه با Docker و Django برنامههای آمادهٔ محیط عملیاتی بسازید، کتاب Django for Professionals این موضوع را به شکل مفصل پوشش میدهد.
منبع (ترجمه با هوش مصنوعی)
#Django #Docker #وب_توسعه #برنامه_نویسی_پایتون #DevOps
@PhiloLearn
Docker چیست؟
سادهترین راه برای درک Docker این است که آن را مانند یک محیط مجازی بزرگ در نظر بگیریم که همهچیز لازم برای پروژهٔ Django ما را در خود دارد: وابستگیها، پایگاههای داده، سرویسهای کش، و هر ابزار دیگری که نیاز باشد.
این موضوع با یک محیط مجازی (virtual environment) فرق دارد. محیط مجازی تنها به ایزولهکردن پکیجهای نرمافزاری کمک میکند؛ مثل اینکه از چه نسخهای از Django استفاده میکنید یا دیگر پکیجهای پایتون. اما محیط مجازی نمیتواند سرویسهای خارجی مثل پایگاهداده PostgreSQL را شامل شود. Docker میتواند. Docker یک محیط توسعهٔ کاملاً مستقل است که هم به صورت محلی و هم در محیط عملیاتی (production) قابل استفاده است.
پایگاههای داده در محیط عملیاتی
Django به طور پیشفرض با SQLite عرضه میشود و این انتخاب خوبی برای نمونهسازی سریع است. اما… شما هرگز نمیخواهید در محیط عملیاتی از SQLite استفاده کنید؛ در عوض معمولاً از PostgreSQL یا MySQL استفاده میشود. هرچند میتوانید از SQLite در محیط توسعه و از یک پایگاهداده دیگر در محیط عملیاتی استفاده کنید، اما این کار توصیه نمیشود. زیرا تفاوت بین محیط توسعه و محیط عملیاتی میتواند باعث بروز باگهای زیادی شود.
راهحل این است که یک نسخهٔ محلی از PostgreSQL یا مشابه آن اجرا کنید. اما این کار چالشهای خاص خودش را دارد. باید PostgreSQL را درست نصب و اجرا کنید، سپس آن را به Django متصل کنید. شدنی است، اما مستعد خطا است.
و اگر سرویسهای دیگری مثل Redis هم در محیط عملیاتی دارید، تنظیم آنها در محیط محلی هم سخت است اما با Docker بسیار سادهتر میشود. Docker به شما اجازه میدهد محیط محلی را دقیقاً مشابه محیط عملیاتی بسازید؛ که این آرزوی هر توسعهدهندهٔ وب است.
تیمها
حالا تصور کنید عضو یک تیم توسعه هستید. چطور مطمئن میشوید که همهٔ اعضای تیم روی یک محیط محلی یکسان کار میکنند؟ مخصوصاً وقتی پایگاهدادهٔ محلی و تنظیمات آن ممکن است در سیستم هر توسعهدهنده متفاوت باشد؟
اینجاست که Docker واقعاً میدرخشد. با Docker میتوانید مطمئن باشید که هر عضو تیم دقیقاً روی همان محیط توسعهٔ محلی که شما استفاده میکنید کار میکند، که مزیت بسیار بزرگی است. اگر این مسئله را از تجربهٔ شخصی نیاموختهاید، شانس آوردهاید.
Docker، Docker، Docker
پس چرا باید از Docker استفاده کنیم؟ زیرا تنظیم کردن محیط توسعهٔ محلی را بسیار ساده میکند. زیرا نصب Postgres، Redis و دیگر وابستگیها به صورت محلی کابوس است. و چون Docker تضمین میکند که دقیقاً روی همان مشخصاتی کار کنید که دیگر اعضای تیم دارند.
Docker بیشتر دربارهٔ فرایند استقرار (deployment) نیست، بلکه دربارهٔ ساخت محیط محلیای است که محیط عملیاتی را دقیقاً بازآفرینی کند. و این همان نقطهای است که Docker در آن میدرخشد.
اگر دوست دارید یاد بگیرید چگونه با Docker و Django برنامههای آمادهٔ محیط عملیاتی بسازید، کتاب Django for Professionals این موضوع را به شکل مفصل پوشش میدهد.
منبع (ترجمه با هوش مصنوعی)
#Django #Docker #وب_توسعه #برنامه_نویسی_پایتون #DevOps
@PhiloLearn