Enterprise Software Development
528 subscribers
76 photos
1 video
15 files
306 links
Download Telegram
سرویس Netflix چگونه از Event Sourcing برای پیاده سازی قابلیت دانلود فیلم ها استفاده کرده است ? (بخش اول)

https://medium.com/netflix-techblog/scaling-event-sourcing-for-netflix-downloads-episode-1-6bc1595c5595
ویدیو : سرویس Netflix چگونه از Event Sourcing برای پیاده سازی قابلیت دانلود فیلم ها استفاده کرده است?

https://www.infoq.com/presentations/netflix-scale-event-sourcing
مقاله ای از سایت GitLab در مورد چالش های این سایت در Scale کردن دیتابیس ها و همچنین راه حل به کار گرفته شده ی آن ها
https://about.gitlab.com/2017/10/02/scaling-the-gitlab-database/
مقاله ای از وبلاگ Uncle Bob در مورد وابستگی ساختاری و رفتاری بین کد ها و تست های آنها :
http://blog.cleancoder.com/uncle-bob/2017/10/03/TestContravariance.html
مقاله زیر به ۳ موضوع در حوزه ی Continuous Delivery می پردازد :
۱. مشکلات پروژه های Monolithic و نحوه ی شکستن آنها به قسمت های کوچک تر
۲. طراحی Test Suite بهینه برای گرفتن بازخورد مناسب
۳. مفهوم Deployment Pipeline و راه اندازی آن

https://www.thoughtworks.com/insights/blog/architecting-continuous-delivery
شش نوع تست که در معماری مایکروسرویس ها باید بشناسید :
http://www.business2community.com/brandviews/upwork/6-types-testing-know-microservices-architectures-01902537/amp
Principles of Microservice Security Whitepaper.pdf
747.8 KB
کتابچه ی اصول امنیت در معماری مایکروسرویس ها
سرویس پرداخت اینترنتی Paypal پلتفرم خود را با سرویس های RESTful طراحی کرده است. تیم توسعه ی PayPal روش ها و Pattern های مورد استفاده خود را در سایت GitHub منتشر کرده است تا تیم های دیگر نیز بتوانند در پروژه های خود از این روش ها استفاده کنند. این دستور العمل ها شامل موارد همچون Versioning، Backward Compatibility، Error Handling و ... می باشد. مطالعه ی این 2 سند به دوستان پیشنهاد می شود.

دستورالعمل های طراحی API :

https://github.com/paypal/api-standards/blob/master/api-style-guide.md

الگوها و Pattern های طراحی API :

https://github.com/paypal/api-standards/blob/master/patterns.md
پیشنهاد کتاب

تا مدت ها در صنعت نرم افزار، معماری چیزی بود که باید کاملا تکمیل میگردید تا اولین خط کد نوشته شود. این ایده که از صنعت ساخت و ساز گرفته شده بود، معماری موفق را، معماری می دانست که در طول توسعه نیاز به هیچ تغییری نداشته باشد. این نگاه با ظهور متد های Agile تحت تاثیر قرار گرفت. امروزه معماران نرم افزار معتقدند که علی رغم تغییرات غیر قابل پیش بینی، می توان معماری نرم افزار را در مسیر درست حرکت داد. این تفکر Evolutionary Architecture (به فارسی : معماری تکاملی) نام دارد. این کتاب به بررسی این تفکر و چالش ها و روش های مختلف آن می پردازد.

نام کتاب : Building Evolutionary Architectures - Support Constant Change
نویسندگان : Neal Ford, Rebecca Parsons, Patrick Kua
پادکست : آقای ریچاردسون از معماران صاحب نظر در حوزه ی مایکروسرویس ها، در مورد بهره گیری از DDD و CQRS در پیاده سازی مایکروسرویس ها صحبت میکند. برخی نکات جالب در صحبت های ایشون :

- به زبان DDD، هر سرویس یک Bounded Context بوده که دارای مدل و Ubiquitous Language مخصوص به خود است.

- قوانین DDD بیان می کند که در هر Transaction تنها باید یک Aggregate ایجاد و یا ویرایش شود. این به این معناست که در معماری مایکروسرویس ها، Distributed Transaction نخواهیم داشت.

- اگر قصد دارید مایکروسرویس ها را به درستی پیاده سازی کنید، ابتدا کتاب DDD را بخوانید.

لینک کامل پادکست :

https://www.infoq.com/podcasts/chris-richardson

(پادکست بر روی سرویس SoundCloud می باشد، در صورت لود نشدن از پروکسی استفاده کنید)
Enterprise Software Development
bdd-at-the-heart-of-devops.pdf
در دنیای رقابتی امروز، تمام سازمان ها و شرکت ها نیاز به Deliver کردن سریعتر نرم افزار دارند. به همین علت تعداد شرکت هایی که به سمت تحولات Agile و DevOps می روند افزایش پیدا میکند. روش ها و فرهنگ DevOps هم در Deliver کردن سریع تر نرم افزار و هم در کیفیت بهتر آن تاثیر گذار است. اما پیاده سازی DevOps و تحول سازمان و تیم های فنی کار آسانی نیست و بسیاری از شرکت ها در آن با چالش مواجه می شوند.

در این کتابچه آقای John Ferguson (نویسنده کتاب BDD in Action) به بررسی 4 جنبه ی کلیدی در تحولات موفق DevOps میپردازد و BDD را به عنوان یک الزام جهت حرکت به سوی DevOps معرفی میکند.

نام کتابچه : BDD at the heart of any DevOps transformation story
پیاده سازی و نگهداری Acceptance Test ها با چالش های مخصوص به خود همراه است، اما تیم هایی که بتوانند این چالش ها را حل کنند و تست های کاملی بنویسند، به سطح بالایی از اطمینان در رفتار و عملکرد سیستم دست پیدا میکنند. این سطح بالای اطمینان، برای راه اندازی Continuous Delivery الزامی است. در این ویدیو اقای Dave Farely در مورد رویکرد ها و الگوهای نوشتن Acceptance Test ها و همچنین چالش های این مسیر صحبت میکند.

https://www.youtube.com/watch?v=SBhgteA2szg