امروز همکارم اومد بالا سر نفر به نفر اعضای تیم، و از همشون خواست که پست دخترش رو تو اینستا لایک کنن تا تو مسابقه سرای محلشون اول شه.
😁8
حتماً لاگهای کانتینر رو در Stdout بنویس، نه در فایل لوکال.
در Docker و Kubernetes، کانتینرها اتمِ (Ephemeral) هستند. اگر اپلیکیشن لاگ رو داخل
اکشن امروز: یه چک سریع روی
#docker #kubernetes #logging
در Docker و Kubernetes، کانتینرها اتمِ (Ephemeral) هستند. اگر اپلیکیشن لاگ رو داخل
/var/log/app.log بنویسه، با ریستارت یا حذف container، اون لاگها برای همیشه از بین میرن. درایور لاگینگ پیشفرض Docker (json-file) و ابزارهایی مثل kubectl logs فقط خروجی stdout و stderr رو جمعآوری میکنن. نوشتن مستقیم در کنسول، مسیر رو برای Shipping به Loki، Elasticsearch یا Datadog هم هموار میکنه، بدون نیاز به Sidecar یا Agent اضافه روی نود.اکشن امروز: یه چک سریع روی
Dockerfile یا deployment.yaml بزن. مطمئن شو access_log و error_log (مثلا در Nginx) یا لاگر اپلیکیشن (Python logging.StreamHandler، Go os.Stdout) روی stdout/stderr ست شده، نه مسیر فایل.#docker #kubernetes #logging
2👍1🗿1
https://youtube.com/playlist?list=PLc3Yo0t2JUOMH139pNjs33PjgKmInLM8c&si=LrPys3keNXYQHV9t
محمد رشدی یه playlist خوب برای آموزش terraform برای محیط vcenter داره. امیدوارم یه روزی نگاش کنم.
#terraform #iaas #IaC #vcenter #vmware
محمد رشدی یه playlist خوب برای آموزش terraform برای محیط vcenter داره. امیدوارم یه روزی نگاش کنم.
#terraform #iaas #IaC #vcenter #vmware
اینم یه playlist دیگه برای برنامه نویسهای python. خیلی خودم خوشم میاد ازش. بهرام آقای لطف کرده و تمرینهای کتاب Classic Computer Science Problems in Python رو حل میکنه و توضیح میده.
https://youtube.com/playlist?list=PLMPe3FpCecJ9Qa3xQvI14rx-YvU_YmqYQ&si=EpzEL-I-WzGrVFUa
#python
https://youtube.com/playlist?list=PLMPe3FpCecJ9Qa3xQvI14rx-YvU_YmqYQ&si=EpzEL-I-WzGrVFUa
#python
پایپلاینهای CI/CD شما دوباره و دوباره dependencies را دانلود میکنند؟ مشکل معماری نیست، مشکل استراتژی Cache است.
در اکثر Runnerها، Cache بر اساس یک Key مشخص میشود. اگر از یک Key ثابت استفاده کنید، Cache هرگز آپدیت نمیشود و ممکن است از فایلهای قدیمی یا خراب استفاده کنید. اگر هم Key را کاملاً متغیر بگذارید (مثلاً بر اساس commit hash)، Cache هر بار خالی میشود و مزیتی ندارد. راه حل استاندارد، استفاده از Hash فایلهای قفل (مثل package-lock.json، go.sum یا Pipfile.lock) به عنوان بخش ثابت Key و تاریخ/ورژن به عنوان بخش فیلبک است. این کار تضمین میکند تا زمانی که وابستگیها تغییر نکردهاند، Cache معتبر بماند و به محض تغییر، بهدرستی Invalid شود.
در Pipeline خود، Cache Key را بر اساس
#cicd #docker #devops
در اکثر Runnerها، Cache بر اساس یک Key مشخص میشود. اگر از یک Key ثابت استفاده کنید، Cache هرگز آپدیت نمیشود و ممکن است از فایلهای قدیمی یا خراب استفاده کنید. اگر هم Key را کاملاً متغیر بگذارید (مثلاً بر اساس commit hash)، Cache هر بار خالی میشود و مزیتی ندارد. راه حل استاندارد، استفاده از Hash فایلهای قفل (مثل package-lock.json، go.sum یا Pipfile.lock) به عنوان بخش ثابت Key و تاریخ/ورژن به عنوان بخش فیلبک است. این کار تضمین میکند تا زمانی که وابستگیها تغییر نکردهاند، Cache معتبر بماند و به محض تغییر، بهدرستی Invalid شود.
در Pipeline خود، Cache Key را بر اساس
sha256sum یا md5 فایل lock وابستگیها بسازید و یک Key عمومیتر (مثلاً بر اساس زبان و ورژن) به عنوان fallback اضافه کنید. این کار زمان Build را بدون ریسک استفاده از Cache نامعتبر، بهطور قابلتوجهی کاهش میدهد.#cicd #docker #devops
❤1
این ریپو جالبه
https://github.com/multikernel/linux
ادعا میکنه بدون hypervisor میتونه چند linux kernel رو کنار هم روی یک host بالا بیاره.
اینم سایتشون هست:
https://multikernel.io/getting-started.html
#linux
https://github.com/multikernel/linux
ادعا میکنه بدون hypervisor میتونه چند linux kernel رو کنار هم روی یک host بالا بیاره.
اینم سایتشون هست:
https://multikernel.io/getting-started.html
#linux
کتاب clean code خیلی وقت پیش خریده بودم ولی هیچوقت نخوندمش. احتمالا دیگه هم هیچوقت نخونمش. دیگه به چه دردی میخوره ولی دیگه قرار نیست code بزنیم 🚶♂️
از gpt پرسیدم کی جنگ میشه؟ میگه از ۱۳ آبان تا آخر آذر بیشترین احتمال جنگ وجود داره.
اگه درست بگه یعنی نظامی نویسهای توییتر هم بیکار میشن؟
اگه درست بگه یعنی نظامی نویسهای توییتر هم بیکار میشن؟
😁5
Forwarded from جادی | Jadi
امروز روز اکران فیلم
KDE: The Documentary
است. فیلمی مستند در مورد تاریخچه ۳۰ ساله این میزکار دنیای آزاد. تقریبا ۸ دقیقه دیگه پخشش از یوتیوب شروع می شه:
https://www.youtube.com/watch?v=1Vyzla9mx4g
KDE: The Documentary
است. فیلمی مستند در مورد تاریخچه ۳۰ ساله این میزکار دنیای آزاد. تقریبا ۸ دقیقه دیگه پخشش از یوتیوب شروع می شه:
https://www.youtube.com/watch?v=1Vyzla9mx4g
YouTube
KDE: The Documentary — The Story of Free Software Underdogs
KDE: The Documentary tells the story of the pioneering open source community that gave computer users a free and open alternative to proprietary desktops like Windows.
The story starts in 1996, when Matthias Ettrich, a student at the University of Tübingen…
The story starts in 1996, when Matthias Ettrich, a student at the University of Tübingen…
❤2
میخوام هر چیزی که از openstack دارم یاد میگیرم رو بذارم داخل github.
چون رفرنس فارسی براش پیدا نکردم خودم. ممنون میشم شما هم مشارکت کنید.
چون رفرنس فارسی براش پیدا نکردم خودم. ممنون میشم شما هم مشارکت کنید.
❤7
یه چیزی پیدا کردم به اسم ostree
مثل git هستش ولی برای کل filesystem.
اینطوریه که میتونید باهاش تغییرات فایلها رو commit کنید. شاید بگید خب با git هم میشه. ولی اگه با git کل etc رو مثلا checkout کنید، انگار داری این مسیر رو copy میکنید ولی ostree چون برای فایل سیستم ساخته شده از hard linkها استفاده میکنه.
خب به چه کاری میاد؟
میتونید باهاش به راحتی بعد از updateهای سیستمعاملی rollback کنید.
با وجود ابزار
سیستمعاملهایی مثل fedora iot و rocky-ostree با همین ابزار دارن atomic update ارائه میدن. یعنی یا update به صورت کامل و درست انجام میشه و یا اگه وسط update سیستم به هر دلیلی crash کنه، میتونید با reboot خیلی راحت rollback کنید به state قبل update.
https://ostreedev.github.io/ostree/
#linux
مثل git هستش ولی برای کل filesystem.
اینطوریه که میتونید باهاش تغییرات فایلها رو commit کنید. شاید بگید خب با git هم میشه. ولی اگه با git کل etc رو مثلا checkout کنید، انگار داری این مسیر رو copy میکنید ولی ostree چون برای فایل سیستم ساخته شده از hard linkها استفاده میکنه.
خب به چه کاری میاد؟
میتونید باهاش به راحتی بعد از updateهای سیستمعاملی rollback کنید.
با وجود ابزار
rpm-ostree خیلی هم با توزیعهای rpmای integrate هستش.سیستمعاملهایی مثل fedora iot و rocky-ostree با همین ابزار دارن atomic update ارائه میدن. یعنی یا update به صورت کامل و درست انجام میشه و یا اگه وسط update سیستم به هر دلیلی crash کنه، میتونید با reboot خیلی راحت rollback کنید به state قبل update.
https://ostreedev.github.io/ostree/
#linux
ostreedev/ostree
libostree
ostree documentation
👍1
functastic
یه چیزی پیدا کردم به اسم ostree مثل git هستش ولی برای کل filesystem. اینطوریه که میتونید باهاش تغییرات فایلها رو commit کنید. شاید بگید خب با git هم میشه. ولی اگه با git کل etc رو مثلا checkout کنید، انگار داری این مسیر رو copy میکنید ولی ostree چون برای…
پروژهی starlingx هم اومده ostree رو روی debian پیادهسازی کرده و روش با kubernetes سرویس openstack ارائه میده.
وجود ostree کنار openstack برای rollback خیلی قابل توجهش کرده.
اگه علاقهمند بودید میتونید مطالعه کنید:
https://docs.starlingx.io/r/stx.12.0/introduction/functional_overview.html
وجود ostree کنار openstack برای rollback خیلی قابل توجهش کرده.
اگه علاقهمند بودید میتونید مطالعه کنید:
https://docs.starlingx.io/r/stx.12.0/introduction/functional_overview.html
👍2❤1💯1
چرا زمان ساخت در پایپلاینهای CI/CD شما ناگهان افزایش مییابد؟ مشکل اغلب از کش لایههای Image نیست، بلکه از ترتیب دستورات Dockerfile است.
در ساخت Container، Docker هر دستور را به عنوان یک لایه مستقل ذخیره میکند. اگر دستوری که مدام تغییر میکند (مثل کپی کردن کد منبع) قبل از نصب وابستگیها قرار گیرد، هر بار که کد پروژه آپدیت شود، کش تمام لایههای بعدی باطل میشود. در نتیجه Runner مجبور میشود دوباره پکیجها را دانلود و کامپایل کند. این رفتار در محیطهای CI/CD که کش لوکال بین اجراها پاک میشود، زمان ساخت را به شدت افزایش میدهد.
ترتیب دستورات Dockerfile را بهینه کنید: دستوراتی که کمتر تغییر میکنند (نصب ابزارها و وابستگیها) را در ابتدا و دستوراتی که مدام تغییر میکنند (کپی کد پروژه) را در انتها قرار دهید. با این کار، کش لایهها در اجرای بعدی Pipeline حفظ شده و زمان ساخت به طور قابل توجهی کاهش مییابد.
#docker #cicd #devops
در ساخت Container، Docker هر دستور را به عنوان یک لایه مستقل ذخیره میکند. اگر دستوری که مدام تغییر میکند (مثل کپی کردن کد منبع) قبل از نصب وابستگیها قرار گیرد، هر بار که کد پروژه آپدیت شود، کش تمام لایههای بعدی باطل میشود. در نتیجه Runner مجبور میشود دوباره پکیجها را دانلود و کامپایل کند. این رفتار در محیطهای CI/CD که کش لوکال بین اجراها پاک میشود، زمان ساخت را به شدت افزایش میدهد.
ترتیب دستورات Dockerfile را بهینه کنید: دستوراتی که کمتر تغییر میکنند (نصب ابزارها و وابستگیها) را در ابتدا و دستوراتی که مدام تغییر میکنند (کپی کد پروژه) را در انتها قرار دهید. با این کار، کش لایهها در اجرای بعدی Pipeline حفظ شده و زمان ساخت به طور قابل توجهی کاهش مییابد.
#docker #cicd #devops