<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Ali Baghery</title><link>https://virgool.ir/feed/@baghery.jone</link><description></description><language>fa</language><pubDate>2026-11-11 03:53:15</pubDate><image><url>https://files.virgool.ir/upload/users/12571/avatar/avatar.png</url><title>Ali Baghery</title><link>https://virgool.ir/@baghery.jone</link></image><item><title>بی قانونی یا میدان علیه قانون</title><link>https://virgool.ir/@baghery.jone/بی-قانونی-یا-میدان-علیه-قانون-pdnftzgo41fg</link><description>دنبال حمله موشکی شب گذشته، ۱۰ مهر ۱۴۰۳، سپاه پاسداران به بخش‌ها و مناطقی از کشور اسرائیل سازمان اطلاعات سپاه در اطلاعیه‌ای هشدار داده و اعلام کرده است که انتشار هر نوع محتوایی در حمایت از اسرائیل جرم است.بنابراین، هر نوع محتوا و فعالیت در فضای مجازی که مضمون چنین حمایتی را داشته باشد، رصد خواهد شد و اطلاعات و مشخصات صفحات و اشخاص منتشرکننده این مضامین در شبکه‌های اجتماعی پیگیری می‌شود.سپاه خودش قانون تعیین میکنه خودش پیگیری میکنه و خودش اجرا اگه این دیکتاتوری نیست آقای خامنه ای جیه؟</description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Wed, 02 Oct 2024 16:14:38 +0330</pubDate></item><item><title>ترفند دیباگ حرفه ای در کوبرنتیز</title><link>https://virgool.ir/@baghery.jone/ترفند-دیباگ-حرفه-ای-در-کوبرنتیز-eoefbuy2gggd</link><description>سلام بچه ها بعد یه مدت اومدم براتون روش دیباگ حرفه ای که فقط سنیورها ازش مطلع هستند رو باهاتون به اشتراک بزارمدواپس کارها و برنامه نویس ها حتما زمان هایی براشون پیش اومده که برنامه شون درست کار نمی کنه و میخوان به کانتینرشون وصل بشن و اونو دیباگ کنند و مشکل رو پیدا کنندخب راحت ترین کار اینه که بیایم کامند زیر رو بزنیم وصل بشیم به کانتینر و BASH اونkubectl exec -it podname -c containername -- bashخب چقدر ساده به به :) اما چند تا مشکل اگه ما از distroless‌ها استفاده کرده باشیم یا اینکه کانتینر ما Non root باشه و یا اینکه نخوایم ریسک نصب برنامه روی یک کانتینر درحال اجرا رو به جون بخریم چی؟ خود کوبرنتیز میاد کامند kubectl debug رو معرفی میکنه. این ابزار میاد یک کانتینر از ایمیج دیباگ شما کنار کانتینر مدنظر میسازه که بهش ephermal Container‌میگن و منابع رو باهاش شیر میکنه مثلا شما میخواین فرآیند های سیستمی رو نگاه کنید با ابزار مثلا top که نیاز داره به دسترسی روت میان دستور زیر رو میزنیدkubectl debug -it --container=debug-container --image=busybox --target=&lt;pod&gt; &lt;Container&gt;بعدش هم شما با دسترسی روت که به کانتینر دارین دستور top‌رو میزنید و پروسس ها رو مشاهده میکنید و ادامه دیباگ خودتون رو انجام میدین. البته این ابزار یه ویژگی باحال دیگه هم داره که میتونید باهاش میتونید از پاد خودتون کپی کنید تغییرات توش بدین دسترسی هاش رو تغییر بدین و خیلی کارهای باحال دیگه kubectl debug pod/myapp-pod -it --copy-to=myapp-debug --container=myapp-container --image=busyboxالبته مراقب منابع کلاسترتون هم باشین </description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Mon, 29 Apr 2024 16:18:37 +0330</pubDate></item><item><title>بیخیال Elastic شو و به LOKI‌سلام کن</title><link>https://virgool.ir/@baghery.jone/بیخیال-elastic-شو-و-به-loki-سلام-کن-hbvwqmxc9bv6</link><description>سلام دوستان بعد از یک سال مزخرف و ننوشتن مطالب فنی Devops و امنیت امروز میخوام دلایلی رو که ما تو شرکتمون بیخیال Elastic شدیم برای Log Managment و مهاجرت کردیم به Loki‌رو بگمقبلش خوشحال میشم منو توی لینکدین اد کنید ممنونسیستم قبلی ما از یه مدل EFKکه شامل Elasticsearch,Fluentd, kibana, Flunetbit است تشکیل شده بود.این معماری سیستم ماست این معماری تقریبا تا پارسال کار میکرد و همه چیزش هم اکی بود اما یه چندتا مشکل برامون ایجاد کرد۱- پیچیدگی: تعداد ماژول هایی که برای این کار استفاده میکردیم و اینکه کدوم ها رو باید تعدادش رو زیاد کنیم و نگهداری هر کدوم از این ها با توجه به تعداد کم پرسنل Devops‌مون برامون مشکلاتی ایجاد میکرد۲- هزینه: برای یک مدیریت لاگ این سرویس ها به نظرمون منابع زیادی مصرف میکردند۳- بعضی اوقات که لاگ ها زیاد میشد ما بعضی لاگ ها رو از دست میدادیم (البته برای این مورد مجبور شدیم به معماری بالا کافکا رو هم اضافه کنیم که خودش یه لایه پیچیدگی به سیستمون اضافه کرد :) )راه حلی که به ذهنمون رسید و توی این یک سال ازش استفاده کردیم استفاده از استک PLG بود (ما اکثر سرویس هامون روی Kubernetes .معماری Plg‌مورد استفاده مامزیت هایی که این معماری برای ما داشت به این صورته۱- تمام معماری بر روی کلاستر های کوبرنتیز پیاده سازی شد و مدیریت این موارد رو به اپراتور کوبرنتیز سپردیم۲-  روی سیستم ما اتو اسکیل رو بالا آوردیم که روی لود بالا خودش اتوماتیک زیاد بشه۳- این سیستم با سیستم مانیتورینگ ما یکی بودش در نتیجه فقط کافی بود که یک سیستم رو پابلیش کنیم درنتیجه راحت تر بودیم باهاشپیشنهاد میکنم اگه سیستم تون کوبرنتیز هست این سیستم رو استفاده کنید</description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Mon, 23 Oct 2023 14:58:46 +0330</pubDate></item><item><title>ویرگول و سانسور</title><link>https://virgool.ir/@baghery.jone/ویرگول-و-سانسور-t1uddzqvcas8</link><description>خاک تو سر ویرگول که اگه کسی خلاف سیاست های این حکومت با احترام هم حتی حرف بزنه پستش رو سریعا از صفحه ی اصلی برمیدارند که کسی نتونه ببینهاین آخرین پستم بود خدا نگهدار همه ی دوستان </description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Wed, 11 Oct 2023 13:33:16 +0330</pubDate></item><item><title>لو رفتن بررسی چت ها در بله</title><link>https://virgool.ir/@baghery.jone/لو-رفتن-بررسی-چت-ها-در-بله-n9gze7zlzatm</link><description>یه زمانی نوشتم یکی از دلایلی که نباید از پیام رسان های ایرانی استفاده کرد الزام نبودن قانون حفاظت از اطلاعات کاربران است.یه سری همین ویرگول بدون هیچ نامه ای و فقط با ارسال ایمیل اطلاعات کاربرانش رو فرستاددر صورتیکه بدون حکم قضایی ارسال اطلاعات جرمه ولی شما فکر کن خودشون به خودشون اعلام جرم کنندحالا هم بتازگی لو رفته که پیام رسان بله به تمامی چت های شما دسترسی دارند و اونا رو مشاهده می‌کنهیعنی یه آدم بی کار گذاشتن و پیام ها رو میخونه میگی دروغه بیا این عکس سیستم یکی از نیروهای بلهحححم</description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Fri, 21 Jul 2023 23:18:09 +0330</pubDate></item><item><title>امنیت پایپلاین CICDبا Kyvernoو sigstore</title><link>https://virgool.ir/@baghery.jone/امنیت-پایپلاین-cicdبا-kyvernoو-sigstore-dhuag1pyrxjb</link><description>امروزه بیش از پیش نرم افزارها بر روی محیط کانتینر در حال Deployشدن هستند در نتیجه نیازهای امنیتی جدیدی نیز با خود به همراه خواهند آورد. اولین رکن در محیط های کانتینر بیس ایمیج های ساخته شده است و اطمینان از اینکه این ایمیج ها سالم و بدون تغییر هستند. متاسفانه در محیط های ماکروسرویس تعییرات به سرعت صورت میگیرد در بعضی محیط ها شاید هر ۱۰ دقیقه یک Deploy صورت بپذیرد درنتیجه این بررسی ها و امضاها باید به صورت خودکار صورت پذیرد.یکی از بهترین ابزارها برای Policy as Code در محیط کوبرنتیز Kyvernoاست. شما با استفاده از این ابزار میتوانید هر نوع تغییر و یا ایجاد Resource در کوبرنتیز خود را مدیریت نمایید.در نسخه 1.9.0 شامل چند فیچر هست که Validation, Mutate, Generate, Cleanup, Verify Image است. که ما در این قسمت با Verify Image اون کار داریم. بریم داخل کار :)Pipeline Example With Cosign and kyvernoخب اول باید Cosignرو نصب کنید حالا روی هر محیطی که مدنظرتون هست که مطابق این لینک نصب کنید. یک جفت کلید باید اول ایجاد کنید.cosign generate-key-pair این دستور ۲ تا کلید cosign.keyو cosign.pub رو ایجاد میکنه که باید به صورت امن جایی نگهداری کنید به نظرم بهتره از یه Key Managmentمثل hashicorp vaultاستفاده کنید . بعد از اینکه ایمیج رو ساختین باید توی Repoاون رو آپلود کنید. برای امضا کردن ایمیج از دستور زیر استفاده کنید.cosign sign --key cosign.key --allow-insecure-registry &lt;IMAGE_PRIVATE&gt;ما الان نیاز داریم که مطمین بشیم فقط و فقط ایمیج هایی که Sign شده اند بتونند در کلاسترمون Deploy بشن. اینجا ما از kyvernoاستفاده میکنیم. یک پالیسی به صورت زیر توی Kyverno می سازیم.apiVersion: kyverno.io/v1&#xA;kind: ClusterPolicy&#xA;metadata:&#xA;  name: check-image&#xA;spec:&#xA;  validationFailureAction: Enforce&#xA;  background: false&#xA;  webhookTimeoutSeconds: 30&#xA;  failurePolicy: Fail&#xA;  rules:&#xA;    - name: check-image&#xA;      match:&#xA;        any:&#xA;        - resources:&#xA;            kinds:&#xA;              - Pod&#xA;      verifyImages:&#xA;      - image: &lt;IMAGE_PRIVATE&gt;&#xA;        key: |-&#xA;          &lt;اینجا پابلیک کی خودتون رو قرار بدین&gt;این پالیسی رو ما به صورت ClusterPolicyنوشتیم که بر روی کل کلاستر اعمال میشه شما میتونید فقط روی NameSpaceهای خاصی اعمالش کنید مشکلی نداره</description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Tue, 04 Apr 2023 14:29:12 +0330</pubDate></item><item><title>Observability in kubernetes</title><link>https://virgool.ir/@baghery.jone/observability-in-kubernetes-xpvz1svgcwth</link><description>توی برنامه های میکروسرویس پیدا کردن ارتباط بین سرویس ها و اینکه کدام سرویس ها با کدام سرویس ها ارتباط داشته چقدر ترافیک ارسال کرده ترفیک ورودی یا خروجی هر پاد به کجاها بوده در محیط های پروداکشن یکی از موارد حیاتی است.kiali istioچندین راه حل برای این مورد موجود است:۱- استفاده از Mesh سرویس مثل Istio و فعال کردن متریک پرومتیوس و گرافانا۲- استفاده از calico و Network visibilityکه فقط درنسخه Enteprise وجود دارد۳ استفاده از Hubbleدر cilium(حدود ۲۰ تا ۲۵ درصد از پرفورمنس کوبرنتیز رو کاهش میده)۴- استفاده از Netflowدر کوبرنتیز که برای مورد ما فقط ۱ کور پردازنده مصرف کرد و از نظر مصرف منابع بسیار بهینه است.Cilium Hubbleبرنامه Netflow یک پروتکل مانیتورینگ برای شبکه است که توسط شرکت سیسکو سیستم طراحی شد و الان به صورت یک استاندارد درآمده است که شرکت ها ابزارهای متنوعی برای آن طراحی کرده اند. برنامه ipt-netflow در سطح کرنل کار میکند و میتواند ترافیک زیادی را هندل کند (هم pps, BPS) بدون اینکه منابع زیادی را مصرف کند. این کار به خاطر پروتکل Netflowاست که فقط اطلاعات هدر بسته ها را آنالیز میکند اتفاق می افتد.بنابراین هیچ دیتایی رد وبدل یا آنالیز نمی شود. فقط این برنامه رو روی همه ی نود هاتون باید نصب کنید و تنظیمات آن‌را انجام دهید.برای کالکتور Netflowهم به نظرم از زبیکس استفاده کنید و اونو به گرافانا  متصل کنید.</description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Wed, 15 Mar 2023 16:47:45 +0330</pubDate></item><item><title>نحوه ی  ایراد کارایی برنامه ها در کوبرنتیز با Profiling</title><link>https://virgool.ir/@baghery.jone/نحوه-ی-ایراد-کارایی-برنامه-ها-در-کوبرنتیز-با-profiling-j48cnqqb5ckk</link><description>خیلی از برنامه ها در زمان پروداکت با مشکل کارایی مواجه میشن مخصوصا زمانی که کاربران اون ها زیاد میشه و پیدا کردن این کاهش کارایی یکی از سخت ترین کارهاست. حالا فرض کنید که برنامه ها روی کوبرنتیز و به صورت داکر هم پیاده سازی شده باشن که مشکلات رو چند برابر میکنه.ابزار Profiling یه وسیله بسیار کاربردی برای زمانی که شما نیاز دارین برنامه رو آنالیز کنید و باتلنک های برنامه که باعث کاهش کارایی میشن رو پیدا کنید که این کار رو با ساخت چارت های گرافیکی Flame نشون میدهFlame Graphمحور Y stack deep و محور X نیز نمونه ها رو نشون میده هر مستطیل یک تابع است که نشون دهنده میزان زمان اجرای برنامه است توابعی که زمان زیادی رو صرف میکنند مستطیل بزرگتری هم خواهند داشت.مشکلات پروفایل در کوبرنتیز:۱- سرعت اجرای برنامه رو در محیط پروداکت کم میکنه۲- نیازمند تغییر برنامه است.وقتی داریم برنامه رو روی کوبرنتیز اجرا میکنیم مشکلات بیشتر هم میشه مثل تغییر در ایمیج کانتینر برای فعال کردن پروفایل یا از دست دادن برخی اشکالات به خاطر ریستارت پادبرای رفع این اشکالات ما از  kubectl Flameاستفاده میکنیم که یک پلاگین روی kubectlهست. مزیت این پلاگین اینه که بدون نیاز به تغییری در ساختار برنامه  میتونیم پروفایلینگ از برنامه هامون داشته باشیم. kubectl flame app-deployment -t 1m -f /tmp/flamegraph.svg --alpine</description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Wed, 01 Feb 2023 19:43:38 +0330</pubDate></item><item><title>چرا به هیچ کدوم از برنامه های وطنی مخصوصا ویرگول اعتماد نداریم</title><link>https://virgool.ir/@baghery.jone/چرا-به-هیچ-کدوم-از-برنامه-های-وطنی-مخصوصا-ویرگول-اعتماد-نداریم-hpzjqjzf4qe3</link><description>با سلام خیلی سریع میخوام برم سر اصل مطلبتوی دنیای امروزی داشتن اطلاعات برای دولت ها مهمه ولی داشتن اعتماد برای اکوسیستم نرم افزاری مهم تربرای کاربران هم اعتماد و در دسترس پذیری رکن اساسی یک برنامه برای موفقیت حالا چرا ما ایرانی ها نباید از برنامه های وطنی مخصوصا پیام رسان ها یا ویرگول استفاده کنیم تصویر زیر رو ببینیدارسال اطلاعات کاربران فقط با استفاده از ایمیلچون این شرکت ها خودشون رو موظف به حفاظت از اطلاعات کاربران نمیکنندچون که جایی که باید از اطلاعات ما صیانت کنند و نیاز به داشتن حکم قضایی کنند راحت اطلاعات ما رو می فروشند. این شرکت ها شرکت های غیرقابل اعتماد و دزدی هستند</description><category>Ali Baghery</category><author>Ali Baghery</author><pubDate>Sun, 06 Nov 2022 14:33:18 +0330</pubDate></item></channel></rss>