摘要
近年来,随着云计算概念和技术的普及,云原生一词也越来越热门,无论是应用还是安全,凡是和云相关的,都要在云后面加上原生二字,仿佛不提云原生,在技术上就落后了一大截。
那到底什么是云原生?云原生是怎么产生的?云原生能带来什么好处?如何实现云原生?
云原消费生背景
随着云计算技术的开展,企业上云已成为趋势,越来越多的企业都已将应用部署到了云上。但是应用上云并不意味着就能充沛利用云平台的优势。目前,大部分云化的应用,都是基于传统的软件架构来搭建的,然后再移植到云上去运行,和云平台的整合度非常低,主要表如今以下几个方面:
操作系统依赖强:传统应用程序和底层操作系统、硬件、存储和后备效劳之间存在严密的依赖关系,这些依赖关系使得应用程序在跨越云根底设备停止迁移和扩展时非常复杂且有风险。
系统紧耦合:传统的企业应用多采用单体架构,将许多不同的功能模块捆绑在一个部署包中,导致功能模块之间产生不用要的依赖,并导致开发和部署过程中丧失敏捷性,无法独立的部署、发布更新、重启。
手动化扩展:通过手工管理根底设备,包括手工编写管理效劳器、网络和存储的配置脚本。在大规模复杂的操作中,操作人员在诊断问题时会很慢,而且无法大规模地施行。手工制作的自动化脚本还有可能将人为错误硬编码到根底设备中。
恢复缓慢:基于虚拟机的根底设备相对于基于微效劳的应用程序来说,是缓慢而低效的。因为单个虚拟机启动/关闭的速度很慢,并且在部署应用程序代码之前就会带来宏大的开销。
瀑布开发:传统应用的开发形式,IT团队定期发布软件,通常间隔几周或几个月。虽然发布的许多组件已经提早准备好了,并且没有依赖关系,也必需等待版本中的其他组件。客户想要的功能被延迟,企业失去赢得客户和增加收入的时机。
总体来说,提供方便的根底设备,只是对云计算最初级的利用(提升利用率,按需使用,不够了随时扩容),无法充沛发挥云计算的优势,要想充沛发挥云计算的优势(弹性、高可用性、易扩展性),就必需停止真正的云化,不只仅是根底设备和平台的变化,应用也需要做出改变,这就需要抛弃传统的方法,在架构设计、开发方式、部署维护等各个阶段和方面都基于云的特点重新设计,从而建立全新的云化的应用,也就是云原生的应用。
云原生的定义
关于什么是云原生,不同的人定义不同,目前比较权威的定义主要来自Pivotal公司和云原生计算基金会(Cloud Native Computing Foundation,简称CNCF)。
1. Pivotal的定义
Pivotal公司是云原生应用的提出者,并推出了Cloud Foundry和Spring系列开发框架,因而,也是云原生的先驱者和探路者。
Pivotal公司的Matt Stine于2013年首次提出云原生(CloudNative)的概念;2015年,云原生刚推广时,Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:12因素、微效劳、自敏捷架构、基于API协作、扛脆弱性;到了2017年,Matt Stine在接受InfoQ采访时又改了口风,将云原生架构归纳为模块化、可观察、可部署、可测试、可交换、可处置6特质;而Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微效劳+容器。
2.2. CNCF的定义
CNCF是在2015年由Google结合Linux基金会成立的,它是一个非盈利组织, 主要目的是统一云计算接口和相关规范,通过技术优势和用户价值发明一套新的通用容器技术,推动云计算和效劳的开展。起初CNCF对云原生(Cloud Native)的定义包含以下三个方面:
到了2018年,随着云原生生态的不时壮大,所有主流云计算供给商都参与了该基金会,且从云原生的全景图中可以看出云原生正在蚕食原先非云原生应用的部分。
CNCF基金会中的会员以及容纳的项目越来越多,该定义已经限制了云原生生态的开展,CNCF为云原生停止了重新定位,并于2018年6月11日明确了云原生定义1.0版本:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、效劳网格、微效劳、不可变根底设备和声明式API。
总而言之,符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)停止容器化,基于微效劳架构进步灵敏性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设备实现弹性伸缩、动态调度、优化资源利用率。
云原生构建应用简便快捷,部署应用轻松自如、运行应用按需伸缩。优点不一而足,缺点微乎其微;秒杀传统Web框架,吊打祖传IT形式,实在是保命、评优晋级不可多得的终极绝密武器。
如何学习
在这里,为大家推荐一个活动。免费学习云原生的课程:DevRun软件开发流水线实战营。
报名主页面:https://developer.huaweicloud.com/signup/5af38ef114d94adf8bce470863ea8794
活动细则(可从主页面跳转):https://bbs.huaweicloud.com/forum/tHRead-187443-1-1.html
课程不是枯燥的理论,而是全程动手理论,让你亲手完成几个小型项目。从而体验理论代码上云、代码破绽扫描、游戏开发,快速熟悉和掌握软件开发流水线全流程。
课程的第一部分,代码上云是基于实际消费需要,设计开发的内容。无论是作为提升办公质量的技巧,还是系统入门的指引,都是一个不错的选择。
第二部分则更为有趣,游戏开发是很多人感兴趣的方向,亲手编写游戏,邀请小伙伴体验游戏,更能收获成就感。
更重要的是,在实战营“打怪晋级”可以获得学习积分。兑换结营证书,以及价值499的特别奖励!
特别奖励
假设你获得了200的“打怪积分”,就可以用来解锁系统课程,也就是云原生入门级开发者认证(HCCDA - Cloud Native),它包含了一整套理论学习、实验练习、参与考试、获取证书的环节,官网售价高达500元。而对于完成DevRun软件开发流水线实战营的同学来说,只需1元即可获取。
云原生入门级开发者认证流程如下:
通过考试还能得到证书。证书样例详见下图:
课程内容:云原生入门级开发者认证,包含10小时的理论课程和10小时的理论课程,理论与理论相结合,让初学者更容易掌握。
掌握基于开源docker及容器编排技术Kubernetes管理及部署应用,使用华为云容器效劳停止应用的部署和运维,掌握工作负载、灰度发布等操作、掌握DevCloud中微效劳的开发配置,掌握ServiceStage中微效劳的部署和管理。
下图是云原生入门级开发者认证的知识图谱
更多的信息请看云原生开发者认证介绍:https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXNX016+Self-paced/courseware/dbd8f95d07194420b0c9d4243001c9f6/b29b993aa74844acb4e71816586d6100/
有没有心动的,赶快报名学习吧! |