云原生的入门知识
摘要
近年来,随着云计算概念和技术的普及,云原生一词也越来越热门,无论是应用还是安全,凡是和云相关的,都要在云后面加上原生二字,好像不提云原生,在技术上就落后了一大截。
那到底什么是云原生?云原生是怎么产生的?云原生能带来什么好处?如何实现云原生?
云原生产生背景
随着云计算技术的发展,企业上云已成为趋势,越来越多的企业都已将应用部署到了云上。但是应用上云并不意味着就能充分利用云平台的优势。目前,大部分云化的应用,都是基于传统的软件架构来搭建的,然后再移植到云上去运行,和云平台的整合度非常低,主要表现在以下几个方面:
操作系统依赖强:传统应用程序和底层操作系统、硬件、存储和后备服务之间存在紧密的依赖关系,这些依赖关系使得应用程序在跨越云基础设施进行迁移和扩展时非常复杂且有风险。
系统紧耦合:传统的企业应用多采用单体架构,将许多不同的功能模块捆绑在一个部署包中,导致功能模块之间产生不必要的依赖,并导致开发和部署过程中丧失敏捷性,无法独立的部署、发布更新、重启。
手动化扩展:通过手工管理基础设施,包括手工编写管理服务器、网络和存储的配置脚本。在大规模复杂的操作中,操作人员在诊断问题时会很慢,而且无法大规模地实施。手工制作的自动化脚本还有可能将人为错误硬编码到基础设施中。
恢复缓慢:基于虚拟机的基础设施相对于基于微服务的应用程序来说,是缓慢而低效的。因为单个虚拟机启动/关闭的速度很慢,并且在部署应用程序代码之前就会带来巨大的开销。
瀑布开发:传统应用的开发模式,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/
有没有心动的,赶快报名学习吧!
- 点赞
- 收藏
- 关注作者
评论(0)