Table of Contents
مقدمه: معرفی اصلی مهندسی برای سیستم های مولد Cloud
در چشم انداز دیجیتال سریع امروز، یک مهندس اصلی نه تنها یک رهبری فنی است - آنها معمار انعطاف پذیری و رشد سیستم مقیاس پذیری و قابلیت اطمینان هستند ستون های غیر قابل مذاکره از نرم افزار مدرن هستند. فن آوری های کاربردی Cloud می توانند موثرترین ابزار برای مقابله با این نیازها را ارائه دهند، سازمان ها را قادر می سازد تا به افزایش ترافیک پاسخ دهند، معماری به طور مداوم تکامل یابند و از شکست های اتوماسیون قوی - این روش های مهندسی و مهندسی می توانند این روش های کوچک را بررسی کنند.
درک تکنولوژی های Cloud-Native Technologies
در این میان، قرآن کریم در چهار سوره ی قرآن کریم، سوره ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی بقره، آیه ی
- [در این میان] [به جز] [به عنوان مثال]، [به عنوان مثال،] برنامه های بسته با وابستگی های خود را، اطمینان از سازگاری در محیط زیست.
- Microservices برنامه های تکلیست را به خدمات به صورت آزادانه و مستقل به صورت رایگان تجزیه می کند.
- سیستم عامل های نفوذ (به عنوان مثال، Kubernetes) خودکار سازی استقرار، مقیاس و مدیریت حجم کار کانتینری.
- خط لوله CI / CD خودکار امکان انتشار مکرر و قابل اعتماد با حداقل مداخله دستی را فراهم می کند.
فراتر از این اصول، اکوسیستم شامل خدمات مش ها (به عنوان مثال، Istio) برای مدیریت ترافیک و observability، توابع بدون سرور برای مقیاس رویداد و ابزار GitOps (به عنوان مثال، ArgoCD) برای مدیریت زیرساخت های غیر قابل تنظیم است. درک این فن آوری اجازه می دهد تا یک مهندس اصلی برای انتخاب ترکیب مناسب برای نیازهای سیستم منحصر به فرد و قابلیت اطمینان.
برای تعریف رسمی و منابع اجتماعی، به منظر بومی Cloud اشاره کنید.
افزایش مقیاس پذیری با رویکردهای Cloud-Native
مقیاس پذیری توانایی یک سیستم برای کنترل بار افزایش یافته بدون قربانی کردن عملکرد است.تکنولوژی Cloud-native هر دو مقیاس عمودی (اضافه کردن قدرت بیشتر به گره های موجود) و مقیاس افقی (اضافه کردن گره های بیشتر) را ارائه می دهد:
خودکار سازی و Elasticity
Kobernetes' Verticalscaler (HPA) به طور خودکار تعداد شبیه سازی های pod را بر اساس CPU، حافظه یا معیارهای سفارشی تنظیم می کند.به طور مشابه، ارائه دهندگان ابر گروه های خودکار را برای ناوگان ماشین مجازی تنظیم می کنند.با تنظیم آستانه های مناسب و استفاده از معیارهایی که منعکس کننده تقاضای واقعی کاربر، شما جلوگیری از ارتقاء بیش از حد و جلوگیری از تنگنا، برای مثال، در طی یک بار فروش اضافی، می تواند آنها را کاهش دهد.
Microservices-Driven Scaling
به جای مقیاس دادن کل برنامه تکلی، microservices به شما اجازه می دهد تا فقط خدمات را که تحت بار هستند، مقیاس دهید. یک سرویس جستجو ممکن است به 10 نسخه نیاز داشته باشد در حالی که یک سرویس فقط نیاز به 2 دارد، این دانه منابع را ذخیره می کند و پاسخگو بودن را بهبود می بخشد.
پایگاه داده مقیاس سازی Patterns
خدمات بدون دولت به راحتی مقیاس، اما پایگاه های داده اغلب تبدیل به تنگنا. Cloud-native Solutions شامل پایگاه های داده مدیریت شده با نسخه های خواندن (به عنوان مثال، Amazon Aurora)، پایگاه های داده SQL توزیع شده (به عنوان مثال، CockroachDB)، و لایه های caching (به عنوان مثال، Redis) برای مقیاس بندی واقعا افقی، در نظر گرفتن hard یا استفاده از پایگاه های داده های دیگر مانند طراحی نهایی، همیشه در هنگام خارج کردن.
Edge Computing for Global Reach
برای سیستم هایی که به مخاطبان جهانی خدمت می کنند، محاسبات لبه به کاربران نزدیک تر می شود و ذخیره سازی را به کاربران نزدیک تر می کند. Cloud-native Platforms مانند AWS Outposts یا Google Distributed Cloud به شما اجازه می دهد که Kubernetes را در لبه اجرا کنید، تاخیر و بهبود از طریقput، این امر به ویژه برای IoT، تجزیه و تحلیل زمان واقعی و تحویل محتوا مرتبط است.
در مورد حجم کاری Kubernetes در اطلاعات بیشتری در مورد مقیاس پذیری HPA یاد بگیرید.
بهبود قابلیت اطمینان از طریق الگوهای Cloud-Native
قابلیت اطمینان فراتر از زمان است - آن شامل تحمل خطا، تخریب ظریف و بهبود قابل پیش بینی است.معماری های Cloud با شکست در ذهن از روز اول استراتژی های کلیدی شامل:
سیستم های توزیع شده و Redundancy
استقرار چندین مورد از خدمات در مناطق در دسترس (AZs) یا حتی مناطق نقاط واحد شکست را از بین می برد. Kubernetes StatefulSets با حجم مداوم می تواند در هنگام جفت شدن با راه حل های ذخیره سازی ابری، از آمادگی و کاوشگرهای زنده برای اطمینان از اینکه فقط پدهای سالم ترافیک دریافت می کنند، از شکست های آزو زنده بماند.
مهندسی هرج و مرج
به طور فعال شکست های تزریق را به سیستم شما برای تست انعطاف پذیری ابزارهایی مانند Chaos Mesh یا Gremlin شبیه سازی تصادف های پد، تاخیر شبکه یا خستگی منابع را انجام می دهند.با انجام آزمایش های هرج و مرج، تیم شما حافظه عضلانی را برای حوادث واقعی ایجاد می کند و نقاط ضعف را قبل از قطع شدن شناسایی می کند.
قابلیت های حفظ و SLOs
نظارت بر قوی، ورود و ردیابی ضروری است. پیاده سازی سه ستون از observability: معیارها (Prometheus)، logs (شکلELK)، و رد (Geger) تعریف خدمات اهداف سطح خدمات (SLOs) برای تاخیر، نرخ خطا و در دسترس بودن زمانی که SLO ها نقض، هشدار های خودکار اصلاح - مانند مقیاس پذیری زمان و ابزار واقعی برای ارائه داده ها و ارائه می شود.
زیرساخت های قابل استفاده Immutable Infrastructure
از حرکت پیکربندی با درمان زیرساخت به عنوان کد اجتناب کنید.استفاده از Terraform یا Pulumi برای مدیریت منابع ابر و تصاویر container که یک بار ساخته شده و بدون تغییر در محیط ها نصب شده اند، استقرار های قابل استفاده باعث کاهش "کار بر روی خطای ماشین من" و اطمینان از رفتار سازگار می شوند.هنگامی که یک شکست رخ می دهد، شما می توانید با استفاده از تصویر قبلی به جای پچ کردن یک نمونه دویدن، دوباره به عقب برگردید.
بازیابی فاجعه و اتوماسیون پشتیبان
برنامه ریزی برای قطع برق منطقه ای. Cloud-native Disaster Recovery (DR) استراتژی های فعال-active-active-active (تraffic Split in the Zone) یا فعال با شکست خودکار با استفاده از DNS (به عنوان مثال، مسیر 53) پشتیبان گیری و بازیابی داده های مداوم با استفاده از ابزارهای Cloud-native مانند Velero برای پشتیبان گیری Kubernetes یا برنامه بازیابی فوری (P)
برای یک شیرجه عمیق تر، [AWS Well-Architected Framework] دارای قابلیت اطمینان پنل است.
بهترین روش ها برای مهندسین اصلی در محیط های ابری-Native
دانش فنی به تنهایی کافی نیست، به عنوان یک مهندس اصلی، شما باید فرهنگ، فرایند و تصمیمات معماری را هدایت کنید.در اینجا بالاترین شیوه های آرامش بخش را در اینجا وجود دارد:
طراحی برای شکست – در آغوش گرفتن هرج و مرج کنترل شده
فرض کنید که هر جزء شکست خواهد خورد – پارتیشن های شبکه، خرابی دیسک، پیکربندی اشتباه و خطاهای انسانی.ساخت دوباره با عقب نمایی، شکستن مدار (به عنوان مثال، Hystrix)، و سرهای عمده برای جدا کردن شکست ها.اطمینان حاصل کنید که سیستم شما می تواند به طرز ماهرانه ای تقسیم شود: اگر یک پیشنهاد کاهش یابد، نشان داده شده یا به طور پیش فرض نتایج خطا را به جای یک صفحه خطا.
همه چیز را از Code به Production خودکار کنید
فرآیندهای دستی دشمن قابلیت اطمینان هستند. پیاده سازی کامل خطوط لوله CI /CD است که شامل تست های واحد، تست های ادغام، اسکن امنیتی و استقرار های Canary است.استفاده از GitOps برای همگام سازی حالت مورد نظر خود را با سیستم زنده است.به عنوان مثال، یک درخواست کشش که تغییر یک Kubernets مانیفست می تواند به طور خودکار به یک محیط مرحله بندی، آزمایش های دود و سپس ترویج تولید اگر چک عبور می کند.
نظارت، اندازه گیری و بهبود مستمر
ابزار هر سرویس با log های ساختاری و ردیابی توزیع شده. داشبوردهایی را ایجاد کنید که معیارهای تجاری (به عنوان مثال، سفارش از طریقput) را با معیارهای سیستم (به عنوان مثال، تأخیر پایگاه داده) مرتبط می کند و به طور منظم "جمعه های شکست" یا بررسی های حادثه بدون سرزنش برای شناسایی علل ریشه و جلوگیری از داده ها برای تنظیم سیاست های مقیاس، عملکرد و به روز رسانی SLO.
بهینه سازی هزینه به عنوان یک نگرانی قابل اطمینان
Over-provisioning foribility می تواند منجر به هزینه های غیر قابل تحمل شود.استفاده از ابزارهای مناسب برای کاهش هزینه (به عنوان مثال، Kubecost، AWS Compute Optimizer) برای مطابقت با انواع نمونه برای استفاده واقعی.
امنیت با طراحی در Cloud-Native Stacks
امنیت برای اطمینان پایه است.استفاده از حداقل نقش های IAM، رمزگذاری داده ها در استراحت و در حمل و نقل، اسکن تصاویر container برای آسیب پذیری ها و اجرای سیاست های شبکه در Kubernetes. Tools مانند OPA (Open Policy Agent) می تواند قوانین انطباق را در سراسر خوشه شما اجرا کند.
توسعه فرهنگ مهندسی Cloud-Native Engineering
تشویق آزمایش و یادگیری. مهندسین جوان با کارشناسان ابر، هک کردن ها که تیم ها خدمات جدیدی را در Kubernetes ایجاد می کنند، و مستندات داخلی و کتاب های اجرا ایجاد می کنند.هنگامی که کل سازمان شما اصول ابر را درک می کند، تصمیم گیری در مورد مقیاس پذیری و قابلیت اطمینان به جای بالا.
نتیجه گیری: رهبری تغییر با اعتماد
فن آوری های مولد ابری یک گلوله نقره نیستند، اما هنگامی که به طور متفکرانه ای اعمال می شوند، آنها تغییر می دهند که چگونه سازمان ها رشد و انعطاف پذیری را مدیریت می کنند، نقش شما این است که تیم ها را در اتخاذ این شیوه ها هدایت کنید – از برنامه های میراث containerizing گرفته تا تجزیه و تحلیل میکروسرویس های پیچیده با بازیابی خودکار، نتیجه یک سیستم است که به طور بی حد تلاش و بار بهبود می یابد از شکست های سرمایه گذاری اجتناب ناپذیر در آینده، نه تنها به طور قابل اعتماد، و نه تنها در مقیاس مهندسی همه چیز، بلکه همه چیز را تنظیم می کند.