GCP: تفکیک پشته محاسباتی Google Cloud Platform

ترجمه مقاله به طور اختصاصی برای دانشجویان دوره تهیه شده است "خدمات ابری".

آیا شما علاقه مند به توسعه در این مسیر هستید؟ ضبط یک استاد کلاس حرفه ای را تماشا کنید "سرویس AWS EC2"، که توسط Egor Zuev - TeamLead در InBit و نویسنده برنامه آموزشی در OTUS انجام شد.

GCP: تفکیک پشته محاسباتی Google Cloud Platform

Google Cloud Platform (GCP) خدمات بسیاری را ارائه می‌کند، به ویژه پشته محاسباتی که شامل Google Compute Engine (GCE)، Google Kubernetes Engine (موتور کانتینر سابق) (GKE)، موتور برنامه Google (GAE) و Google Cloud Functions (GCF) است. . همه این سرویس‌ها نام‌های جالبی دارند، اما ممکن است کاملاً در مورد عملکرد آنها و اینکه چه چیزی آنها را برای یکدیگر منحصر به فرد می‌کند، واضح نباشد. این مقاله برای کسانی در نظر گرفته شده است که با مفاهیم ابری، به ویژه خدمات ابری و GCP آشنا هستند.

GCP: تفکیک پشته محاسباتی Google Cloud Platform

1. پشته را محاسبه کنید

