بسم الله الرحمن الرحیم به مدد الهی در این کانال درباره کلود و تکنولوژی های مرتبط مطالبی را به اشتراک خواهم گذاشت.
@cloudnativecommunity
@cloudnativecommunity
۱۴:۰۰
C4 Model - Context Diagram
۱۶:۰۱
C4 Model (Software Architecture)
مدل سی۴ در معماری نرم افزار یکی از روشهای مدلسازی و معماری نرم افزار است که از ۴ لایه تشکیل شده است: Context, Containers, Components, Code
این ۴ لایه دارای جزئیات متفاوت هستند که از مدل نقشه های دیجیتالی مانند Google Map الهام گرفته شده است. به این صورت که لایه های بالایی نمای کلی تر را نشان می دهند و با زوم کردم روی هر قسمت جزئیات فنی تر و دقیق تر ظاهر می شوند.
لایه Context (یا زمینه) یک نمای کامل از کل سیستم را نشان می دهد که شامل توصیف کلی سیستم است و اینکه چه کار میکند و چه کسی از این سیستم استفاده می کند و چه ارتباطی بین این سیستم و بقیه سیستم ها وجود دارد. این لایه برای به اشتراک گذاری با مخاطبان غیر فنی خوب هستند. آنها می توانند به مخاطبان شما کمک کنند تا محدوده پروژه، کاربران و مشکلی که می خواهید حل کنید را درک کنند.
لایه Container دارای جزئیات بیشتر برای هر قسمت از لایه قبل است. (این لایه داکر کانتینر نیست). یک کانتینتر واحدی از سیستم است که دارای مجموعه ای کدها یا اطلاعات یا فایلهاست. مانند یک اپ موبایل یا یک برنامه دسکتاپ یا یک برنامه تحت وب. این لایه نشان می دهد که هر کانتینر چه کاری انجام می دهد و از چه تکنولوژی ها و زبان هایی استفاده می کند. این لایه برای مخاطبان فنی تر مانند توسعه دهندگان مناسب است.
با زوم کردن روی هر کانتینر لایه بعدی مربوط به آن کانتینر یعنی لایه Components ظاهر می شود که اجزای تشکیل دهنده آن کانتینر را نشان می دهد. مانند کتابخانه ها و یا واحدهای مختلف تشکیل دهنده و نحوه ارتباط آنها با یکدیگر.
و در نهایت با زوم کردن روی هر Component لایه بعدی یعنی Code ظاهر می شود که همان UML Class Diagram است که جزئیات پیاده سازی هر کامپاننت را به صورت کد نشان می دهد. مبدع این مدل توصیه میکند که لایه چهارم را دستی انجام ندهید و از ابزارهایی استفاده کنید که اتوماتیک از روی کد پیاده سازی شده آن را رسم می کند.
مبدع این مدل، نرم افزار تحت وبی هم مخصوص آن ساخته است که structurizr نام دارد. @CloudNativeCommunity
مدل سی۴ در معماری نرم افزار یکی از روشهای مدلسازی و معماری نرم افزار است که از ۴ لایه تشکیل شده است: Context, Containers, Components, Code
این ۴ لایه دارای جزئیات متفاوت هستند که از مدل نقشه های دیجیتالی مانند Google Map الهام گرفته شده است. به این صورت که لایه های بالایی نمای کلی تر را نشان می دهند و با زوم کردم روی هر قسمت جزئیات فنی تر و دقیق تر ظاهر می شوند.
لایه Context (یا زمینه) یک نمای کامل از کل سیستم را نشان می دهد که شامل توصیف کلی سیستم است و اینکه چه کار میکند و چه کسی از این سیستم استفاده می کند و چه ارتباطی بین این سیستم و بقیه سیستم ها وجود دارد. این لایه برای به اشتراک گذاری با مخاطبان غیر فنی خوب هستند. آنها می توانند به مخاطبان شما کمک کنند تا محدوده پروژه، کاربران و مشکلی که می خواهید حل کنید را درک کنند.
لایه Container دارای جزئیات بیشتر برای هر قسمت از لایه قبل است. (این لایه داکر کانتینر نیست). یک کانتینتر واحدی از سیستم است که دارای مجموعه ای کدها یا اطلاعات یا فایلهاست. مانند یک اپ موبایل یا یک برنامه دسکتاپ یا یک برنامه تحت وب. این لایه نشان می دهد که هر کانتینر چه کاری انجام می دهد و از چه تکنولوژی ها و زبان هایی استفاده می کند. این لایه برای مخاطبان فنی تر مانند توسعه دهندگان مناسب است.
با زوم کردن روی هر کانتینر لایه بعدی مربوط به آن کانتینر یعنی لایه Components ظاهر می شود که اجزای تشکیل دهنده آن کانتینر را نشان می دهد. مانند کتابخانه ها و یا واحدهای مختلف تشکیل دهنده و نحوه ارتباط آنها با یکدیگر.
و در نهایت با زوم کردن روی هر Component لایه بعدی یعنی Code ظاهر می شود که همان UML Class Diagram است که جزئیات پیاده سازی هر کامپاننت را به صورت کد نشان می دهد. مبدع این مدل توصیه میکند که لایه چهارم را دستی انجام ندهید و از ابزارهایی استفاده کنید که اتوماتیک از روی کد پیاده سازی شده آن را رسم می کند.
مبدع این مدل، نرم افزار تحت وبی هم مخصوص آن ساخته است که structurizr نام دارد. @CloudNativeCommunity
۷:۴۱
مدیریت دسترسی ها یا IAM در AWS
یکی از نکات جذاب و البته کمی پیچیده در ابر آمازون موضوع IAM یا (Identity and Access Management) است. به طور خلاصه در IAM تعیین می شود که هر شخص یا هر سرویس چه اجازه هایی می تواند داشته باشد.
اشتباه رایجی که در اینجا اتفاق می افتد این است که به اشخاص یا سرویس ها اجازه های بیش از حد مورد نیاز آنها داده می شود که باعث بالا رفتن خطر حملات سایبری می شود.
مثلا فرض کنید میخواهید با استفاده از CloudFormation که زبان IaaC در آمازون است منابعی را در ابر ایجاد کنید و این کار را میخواهید به صورت اتوماسیون CICD انجام دهید. در این صورت باید اجازه ها را اینطور تعریف کنید:
به دو Role نیاز داریم یکی برای CICD و یکی برای سرویس CloudFormation
- یک اکانت برای CICD درست میکنیم و به آن اجازه می دهیم که رول CICD را اتخاذ کند. - به رول CICD اجازه می دهیم که بتواند بسته های CloudFormation ایجاد کند. - همچنین به رول CICD اجازه PassRole میدهیم تا بتواند رول CloudFormation را به سرویس CloudFormation منتقل کند. - به سرویس CloudFormation اجازه میدهیم که رول CloudFormation را اتخاذ کند. - به رول CloudFormation اجازه های کافی میدهیم تا بتواند منابعی که میخواهد را ایجاد کند. (معمولا اینجا اجازه سطح بالا یا ادمین داده می شود تا آزادانه منابع مورد نیازش را ایجاد کند.)
برای هر کدام از این موارد میتوان توضیحات بیشتری ارائه کرد مبنی بر اینکه ضرورت آن چیست و اگر نباشد چه خطراتی میتواند داشته باشد.
@cloudnativecommunity
یکی از نکات جذاب و البته کمی پیچیده در ابر آمازون موضوع IAM یا (Identity and Access Management) است. به طور خلاصه در IAM تعیین می شود که هر شخص یا هر سرویس چه اجازه هایی می تواند داشته باشد.
اشتباه رایجی که در اینجا اتفاق می افتد این است که به اشخاص یا سرویس ها اجازه های بیش از حد مورد نیاز آنها داده می شود که باعث بالا رفتن خطر حملات سایبری می شود.
مثلا فرض کنید میخواهید با استفاده از CloudFormation که زبان IaaC در آمازون است منابعی را در ابر ایجاد کنید و این کار را میخواهید به صورت اتوماسیون CICD انجام دهید. در این صورت باید اجازه ها را اینطور تعریف کنید:
به دو Role نیاز داریم یکی برای CICD و یکی برای سرویس CloudFormation
- یک اکانت برای CICD درست میکنیم و به آن اجازه می دهیم که رول CICD را اتخاذ کند. - به رول CICD اجازه می دهیم که بتواند بسته های CloudFormation ایجاد کند. - همچنین به رول CICD اجازه PassRole میدهیم تا بتواند رول CloudFormation را به سرویس CloudFormation منتقل کند. - به سرویس CloudFormation اجازه میدهیم که رول CloudFormation را اتخاذ کند. - به رول CloudFormation اجازه های کافی میدهیم تا بتواند منابعی که میخواهد را ایجاد کند. (معمولا اینجا اجازه سطح بالا یا ادمین داده می شود تا آزادانه منابع مورد نیازش را ایجاد کند.)
برای هر کدام از این موارد میتوان توضیحات بیشتری ارائه کرد مبنی بر اینکه ضرورت آن چیست و اگر نباشد چه خطراتی میتواند داشته باشد.
@cloudnativecommunity
۱۸:۰۴
مرکز ثبت کانتینر (Container Registry)
یکی از خدماتی که برای ساختن زیست بوم ابری در کشور به آن نیاز داریم مرکز ثبت کانتینر (Container Registry) است. اولین و رایج ترین ثبت کانتینر Docker Hub است که اخیرا خدمات رایگان خود را محدود کرده است و در حال حذف آن است و در نتیجه شرکت های دیگری ثبت خود را راه اندازی کرده اند. برخی از ثبت های کانتینر رایج دنیا اینها هستند:
- Docker Hub - Amazon ECR - Harbor (Open Source) - Azure Container Registry- GitHub Container Registry- Google Container Registry- JFrog Container Registry- Red Hat Quay
یک ایده استارتاپی (یا غیر استارتاپی که می تواند توسط یک شرکت موجود ارائه شود) این است که یک ثبت کانتینر داخلی راه اندازی کند تا همه افرادی که از کانتینر یا کوبرنتز استفاده می کنند بتوانند تصویر کانتینر خود را در آنجا ثبت کنند.
بسیاری از شرکت های دنیا به جای اینکه یک نرم افزار را از ابتدا تولید کنند، با یک نرم افزار متن باز شروع میکنند و بعد اجزایی به آن اضافه می کنند یا خدماتی درباره آن ارائه می دهند. مثلا یکی از شرکت های معروف در زمینه امنیت کانتینرها در زمان اجرا شرکت Sysdig است که از نرم افزار متن باز falco استفاده می کند به صورتی که به آن یک رابط کاربر اضافه کرده است و برای نصب و راه اندازی و پشتیبانی آن به مشتریانش خدماتی ارائه می دهد.
برای ثبت کانتینر هم میتوان با استفاده از نرم افزار متن باز Harbor شروع کرد و بعد با افزودن قابلیت های بیشتر و ارائه خدمات و پشتیبانی می توان یک مرکز عمومی ثبت کانتینر راه اندازی کرد.
به جای اینکه هرکس برای شرکت خودش یک ثبت کانتینر نصب کند که احتمالا مشکلات اجرایی و امنیتی زیاد و هزینه نیروی انسانی زیادی را متحمل می شود بهتر است یک یا دو شرکت به صورت متمرکز این خدمت را ارائه دهند و بقیه شرکت ها از آنها استفاده کنند. اگر بقیه شرکت ها از خدمات آنها استفاده و حمایت کنند آن شرکت هم می تواند روز به روز بر کیفیت و سرعت و امنیت خدمتش اضافه کند.
(پی نوشت: ترجمه مناسب کانتینر به فارسی چیست؟) #ثبت #کانتینر@CloudNativeCommunity
یکی از خدماتی که برای ساختن زیست بوم ابری در کشور به آن نیاز داریم مرکز ثبت کانتینر (Container Registry) است. اولین و رایج ترین ثبت کانتینر Docker Hub است که اخیرا خدمات رایگان خود را محدود کرده است و در حال حذف آن است و در نتیجه شرکت های دیگری ثبت خود را راه اندازی کرده اند. برخی از ثبت های کانتینر رایج دنیا اینها هستند:
- Docker Hub - Amazon ECR - Harbor (Open Source) - Azure Container Registry- GitHub Container Registry- Google Container Registry- JFrog Container Registry- Red Hat Quay
یک ایده استارتاپی (یا غیر استارتاپی که می تواند توسط یک شرکت موجود ارائه شود) این است که یک ثبت کانتینر داخلی راه اندازی کند تا همه افرادی که از کانتینر یا کوبرنتز استفاده می کنند بتوانند تصویر کانتینر خود را در آنجا ثبت کنند.
بسیاری از شرکت های دنیا به جای اینکه یک نرم افزار را از ابتدا تولید کنند، با یک نرم افزار متن باز شروع میکنند و بعد اجزایی به آن اضافه می کنند یا خدماتی درباره آن ارائه می دهند. مثلا یکی از شرکت های معروف در زمینه امنیت کانتینرها در زمان اجرا شرکت Sysdig است که از نرم افزار متن باز falco استفاده می کند به صورتی که به آن یک رابط کاربر اضافه کرده است و برای نصب و راه اندازی و پشتیبانی آن به مشتریانش خدماتی ارائه می دهد.
برای ثبت کانتینر هم میتوان با استفاده از نرم افزار متن باز Harbor شروع کرد و بعد با افزودن قابلیت های بیشتر و ارائه خدمات و پشتیبانی می توان یک مرکز عمومی ثبت کانتینر راه اندازی کرد.
به جای اینکه هرکس برای شرکت خودش یک ثبت کانتینر نصب کند که احتمالا مشکلات اجرایی و امنیتی زیاد و هزینه نیروی انسانی زیادی را متحمل می شود بهتر است یک یا دو شرکت به صورت متمرکز این خدمت را ارائه دهند و بقیه شرکت ها از آنها استفاده کنند. اگر بقیه شرکت ها از خدمات آنها استفاده و حمایت کنند آن شرکت هم می تواند روز به روز بر کیفیت و سرعت و امنیت خدمتش اضافه کند.
(پی نوشت: ترجمه مناسب کانتینر به فارسی چیست؟) #ثبت #کانتینر@CloudNativeCommunity
۵:۲۰
یک مدل هوش مصنوعی به نام k8sgpt وجود دارد که به عیب یابی خوشه های کوبرنتز کمک میکند. مشکلی که دارد این است که اطلاعات خوشه های شما را با OpenAI به اشتراک می گذارد. پروژه دیگری در حال انجام است به نام LocalAI که در داخل خوشه اجرا می شود و دیگر نیاز به ارتباط با شرکت OpenAI ندارد و به عیب یابی خوشه کمک میکند.
https://github.com/go-skynet/LocalAI
@CloudNativeCommunity
https://github.com/go-skynet/LocalAI
@CloudNativeCommunity
۱۷:۰۰
بازدید سه بعدی از قسمت های مختلف دیتاسنترهای مایکروسافتhttps://news.microsoft.com/stories/microsoft-datacenter-tour/@CloudNativeCommunity
۱۰:۰۴
Kubernetes basics, kubectl, k9s
Youtube: https://youtu.be/lq2Pt3Sw0kE
Aparat: https://www.aparat.com/v/axmBP
@CloudNativeCommunity
Youtube: https://youtu.be/lq2Pt3Sw0kE
Aparat: https://www.aparat.com/v/axmBP
@CloudNativeCommunity
۳:۵۶
How to use Trivy to scan your code for vulnerabilities and misconfigurations.
Youtube: https://youtu.be/MRjGYk9YD48
Aparat: https://www.aparat.com/v/Kx3t9
@CloudNativeCommunity
Youtube: https://youtu.be/MRjGYk9YD48
Aparat: https://www.aparat.com/v/Kx3t9
@CloudNativeCommunity
۳:۵۹