functastic
210 subscribers
185 photos
17 videos
5 files
106 links
روزمره‌های یک دواپس (جایگزین شده با هوش‌مصنوعی)

https://nullamix.ir
Download Telegram
#rest #api rules
امروز همکارم اومد بالا سر نفر به نفر اعضای تیم، و از همشون خواست که پست دخترش رو تو اینستا لایک کنن تا تو مسابقه سرای محلشون اول شه.
😁8
💔
👍1🍓1
حتماً لاگ‌های کانتینر رو در Stdout بنویس، نه در فایل لوکال.

در 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
همین الان فهمیدم که vim خودش یه آموزش لوکال تو ترمینال داره.
کافیه تو ترمینال بزنید:
vimtutor

#vim #linux
2❤1
🗿1
بگو که مردم ایران نژاده‌اند و سترگ
و بند را به تن آزاده‌شان خراشیدند
بگو که خیلِ دلیران اگرچه محرومند
به هیکلِ خفقانت برنج پاشیدند

مونا برزویی
❤6👎1🗿1
https://youtube.com/playlist?list=PLc3Yo0t2JUOMH139pNjs33PjgKmInLM8c&si=LrPys3keNXYQHV9t

محمد رشدی یه 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
پایپلاین‌های 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 را بر اساس 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
کتاب clean code خیلی وقت پیش خریده بودم ولی هیچوقت نخوندمش. احتمالا دیگه هم هیچوقت نخونمش. دیگه به چه دردی میخوره ولی دیگه قرار نیست code بزنیم 🚶‍♂️
از gpt پرسیدم کی جنگ میشه؟ میگه از ۱۳ آبان تا آخر آذر بیشترین احتمال جنگ وجود داره.
اگه درست بگه یعنی نظامی نویس‌های توییتر هم بیکار میشن؟
😁5
Forwarded from جادی | Jadi
امروز روز اکران فیلم
KDE: The Documentary
است. فیلمی مستند در مورد تاریخچه ۳۰ ساله این میزکار دنیای آزاد. تقریبا ۸ دقیقه دیگه پخشش از یوتیوب شروع می شه:

https://www.youtube.com/watch?v=1Vyzla9mx4g
❤2
میخوام هر چیزی که از openstack دارم یاد میگیرم رو بذارم داخل github.
چون رفرنس فارسی براش پیدا نکردم خودم. ممنون میشم شما هم مشارکت کنید.
❤7
یه چیزی پیدا کردم به اسم ostree
مثل 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
👍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
👍2❤1💯1
اومدم یه روز مسافرت، لفت ندید فردا فعالیت میکنم 🚶
😁6
چرا زمان ساخت در پایپ‌لاین‌های CI/CD شما ناگهان افزایش می‌یابد؟ مشکل اغلب از کش لایه‌های Image نیست، بلکه از ترتیب دستورات Dockerfile است.

در ساخت Container، Docker هر دستور را به عنوان یک لایه مستقل ذخیره می‌کند. اگر دستوری که مدام تغییر می‌کند (مثل کپی کردن کد منبع) قبل از نصب وابستگی‌ها قرار گیرد، هر بار که کد پروژه آپدیت شود، کش تمام لایه‌های بعدی باطل می‌شود. در نتیجه Runner مجبور می‌شود دوباره پکیج‌ها را دانلود و کامپایل کند. این رفتار در محیط‌های CI/CD که کش لوکال بین اجراها پاک می‌شود، زمان ساخت را به شدت افزایش می‌دهد.

ترتیب دستورات Dockerfile را بهینه کنید: دستوراتی که کمتر تغییر می‌کنند (نصب ابزارها و وابستگی‌ها) را در ابتدا و دستوراتی که مدام تغییر می‌کنند (کپی کد پروژه) را در انتها قرار دهید. با این کار، کش لایه‌ها در اجرای بعدی Pipeline حفظ شده و زمان ساخت به طور قابل توجهی کاهش می‌یابد.

#docker #cicd #devops