یک پشته محاسباتی را می توان به عنوان یک انتزاع لایه ای از آنچه یک سیستم کامپیوتری می تواند ارائه دهد در نظر گرفت. این پشته صعود می کند (به سمت بالا حرکت می کند) از "آهن برهنه" (فلز لخت) با اشاره به اجزای سخت افزاری واقعی کامپیوتر، تا توابع (توابع) که نشان دهنده کوچکترین واحد محاسبه است. آنچه در مورد پشته مهم است این است که خدمات با بالا رفتن از پشته جمع می شوند، مانند بخش "برنامه ها" (برنامه های) که در شکل 1 در زیر نشان داده شده است، باید شامل تمام اجزای اصلی ظرف باشد (ظروف، ماشین های مجازی (ماشین های مجازی) و آهن. به همین ترتیب، مؤلفه ماشین‌های مجازی باید حاوی سخت‌افزار در داخل باشد تا کار کند.

GCP: تفکیک پشته محاسباتی Google Cloud Platform

شکل 1: محاسبه پشته | منبع تصویر از Google Cloud

این مدل که در شکل 1 نشان داده شده است، مبنایی برای توصیف پیشنهادات ارائه دهندگان ابر است. بنابراین، برخی از ارائه دهندگان تنها می توانند، برای مثال، ظروف و خدمات با کیفیت پایین تر در امتداد پشته ارائه دهند، در حالی که برخی دیگر می توانند هر چیزی را که در شکل 1 نشان داده شده است، ارائه دهند.

— اگر با خدمات ابری آشنایی دارید، به بخش 3برای دیدن معادل GCP
— اگر فقط خلاصه ای از خدمات ابری می خواهید، به بخش 2.4

2. خدمات ابری

دنیای رایانش ابری بسیار متنوع است. ارائه دهندگان ابر خدمات متنوعی را ارائه می دهند که متناسب با نیازهای مختلف مشتریان است. ممکن است اصطلاحاتی مانند IaaS، PaaS، SaaS، FaaS، KaaS و غیره را شنیده باشید. با تمام حروف الفبا و به دنبال آن "aaS". با وجود نامگذاری عجیب، آنها مجموعه ای از خدمات ارائه دهنده ابر را تشکیل می دهند. من بیان می کنم که 3 پیشنهاد اصلی "به عنوان یک سرویس" وجود دارد که ارائه دهندگان ابر تقریباً همیشه ارائه می دهند.

اینها IaaS، PaaS و SaaS هستند که به ترتیب مخفف Infrastructure as a Service، Platform as a Service و Software as a Service هستند. تجسم سرویس های ابری به عنوان لایه هایی از خدمات ارائه شده بسیار مهم است. این بدان معناست که وقتی از سطحی به سطح دیگر بالا یا پایین می‌روید، به عنوان یک مشتری با گزینه‌های خدمات مختلفی که یا به پیشنهاد اصلی اضافه یا از آن کم می‌شوند، عبور می‌کنید. بهتر است همانطور که در شکل 2 نشان داده شده است به عنوان یک هرم فکر کنید.
GCP: تفکیک پشته محاسباتی Google Cloud Platform

شکل 2: هرم aaS | منبع تصویر از گاراژ روبی

2.1 زیرساخت به عنوان یک سرویس (IaaS)

این پایین‌ترین سطحی است که یک ارائه‌دهنده ابری می‌تواند ارائه دهد و شامل ارائه‌دهنده ابری است که زیرساخت‌های فلزی خالی از جمله میان‌افزار، کابل‌های شبکه، پردازنده‌های مرکزی، پردازنده‌های گرافیکی، رم، حافظه خارجی، سرورها و تصاویر سیستم‌عامل زیربنایی مانند Debian Linux، CentOS، Windows را ارائه می‌کند. ، و غیره.

اگر از یک ارائه دهنده IaaS ابری سفارش می دهید، این همان چیزی است که باید انتظار دریافت آن را داشته باشید. مونتاژ این قطعات برای اداره کسب و کار به عهده شما، مشتری است. میزان کاری که باید با آن کار کنید ممکن است از فروشنده ای به فروشنده دیگر متفاوت باشد، اما به طور کلی شما فقط سخت افزار و سیستم عامل را دریافت می کنید و بقیه به شما بستگی دارد. نمونه هایی از IaaS عبارتند از AWS Elastic Compute، Microsoft Azure و GCE.

برخی از افراد ممکن است این واقعیت را دوست نداشته باشند که مجبور باشند تصاویر سیستم عامل را نصب کنند و با شبکه، تعادل بار یا نگرانی در مورد اینکه چه نوع پردازنده ای برای حجم کاری آنها ایده آل است، سروکار دارند. این جایی است که از هرم به سمت PaaS حرکت می کنیم.

2.2 پلت فرم به عنوان یک سرویس (PaaS)

PaaS فقط شامل یک ارائه‌دهنده خدمات ابری می‌شود که پلتفرم خاصی را ارائه می‌کند که کاربران می‌توانند بر روی آن برنامه‌های کاربردی بسازند. این یک انتزاع بر روی IaaS است، به این معنی که ارائه دهنده ابر از تمام جزئیات انواع CPU، حافظه، RAM، ذخیره سازی، شبکه ها و غیره مراقبت می کند. همانطور که در شکل 2 نشان داده شده است، شما به عنوان یک مشتری کنترل کمی بر پلت فرم واقعی دارید زیرا ابر ارائه دهنده تمام جزئیات زیرساخت را برای شما مدیریت می کند. شما پلتفرم انتخاب شده را درخواست می کنید و پروژه را بر روی آن می سازید. نمونه هایی از PaaS Heroku هستند.

این ممکن است برای برخی بسیار بالا باشد، زیرا آنها لزوما نمی خواهند پروژه را بر روی یک پلت فرم مشخص بسازند، بلکه به مجموعه ای از خدمات مستقیماً از ارائه دهنده ابر نیاز دارند. اینجاست که SaaS وارد عمل می شود.

2.3 نرم افزار به عنوان یک سرویس (SaaS)

SaaS رایج ترین خدمات ارائه شده توسط ارائه دهندگان خدمات ابری را نشان می دهد. آنها کاربران نهایی را هدف قرار می دهند و عمدتاً از طریق وب سایت هایی مانند Gmail، Google Docs، Dropbox و غیره قابل دسترسی هستند. در مورد Google Cloud، چندین پیشنهاد خارج از پشته محاسباتی آنها وجود دارد که SaaS هستند. اینها شامل Data Studio، Big Query و غیره است.

2.4 خلاصه خدمات ابری

اجزاء
IaaS
PaaS
SAAS

چه چیزی می گیرید
شما زیرساخت ها را دریافت می کنید و بر اساس آن پرداخت می کنید. آزادی استفاده یا نصب هر نرم افزار، سیستم عامل یا ترکیبی از آن.
در اینجا آنچه را که می خواهید دریافت می کنید. نرم افزار، سخت افزار، سیستم عامل، محیط وب. شما یک پلت فرم آماده برای استفاده دریافت می کنید و بر اساس آن پرداخت می کنید.
در اینجا لازم نیست نگران چیزی باشید. بسته ای از پیش نصب شده به شما ارائه می شود که مطابق با نیاز شما سفارشی شده است و تنها کاری که باید انجام دهید این است که بر اساس آن پرداخت کنید.

ارزش
محاسبات پایه
IaaS برتر
این در اصل یک بسته کامل از خدمات است

مشکلات فنی
دانش فنی مورد نیاز
به شما پیکربندی اولیه داده شده است، اما همچنان به دانش دامنه نیاز دارید.
نیازی به زحمت با جزئیات فنی نیست. ارائه دهنده SaaS همه چیز را فراهم می کند.

با چی کار میکنه؟
ماشین های مجازی، ذخیره سازی، سرورها، شبکه، متعادل کننده بار و غیره.
محیط های زمان اجرا (مانند زمان اجرا جاوا)، پایگاه های داده (مانند mySQL، اوراکل)، سرورهای وب (مانند تامکت و غیره)
برنامه هایی مانند خدمات ایمیل (جی میل، ایمیل یاهو و غیره)، سایت های تعامل اجتماعی (فیس بوک و غیره)

نمودار محبوبیت
محبوب در میان توسعه دهندگان بسیار ماهر، محققانی که نیاز به سفارشی سازی بر اساس نیاز یا منطقه تحقیقاتی خود دارند
محبوب ترین در بین توسعه دهندگان است زیرا می توانند روی توسعه برنامه ها یا اسکریپت های خود تمرکز کنند. آنها لازم نیست نگران بار ترافیک یا مدیریت سرور و غیره باشند.
بیشترین محبوبیت در میان مصرف کنندگان عادی یا شرکت هایی که از نرم افزارهایی مانند ایمیل، اشتراک گذاری فایل، شبکه های اجتماعی استفاده می کنند، زیرا نیازی به نگرانی در مورد جزئیات فنی ندارند.

شکل 3: خلاصه ای از ارائه های عمده ابر | تصویر ارائه شده است امیر در بلاگ اسپشیا

3. Google Cloud Platform Computing Suite

با نگاهی به پیشنهادات ارائه‌دهنده ابر معمولی در بخش 2، می‌توانیم آنها را با پیشنهادات Google Cloud مقایسه کنیم.

3.1 موتور محاسباتی گوگل (GCE) - IaaS

GCP: تفکیک پشته محاسباتی Google Cloud Platform

شکل 4: نماد موتور محاسباتی گوگل (GCE).

GCE یک پیشنهاد IaaS از Google است. با GCE می توانید آزادانه ماشین های مجازی ایجاد کنید، منابع CPU و حافظه را اختصاص دهید، نوع ذخیره سازی مانند SSD یا HDD و میزان حافظه را انتخاب کنید. تقریباً مثل این است که کامپیوتر/ایستگاه کاری خود را ساخته اید و تمام جزئیات نحوه عملکرد آن را مدیریت کرده اید.

در GCE، می‌توانید از نمونه‌های میکرو با پردازنده‌های 0,3 هسته‌ای و 1 گیگابایت رم تا هیولاهای 96 هسته‌ای با بیش از 300 گیگابایت رم را انتخاب کنید. همچنین می توانید ماشین های مجازی با اندازه سفارشی برای حجم کاری خود ایجاد کنید. برای علاقه مندان، اینها ماشین های مجازی هستند که می توانید بسازید.

انواع ماشین آلات | مستندات موتور محاسباتی | Google Cloud

3.2. Google Kubernetes Engine (GKE) - (Caas / Kaas)

GCP: تفکیک پشته محاسباتی Google Cloud Platform

شکل 5: نماد Google Kubernetes Engine (GKE).

GKE یک پیشنهاد محاسباتی منحصر به فرد از GCP است که انتزاعی در بالای موتور محاسباتی است. به طور کلی تر، GKE را می توان به عنوان Container به عنوان یک سرویس (CaaS) طبقه بندی کرد، که گاهی اوقات به عنوان Kubernetes به عنوان یک سرویس (KaaS) شناخته می شود، که به مشتریان اجازه می دهد تا کانتینرهای Docker خود را به راحتی در یک محیط کاملاً مدیریت شده Kubernetes اجرا کنند. برای کسانی که با کانتینرها آشنایی ندارند، کانتینرها به ماژولار کردن سرویس ها/برنامه ها کمک می کنند، بنابراین کانتینرهای مختلف می توانند شامل سرویس های مختلفی باشند، به عنوان مثال، یک کانتینر می تواند قسمت جلویی برنامه وب شما را میزبانی کند و دیگری می تواند انتهای پشتی آن را داشته باشد. Kubernetes کانتینرهای شما را خودکار، هماهنگ، مدیریت و مستقر می کند. اطلاعات بیشتر در اینجا.

موتور Google Kubernetes | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: تفکیک پشته محاسباتی Google Cloud Platform

شکل 6: نماد موتور برنامه گوگل (GAE).

همانطور که در بخش 2.2 ذکر شد، PaaS بالاتر از IaaS قرار دارد و در مورد GCP، می‌توان آن را به عنوان یک پیشنهاد بالاتر از GKE نیز در نظر گرفت. GAE PaaS سفارشی گوگل است و بهترین روشی که آنها خودشان را توصیف می کنند این است که "کد خود را بیاورید و ما بقیه کارها را انجام می دهیم."

این تضمین می‌کند که مشتریانی که از GAE استفاده می‌کنند مجبور نیستند با سخت‌افزار/میان‌افزار زیربنایی سر و کار داشته باشند، و می‌توانند از قبل یک پلتفرم از پیش پیکربندی شده آماده کار داشته باشند. تنها کاری که باید انجام دهند این است که کد مورد نیاز برای اجرای آن را ارائه کنند.

GAE به طور خودکار مقیاس بندی را برای پاسخگویی به بار و تقاضای کاربر انجام می دهد، به این معنی که اگر وب سایت فروش گل شما به دلیل نزدیک شدن به روز ولنتاین ناگهان به اوج خود برسد، GAE مقیاس زیرساخت زیربنایی را برای پاسخگویی به تقاضا انجام می دهد و اطمینان حاصل می کند که وب سایت شما به دلیل افزایش تقاضا خراب نمی شود. این بدان معنی است که شما دقیقاً برای منابعی که برنامه شما در آن لحظه نیاز دارد، پرداخت می کنید.

GAE از Kubernetes یا نسخه بومی آن برای رسیدگی به همه این موارد استفاده می کند، بنابراین لازم نیست نگران آن باشید. GAE برای شرکت‌هایی مناسب است که علاقه‌ای به زیرساخت‌های زیربنایی ندارند و فقط به این فکر می‌کنند که برنامه‌شان به بهترین شکل ممکن در دسترس باشد.

به نظر من، GAE بهترین مکان برای شروع است اگر توسعه‌دهنده‌ای با یک ایده عالی هستید، اما نمی‌خواهید با مشقت‌های راه‌اندازی سرورها، متعادل‌سازی بار، و همه کارهای وقت‌گیر Deops/SRE کنار بیایید. . با گذشت زمان می توانید GKE و GCE را امتحان کنید، اما این فقط نظر من است.

سلب مسئولیت: AppEngine برای برنامه های کاربردی وب استفاده می شود، نه برنامه های تلفن همراه.

برای اطلاعات: App Engine - ساخت وب سایت های مقیاس پذیر و پشتیبانی تلفن همراه به هر زبان | Google Cloud

3.4 توابع Google Cloud - (FaaS)

GCP: تفکیک پشته محاسباتی Google Cloud Platform

شکل 7: نماد Google Cloud Functions (GCF).

امیدواریم با نگاه کردن به پیشنهادات قبلی متوجه روندی شده باشید. هرچه از نردبان راه حل محاسباتی GCP بالاتر بروید، کمتر نیاز به نگرانی در مورد فناوری زیربنایی دارید. همانطور که در بخش 1 نشان داده شده است، این هرم با کوچکترین واحد محاسبه ممکن، یک تابع، به پایان می رسد.

GCF یک پیشنهاد نسبتاً جدید GCP است که هنوز در مرحله بتا است (در زمان نوشتن این مقاله). توابع ابری اجازه می دهند توابع خاصی که توسط توسعه دهنده نوشته شده است توسط یک رویداد فعال شوند.

آنها رویداد محور هستند و در قلب کلمه رایج "بدون سرور" قرار دارند، به این معنی که سرورها را نمی شناسند. توابع ابری بسیار ساده هستند و کاربردهای مختلفی دارند که نیاز به تفکر رویداد دارد. به عنوان مثال، هر بار که یک کاربر جدید ثبت نام می کند، یک تابع ابری می تواند فعال شود تا به توسعه دهندگان هشدار دهد.

در یک کارخانه، وقتی یک سنسور خاص به مقدار مشخصی می رسد، می تواند یک عملکرد ابری را فعال کند که پردازش اطلاعات را انجام می دهد، یا به برخی از پرسنل تعمیر و نگهداری و غیره اطلاع می دهد.

توابع ابری - محاسبات سرور رویداد محور | Google Cloud

نتیجه

در این مقاله، ما در مورد ارائه های مختلف ابری مانند IaaS، PaaS و غیره و نحوه پیاده سازی پشته محاسباتی گوگل این لایه های مختلف صحبت کردیم. دیده‌ایم که لایه‌های انتزاعی هنگام انتقال از یک دسته خدمات به دسته‌بندی دیگر، مانند IaaS در Paas، نیاز به دانش کمتری از زیرساخت دارند.

برای یک تجارت، این انعطاف پذیری حیاتی را فراهم می کند که نه تنها اهداف عملیاتی آن را برآورده می کند، بلکه سایر حوزه های کلیدی مانند امنیت و هزینه را نیز برآورده می کند. به طور خلاصه:

موتور محاسبه - به شما این امکان را می دهد که با تخصیص منابع سخت افزاری خاصی مانند RAM، پردازنده، حافظه، ماشین مجازی خود را ایجاد کنید. همچنین کاملا کاربردی و سطح پایین است.

موتور Kubernetes یک پله بالاتر از Compute Engine است و به شما امکان می دهد از Kubernetes و کانتینرها برای مدیریت برنامه خود استفاده کنید و به شما امکان می دهد در صورت نیاز آن را افزایش دهید.

برنامه موتور یک پله بالاتر از Kubernetes Engine است و به شما امکان می دهد فقط بر روی کد خود تمرکز کنید در حالی که Google به تمام الزامات پلتفرم اساسی رسیدگی می کند.

توابع ابری بالای هرم محاسباتی است که به شما امکان می‌دهد یک تابع ساده بنویسید که هنگام اجرا، از کل زیرساخت اصلی برای محاسبه و برگرداندن نتیجه استفاده می‌کند.

با تشکر از شما!

توییتر: @martinoburajr

منبع: www.habr.com

اضافه کردن نظر