پلتفرم مدرن برای توسعه و استقرار نرم افزار

این اولین پست از یک سری پست در مورد تغییرات، بهبودها و اضافات در به‌روزرسانی جدید پلتفرم Red Hat OpenShift 4.0 است که به شما کمک می‌کند تا برای انتقال به نسخه جدید آماده شوید.

پلتفرم مدرن برای توسعه و استقرار نرم افزار

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

البته، اعلام هر سرویس ابری جدید با بحث‌های متعددی در میان کارشناسان در توییتر همراه بود و بحث‌هایی در مورد موضوعات مختلفی از جمله پایان دوره متن‌باز، کاهش فناوری اطلاعات داخلی و اجتناب‌ناپذیری انجام شد. یک انحصار نرم افزار جدید در فضای ابری، و اینکه چگونه پارادایم جدید X جایگزین همه پارادایم های دیگر خواهد شد.

ناگفته نماند که همه این اختلافات بسیار احمقانه بود

واقعیت این است که هیچ چیز از بین نمی رود و امروزه به دلیل ظهور مداوم نرم افزارهای جدید در زندگی ما می توانیم شاهد رشد تصاعدی در محصولات نهایی و نحوه توسعه آنها باشیم. و با وجود این واقعیت که همه چیز در اطراف تغییر خواهد کرد، در عین حال، در اصل، همه چیز بدون تغییر باقی خواهد ماند. توسعه‌دهندگان نرم‌افزار همچنان کدهایی را با خطا می‌نویسند، مهندسان عملیات و متخصصان قابلیت اطمینان همچنان با پیجرها راه می‌روند و هشدارهای خودکار را در Slack دریافت می‌کنند، مدیران همچنان بر حسب OpEx و CapEx کار می‌کنند، و هر بار که نقصی رخ می‌دهد، توسعه‌دهنده ارشد این کار را انجام می‌دهد. آهی غمگین با این جمله: «بهت گفتم»...

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

Kubernetes یکی از این ابزارهاست. کار برای ترکیب Red Hat OpenShift با سایر ابزارها و خدمات در یک پلتفرم واحد در حال انجام است که نرم افزار را قابل اطمینان تر، مدیریت آسان تر و ایمن تر برای کاربران کند.

با این گفته، تیم OpenShift یک سوال ساده می پرسد:

چگونه می توانید کار با Kubernetes را آسان تر و راحت تر کنید؟

پاسخ به طرز شگفت آوری واضح است:

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

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

چگونه می توان به این نتیجه رسید؟

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

در ابتدای سال 2018، Red Hat پروژه CoreOS را خریداری کرد، که دیدگاه های مشابهی در مورد آینده داشت - ایمن تر و قابل اعتمادتر، ایجاد شده بر اساس اصول منبع باز. این شرکت برای توسعه بیشتر این ایده ها و پیاده سازی آنها کار کرده است و فلسفه ما را در عمل به کار می گیرد - تلاش برای اطمینان از اجرای ایمن همه نرم افزارها. همه این کارها بر روی Kubernetes، Linux، ابرهای عمومی، ابرهای خصوصی و هزاران پروژه دیگر که زیربنای اکوسیستم دیجیتال مدرن ما هستند ساخته شده است.

نسخه جدید OpenShift 4 واضح، خودکار و طبیعی تر خواهد بود

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

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

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

این به توسعه دهندگان این امکان را می دهد که روی ایجاد محصولات واقعی برای کاربران و مشتریان تمرکز کنند. شما مجبور نخواهید بود که در جنگل تنظیمات سخت افزاری و نرم افزاری قدم بزنید و تمام عوارض تصادفی به گذشته خواهد ماند.

OpenShift 4: پلتفرم NoOps که نیازی به نگهداری ندارد

В این انتشارات وظایفی را تشریح کرد که به شکل‌دهی چشم‌انداز شرکت برای OpenShift 4 کمک کرد. هدف تیم این است که کارهای روزانه عملیات و نگهداری نرم‌افزار را تا حد امکان ساده‌سازی کند تا این فرآیندها آسان و راحت شود - هم برای متخصصان درگیر در پیاده‌سازی و هم برای توسعه‌دهندگان. اما چگونه می توان به این هدف نزدیک شد؟ چگونه می توان بستری برای اجرای نرم افزارهایی ایجاد کرد که به حداقل مداخله نیاز دارد؟ NoOps حتی در این زمینه به چه معناست؟

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

  • با سیستم ها کار نکنید، بلکه با رابط های برنامه (API) کار کنید.
  • برای پیاده‌سازی نرم‌افزار خود را خسته نکنید - به ارائه‌دهنده اجازه دهید این کار را برای شما انجام دهد.
  • فوراً وارد ایجاد یک چارچوب بزرگ نشوید - با نوشتن قطعات کوچک شروع کنید که به عنوان "بلوک های سازنده" عمل می کنند، سعی کنید این کد با داده ها و رویدادها کار کند، نه با دیسک ها و پایگاه های داده.

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

برای متخصصان تعمیر و نگهداری و عملیات، کلمه "NoOps" ممکن است کمی ترسناک به نظر برسد. اما هنگام برقراری ارتباط با مهندسان میدان، آشکار می‌شود که الگوها و تکنیک‌هایی که آنها برای اطمینان از قابلیت اطمینان و قابلیت اطمینان استفاده می‌کنند (Site Reliability Engineering، SRE) شباهت‌های زیادی با الگوهای شرح داده شده در بالا دارند:

  • سیستم ها را مدیریت نکنید - فرآیندهای مدیریت آنها را خودکار کنید.
  • نرم افزار را پیاده سازی نکنید - یک خط لوله برای استقرار آن ایجاد کنید.
  • از جمع کردن همه سرویس‌های خود با هم و اجازه دادن به شکست یکی از آنها باعث از کار افتادن کل سیستم خود شوید - آنها را با استفاده از ابزارهای اتوماسیون در کل زیرساخت خود پراکنده کنید و آنها را به روش‌هایی متصل کنید که قابل نظارت و نظارت باشد.

