دوستان این کتاب دارای مطالبی هست که توی منابع فارسی پیدا نمیشه..
حتی اگر جنگو رو فول هستین بازم نیم نگاهی بهش بندازید🔥
@Syntax_fa
حتی اگر جنگو رو فول هستین بازم نیم نگاهی بهش بندازید🔥
@Syntax_fa
🔥7👍1
ران کردن پرایوت داکر رجیستری بصورت سلف هاست خیلی ساده و راحت:
https://github.com/syntaxfa/docker-registry
#docker
@Syntax_fa
https://github.com/syntaxfa/docker-registry
#docker
@Syntax_fa
🔥9👍2❤1
🔍 ا- Forward Proxy و Reverse Proxy چیست؟
💡 Forward Proxy (پروکسی فوروارد)
ا. Forward Proxy، به زبان ساده، یک واسطه بین کاربر (Client) و اینترنت است. وقتی شما از یک Forward Proxy استفاده میکنید، در واقع درخواستهای خودتون رو از طریق این سرور واسطه به مقصد (سرور اصلی) میفرستید.
🔑 ویژگیها و کاربردها:
1. ناشناسسازی (Anonymity): IP اصلی شما مخفی میشه و سرور مقصد فقط IP پروکسی رو میبینه.
2. دور زدن محدودیتها: برای دسترسی به سایتهایی که در منطقهی شما فیلتر یا محدود هستن، میتونید از Forward Proxy استفاده کنید.
3. کشینگ (Caching): این پروکسی میتونه درخواستهای تکراری رو کش کنه و سرعت دسترسی رو افزایش بده.
4. کنترل دسترسی: مدیران شبکه از Forward Proxy برای محدود کردن دسترسی به اینترنت یا نظارت بر ترافیک استفاده میکنن.
📊 نحوه کار Forward Proxy:
- کاربر درخواست خودش رو به پروکسی میده.
- پروکسی درخواست رو به سرور مقصد میفرسته.
- سرور مقصد پاسخ رو به پروکسی میده و پروکسی پاسخ رو به کاربر برمیگردونه.
> مثال: فرض کنید در یک سازمان هستید و میخواهید به سایتی دسترسی داشته باشید. درخواست شما از طریق سرور Forward Proxy سازمان عبور میکنه.
💡 Reverse Proxy (پروکسی معکوس)
دقیقاً برعکس Forward Proxy عمل میکنه. در اینجا سرور Reverse Proxy یک واسطه بین کاربر (Client) و یک یا چند سرور داخلی (Backend Servers) است.
🔑 ویژگیها و کاربردها:
1. افزایش امنیت: سرورهای بکاند پشت Reverse Proxy پنهان میشن و از دید کاربران مخفی هستن.
2. توزیع بار (Load Balancing): درخواستها بین چندین سرور توزیع میشن تا ترافیک بهینه بشه.
3. کشینگ: Reverse Proxy میتونه محتوای استاتیک رو کش کنه و فشار روی سرورهای اصلی رو کاهش بده.
4. SSL Termination: رمزنگاری و رمزگشایی SSL میتونه توسط Reverse Proxy انجام بشه، که بار پردازشی سرورهای اصلی رو کم میکنه.
📊 نحوه کار Reverse Proxy:
- کاربر درخواست خودش رو به Reverse Proxy میفرسته.
- Reverse Proxy درخواست رو به یکی از سرورهای داخلی هدایت میکنه.
- سرور داخلی پاسخ رو به Reverse Proxy میده و سپس Proxy جواب رو به کاربر برمیگردونه.
🛠 کاربردهای عملی
- Forward Proxy:
استفاده از VPN یا سرویسهای پروکسی عمومی برای دسترسی به سایتهای محدود.
- Reverse Proxy:
استفاده از Nginx یا HAProxy برای توزیع بار و افزایش امنیت در سرورهای وب.
📌 اگر این پست براتون مفید بود، حتماً با دوستاتون به اشتراک بذارید! 😊
#proxy
@Syntax_fa
💡 Forward Proxy (پروکسی فوروارد)
ا. Forward Proxy، به زبان ساده، یک واسطه بین کاربر (Client) و اینترنت است. وقتی شما از یک Forward Proxy استفاده میکنید، در واقع درخواستهای خودتون رو از طریق این سرور واسطه به مقصد (سرور اصلی) میفرستید.
🔑 ویژگیها و کاربردها:
1. ناشناسسازی (Anonymity): IP اصلی شما مخفی میشه و سرور مقصد فقط IP پروکسی رو میبینه.
2. دور زدن محدودیتها: برای دسترسی به سایتهایی که در منطقهی شما فیلتر یا محدود هستن، میتونید از Forward Proxy استفاده کنید.
3. کشینگ (Caching): این پروکسی میتونه درخواستهای تکراری رو کش کنه و سرعت دسترسی رو افزایش بده.
4. کنترل دسترسی: مدیران شبکه از Forward Proxy برای محدود کردن دسترسی به اینترنت یا نظارت بر ترافیک استفاده میکنن.
📊 نحوه کار Forward Proxy:
- کاربر درخواست خودش رو به پروکسی میده.
- پروکسی درخواست رو به سرور مقصد میفرسته.
- سرور مقصد پاسخ رو به پروکسی میده و پروکسی پاسخ رو به کاربر برمیگردونه.
> مثال: فرض کنید در یک سازمان هستید و میخواهید به سایتی دسترسی داشته باشید. درخواست شما از طریق سرور Forward Proxy سازمان عبور میکنه.
💡 Reverse Proxy (پروکسی معکوس)
دقیقاً برعکس Forward Proxy عمل میکنه. در اینجا سرور Reverse Proxy یک واسطه بین کاربر (Client) و یک یا چند سرور داخلی (Backend Servers) است.
🔑 ویژگیها و کاربردها:
1. افزایش امنیت: سرورهای بکاند پشت Reverse Proxy پنهان میشن و از دید کاربران مخفی هستن.
2. توزیع بار (Load Balancing): درخواستها بین چندین سرور توزیع میشن تا ترافیک بهینه بشه.
3. کشینگ: Reverse Proxy میتونه محتوای استاتیک رو کش کنه و فشار روی سرورهای اصلی رو کاهش بده.
4. SSL Termination: رمزنگاری و رمزگشایی SSL میتونه توسط Reverse Proxy انجام بشه، که بار پردازشی سرورهای اصلی رو کم میکنه.
📊 نحوه کار Reverse Proxy:
- کاربر درخواست خودش رو به Reverse Proxy میفرسته.
- Reverse Proxy درخواست رو به یکی از سرورهای داخلی هدایت میکنه.
- سرور داخلی پاسخ رو به Reverse Proxy میده و سپس Proxy جواب رو به کاربر برمیگردونه.
🛠 کاربردهای عملی
- Forward Proxy:
استفاده از VPN یا سرویسهای پروکسی عمومی برای دسترسی به سایتهای محدود.
- Reverse Proxy:
استفاده از Nginx یا HAProxy برای توزیع بار و افزایش امنیت در سرورهای وب.
📌 اگر این پست براتون مفید بود، حتماً با دوستاتون به اشتراک بذارید! 😊
#proxy
@Syntax_fa
👍13🔥5
معرفی پکیج `axel`
پکیج
ویژگیهای کلیدی `axel`:
1. چندرشتهای:
2. پشتیبانی از پروتکلهای مختلف:
3. قابلیت ادامه دانلود: اگر دانلود به هر دلیلی متوقف شود،
4. سازگاری با اسکریپتها: بهعنوان یک ابزار خط فرمان،
5. سبک و سریع:
نصب axel در توزیعهای مبتنی بر Debian (مانند اوبونتو):
نحوه استفاده از
اول axel —help رو میزنیم تا راهنمایی پکیج رو ببینیم.
اپشن های مختلفی داره مثل:
-s (Specify maximum speed (bytes per second))
حداکثر سرعت دانلود بر حسب بایت
-n (Specify maximum number of connections)
تعداد ترد ها
برای دانلود یک فایل با استفاده از
#axel
@Syntax_fa
پکیج
axel یک ابزار کامند لاینی برای دانلود فایلها از اینترنت است. این ابزار با استفاده از تکنیکهای چندرشتهای (multi-threading) و تقسیم فایل به بخشهای کوچکتر، میتواند سرعت دانلود را بهبود بخشد.ویژگیهای کلیدی `axel`:
1. چندرشتهای:
axel میتواند یک فایل را به چندین بخش تقسیم کند و هر بخش را بهطور همزمان دانلود کند.2. پشتیبانی از پروتکلهای مختلف:
axel از پروتکلهای HTTP, HTTPS و FTP پشتیبانی میکند.3. قابلیت ادامه دانلود: اگر دانلود به هر دلیلی متوقف شود،
axel میتواند دانلود را از نقطهای که متوقف شده ادامه دهد.4. سازگاری با اسکریپتها: بهعنوان یک ابزار خط فرمان،
axel به راحتی میتواند در اسکریپتها و اتوماسیونها استفاده شود.5. سبک و سریع:
axel بهطور کلی سبکتر و سریعتر از برخی دیگر از ابزارهای دانلود است.نصب axel در توزیعهای مبتنی بر Debian (مانند اوبونتو):
sudo apt-get update
sudo apt-get install axel
نحوه استفاده از
axelاول axel —help رو میزنیم تا راهنمایی پکیج رو ببینیم.
اپشن های مختلفی داره مثل:
-s (Specify maximum speed (bytes per second))
حداکثر سرعت دانلود بر حسب بایت
-n (Specify maximum number of connections)
تعداد ترد ها
برای دانلود یک فایل با استفاده از
axel با پنج ترد میتوانید از دستور زیر استفاده کنید:axel -n 5 <URL> .
#axel
@Syntax_fa
👍12
استفاده از دستور chattr در لینوکس
اگر شما مدیر یک سیستم لینوکسی هستید که چندین کاربر از آن استفاده میکنند، احتمالاً یکی از چالشهای شما مربوط به استفاده از فایلهای مشترک و ویرایش ناخواسته و حذف تصادفی آنهاست. فایلها در لینوکس دارای ویژگیهایی مانند مجوزها، محتوای خواندنی/نوشتنی و غیره هستند که امنیت و کنترل فایلها را فراهم میکنند.
لینوکس از ابزارهای قدرتمندی برای مدیریت بهینه فایلها پشتیبانی میکند که ابزار خط فرمان chattr یکی از آنهاست. chattr (تغییر ویژگی) یک ابزار خط فرمان همهکاره در لینوکس است که برای تغییر ویژگیهای فایل در سطح سیستم فایل استفاده میشود. این ابزار به کاربر اجازه میدهد تا ویژگیهای فایلها را در سطح سیستم فایل تنظیم کند که تغییرناپذیر است؛ بنابراین، مدیران سیستم لینوکس میتوانند از دستور chattr برای جلوگیری از تغییر یا حذف فایلهای ضروری در سیستمهای فایل مانند ext2، ext3، ext4 یا XFS استفاده کنند و امنیت و کنترل بیشتری برای فایلهای مهم فراهم کنند.
چگونه ویژگیهای تنظیم شده برای یک فایل را بررسی کنیم؟
برای تنظیم ویژگیهای یک فایل و تغییرناپذیر کردن ویژگیهای فایل در لینوکس، بهتر است ابتدا ویژگیهای از پیش تنظیم شده برای فایلهای مبتنی بر سیستم فایل در دایرکتوری فعلی را بررسی کنید؛ برای این منظور از دستور زیر استفاده کنید:
lsattr
خروجی:
خطوط حاوی توالیهای خط تیره نشاندهنده ویژگیهایی هستند که برای یک فایل تنظیم شدهاند. این خروجی به معنای تنظیم ویژگی e (extents) برای فایلهاست. این نشان میدهد که inodeهای سیستم فایل از extents استفاده میکنند تا به کل فایل روی هارد دیسک اشاره کنند.
چگونه از دستور chattr در لینوکس استفاده کنیم؟
دستور chattr در لینوکس به شما اجازه میدهد تا ویژگی فایلها و دایرکتوریها را تغییر دهید تا تغییرناپذیر شوند و هیچ کس دیگری، حتی کاربر root، نتواند فایلها را در سیستم فایل تغییر دهد. در ادامه نحوه استفاده از دستور chattr برای تغییرناپذیر کردن فایلها و دایرکتوریها را آموزش خواهیم داد.
ویژگیهای رایج مورد استفاده با دستور chattr:
1. بدون کنترل دسترسی (A): کنترل و دسترسی به فایل را غیرفعال میکند و برای مدیریت ویژگیهای دسترسی جداگانه استفاده میشود. همچنین از بهروزرسانی رکورد زمان دسترسی جلوگیری میکند.
2. فقط-افزودنی (a): تنظیم a برای یک فایل از حذف و هرگونه تغییر جلوگیری میکند و نوشتن را فقط در حالت افزودن مجاز میکند. این ویژگی معمولاً برای فایلهای لاگ استفاده میشود.
3. فشردهسازی (c): فایل را فشرده میکند.
4. بدون پشتیبانگیری (d): فایلی که ویژگی d برای آن تنظیم شده در پشتیبانگیری گنجانده نمیشود.
5. بهروزرسانی همزمان دایرکتوری (D): همه تغییرات در فایل را به طور همزمان روی هارد دیسک بهروزرسانی میکند.
6. فرمت extent (e): این ویژگی سیستم فایل را طوری تنظیم میکند که از extents برای مدیریت فایلهای بزرگ استفاده کند.
7. فشردهسازی (E): فایل را بر اساس الگوریتم خاصی فشرده میکند.
8. ژورنالسازی (j): ژورنالسازی را برای فایل فعال یا غیرفعال میکند.
9. تغییرناپذیر (i): ویژگیهای فایل مانند نام، حذف، ایجاد لینک و قابلیت اجرا و نوشتن را تغییرناپذیر میکند.
10. حذف امن (S): با تنظیم این ویژگی، هنگام حذف فایل، بلوکهای داده با صفر بازنویسی میشوند.
11. حذف فایل با کپی (u): وقتی ویژگی u تنظیم شود، هنگام حذف فایل یک کپی ایجاد میشود.
نحو پایه chattr:
عملگرها:
+ (تنظیم): برای اعمال ویژگی مورد نظر
- (حذف): برای حذف ویژگیها
= (فقط تنظیم): ویژگی مشخص شده را تنظیم میکند و ویژگیهای موجود را حفظ میکند
تنظیم فایل به صورت تغییرناپذیر:
مثال:
غیرفعال کردن ایجاد حساب کاربری با تغییرناپذیر کردن فایل:
حذف ویژگی تغییرناپذیر از فایل:
تنظیم محدودیتها در دایرکتوری:
تنظیم ویژگی فقط-افزودنی برای جلوگیری از حذف یا تغییر:
Source
#linux
@Syntax_fa
اگر شما مدیر یک سیستم لینوکسی هستید که چندین کاربر از آن استفاده میکنند، احتمالاً یکی از چالشهای شما مربوط به استفاده از فایلهای مشترک و ویرایش ناخواسته و حذف تصادفی آنهاست. فایلها در لینوکس دارای ویژگیهایی مانند مجوزها، محتوای خواندنی/نوشتنی و غیره هستند که امنیت و کنترل فایلها را فراهم میکنند.
لینوکس از ابزارهای قدرتمندی برای مدیریت بهینه فایلها پشتیبانی میکند که ابزار خط فرمان chattr یکی از آنهاست. chattr (تغییر ویژگی) یک ابزار خط فرمان همهکاره در لینوکس است که برای تغییر ویژگیهای فایل در سطح سیستم فایل استفاده میشود. این ابزار به کاربر اجازه میدهد تا ویژگیهای فایلها را در سطح سیستم فایل تنظیم کند که تغییرناپذیر است؛ بنابراین، مدیران سیستم لینوکس میتوانند از دستور chattr برای جلوگیری از تغییر یا حذف فایلهای ضروری در سیستمهای فایل مانند ext2، ext3، ext4 یا XFS استفاده کنند و امنیت و کنترل بیشتری برای فایلهای مهم فراهم کنند.
چگونه ویژگیهای تنظیم شده برای یک فایل را بررسی کنیم؟
برای تنظیم ویژگیهای یک فایل و تغییرناپذیر کردن ویژگیهای فایل در لینوکس، بهتر است ابتدا ویژگیهای از پیش تنظیم شده برای فایلهای مبتنی بر سیستم فایل در دایرکتوری فعلی را بررسی کنید؛ برای این منظور از دستور زیر استفاده کنید:
lsattr
خروجی:
----------------------e----------- ./writer-doc.odt
----------------------e-----------./opera-app.c
----------------------e-----------./opera-app
----------------------e-----------./text-file.txt
----------------------e-----------./bash-noscript.sh
----------------------e-----------./image-file.jpg
خطوط حاوی توالیهای خط تیره نشاندهنده ویژگیهایی هستند که برای یک فایل تنظیم شدهاند. این خروجی به معنای تنظیم ویژگی e (extents) برای فایلهاست. این نشان میدهد که inodeهای سیستم فایل از extents استفاده میکنند تا به کل فایل روی هارد دیسک اشاره کنند.
چگونه از دستور chattr در لینوکس استفاده کنیم؟
دستور chattr در لینوکس به شما اجازه میدهد تا ویژگی فایلها و دایرکتوریها را تغییر دهید تا تغییرناپذیر شوند و هیچ کس دیگری، حتی کاربر root، نتواند فایلها را در سیستم فایل تغییر دهد. در ادامه نحوه استفاده از دستور chattr برای تغییرناپذیر کردن فایلها و دایرکتوریها را آموزش خواهیم داد.
ویژگیهای رایج مورد استفاده با دستور chattr:
1. بدون کنترل دسترسی (A): کنترل و دسترسی به فایل را غیرفعال میکند و برای مدیریت ویژگیهای دسترسی جداگانه استفاده میشود. همچنین از بهروزرسانی رکورد زمان دسترسی جلوگیری میکند.
2. فقط-افزودنی (a): تنظیم a برای یک فایل از حذف و هرگونه تغییر جلوگیری میکند و نوشتن را فقط در حالت افزودن مجاز میکند. این ویژگی معمولاً برای فایلهای لاگ استفاده میشود.
3. فشردهسازی (c): فایل را فشرده میکند.
4. بدون پشتیبانگیری (d): فایلی که ویژگی d برای آن تنظیم شده در پشتیبانگیری گنجانده نمیشود.
5. بهروزرسانی همزمان دایرکتوری (D): همه تغییرات در فایل را به طور همزمان روی هارد دیسک بهروزرسانی میکند.
6. فرمت extent (e): این ویژگی سیستم فایل را طوری تنظیم میکند که از extents برای مدیریت فایلهای بزرگ استفاده کند.
7. فشردهسازی (E): فایل را بر اساس الگوریتم خاصی فشرده میکند.
8. ژورنالسازی (j): ژورنالسازی را برای فایل فعال یا غیرفعال میکند.
9. تغییرناپذیر (i): ویژگیهای فایل مانند نام، حذف، ایجاد لینک و قابلیت اجرا و نوشتن را تغییرناپذیر میکند.
10. حذف امن (S): با تنظیم این ویژگی، هنگام حذف فایل، بلوکهای داده با صفر بازنویسی میشوند.
11. حذف فایل با کپی (u): وقتی ویژگی u تنظیم شود، هنگام حذف فایل یک کپی ایجاد میشود.
نحو پایه chattr:
chattr [operator] [flags] [filename]
عملگرها:
+ (تنظیم): برای اعمال ویژگی مورد نظر
- (حذف): برای حذف ویژگیها
= (فقط تنظیم): ویژگی مشخص شده را تنظیم میکند و ویژگیهای موجود را حفظ میکند
تنظیم فایل به صورت تغییرناپذیر:
sudo chattr +i filename
مثال:
sudo chattr +i testfile.txt
rm testfile.txt
rm: cannot remove 'testfile.txt' : Operation not permitted
غیرفعال کردن ایجاد حساب کاربری با تغییرناپذیر کردن فایل:
sudo chattr +i /etc/passwd
sudo chattr +i /etc/shadow
حذف ویژگی تغییرناپذیر از فایل:
sudo chattr -i filename
تنظیم محدودیتها در دایرکتوری:
sudo chattr -R +i ./mydir/
تنظیم ویژگی فقط-افزودنی برای جلوگیری از حذف یا تغییر:
sudo chattr +a filename
Source
#linux
@Syntax_fa
👍6🔥2👏1
مقایسه GitHub و GitLab
1. مالکیت:
- GitHub: متعلق به شرکت مایکروسافت.
- GitLab: متعلق به شرکت GitLab Inc.
2. جامعه (Community & Publicity):
- GitHub: بیش از 100 میلیون کاربر و سطح تبلیغات و شناخت عمومی بالا.
- GitLab: حدود 30 میلیون کاربر (تخمین زدهشده) و سطح شناخت عمومی کمتر از GitHub.
3. فضای ذخیرهسازی مخازن عمومی:
- GitHub: فضای ذخیرهسازی نامحدود.
- GitLab: پنج گیگابایت (تخمینی).
4. فضای ذخیرهسازی مخازن خصوصی:
- GitHub: پانصد مگابایت
-GitLab: پنج گیگابایت
5. دقیقههای محاسباتی CI برای پروژههای عمومی:
- GitHub: نامحدود.
- GitLab: چهارصد دقیقه (اگرچه در مستندات رسمی 50,000 دقیقه ذکر شده است، اما معمولاً 400 دقیقه ارائه میشود)
6. دقیقههای محاسباتی CI برای پروژههای خصوصی در ماه:
- GitHub: دوهزار دقیقه
- GitLab: چهارصد دقیقه
7. حداکثر تعداد همکاران برای مخازن عمومی:
- GitHub: نامحدود.
- GitLab: نامحدود.
8. حداکثر تعداد همکاران برای مخازن خصوصی:
- GitHub: نامحدود.
- GitLab: محدود به 5 نفر.
#github #gitlab
@Syntax_fa
1. مالکیت:
- GitHub: متعلق به شرکت مایکروسافت.
- GitLab: متعلق به شرکت GitLab Inc.
2. جامعه (Community & Publicity):
- GitHub: بیش از 100 میلیون کاربر و سطح تبلیغات و شناخت عمومی بالا.
- GitLab: حدود 30 میلیون کاربر (تخمین زدهشده) و سطح شناخت عمومی کمتر از GitHub.
3. فضای ذخیرهسازی مخازن عمومی:
- GitHub: فضای ذخیرهسازی نامحدود.
- GitLab: پنج گیگابایت (تخمینی).
4. فضای ذخیرهسازی مخازن خصوصی:
- GitHub: پانصد مگابایت
-GitLab: پنج گیگابایت
5. دقیقههای محاسباتی CI برای پروژههای عمومی:
- GitHub: نامحدود.
- GitLab: چهارصد دقیقه (اگرچه در مستندات رسمی 50,000 دقیقه ذکر شده است، اما معمولاً 400 دقیقه ارائه میشود)
6. دقیقههای محاسباتی CI برای پروژههای خصوصی در ماه:
- GitHub: دوهزار دقیقه
- GitLab: چهارصد دقیقه
7. حداکثر تعداد همکاران برای مخازن عمومی:
- GitHub: نامحدود.
- GitLab: نامحدود.
8. حداکثر تعداد همکاران برای مخازن خصوصی:
- GitHub: نامحدود.
- GitLab: محدود به 5 نفر.
#github #gitlab
@Syntax_fa
👍18🔥2
تاریخچه کوبرنتیز
کوبرنتیز (Kubernetes) یکی از پیشروترین ابزارهای مدیریت کانتینرها در دنیای فناوری امروز است. اما برای درک بهتر تاریخچه کوبرنتیز، لازم است ابتدا نگاهی به ریشههای آن و پیشرفتهایی که به خلق این ابزار انجامید بیندازیم.
2006: آغاز راه در گوگل با cgroup
در سال 2006، گوگل بهدنبال بهینهسازی منابع خود بود، چرا که نیاز داشت حجم عظیمی از دادهها و اپلیکیشنها را در مقیاس بالا مدیریت کند. در این راستا، پروژهای را با هدف ایجاد ابزارهایی برای جداسازی و تخصیص منابع سیستم آغاز کرد. این پروژه که ابتدا با نام "Process Container" شناخته میشد، بعدها به cgroup (Control Groups) تغییر نام یافت. cgroup قابلیتی بود که اجازه میداد منابع مختلف سیستم (CPU، حافظه، دیسک و ...) به صورت کنترلشده و محدود بین فرآیندها تقسیم شوند.
سال 2007: cgroup وارد هسته لینوکس میشود
در سال 2007، گوگل کد مربوط به cgroup را به هسته لینوکس ارسال کرد و این قابلیت به عنوان بخشی از هسته اصلی لینوکس پذیرفته و ادغام شد. این گام مهمی بود، زیرا cgroup به توسعهدهندگان اجازه میداد که از امکانات جداسازی منابع در سیستمعامل لینوکس بهره ببرند و پایهای قدرتمند برای مدیریت کانتینرها ایجاد کردند.
معرفی Namespaces توسط Red Hat
همزمان با توسعه cgroup، مفهوم دیگری به نام Namespaces توسط شرکت Red Hat معرفی شد. Namespaces امکان ایزولهسازی بخشهای مختلف سیستم (مانند شبکه، فایلسیستم و موارد دیگر) را فراهم کرد. ترکیب cgroup و Namespaces، اساس فناوری کانتینرها را شکل داد و بستر لازم برای مدیریت اپلیکیشنها در محیطهای ایزوله را فراهم کرد.
سال 2013: معرفی Docker
کانتینرها به لطف cgroup و Namespaces به ابزاری بسیار قدرتمند تبدیل شدند، اما هنوز استفاده از آنها پیچیده بود. در سال 2013، شرکت Docker با معرفی پلتفرم خود، این پیچیدگیها را ساده کرد. Docker فناوری کانتینر را به یک ابزار قابلدسترس برای توسعهدهندگان تبدیل کرد و مفهوم کانتینریشدن اپلیکیشنها را به جریان اصلی دنیای فناوری وارد کرد.
سال 2014: تولد کوبرنتیز در گوگل
گوگل که سالها تجربه مدیریت کانتینرها را در مقیاس بالا داشت، تصمیم گرفت تا ابزار داخلی خود برای مدیریت کانتینرها را به یک پروژه متنباز تبدیل کند. این ابزار که به نام Kubernetes شناخته شد، در سال 2014 به عنوان یک پروژه متنباز معرفی گردید. کوبرنتیز با الهام از ابزار داخلی گوگل به نام Borg طراحی شده بود و هدف آن مدیریت خودکار کانتینرها، مقیاسگذاری، و هماهنگی بین آنها بود.
نکته:
کوبرنتیز (Kubernetes) در ابتدا با زبان C توسعه داده شده بود. اما در سال 2014 تیم گوگل تصمیم گرفت آن را با زبان Go بازنویسی کند. دلیل این تغییر، تواناییهای Go در مدیریت همزمانی (Concurrency)، عملکرد بالا، و سهولت توسعه و نگهداری بود که برای یک سیستم توزیعشده مدرن مانند Kubernetes بسیار ضروری است.
این بازنویسی بخشی از تلاش برای ارائه یک پلتفرم متنباز و مدرنتر بود که بتواند بهخوبی نیازهای زیرساختهای ابری را برآورده کند.
2015: کوبرنتیز و CNCF
برای گسترش و پذیرش بیشتر کوبرنتیز در جامعه متنباز، گوگل تصمیم گرفت این پروژه را به بنیاد جدیدی به نام Cloud Native Computing Foundation (CNCF) اهدا کند. CNCF که یک زیرمجموعه از بنیاد Linux Foundation است، وظیفه داشت تا به توسعه و گسترش اکوسیستم ابزارهای مدرن ابری کمک کند. این حرکت باعث شد کوبرنتیز از زیر چتر گوگل خارج شود و به یک پروژه مستقل و جهانی تبدیل شود که توسط جامعه متنباز هدایت میشود.
رشد و محبوبیت کوبرنتیز
پس از اهدا به CNCF، کوبرنتیز به سرعت به استانداردی برای مدیریت کانتینرها تبدیل شد. ابزارهای بسیاری برای تکمیل اکوسیستم کوبرنتیز توسعه یافتند و شرکتهای بزرگی مانند
Red Hat، IBM، Microsoft💩, AWS
از آن پشتیبانی کردند. کوبرنتیز به دلیل انعطافپذیری، مقیاسپذیری، و قابلیت اتوماسیون، به یکی از محبوبترین ابزارها برای مدیریت زیرساختهای ابری تبدیل شده است.
#kubernetes
@Syntax_fa
کوبرنتیز (Kubernetes) یکی از پیشروترین ابزارهای مدیریت کانتینرها در دنیای فناوری امروز است. اما برای درک بهتر تاریخچه کوبرنتیز، لازم است ابتدا نگاهی به ریشههای آن و پیشرفتهایی که به خلق این ابزار انجامید بیندازیم.
2006: آغاز راه در گوگل با cgroup
در سال 2006، گوگل بهدنبال بهینهسازی منابع خود بود، چرا که نیاز داشت حجم عظیمی از دادهها و اپلیکیشنها را در مقیاس بالا مدیریت کند. در این راستا، پروژهای را با هدف ایجاد ابزارهایی برای جداسازی و تخصیص منابع سیستم آغاز کرد. این پروژه که ابتدا با نام "Process Container" شناخته میشد، بعدها به cgroup (Control Groups) تغییر نام یافت. cgroup قابلیتی بود که اجازه میداد منابع مختلف سیستم (CPU، حافظه، دیسک و ...) به صورت کنترلشده و محدود بین فرآیندها تقسیم شوند.
سال 2007: cgroup وارد هسته لینوکس میشود
در سال 2007، گوگل کد مربوط به cgroup را به هسته لینوکس ارسال کرد و این قابلیت به عنوان بخشی از هسته اصلی لینوکس پذیرفته و ادغام شد. این گام مهمی بود، زیرا cgroup به توسعهدهندگان اجازه میداد که از امکانات جداسازی منابع در سیستمعامل لینوکس بهره ببرند و پایهای قدرتمند برای مدیریت کانتینرها ایجاد کردند.
معرفی Namespaces توسط Red Hat
همزمان با توسعه cgroup، مفهوم دیگری به نام Namespaces توسط شرکت Red Hat معرفی شد. Namespaces امکان ایزولهسازی بخشهای مختلف سیستم (مانند شبکه، فایلسیستم و موارد دیگر) را فراهم کرد. ترکیب cgroup و Namespaces، اساس فناوری کانتینرها را شکل داد و بستر لازم برای مدیریت اپلیکیشنها در محیطهای ایزوله را فراهم کرد.
سال 2013: معرفی Docker
کانتینرها به لطف cgroup و Namespaces به ابزاری بسیار قدرتمند تبدیل شدند، اما هنوز استفاده از آنها پیچیده بود. در سال 2013، شرکت Docker با معرفی پلتفرم خود، این پیچیدگیها را ساده کرد. Docker فناوری کانتینر را به یک ابزار قابلدسترس برای توسعهدهندگان تبدیل کرد و مفهوم کانتینریشدن اپلیکیشنها را به جریان اصلی دنیای فناوری وارد کرد.
سال 2014: تولد کوبرنتیز در گوگل
گوگل که سالها تجربه مدیریت کانتینرها را در مقیاس بالا داشت، تصمیم گرفت تا ابزار داخلی خود برای مدیریت کانتینرها را به یک پروژه متنباز تبدیل کند. این ابزار که به نام Kubernetes شناخته شد، در سال 2014 به عنوان یک پروژه متنباز معرفی گردید. کوبرنتیز با الهام از ابزار داخلی گوگل به نام Borg طراحی شده بود و هدف آن مدیریت خودکار کانتینرها، مقیاسگذاری، و هماهنگی بین آنها بود.
نکته:
کوبرنتیز (Kubernetes) در ابتدا با زبان C توسعه داده شده بود. اما در سال 2014 تیم گوگل تصمیم گرفت آن را با زبان Go بازنویسی کند. دلیل این تغییر، تواناییهای Go در مدیریت همزمانی (Concurrency)، عملکرد بالا، و سهولت توسعه و نگهداری بود که برای یک سیستم توزیعشده مدرن مانند Kubernetes بسیار ضروری است.
این بازنویسی بخشی از تلاش برای ارائه یک پلتفرم متنباز و مدرنتر بود که بتواند بهخوبی نیازهای زیرساختهای ابری را برآورده کند.
2015: کوبرنتیز و CNCF
برای گسترش و پذیرش بیشتر کوبرنتیز در جامعه متنباز، گوگل تصمیم گرفت این پروژه را به بنیاد جدیدی به نام Cloud Native Computing Foundation (CNCF) اهدا کند. CNCF که یک زیرمجموعه از بنیاد Linux Foundation است، وظیفه داشت تا به توسعه و گسترش اکوسیستم ابزارهای مدرن ابری کمک کند. این حرکت باعث شد کوبرنتیز از زیر چتر گوگل خارج شود و به یک پروژه مستقل و جهانی تبدیل شود که توسط جامعه متنباز هدایت میشود.
رشد و محبوبیت کوبرنتیز
پس از اهدا به CNCF، کوبرنتیز به سرعت به استانداردی برای مدیریت کانتینرها تبدیل شد. ابزارهای بسیاری برای تکمیل اکوسیستم کوبرنتیز توسعه یافتند و شرکتهای بزرگی مانند
Red Hat، IBM، Microsoft💩, AWS
از آن پشتیبانی کردند. کوبرنتیز به دلیل انعطافپذیری، مقیاسپذیری، و قابلیت اتوماسیون، به یکی از محبوبترین ابزارها برای مدیریت زیرساختهای ابری تبدیل شده است.
#kubernetes
@Syntax_fa
❤14👍6🔥1💩1
استراتژی Deployment در Kubernetes چیست؟
برای درک مفهوم استراتژی Deployment در Kubernetes، ابتدا باید دو معنای ممکن "deployment" در محیط Kubernetes را توضیح دهیم:
1. deployment
به فرآیند نصب یک نسخه جدید از یک اپلیکیشن یا workload روی pods در Kubernetes اشاره دارد.
2. Deployment
(با D بزرگ)، یک Kubernetes object است که دارای فایل تنظیمات YAML مخصوص به خود میباشد و به شما این امکان را میدهد که تعیین کنید:
- فرآیند deployment چگونه باید انجام شود،
- دقیقاً چه چیزی باید deploy شود،
- و همچنین چگونه درخواستها به اپلیکیشن جدید هدایت شوند.
استراتژی deployment تعیین میکند که چگونه pods باید به نسخه جدید اپلیکیشن بهروزرسانی شوند. بهعنوان مثال، یک گزینه این است که تمامی pods حذف شوند و با نسخه جدید جایگزین شوند؛ این روش باعث downtime میشود. اما گزینههای پیشرفتهتری نیز وجود دارند که اپلیکیشن را بهصورت تدریجی با کمترین اختلال در خدمات بهروزرسانی میکنند.
1. Recreate Deployment
این روش یک فرآیند همه یا هیچ است که اپلیکیشن را فوراً بهروزرسانی میکند، اما با مقداری downtime همراه است.
- در این استراتژی، pods موجود حذف میشوند و نسخه جدید جایگزین آنها میشود.
- این روش باعث میشود که از زمان خاموش شدن نسخه قدیمی تا شروع به کار نسخه جدید، اپلیکیشن downtime داشته باشد.
- موارد استفاده مناسب:
- محیطهای توسعه (development environments).
- زمانی که کاربران ترجیح میدهند یک دوره کوتاه downtime به جای کاهش عملکرد یا خطاهای طولانیمدت (در rolling deployment) داشته باشند.
- زمانی که دلایل فنی اجازه اجرای دو نسخه همزمان از یک اپلیکیشن را نمیدهند(برای مثال statefull بودن برنامه).
2. Rolling Deployment
در این استراتژی، نسخه جدید اپلیکیشن بهصورت تدریجی روی pods مستقر میشود.
- مزایا:
- امکان بازگشت (rollback) آسانتر.
- ریسک کمتری نسبت به روش Recreate دارد.
- نسبتا راحت پیادهسازی میشود.
- معایب:
- ممکن است کند باشد.
- در صورت بروز مشکل، بازگشت به نسخه قبلی دشوارتر است.
- اجرای همزمان چند نسخه از اپلیکیشن ممکن است برای اپلیکیشنهای قدیمی مشکلساز باشد.
3. Blue/Green Deployment (Red/Black Deployment)
این استراتژی به شما امکان میدهد که نسخه جدید اپلیکیشن را بدون downtime مستقر کنید.
- در این روش، نسخه فعلی (آبی) فعال است و نسخه جدید (سبز) در کنار آن اجرا میشود.
- پس از آزمایش نسخه سبز، ترافیک به آن سویچ میشود.
- مزایا:
- حذف کامل downtime.
- ریسک کمتر (بهدلیل امکان بازگشت فوری به نسخه قبلی).
- عدم وجود مشکلات نسخهبندی، زیرا کل اپلیکیشن در یک حالت تغییر میکند.
- معایب:
- نیاز به منابع دوبرابر برای نسخههای آبی و سبز.
- نیاز به مکانیزمی برای تغییر سریع ترافیک.
4. Canary Deployment
این استراتژی به شما امکان میدهد نسخه جدید اپلیکیشن را روی گروه کوچکی از کاربران واقعی آزمایش کنید.
- به صورت تدریجی نسخه جدید در cluster مستقر شده و روی مقدار کمی از ترافیک زنده آزمایش میشود.
- پس از اطمینان از عملکرد صحیح، نسخه جدید به طور کامل جایگزین نسخه قبلی میشود.
- مزایا:
- ریسک کمتر برای انتشار تغییرات بزرگ یا ویژگیهای آزمایشی.
- امکان rollout تدریجی.
- معایب:
- نیاز به اجرای همزمان چند نسخه از اپلیکیشن.
- نیاز به مکانیزم هوشمند برای هدایت بخشی از ترافیک به نسخه جدید.
5. A/B Testing
در Kubernetes، A/B Testing نوعی از canary deployment است که ترافیک را بر اساس پارامترهای خاص (مانند کوکیها یا user agents) بین نسخههای مختلف اپلیکیشن توزیع میکند.
- این روش برای آزمایش گزینههای مختلف یک ویژگی جدید و انتخاب نسخهای که کاربران بیشتر میپسندند، مناسب است.
- تفاوت اصلی با canary deployment در نحوه توزیع کاربران است.
6. Shadow Deployment
در این روش، نسخه جدید اپلیکیشن روی production workloads آزمایش میشود، اما بدون اینکه کاربران نهایی متوجه شوند.
- ترافیک بین نسخه فعلی و نسخه جدید تقسیم میشود.
- مزایا:
- امکان آزمایش جنبههای غیرفنی (مانند عملکرد و پایداری) نسخه جدید.
- معایب:
- پیچیدگی مدیریت بالا.
- نیاز به منابع دوبرابر برای اجرای همزمان نسخههای مختلف
نکته:
توجه داشته باشید که فقط دو استراتژی Recreate و Rolling بهصورت پیشفرض توسط Kubernetes Deployment object پشتیبانی میشوند. سایر استراتژیها نیازمند سفارشیسازی یا استفاده از ابزارهای تخصصی هستند.
source
#deployment_strategy
@Syntax_fa
برای درک مفهوم استراتژی Deployment در Kubernetes، ابتدا باید دو معنای ممکن "deployment" در محیط Kubernetes را توضیح دهیم:
1. deployment
به فرآیند نصب یک نسخه جدید از یک اپلیکیشن یا workload روی pods در Kubernetes اشاره دارد.
2. Deployment
(با D بزرگ)، یک Kubernetes object است که دارای فایل تنظیمات YAML مخصوص به خود میباشد و به شما این امکان را میدهد که تعیین کنید:
- فرآیند deployment چگونه باید انجام شود،
- دقیقاً چه چیزی باید deploy شود،
- و همچنین چگونه درخواستها به اپلیکیشن جدید هدایت شوند.
استراتژی deployment تعیین میکند که چگونه pods باید به نسخه جدید اپلیکیشن بهروزرسانی شوند. بهعنوان مثال، یک گزینه این است که تمامی pods حذف شوند و با نسخه جدید جایگزین شوند؛ این روش باعث downtime میشود. اما گزینههای پیشرفتهتری نیز وجود دارند که اپلیکیشن را بهصورت تدریجی با کمترین اختلال در خدمات بهروزرسانی میکنند.
1. Recreate Deployment
این روش یک فرآیند همه یا هیچ است که اپلیکیشن را فوراً بهروزرسانی میکند، اما با مقداری downtime همراه است.
- در این استراتژی، pods موجود حذف میشوند و نسخه جدید جایگزین آنها میشود.
- این روش باعث میشود که از زمان خاموش شدن نسخه قدیمی تا شروع به کار نسخه جدید، اپلیکیشن downtime داشته باشد.
- موارد استفاده مناسب:
- محیطهای توسعه (development environments).
- زمانی که کاربران ترجیح میدهند یک دوره کوتاه downtime به جای کاهش عملکرد یا خطاهای طولانیمدت (در rolling deployment) داشته باشند.
- زمانی که دلایل فنی اجازه اجرای دو نسخه همزمان از یک اپلیکیشن را نمیدهند(برای مثال statefull بودن برنامه).
2. Rolling Deployment
در این استراتژی، نسخه جدید اپلیکیشن بهصورت تدریجی روی pods مستقر میشود.
- مزایا:
- امکان بازگشت (rollback) آسانتر.
- ریسک کمتری نسبت به روش Recreate دارد.
- نسبتا راحت پیادهسازی میشود.
- معایب:
- ممکن است کند باشد.
- در صورت بروز مشکل، بازگشت به نسخه قبلی دشوارتر است.
- اجرای همزمان چند نسخه از اپلیکیشن ممکن است برای اپلیکیشنهای قدیمی مشکلساز باشد.
3. Blue/Green Deployment (Red/Black Deployment)
این استراتژی به شما امکان میدهد که نسخه جدید اپلیکیشن را بدون downtime مستقر کنید.
- در این روش، نسخه فعلی (آبی) فعال است و نسخه جدید (سبز) در کنار آن اجرا میشود.
- پس از آزمایش نسخه سبز، ترافیک به آن سویچ میشود.
- مزایا:
- حذف کامل downtime.
- ریسک کمتر (بهدلیل امکان بازگشت فوری به نسخه قبلی).
- عدم وجود مشکلات نسخهبندی، زیرا کل اپلیکیشن در یک حالت تغییر میکند.
- معایب:
- نیاز به منابع دوبرابر برای نسخههای آبی و سبز.
- نیاز به مکانیزمی برای تغییر سریع ترافیک.
4. Canary Deployment
این استراتژی به شما امکان میدهد نسخه جدید اپلیکیشن را روی گروه کوچکی از کاربران واقعی آزمایش کنید.
- به صورت تدریجی نسخه جدید در cluster مستقر شده و روی مقدار کمی از ترافیک زنده آزمایش میشود.
- پس از اطمینان از عملکرد صحیح، نسخه جدید به طور کامل جایگزین نسخه قبلی میشود.
- مزایا:
- ریسک کمتر برای انتشار تغییرات بزرگ یا ویژگیهای آزمایشی.
- امکان rollout تدریجی.
- معایب:
- نیاز به اجرای همزمان چند نسخه از اپلیکیشن.
- نیاز به مکانیزم هوشمند برای هدایت بخشی از ترافیک به نسخه جدید.
5. A/B Testing
در Kubernetes، A/B Testing نوعی از canary deployment است که ترافیک را بر اساس پارامترهای خاص (مانند کوکیها یا user agents) بین نسخههای مختلف اپلیکیشن توزیع میکند.
- این روش برای آزمایش گزینههای مختلف یک ویژگی جدید و انتخاب نسخهای که کاربران بیشتر میپسندند، مناسب است.
- تفاوت اصلی با canary deployment در نحوه توزیع کاربران است.
6. Shadow Deployment
در این روش، نسخه جدید اپلیکیشن روی production workloads آزمایش میشود، اما بدون اینکه کاربران نهایی متوجه شوند.
- ترافیک بین نسخه فعلی و نسخه جدید تقسیم میشود.
- مزایا:
- امکان آزمایش جنبههای غیرفنی (مانند عملکرد و پایداری) نسخه جدید.
- معایب:
- پیچیدگی مدیریت بالا.
- نیاز به منابع دوبرابر برای اجرای همزمان نسخههای مختلف
نکته:
توجه داشته باشید که فقط دو استراتژی Recreate و Rolling بهصورت پیشفرض توسط Kubernetes Deployment object پشتیبانی میشوند. سایر استراتژیها نیازمند سفارشیسازی یا استفاده از ابزارهای تخصصی هستند.
source
#deployment_strategy
@Syntax_fa
👍10
انحصارطلبی غولهای فناوری: «ما حامی هستیم، اما فقط وقتی مال خودمون باشی!»
غولهای فناوری همیشه ادعا میکنن که حامی نوآوری، خلاقیت، و پیشرفت هستن. روی کاغذ، خیلی قشنگه: شعار میدن که میخوان دنیا رو جای بهتری کنن، به استارتآپها و پروژههای نوپا کمک کنن و منابع بیشتری در اختیارشون بذارن. اما وقتی دقیقتر نگاه کنیم، متوجه میشیم که این حمایتها فقط یه هدف داره: تصاحب، حذف یا نابودی هر چیزی که ممکنه تهدیدی برای انحصار و سلطهشون بشه.
کافیه یه پروژه اوپنسورس یا یه استارتآپ کوچیک یه ذره رشد کنه و توجهها رو به خودش جلب کنه. سریع یکی از این غولها میاد، قربونصدقه میره و یه قلب بزرگ (❤️) پای پروژه میذاره. اما این قلب زدن فقط یه راه مودبانه برای گفتن این جملهست: "ما این رو میخریم!" و اگه نتونن بخرنش، وارد یه فاز تهاجمیتر میشن: نابودش کن!
فاز اول: قلب بزن، قربونصدقه برو
وقتی یه استارتآپ یا یه پروژه اوپنسورس داره رشد میکنه، اول از همه غولهای فناوری میان و با لبخند ازش تعریف میکنن. مثلاً توییت میزنن:
"این پروژه واقعاً الهامبخشه. ما عاشق نوآوری هستیم و از این پروژه حمایت میکنیم!"
اما پشت این تعریفها، مدیرای اجرایی و تیمهای حقوقی شرکت دارن بررسی میکنن که چطور این پروژه رو تصاحب کنن. چون تو دنیای غولها، کلمه «حمایت» معمولاً به معنی «ادغام در امپراتوری ما» است.
فاز دوم: چند ماه بعد، خبر میاد که:
"مایکروسافت/گوگل/آمازون این استارتآپ را با مبلغ X میلیون دلار خریداری کرد."
ظاهرش خیلی جذابه: استارتآپ حالا منابع بیشتری داره و میتونه سریعتر رشد کنه. ولی در واقعیت، این خرید بیشتر شبیه یه «عملیات خفه کردن» برای کنترل یا حذف رقابت در بازار هست.
فاز سوم: خفه کن، جایگزین کن
حالا که پروژه یا استارتآپ مال خودشون شده، دو تا اتفاق ممکنه بیفته:
1. یا پروژه به طور کامل تعطیل میشه، چون دیگه برای شرکت ارزش استراتژیک نداره.
2. یا اون پروژه تغییر میکنه تا فقط به اهداف انحصاری شرکت خدمت کنه.
@Syntax_fa
غولهای فناوری همیشه ادعا میکنن که حامی نوآوری، خلاقیت، و پیشرفت هستن. روی کاغذ، خیلی قشنگه: شعار میدن که میخوان دنیا رو جای بهتری کنن، به استارتآپها و پروژههای نوپا کمک کنن و منابع بیشتری در اختیارشون بذارن. اما وقتی دقیقتر نگاه کنیم، متوجه میشیم که این حمایتها فقط یه هدف داره: تصاحب، حذف یا نابودی هر چیزی که ممکنه تهدیدی برای انحصار و سلطهشون بشه.
کافیه یه پروژه اوپنسورس یا یه استارتآپ کوچیک یه ذره رشد کنه و توجهها رو به خودش جلب کنه. سریع یکی از این غولها میاد، قربونصدقه میره و یه قلب بزرگ (❤️) پای پروژه میذاره. اما این قلب زدن فقط یه راه مودبانه برای گفتن این جملهست: "ما این رو میخریم!" و اگه نتونن بخرنش، وارد یه فاز تهاجمیتر میشن: نابودش کن!
فاز اول: قلب بزن، قربونصدقه برو
وقتی یه استارتآپ یا یه پروژه اوپنسورس داره رشد میکنه، اول از همه غولهای فناوری میان و با لبخند ازش تعریف میکنن. مثلاً توییت میزنن:
"این پروژه واقعاً الهامبخشه. ما عاشق نوآوری هستیم و از این پروژه حمایت میکنیم!"
اما پشت این تعریفها، مدیرای اجرایی و تیمهای حقوقی شرکت دارن بررسی میکنن که چطور این پروژه رو تصاحب کنن. چون تو دنیای غولها، کلمه «حمایت» معمولاً به معنی «ادغام در امپراتوری ما» است.
فاز دوم: چند ماه بعد، خبر میاد که:
"مایکروسافت/گوگل/آمازون این استارتآپ را با مبلغ X میلیون دلار خریداری کرد."
ظاهرش خیلی جذابه: استارتآپ حالا منابع بیشتری داره و میتونه سریعتر رشد کنه. ولی در واقعیت، این خرید بیشتر شبیه یه «عملیات خفه کردن» برای کنترل یا حذف رقابت در بازار هست.
فاز سوم: خفه کن، جایگزین کن
حالا که پروژه یا استارتآپ مال خودشون شده، دو تا اتفاق ممکنه بیفته:
1. یا پروژه به طور کامل تعطیل میشه، چون دیگه برای شرکت ارزش استراتژیک نداره.
2. یا اون پروژه تغییر میکنه تا فقط به اهداف انحصاری شرکت خدمت کنه.
@Syntax_fa
👍13
مثالهایی از شکار و انحصارطلبی
1. مایکروسافت و نوآوریهای Netscape: پایان مرورگر مستقل
در دهه ۹۰ میلادی، Netscape یکی از محبوبترین مرورگرهای وب بود. این شرکت به نوعی پیشگام اینترنت مدرن به حساب میاومد و مایکروسافت که از محبوبیت و رشد سریع Netscape ترسیده بود، استراتژی تهاجمی خودش رو شروع کرد.
مایکروسافت تصمیم گرفت مرورگر خودش به نام Internet Explorer رو به صورت رایگان همراه با ویندوز عرضه کنه. این حرکت باعث شد که کاربران به طور پیشفرض از Internet Explorer استفاده کنن و سهم بازار Netscape به شدت کاهش پیدا کنه.
در نهایت، Netscape نتونست با این انحصارطلبی مبارزه کنه و ورشکست شد. این پرونده حتی به دادگاه ضدانحصار ایالات متحده کشیده شد، جایی که مشخص شد مایکروسافت عمداً از قدرت انحصاری ویندوز برای حذف رقبای مرورگر استفاده کرده.
2. مایکروسافت و Skype: تصاحب و سقوط یک نوآوری
مایکروسافت در سال ۲۰۱۱ با مبلغ ۸.۵ میلیارد دلار Skype رو خریداری کرد. اسکایپ تا قبل از خرید یکی از محبوبترین ابزارهای تماس ویدیویی و صوتی در جهان بود و به عنوان یک نوآوری مستقل میدرخشید. اما بعد از خرید توسط مایکروسافت، مشکلات شروع شد:
- مایکروسافت به جای توسعه و بهبود اسکایپ، تمرکز رو روی ادغام اون با محصولات خودش مثل ویندوز و Office گذاشت.
- اسکایپ به مرور زمان از کارایی افتاد؛ مشکلات مربوط به کیفیت تماس و رابط کاربری گیجکننده باعث شد که بسیاری از کاربران به سرویسهای رقیب مثل Zoom، WhatsApp، و Google Meet مهاجرت کنن.
- نهایتاً، اسکایپ که یکزمانی یکهتاز بازار تماسهای ویدیویی بود، به حاشیه رانده شد و تقریباً از فضای رقابت حذف شد.
این اتفاق نشون داد که مایکروسافت به جای تقویت این نوآوری، بیشتر به دنبال استفاده از برند اسکایپ برای منافع خودش بود.
3. مایکروسافت و Nokia: شکست برنامهریزیشده؟
یکی از جنجالیترین تصاحبهای مایکروسافت، خرید بخش موبایل شرکت نوکیا در سال ۲۰۱۳ بود. نوکیا که زمانی بزرگترین تولیدکننده گوشیهای موبایل در دنیا بود، به خاطر رقابت با سیستمعاملهای اندروید و iOS دچار افت شد. مایکروسافت با وعده همکاری و توسعه، بخش موبایل نوکیا رو خرید و ادعا کرد که این خرید به زندهکردن نوکیا کمک میکنه. اما در واقعیت، این اتفاق به سقوط کامل نوکیا منجر شد:
- مایکروسافت تصمیم گرفت که گوشیهای نوکیا فقط با سیستمعامل Windows Phone عرضه بشن، که سهم بسیار کوچکی از بازار موبایل داشت. این تصمیم، نوکیا رو از رقابت با اندروید و iOS دور کرد.
- سرمایهگذاری روی ویندوزفون شکست خورد و مایکروسافت خیلی زود این پروژه رو رها کرد.
- در نهایت، بخش موبایل نوکیا تعطیل شد و هزاران نفر از کارکنانش بیکار شدن.
4. گوگل و DeepMind
گوگل وقتی DeepMind رو خرید، قول داد که این شرکت مستقل و متمرکز روی «هوش مصنوعی اخلاقی» باقی میمونه. اما حالا بیشتر کارای DeepMind روی پروژههایی متمرکزه که به تبلیغات گوگل و سرویسهای پولساز این شرکت کمک میکنه. مثلاً پروژههای سلامت DeepMind به Google Health منتقل شدن، و حالا بیشتر از اینکه به اخلاق فکر کنن، به سوددهی فکر میکنن.
5. آمازون و استارتآپهای خردهفروشی
آمازون یکی از بزرگترین شکارچیهای استارتآپهای خردهفروشی هست. استراتژیشون؟ اول از یه استارتآپ حمایت میکنن، بعد یه نسخه مشابه از اون محصول رو ارزونتر تولید میکنن، و در نهایت یا اون استارتآپ رو میخرن یا ورشکستهش میکنن. مثلاً استارتآپی مثل Diapers.com که تو فروش پوشک بچه موفق بود، اول تحت فشار قیمتهای پایین آمازون قرار گرفت و در نهایت مجبور شد خودش رو بفروشه.
6. واتساپ و اینستاگرام: شکارهای فیسبوک
فیسبوک وقتی دید واتساپ و اینستاگرام دارن محبوبتر میشن، سریع دست به کار شد. هر دو رو خرید و قول داد که مستقل میمونن. ولی امروز دیگه میدونیم که اطلاعات واتساپ و اینستاگرام به شدت برای تبلیغات فیسبوک استفاده میشه. واتساپی که یه زمانی قول حفظ حریم خصوصی داده بود، الان به یکی از ابزارهای اصلی فیسبوک برای تحلیل دادهها تبدیل شده.
5. گوگل و Nest
استارتآپی که تو حوزه خانههای هوشمند خیلی محبوب شده بود، توسط گوگل خریداری شد. بعد از خرید، خیلی از محصولاتش تعطیل شدن یا مستقیماً به سرویسهای گوگل گره خوردن. کار به جایی رسید که حتی مدیرعامل Nest از گوگل جدا شد و به صراحت گفت: گوگل فقط به دنبال کنترل بازار بود
@Syntax_fa
1. مایکروسافت و نوآوریهای Netscape: پایان مرورگر مستقل
در دهه ۹۰ میلادی، Netscape یکی از محبوبترین مرورگرهای وب بود. این شرکت به نوعی پیشگام اینترنت مدرن به حساب میاومد و مایکروسافت که از محبوبیت و رشد سریع Netscape ترسیده بود، استراتژی تهاجمی خودش رو شروع کرد.
مایکروسافت تصمیم گرفت مرورگر خودش به نام Internet Explorer رو به صورت رایگان همراه با ویندوز عرضه کنه. این حرکت باعث شد که کاربران به طور پیشفرض از Internet Explorer استفاده کنن و سهم بازار Netscape به شدت کاهش پیدا کنه.
در نهایت، Netscape نتونست با این انحصارطلبی مبارزه کنه و ورشکست شد. این پرونده حتی به دادگاه ضدانحصار ایالات متحده کشیده شد، جایی که مشخص شد مایکروسافت عمداً از قدرت انحصاری ویندوز برای حذف رقبای مرورگر استفاده کرده.
2. مایکروسافت و Skype: تصاحب و سقوط یک نوآوری
مایکروسافت در سال ۲۰۱۱ با مبلغ ۸.۵ میلیارد دلار Skype رو خریداری کرد. اسکایپ تا قبل از خرید یکی از محبوبترین ابزارهای تماس ویدیویی و صوتی در جهان بود و به عنوان یک نوآوری مستقل میدرخشید. اما بعد از خرید توسط مایکروسافت، مشکلات شروع شد:
- مایکروسافت به جای توسعه و بهبود اسکایپ، تمرکز رو روی ادغام اون با محصولات خودش مثل ویندوز و Office گذاشت.
- اسکایپ به مرور زمان از کارایی افتاد؛ مشکلات مربوط به کیفیت تماس و رابط کاربری گیجکننده باعث شد که بسیاری از کاربران به سرویسهای رقیب مثل Zoom، WhatsApp، و Google Meet مهاجرت کنن.
- نهایتاً، اسکایپ که یکزمانی یکهتاز بازار تماسهای ویدیویی بود، به حاشیه رانده شد و تقریباً از فضای رقابت حذف شد.
این اتفاق نشون داد که مایکروسافت به جای تقویت این نوآوری، بیشتر به دنبال استفاده از برند اسکایپ برای منافع خودش بود.
3. مایکروسافت و Nokia: شکست برنامهریزیشده؟
یکی از جنجالیترین تصاحبهای مایکروسافت، خرید بخش موبایل شرکت نوکیا در سال ۲۰۱۳ بود. نوکیا که زمانی بزرگترین تولیدکننده گوشیهای موبایل در دنیا بود، به خاطر رقابت با سیستمعاملهای اندروید و iOS دچار افت شد. مایکروسافت با وعده همکاری و توسعه، بخش موبایل نوکیا رو خرید و ادعا کرد که این خرید به زندهکردن نوکیا کمک میکنه. اما در واقعیت، این اتفاق به سقوط کامل نوکیا منجر شد:
- مایکروسافت تصمیم گرفت که گوشیهای نوکیا فقط با سیستمعامل Windows Phone عرضه بشن، که سهم بسیار کوچکی از بازار موبایل داشت. این تصمیم، نوکیا رو از رقابت با اندروید و iOS دور کرد.
- سرمایهگذاری روی ویندوزفون شکست خورد و مایکروسافت خیلی زود این پروژه رو رها کرد.
- در نهایت، بخش موبایل نوکیا تعطیل شد و هزاران نفر از کارکنانش بیکار شدن.
4. گوگل و DeepMind
گوگل وقتی DeepMind رو خرید، قول داد که این شرکت مستقل و متمرکز روی «هوش مصنوعی اخلاقی» باقی میمونه. اما حالا بیشتر کارای DeepMind روی پروژههایی متمرکزه که به تبلیغات گوگل و سرویسهای پولساز این شرکت کمک میکنه. مثلاً پروژههای سلامت DeepMind به Google Health منتقل شدن، و حالا بیشتر از اینکه به اخلاق فکر کنن، به سوددهی فکر میکنن.
5. آمازون و استارتآپهای خردهفروشی
آمازون یکی از بزرگترین شکارچیهای استارتآپهای خردهفروشی هست. استراتژیشون؟ اول از یه استارتآپ حمایت میکنن، بعد یه نسخه مشابه از اون محصول رو ارزونتر تولید میکنن، و در نهایت یا اون استارتآپ رو میخرن یا ورشکستهش میکنن. مثلاً استارتآپی مثل Diapers.com که تو فروش پوشک بچه موفق بود، اول تحت فشار قیمتهای پایین آمازون قرار گرفت و در نهایت مجبور شد خودش رو بفروشه.
6. واتساپ و اینستاگرام: شکارهای فیسبوک
فیسبوک وقتی دید واتساپ و اینستاگرام دارن محبوبتر میشن، سریع دست به کار شد. هر دو رو خرید و قول داد که مستقل میمونن. ولی امروز دیگه میدونیم که اطلاعات واتساپ و اینستاگرام به شدت برای تبلیغات فیسبوک استفاده میشه. واتساپی که یه زمانی قول حفظ حریم خصوصی داده بود، الان به یکی از ابزارهای اصلی فیسبوک برای تحلیل دادهها تبدیل شده.
5. گوگل و Nest
استارتآپی که تو حوزه خانههای هوشمند خیلی محبوب شده بود، توسط گوگل خریداری شد. بعد از خرید، خیلی از محصولاتش تعطیل شدن یا مستقیماً به سرویسهای گوگل گره خوردن. کار به جایی رسید که حتی مدیرعامل Nest از گوگل جدا شد و به صراحت گفت: گوگل فقط به دنبال کنترل بازار بود
@Syntax_fa
👍17❤1
شما بزرگ ترین دشمنان و خلافکاران در علیه شرکت های تولید نرم افزار در جهان رو در تصویر میبینید!
رئیس سایت سافت ۹۸ و پی سی دانلود در یک قاب
#fun
@Syntax_fa
رئیس سایت سافت ۹۸ و پی سی دانلود در یک قاب
#fun
@Syntax_fa
😁91❤16👍1
وبسایت سینتکسفا لانچ شد!
تقریبا اوایل سال 1403 تصمیم گرفتیم یه تیمی رو دور هم جمع کنیم تا با هم کار های خفن و جذاب انجام بدیم همچنین باعث پیشرفت همدیگه بشیم.
حالا تقریبا از اونموقع یک سال گذشته و بالاخره به نقطه ای رسیدیم که بتونیم بگیم به اون اهدافی که برای شروع مشخص کرده بودیم رسیدیم.
وبسایت سینتکس اتمامش تقریبا یسال طول کشید! سه بار طراحی ui ux ریدیزاین شد. فرانت اتدش هم دوبار ریدیزاین شد!
ولی خب ارزششو داشت و ما هم عجله ای نداشتیم
ابزار مورد استفاده رو بخوام خیلی خلاصه بگم:
فرانت اندش با فلاتر توسعه داده شده
بک اندش با جنگو هستش
https://syntaxfa.com
@Syntax_fa
تقریبا اوایل سال 1403 تصمیم گرفتیم یه تیمی رو دور هم جمع کنیم تا با هم کار های خفن و جذاب انجام بدیم همچنین باعث پیشرفت همدیگه بشیم.
حالا تقریبا از اونموقع یک سال گذشته و بالاخره به نقطه ای رسیدیم که بتونیم بگیم به اون اهدافی که برای شروع مشخص کرده بودیم رسیدیم.
وبسایت سینتکس اتمامش تقریبا یسال طول کشید! سه بار طراحی ui ux ریدیزاین شد. فرانت اتدش هم دوبار ریدیزاین شد!
ولی خب ارزششو داشت و ما هم عجله ای نداشتیم
ابزار مورد استفاده رو بخوام خیلی خلاصه بگم:
فرانت اندش با فلاتر توسعه داده شده
بک اندش با جنگو هستش
https://syntaxfa.com
@Syntax_fa
👍20🔥9❤4👏3😁1
Syntax | سینتکس
وبسایت سینتکسفا لانچ شد! تقریبا اوایل سال 1403 تصمیم گرفتیم یه تیمی رو دور هم جمع کنیم تا با هم کار های خفن و جذاب انجام بدیم همچنین باعث پیشرفت همدیگه بشیم. حالا تقریبا از اونموقع یک سال گذشته و بالاخره به نقطه ای رسیدیم که بتونیم بگیم به اون اهدافی که…
راستی یادم رفت
تشکر از:
امیرحسین فرانت اند پروژه با فلاتر
@Awmirsn
طراحی خفن UI/UX توسط محمد
@FalahiDevPV
همچنین سحر هم تو UI/UX کمک زیادی کرده
@shariws
بک اند جنگو با اون یکی امیرحسین و خودم
@the_aech
تشکر از:
امیرحسین فرانت اند پروژه با فلاتر
@Awmirsn
طراحی خفن UI/UX توسط محمد
@FalahiDevPV
همچنین سحر هم تو UI/UX کمک زیادی کرده
@shariws
بک اند جنگو با اون یکی امیرحسین و خودم
@the_aech
🔥13👍6❤2
تو این ریپازیتوری، میتونید لیستی از workflow های از قبل تنظیم شده رو ببینید، کدهاشو بخونید و ازش استفاده کنید.
https://github.com/actions/starter-workflows/
دوست دارید در خصوص گیتهاب اکشن پست های بیشتری بذاریم؟ تو پروژه هاتون از گیتهاب اکشن استفاده می کنید؟
#github #workflow
@Syntax_fa
https://github.com/actions/starter-workflows/
دوست دارید در خصوص گیتهاب اکشن پست های بیشتری بذاریم؟ تو پروژه هاتون از گیتهاب اکشن استفاده می کنید؟
#github #workflow
@Syntax_fa
👍32🔥2
Syntax | سینتکس
تو این ریپازیتوری، میتونید لیستی از workflow های از قبل تنظیم شده رو ببینید، کدهاشو بخونید و ازش استفاده کنید. https://github.com/actions/starter-workflows/ دوست دارید در خصوص گیتهاب اکشن پست های بیشتری بذاریم؟ تو پروژه هاتون از گیتهاب اکشن استفاده می کنید؟…
چه کسایی سمت گیتهاب اکشن نسخه رایگانش نرن؟
بنظرم خیلی از موارد گزینه مناسبیه ولی اگه:
ریپازیتوری پرایوت شما بیشتر از 2000 دقیقه در ماه قراره روش جاب های مختلف ورکفلو هاتون اجرا بشه.
ریپازیتوری پابلیک ->بیشتر از 16 گیگ رم و 14 گیگ فضا و 4 تا پردازنده نیاز دارید.
ریپازیتوری پرایوت -> بیشتر از 7 گیگ رم و 14 گیگ فضا و 2 پردازنده نیاز دارید.
در غیر اینصورت گزینه خیلی خوبیه مخصوصا برای استفاده شخصی
همچنین ورکفلو های زمانبندی شده رو هم داره که میتونید جاب هایی که باید هر چند وقت یبار اجرا بشن، ازش استفاده کنید و کلی trigger های مختلف دیگه.
#github #workflow
@syntax_fa
بنظرم خیلی از موارد گزینه مناسبیه ولی اگه:
ریپازیتوری پرایوت شما بیشتر از 2000 دقیقه در ماه قراره روش جاب های مختلف ورکفلو هاتون اجرا بشه.
ریپازیتوری پابلیک ->بیشتر از 16 گیگ رم و 14 گیگ فضا و 4 تا پردازنده نیاز دارید.
ریپازیتوری پرایوت -> بیشتر از 7 گیگ رم و 14 گیگ فضا و 2 پردازنده نیاز دارید.
در غیر اینصورت گزینه خیلی خوبیه مخصوصا برای استفاده شخصی
همچنین ورکفلو های زمانبندی شده رو هم داره که میتونید جاب هایی که باید هر چند وقت یبار اجرا بشن، ازش استفاده کنید و کلی trigger های مختلف دیگه.
#github #workflow
@syntax_fa
👍14
مشارکت تو پروژه اپن سورس
قراره کنار هم یه سری چیز هارو آزمایش کنیم، خودمون رو به چالش بکشیم و یک پروژه اپن سورس جالبو توسعه بدیم.
در حال حاضر نیازه چند نفر رو به تیممون اضافه کنیم تا بتونیم با سرعت بیشتری پیش بریم.
برای چه کسایی مناسبه؟
- پایتون رو بلد باشه
- به کراولر نویسی و web scraping علاقه داشته باشه
- تجربه کار با جنگو رو داشته باشه
*در کنار این تسک ها، اگه فرصتش پیش بیاد، یه پروژه جنگویی که تمرکزش روی یه سری ابزار و مفاهیم بدرد بخور هستش رو هم انجام میدیم.
همچنین یکی از افراد با تجربه که خیلی قبولش دارم، پروژه رو مدیریت میکنه.
بنظر من برای لول آپ، فرصت خوبیه
اگه دوست دارید مشارکت کنید، پیویم پیام بدید:
@ayeef
قراره کنار هم یه سری چیز هارو آزمایش کنیم، خودمون رو به چالش بکشیم و یک پروژه اپن سورس جالبو توسعه بدیم.
در حال حاضر نیازه چند نفر رو به تیممون اضافه کنیم تا بتونیم با سرعت بیشتری پیش بریم.
برای چه کسایی مناسبه؟
- پایتون رو بلد باشه
- به کراولر نویسی و web scraping علاقه داشته باشه
- تجربه کار با جنگو رو داشته باشه
*در کنار این تسک ها، اگه فرصتش پیش بیاد، یه پروژه جنگویی که تمرکزش روی یه سری ابزار و مفاهیم بدرد بخور هستش رو هم انجام میدیم.
همچنین یکی از افراد با تجربه که خیلی قبولش دارم، پروژه رو مدیریت میکنه.
بنظر من برای لول آپ، فرصت خوبیه
اگه دوست دارید مشارکت کنید، پیویم پیام بدید:
@ayeef
👍14🔥5❤1
سه تا وب سایت با طراحی فضایی
وب سایت اولی و دومی تو یه لیگ دیگن
https://gapsystudio.com/
https://boredapeyachtclub.com/
https://amie.so/
@Syntax_fa
وب سایت اولی و دومی تو یه لیگ دیگن
https://gapsystudio.com/
https://boredapeyachtclub.com/
https://amie.so/
@Syntax_fa
GapsyStudio
Creative Design Studio | UI/UX Design Agency for Web & Apps
Top UI/UX design agency Gapsy Studio with a creative design edge. As a UX studio, we create intuitive app and web solutions for healthcare, eCommerce, SaaS, and more.
👌12👍2🔥2