phind.com
یه موتور جستجو برای برنامه نویس ها است ... تلفیق جالبی از ریزالت گوگل و GPT که تمام چند صفحه اول رو میخونه و نتیحه رو برامون مینوسیه، کدش رو هم مینویسه،
https://zzzcode.ai/
این هم یه ابزار شدیدا باحاله که هم میتونه داکیومنت براتون درست کنه هم میتونه کد های هر زبانی رو به زبان دیگه تبدیل کنه و هم ....
گفتم شاید بد نباشه شیر کنم که شما هم استفاده کنید
@code_crafters
یه موتور جستجو برای برنامه نویس ها است ... تلفیق جالبی از ریزالت گوگل و GPT که تمام چند صفحه اول رو میخونه و نتیحه رو برامون مینوسیه، کدش رو هم مینویسه،
https://zzzcode.ai/
این هم یه ابزار شدیدا باحاله که هم میتونه داکیومنت براتون درست کنه هم میتونه کد های هر زبانی رو به زبان دیگه تبدیل کنه و هم ....
گفتم شاید بد نباشه شیر کنم که شما هم استفاده کنید
@code_crafters
امیدوارم حالتون خوب باشه
برخی از مقالاتی که طی یکی از میتینگ های اخیر با دوستان مون مرور و بحث شد:
- ایندکس و کلاسترد ایندکس ها
https://www.spotlightcloud.io/blog/when-to-use-clustered-or-non-clustered-indexes-in-sql-server
- ابزار Load & RPS Test کامند لاین ساده اما کاربردی ای که برای تست فشار و ریکوئست استفاده کردیم:
https://github.com/codesenberg/bombardier
- مطالب مربوط به Tuning و برخی راهکار های SQL/MySQL Tuning:
https://www.turing.com/kb/best-practices-for-mysql-performance-tuning
https://www.devart.com/dbforge/mysql/studio/mysql-performance-tips.html
https://phoenixnap.com/kb/improve-mysql-performance-tuning-optimization
https://tecadmin.net/mysql-performance-tuning-tips/
- برخی بهینه سازی های سمت سرور و تعدادی از فیچر های CDN ها مثل کلادفلیر:
- HTTP2 & HTTP3
https://www.section.io/engineering-education/http3-vs-http2/
- تشریح TLS 1.3 & HTTPS:
https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/
- قابلیت RTT:
https://developers.cloudflare.com/speed/optimization/protocol/0-rtt-connection-resumption/
- Compression:
https://blog.cloudflare.com/this-is-brotli-from-origin/
اینجا با تعدادی از دوستان فارغ از زبان برنانه نویسی، مطالب مفید میزاریم.
@code_crafters
برخی از مقالاتی که طی یکی از میتینگ های اخیر با دوستان مون مرور و بحث شد:
- ایندکس و کلاسترد ایندکس ها
https://www.spotlightcloud.io/blog/when-to-use-clustered-or-non-clustered-indexes-in-sql-server
- ابزار Load & RPS Test کامند لاین ساده اما کاربردی ای که برای تست فشار و ریکوئست استفاده کردیم:
https://github.com/codesenberg/bombardier
- مطالب مربوط به Tuning و برخی راهکار های SQL/MySQL Tuning:
https://www.turing.com/kb/best-practices-for-mysql-performance-tuning
https://www.devart.com/dbforge/mysql/studio/mysql-performance-tips.html
https://phoenixnap.com/kb/improve-mysql-performance-tuning-optimization
https://tecadmin.net/mysql-performance-tuning-tips/
- برخی بهینه سازی های سمت سرور و تعدادی از فیچر های CDN ها مثل کلادفلیر:
- HTTP2 & HTTP3
https://www.section.io/engineering-education/http3-vs-http2/
- تشریح TLS 1.3 & HTTPS:
https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/
- قابلیت RTT:
https://developers.cloudflare.com/speed/optimization/protocol/0-rtt-connection-resumption/
- Compression:
https://blog.cloudflare.com/this-is-brotli-from-origin/
اینجا با تعدادی از دوستان فارغ از زبان برنانه نویسی، مطالب مفید میزاریم.
@code_crafters
www.spotlightcloud.io
When to Use Clustered or Non-Clustered Indexes in SQL Server
What clustered and non-clustered index are, how they are created, and what the main differences between the two are. When to use clustered or non-clustered indexes in SQL Server.
حملات DDOS وارد مرحلهای جدید شدن، آسیبپذیری Rapid Reset که در HTTP/2 پیدا شده روش کارش اینه که مهاجم مثلا یه درخواست GET ساده به سایت شما ارسال میکنه و بلافاصله درخواست رو لغو میکنه
این سرعت حملات رو بیشتر میکنه، مثلا تونستن ۲۰۱ میلیون درخواست در ثانیه فقط به کلادفلر بزنن
در کل آسیبپذیری همرو تهدید میکنه ولی کلادفلر و گوگل و ... پچ منتشر کردن پس اگه سایتتون پشت کلادفلر باشه نیاز نیست نگران باشید
مقالاتی از گوگل و کلادفلر
https://cloud.google.com/blog/products/identity-security/how-it-works-the-novel-http2-rapid-reset-ddos-attack
https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/
#DevTwitter | <Soroush Ahmadi/>
این سرعت حملات رو بیشتر میکنه، مثلا تونستن ۲۰۱ میلیون درخواست در ثانیه فقط به کلادفلر بزنن
در کل آسیبپذیری همرو تهدید میکنه ولی کلادفلر و گوگل و ... پچ منتشر کردن پس اگه سایتتون پشت کلادفلر باشه نیاز نیست نگران باشید
مقالاتی از گوگل و کلادفلر
https://cloud.google.com/blog/products/identity-security/how-it-works-the-novel-http2-rapid-reset-ddos-attack
https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/
#DevTwitter | <Soroush Ahmadi/>
Google Cloud Blog
How it works: The novel HTTP/2 ‘Rapid Reset’ DDoS attack | Google Cloud Blog
Learn how the new DDoS attack technique Rapid Reset works, and how to mitigate it
👍2
C#_12_and_NET_8_Modern_Cross_Platform_Development_Fundamentals_Start.pdf
43 MB
Latest C# 12 & .Net 8.0 cross platform modern programming book for juniors and seniors.
#csharp #net #dotnet
#csharp #net #dotnet
👍3
C# Friends
C#_12_and_NET_8_Modern_Cross_Platform_Development_Fundamentals_Start.pdf
✳️ Book Chapters Overview
👍2
Top NuGet Packages for DotNet Developers.pdf
31.4 MB
Top / Most Useful Nuget Packages For .Net Developers!
ref:
https://www.linkedin.com/posts/iammukeshm_top-nuget-packages-for-dotnet-developers-ugcPost-7131646162280873984-3rUd?utm_source=share&utm_medium=member_android
ref:
https://www.linkedin.com/posts/iammukeshm_top-nuget-packages-for-dotnet-developers-ugcPost-7131646162280873984-3rUd?utm_source=share&utm_medium=member_android
👍4
Forwarded from Easy Microservices (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
اگر یک کامیونیتی بذاریم توی هفته های آتی و در مورد این صحبت کنیم که توی این یکسال توی Easy Microservices چیکار کردیم شرکت میکنید؟
Final Results
24%
این هفته پنجشنبه خوبه
27%
این هفته جمعه خوبه
11%
هفته ی بعدش پنجشنبه خوبه
6%
هفته ی بعدش جمعه خوبه
0%
روزای دیگه باشه
7%
متاسفانه وقت و فرصتش رو ندارم
24%
فعلا نظری ندارم
Forwarded from Easy Microservices (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
موضوعاتی که توی جلسه ی بعدی میخوایم پیگیری کنیم:
1. چالشهایی که توی هرکدوم (میکروسرویس و مونولیت) میخوریم؟
2.کارهایی که توی Easy microservices انجام دادیم؟
3.چطوری یک معمار بشیم؟ چطوری نرم افزارهای بزرگ رو معماری کنیم؟
4. چقدر و چطوری درگیر دیتابیسها بشیم؟
5. از چت جی پی تی استفاده کنیم؟ نکنیم؟ چطوری؟
6. مهارت های نرم و سافت اسکیل هامون رو چطوری تقویت کنیم؟ مهارت های ارتباطی.
1. چالشهایی که توی هرکدوم (میکروسرویس و مونولیت) میخوریم؟
2.کارهایی که توی Easy microservices انجام دادیم؟
3.چطوری یک معمار بشیم؟ چطوری نرم افزارهای بزرگ رو معماری کنیم؟
4. چقدر و چطوری درگیر دیتابیسها بشیم؟
5. از چت جی پی تی استفاده کنیم؟ نکنیم؟ چطوری؟
6. مهارت های نرم و سافت اسکیل هامون رو چطوری تقویت کنیم؟ مهارت های ارتباطی.
Forwarded from Easy Microservices (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
بچهها وعدهی ما امشب ساعت 8 ان شالله در خدمتتون هستیم.
اگر دوست داشتید توسط لینک زیر میتونید توی گوگل کلندر خودتون اضافه اش کنید:
https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MWJwOGozdDl2OGVoM2xtcnAwbGlmZnQwNXIgYWxpLnZpc3VhbC5zdHVkaW9AbQ&tmsrc=ali.visual.studio%40gmail.com
اگر دوست داشتید توسط لینک زیر میتونید توی گوگل کلندر خودتون اضافه اش کنید:
https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MWJwOGozdDl2OGVoM2xtcnAwbGlmZnQwNXIgYWxpLnZpc3VhbC5zdHVkaW9AbQ&tmsrc=ali.visual.studio%40gmail.com
Google Workspace
Google Calendar - Easier Time Management, Appointments & Scheduling
Learn how Google Calendar helps you stay on top of your plans - at home, at work and everywhere in between.
Forwarded from Easy Microservices (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
دوستان عزیزم جوین شید کم کم که چهار پنج دیقه دیگه شروع میکنیم ❤️🙏
https://meet.google.com/uui-wqur-vrr?authuser=0
https://meet.google.com/uui-wqur-vrr?authuser=0
Google
Real-time meetings by Google. Using your browser, share your video, desktop, and presentations with teammates and customers.
Audio
فایل صوتی بخش دوم Easy microservices
اکثر صحبت ها حول محور Api Gateway مفصل اتفاق افتاد.
اکثر صحبت ها حول محور Api Gateway مفصل اتفاق افتاد.
Forwarded from Easy Microservices (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
فایل Easy Microservices بخش دوم به صورت تصویری:
در آپارات:
https://www.aparat.com/v/6lpPd
در یوتیوب:
https://www.youtube.com/watch?v=e3hYveXsW7Y
در آپارات:
https://www.aparat.com/v/6lpPd
در یوتیوب:
https://www.youtube.com/watch?v=e3hYveXsW7Y
YouTube
Easy Microservices community Part 2 - ApiGateways
Api Gateway
Aggregator
Log
Aggregator
Log
❤2
#مقیاس_پذیری و چالش های آن - پارت 1
Horizontal & Vertical #Scaling ⚖️
زمانی که فرآیند تولید نرم افزار به مرحله Production میرسد و اپلیکیشن روی سرور میرود، چالشها و مخاطرات جدیدی برای صاحبان آن ایجاد میشود. ما در عصری هستیم که استفاده از اینترنت به سبک زندگیمان تبدیل شده. بنابراین پس از معرفی اپلیکیشن یا وبسایت، کاربران آن به سرعت افزایش پیدا میکند.
زمانی فرا میرسد که سیستم دیگر توان هندل کردن حجم بازدیدکنندگان و پردازش درخواست ها را ندارد.
در مواردی هم حجم دیتا به حدی میرسد که سیستم نمیتواند آن را در پایگاه داده خود ذخیره کند. در این گونه موارد، زمان آن فرا رسیده که محصول Scale یا مقیاس پذیر شود.
معمول ترین راهکار، مقیاس پذیری عمودی یعنی افزایش منابع سخت افزاری مانند RAM, CPU است اما در نرمافزار های بزرگتر، مقیاس پذیری عمودی تا حدی کارساز است.
از یک حدی به بعد تک سرور شما قادر به افزایش منابع نخواهد بود و یا صرفه اقتصادی نخواهد داشت. کما اینکه vertical Scaling محدودیت هایی مانند دیسک و شبکه را مقیاس پذیر نمیکند. (به خصوص پهنای باند در سرور های داخل که سرشار از اختلال و از نسل 3G است!)
بنابراین مقیاس پذیری افقی با افزودن سرور های بیشتر (که زین پس به آنها Node خواهیم گفت) و تقسیم بار بین انها ( Load Balanacing) راه حل بهتری خواهد بود. چرا که هم افزایش سرور ها ارزان تر خواهد بود (به نسبت خرید منابع حافظه و پردازنده بیشتر) و هم هر سرور مستقلا میتواند به مقدار نیاز مقیاس پذیری عمودی هم داشته باشد (هر سرور منابع اختصاصی متفاوتی از حافظه ram، پردازنده، iops دیسک و پهنای باند / پورت شبکه داشته باشد)
تا به اینجا اصلی ترین تفاوت های دو مدل مقیاس پذیری را بررسی کردیم. اما همیشه چالش ها، مزایا و معایبی هم وجود دارد که در جایگاه یک مهندس نرم افزار حرفه ای و معمار سیستم، ما باید با علم به این مباحث برای یک کسب و کار تصمیم بگیریم.
یکی از چهار هدف اصلی مقیاس پذیری، توسعه پذیر تر کردن یک نرم افزار است.
در مقیاس پذیری افقی مهمترین و اصلی ترین چالش های پیش رو مباحثی مانند همزمانی در عملیات ها، یکپارچگی داده ها، از بین بردن Single point of failure و کاهش گلوگاه ها است.
همانطور که در بالاتر اشاره شد در مقیاس پذیری افقی ما بجای تکیه بر سخت افزار محدود یک سرور، به طرف توزیع بار و کلاستر سرویس ها بر روی چند سرور (نود) متعدد میرویم.
فرض کنید نرم افزاری دارید که متشکل از ده ها میکروسرویس و ده ها دیتابیس و ابزار مختلف میباشد. هر کدام ازین میکروسرویس ها بر روی سرور های 1 الی 5 در حال اجرا هستند. همچنین ممکن است هر یک ازین سرویس ها نیاز به replication و load balancing پیدا کنند (هدف از مقیاس پذیری افقی).
در اینصورت علاوه بر این که کلاستر سرور های شما میبایستی در یک شبکه داخلی یا خصوصی پایدار و قابل اتکا با هم در ارتباط باشند، بایستی بتوانند بصورت پایدار عملیات های خود را انجام دهند.
برخی از پارامتر های پایداری:
- درخواست های همزمان متعدد نباید منجر به پاسخ های مختلف شوند.
- داده های خروجی باید جدیدترین داده های موجود باشند.
به عنوان مثال، سرویس سفارش یا احراز هویت مان را مقیاس پذیر کردیم و لود بالانسینگ تعیین میکند هر بار درخواست ها به کدام node / سرور ارسال شود.
در صورتی که دو یا چند کاربر بطور همزمان قصد دسترسی به یک ریسورس مشترک (فایل / دیتابیس / etc) داشته باشند مشکلاتی همچون همزمانی یا concurrency و شرایط مسابقه یا race conditions پدیدار خواهد شد.
علاوه بر همزمانی، حفظ یکپارچگی داده ها و جلوگیری از بروز رفتارهای نادرست در سیستم بسیار مهم است.
در مطلب بعدی (پارت 2 مقیاس پذیری)، به برخی شیوه های مدیریت این چالش ها و تجربه های شخصی میپردازیم.
بیشتر بخوانید (مقالات / مفاهیم مرتبط):
دسترسی پذیری بالا HA
گلوگاه Bottleneck
خوشه ها Cluster
تئوری CAP
مقیاس پذیری Scalability
سیستم های توزیع شده Distributed Systems
#مهندسی_نرمافزار #معماری
@csharpfriends
Horizontal & Vertical #Scaling ⚖️
زمانی که فرآیند تولید نرم افزار به مرحله Production میرسد و اپلیکیشن روی سرور میرود، چالشها و مخاطرات جدیدی برای صاحبان آن ایجاد میشود. ما در عصری هستیم که استفاده از اینترنت به سبک زندگیمان تبدیل شده. بنابراین پس از معرفی اپلیکیشن یا وبسایت، کاربران آن به سرعت افزایش پیدا میکند.
زمانی فرا میرسد که سیستم دیگر توان هندل کردن حجم بازدیدکنندگان و پردازش درخواست ها را ندارد.
در مواردی هم حجم دیتا به حدی میرسد که سیستم نمیتواند آن را در پایگاه داده خود ذخیره کند. در این گونه موارد، زمان آن فرا رسیده که محصول Scale یا مقیاس پذیر شود.
معمول ترین راهکار، مقیاس پذیری عمودی یعنی افزایش منابع سخت افزاری مانند RAM, CPU است اما در نرمافزار های بزرگتر، مقیاس پذیری عمودی تا حدی کارساز است.
از یک حدی به بعد تک سرور شما قادر به افزایش منابع نخواهد بود و یا صرفه اقتصادی نخواهد داشت. کما اینکه vertical Scaling محدودیت هایی مانند دیسک و شبکه را مقیاس پذیر نمیکند. (به خصوص پهنای باند در سرور های داخل که سرشار از اختلال و از نسل 3G است!)
بنابراین مقیاس پذیری افقی با افزودن سرور های بیشتر (که زین پس به آنها Node خواهیم گفت) و تقسیم بار بین انها ( Load Balanacing) راه حل بهتری خواهد بود. چرا که هم افزایش سرور ها ارزان تر خواهد بود (به نسبت خرید منابع حافظه و پردازنده بیشتر) و هم هر سرور مستقلا میتواند به مقدار نیاز مقیاس پذیری عمودی هم داشته باشد (هر سرور منابع اختصاصی متفاوتی از حافظه ram، پردازنده، iops دیسک و پهنای باند / پورت شبکه داشته باشد)
تا به اینجا اصلی ترین تفاوت های دو مدل مقیاس پذیری را بررسی کردیم. اما همیشه چالش ها، مزایا و معایبی هم وجود دارد که در جایگاه یک مهندس نرم افزار حرفه ای و معمار سیستم، ما باید با علم به این مباحث برای یک کسب و کار تصمیم بگیریم.
یکی از چهار هدف اصلی مقیاس پذیری، توسعه پذیر تر کردن یک نرم افزار است.
در مقیاس پذیری افقی مهمترین و اصلی ترین چالش های پیش رو مباحثی مانند همزمانی در عملیات ها، یکپارچگی داده ها، از بین بردن Single point of failure و کاهش گلوگاه ها است.
همانطور که در بالاتر اشاره شد در مقیاس پذیری افقی ما بجای تکیه بر سخت افزار محدود یک سرور، به طرف توزیع بار و کلاستر سرویس ها بر روی چند سرور (نود) متعدد میرویم.
فرض کنید نرم افزاری دارید که متشکل از ده ها میکروسرویس و ده ها دیتابیس و ابزار مختلف میباشد. هر کدام ازین میکروسرویس ها بر روی سرور های 1 الی 5 در حال اجرا هستند. همچنین ممکن است هر یک ازین سرویس ها نیاز به replication و load balancing پیدا کنند (هدف از مقیاس پذیری افقی).
در اینصورت علاوه بر این که کلاستر سرور های شما میبایستی در یک شبکه داخلی یا خصوصی پایدار و قابل اتکا با هم در ارتباط باشند، بایستی بتوانند بصورت پایدار عملیات های خود را انجام دهند.
برخی از پارامتر های پایداری:
- درخواست های همزمان متعدد نباید منجر به پاسخ های مختلف شوند.
- داده های خروجی باید جدیدترین داده های موجود باشند.
به عنوان مثال، سرویس سفارش یا احراز هویت مان را مقیاس پذیر کردیم و لود بالانسینگ تعیین میکند هر بار درخواست ها به کدام node / سرور ارسال شود.
در صورتی که دو یا چند کاربر بطور همزمان قصد دسترسی به یک ریسورس مشترک (فایل / دیتابیس / etc) داشته باشند مشکلاتی همچون همزمانی یا concurrency و شرایط مسابقه یا race conditions پدیدار خواهد شد.
علاوه بر همزمانی، حفظ یکپارچگی داده ها و جلوگیری از بروز رفتارهای نادرست در سیستم بسیار مهم است.
در مطلب بعدی (پارت 2 مقیاس پذیری)، به برخی شیوه های مدیریت این چالش ها و تجربه های شخصی میپردازیم.
بیشتر بخوانید (مقالات / مفاهیم مرتبط):
دسترسی پذیری بالا HA
گلوگاه Bottleneck
خوشه ها Cluster
تئوری CAP
مقیاس پذیری Scalability
سیستم های توزیع شده Distributed Systems
#مهندسی_نرمافزار #معماری
@csharpfriends
❤5👍1
Example of Microservices System design template overview
#microservices #Scaling #bestpractice #architecture #distributed_systems #مهندسی_نرمافزار
- برخی از شماتیک معماری دیگر پروژه های معروف در کامنت ها
@csharpfriends
#microservices #Scaling #bestpractice #architecture #distributed_systems #مهندسی_نرمافزار
- برخی از شماتیک معماری دیگر پروژه های معروف در کامنت ها
@csharpfriends
🔥1
دورنمای بسیار ساده و خلاصه لودبالانسینگ در معماری و طراحی میکروسرویس ها
در مطالب آینده درباره لودبالانسینگ یا توزیع بار صحبت خواهیم کرد
#microservices #load_balancing #api_gateway #Scaling #architecture #مهندسی_نرمافزار
@csharpfriends
در مطالب آینده درباره لودبالانسینگ یا توزیع بار صحبت خواهیم کرد
#microservices #load_balancing #api_gateway #Scaling #architecture #مهندسی_نرمافزار
@csharpfriends
🔥2