SREها می‌دانند که ممکن است مشکلی پیش بیاید و باید مشکل را ردیابی و برطرف کنند—بنابراین کارهای معمول را خودکار می‌کنند و بودجه‌های خطا را از قبل تنظیم می‌کنند تا در صورت بروز مشکل آماده اولویت‌بندی و تصمیم‌گیری باشند.

Kubernetes در OpenShift پلتفرمی است که برای حل دو مشکل اصلی طراحی شده است: به جای اینکه شما را مجبور به درک ماشین های مجازی یا API های متعادل کننده بار کند، با انتزاعات مرتبه بالاتر - فرآیندها و خدمات استقرار کار می کند. به جای نصب عوامل نرم افزاری، می توانید کانتینرها را اجرا کنید و به جای نوشتن پشته نظارتی خود، از ابزارهای موجود در پلتفرم استفاده کنید. بنابراین، سس مخفی OpenShift 4 واقعاً مخفی نیست - فقط باید اصول SRE و مفاهیم بدون سرور را در نظر گرفت و آنها را به نتیجه منطقی خود رساند تا به توسعه دهندگان و مهندسان عملیات کمک کند:

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

اما تفاوت پلتفرم OpenShift 4 با نسخه های قبلی آن و رویکرد "استاندارد" برای حل چنین مشکلاتی چیست؟ چه چیزی مقیاس را برای تیم های پیاده سازی و عملیات هدایت می کند؟ با توجه به اینکه شاه در این وضعیت خوشه است. بنابراین،

  • ما مطمئن می شویم که هدف خوشه ها مشخص است (ابر عزیز، من این خوشه را انتخاب کردم زیرا توانستم)
  • ماشین‌ها و سیستم‌های عامل برای خدمت به خوشه وجود دارند (عالیحضرت)
  • مدیریت وضعیت میزبان ها از خوشه، به حداقل رساندن بازسازی آنها (دریفت).
  • برای هر یک از عناصر مهم سیستم، یک پرستار بچه (مکانیسم) مورد نیاز است که مشکلات را نظارت و برطرف کند
  • شکست *هر* جنبه یا عنصر یک سیستم و مکانیسم های بازیابی مرتبط، بخش عادی زندگی است
  • کل زیرساخت باید از طریق API پیکربندی شود.
  • از Kubernetes برای اجرای Kubernetes استفاده کنید. (بله، بله، اشتباه تایپی نیست)
  • نصب به روز رسانی ها باید آسان و بدون دردسر باشد. اگر نصب یک به‌روزرسانی بیش از یک کلیک طول می‌کشد، واضح است که ما کار اشتباهی انجام می‌دهیم.
  • نظارت و اشکال زدایی هر جزء نباید مشکلی ایجاد کند، بنابراین ردیابی و گزارش دهی در کل زیرساخت نیز باید آسان و راحت باشد.

آیا می خواهید قابلیت های این پلتفرم را در عمل ببینید؟

نسخه پیش نمایش OpenShift 4 در دسترس توسعه دهندگان قرار گرفته است. با استفاده از یک نصب کننده آسان، می توانید یک کلاستر در AWS در بالای Red Had CoreOS اجرا کنید. برای استفاده از پیش‌نمایش، فقط به یک حساب AWS برای فراهم کردن زیرساخت و مجموعه‌ای از حساب‌ها برای دسترسی به تصاویر پیش‌نمایش نیاز دارید.

  1. برای شروع، به try.openshift.com و روی "شروع به کار" کلیک کنید.
  2. به حساب Red Hat خود وارد شوید (یا یک حساب جدید ایجاد کنید) و دستورالعمل ها را برای راه اندازی اولین خوشه خود دنبال کنید.

پس از نصب موفقیت آمیز، آموزش های ما را بررسی کنید آموزش OpenShiftبرای دریافت درک عمیق تر از سیستم ها و مفاهیمی که پلتفرم OpenShift 4 را به روشی آسان و راحت برای اجرای Kubernetes تبدیل می کند.

نسخه جدید OpenShift را امتحان کنید و نظر خود را به اشتراک بگذارید. ما متعهد هستیم که کار با Kumbernetes را تا حد امکان در دسترس و بدون دردسر کنیم—آینده NoOps از امروز شروع می شود.

حالا توجه کنید!
در همایش DevOpsForum 2019 در 20 آوریل، یکی از توسعه دهندگان OpenShift، وادیم روتکوفسکی، یک کلاس کارشناسی ارشد برگزار می کند - او ده خوشه را می شکند و آنها را مجبور می کند آنها را تعمیر کنند. همایش پولی است اما با کد تبلیغاتی #کلاه قرمزی از 37 درصد تخفیف برخوردار می شوید

کلاس مستر در ساعت 17:15 تا 18:15 و غرفه در تمام طول روز باز است. تی شرت، کلاه، برچسب - معمولی!

سالن شماره 2
در اینجا کل سیستم باید تغییر کند: ما خوشه‌های شکسته k8s را همراه با مکانیک‌های تایید شده تعمیر می‌کنیم.


منبع: www.habr.com

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