بنیاد CNCF یا Cloud Native Computing Foundation در سال ۲۰۱۵ همزمان با اعلام نسخه ۱ Kubernetes جهت مدیریت این پروژه و سایر پروژه های مرتبط با Container تکنولوژی ایجاد گردید و زیر مجموعه بنیاد لینوکس می باشد. در سال ۲۰۱۹ تعداد ۱۷۳ شرکت به اعضای این بنیاد اضافه شدند ( رشد ۵۰٪ Membership ) و مجموع ۴۵۰ شرکت که شامل شرکت های عظیم فناوری اطلاعات هستند مانند گوگل و ردهت و اینتل و ای بی ام و مایکروسافت عضو این بنیاد هستند. ( این سازمان ها علاوه بر استفاده از تکنولوژی های CNCF در توسعه آنها نیز نقش ایفا می نمایند، سازمان هایی که فقط از تکنولوژی های CNCF استفاده می نمایند به عنوان End user community در نظر گرفته می شوند )
The Cloud Native Computing Foundation (CNCF) is an open source software foundation dedicated to making cloud native computing universal and sustainable
هدف از تکنولوژی های توسعه داده شده توسط این بنیاد توانمند سازی سازمان ها در ساختن و اجرای اپلیکیشن های مقیاس پذیر در محیطهای جدید و داینامیک ابری Public، Private و Hybrid می باشد. تعریف ارائه شده از Cloud Native توسط این بنیاد به شرح زیر است:
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private and hybrid clouds
جهت بررسی بیشتر در زمینه فعالیتها و رویدادها و Certification های ارائه شده توسط CNCF می توانید به گزارش عملکرد سال ۲۰۱۹ CNCF و Cloud native مراجعه بفرمایید. همچنین جهت آشنایی به مسیر یادگیری DevOps و نقش CNCF و محصولات آن در نقشه راه شما به DevOps به مقاله آموزش مسیر یادگیری DevOps و دوره آموزش طراحی DevOps Roadmap برای سازمان شما مراجعه بفرمایید.
در راستای پیاده سازی Cloud Native در سازمان ها چهار Principle معرفی شده است، نیازی نیست که سازمان تمامی این Principle ها را همزمان پیاده سازی نماید زیرا ممکن است باعث اختلال در عمکلرد سازمان گردد ولی نیاز است رویکرد بهبود تدریجی در نظر گرفته شود. این چهار Principleبه شرح زیر هستند.
- استفاده از رویکرد Microservice در تولید اپلیکیشن ها
- Package نمودن مایکروسرویس ها به صورت Container
- استفاده از رویکرد DevOps در پیاده سازی زیرساخت سازمان
- ارائه مداوم (Continuous deploy) اپلیکیشن به مشتریان نهایی
پیاده سازی Cloud Native در سازمان نیازمند داشتن نقشه راه پیاده سازی Digital Transformation است و هدف تحول دیجیتال در اولویت قراردادن مشتری است، همین امر باعث توجیه نیازهای فنی مانند انتشار سریعتر کد، پیاده سازی مدل ارتباطی موثرتر (Continuous feedback) و پیاده سازی رویکرد تجربه گرایی می گردد.
استفاده از کوبرنیتیز در تحول زیرساخت سازمان باعث بروز فرصت های فراوانی در مدرنیزه نمودن زیرساخت سازمان می گردد. همچنین استفاده از kubernetes جهت Deploy اپلیکیشن ها باعث بهبود مدل همکاری بین تیم های زیرساخت و توسعه و استاندارد سازی این فرآیندها می گردد، زیرا هر دو تیم با این ابزار و فرآیندهای آن اشنایی دارند.
سوالات اصلی که عموما در زمان پیاده سازی Cloud Native به وجود می آیند به شرح زیر هستند.
- چگونه طرح تجاری استفاده از Cloud Native در سازمان را توجیح نماییم؟
- آیا جهت Cloud Native نامیده شدن پیاده سازی ما، نیاز به استفاده از DevOps، CI/CD، Container ها و Microservice است؟
- Kubernetes یا Serverless ؟
- چگونه درک صحیحی از جزئیات Landscape کلود نیتیو داشته باشیم؟
- چگونه افراد متخصص در زمینه این تکنولوژی های جدید را استخدام نماییم؟
در نظرسنجی سال ۲۰۱۸ و ۲۰۱۹ CNCF همین سوالات مورد بررسی قرار گرفته است. جهت بررسی جزئیات این نظرسنجی به نظرسنجی CNCF 2019 مراجعه بفرمایید.
بعد از توجیه پیاده سازی Cloud Native در سازمان سوال دیگری مطرح می گردد، نقطه شروع پیاده سازی Cloud Native کجاست، در این زمینه پروژه ایی به نام Cloud native Landscape از طرف CNCF اجرا شد تا نقشه راه پیاده سازی و مراحل آن برای سازمان ها مشخص گردد و در اختیار عموم قرار گرفته است، در مقاله آموزش Cloud native Landscape به جزئیات این نقشه اشاره شده است.
پروژه های CNCF از نظر بلوغ به سه بخش Sandbox، Incubated و Graduated تقسیم می گردند، عواملی مثل نرخ استفاده و توانایی اتکای سایر پروژه های اوپن سورس به پروژه در این دسته بندی دخیل هستند. پروژه های Graduated شامل موارد زیر می گردد.
- Containerd
- CoreDNS
- Envoy
- Fluentd
- Helm
- Jaeger
- Kubernetes
- Prometheus
- Rook
- The Update Framework
- Vitess
همچنین بنیاد CNCF وظیفه برگزاری رویداد هایی مثل KubeCon و CloudNativeCon را بر عهده دارد، این رویدادها به منبع عظیمی از اطلاعات درباره پروژه های CNCF تبدیل گردیده است.
دغدغه های اصلی تیمها در زمان پیاده سازی Cloud Native به شرح زیر است.
- Microservice ها و مشکلات مرتبط با آنها، ریفکتور کردن محصولات قدیمی موجود و یا نوشتن از ابتدای محصول، نحوه نوشتن و توسعه و Best Practice های مرتبط با آن
- DevOps/SRE و تفاوت نقشها و وظایف آنها
- سازمان، تغییرات لازم در ساختار سازمان برای ارائه محصولات بر اساس Kubernetes
- Best Practice های مرتبط با CI/CD و نحوه یکپارچه ساری آن با Cloud Native
- نحوه مدیریت Seurity در دنیای جدید Cloud Native