技术分享|一文看懂云原生

Posted I生活T精彩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享|一文看懂云原生相关的知识,希望对你有一定的参考价值。

宋子虎

平台开发处


最近几年,随着云计算技术的发展,云原生一词变的越来越热。几乎每一个使用云计算技术的企业都会把自己的产品和服务与云原生联系在一起。到底云原生是什么,却很少有人说清楚。我行在金融行业属于较早使用云计算技术,从最初的IAAS云到现在的CPAAS容器云,实现了对资源的弹性伸缩,不但满足了我行互联网类高频交易的有效支持,同时也大大提高了资源的利用率,降低了成本。我行也一直在努力推动着应用系统建设朝着云原生方向发展。云原生顾名思义可以拆分成云和原生两个部分来理解。云是和本地相对的,传统的应用必须跑在本地物理机或虚拟机上,而现在很多应用都跑在云上,这里的云包含了IaaS、PaaS和SaaS。原生就土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行在云环境里面的,要充分利用云资源的优点。

技术分享|一文看懂云原生

 云原生这个词最早在2014年左右起源于Pivotal,后来Linux基金会创建了云原生基金会CNCF。CNCF给出的一个关于云原生的定义是“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更”。

技术分享|一文看懂云原生

 首先云原生的应用一般由多个小团队共同开发。各个团队负责应用的不同部分,即不同的微服务。这样才能使得团队具有灵活性,对客户要求进行快速反应。云原生的团队成员的工作性质会随着不同的项目而变化。每个工程师既负责开发,也负责测试。云原生团队的成员对微服务有端到端的责任。他们既负责服务的开发,也负责服务的运维。云原生团队对服务的开发和运维有充分的技术决策权。使用什么技术栈、什么工具、什么数据库都可以由团队在整体大方向下自主地根据具体项目需要来做最佳的选取。云原生的团队由于更加贴近客户,所以对客户的需求有更好的了解。团队可以根据这种了解对工作内容和优先级做及时的调整。

技术分享|一文看懂云原生

其次是云原生的架构,系统框架是云原生的另外一个基石。系统架构在任何计算机系统里都是至关重要的。系统的架构对系统的性能、可靠性、可扩展性、长期可维护性和可运维性等都起着决定性的作用。对于云原生系统也不例外。通过云原生技术构建出来的应用程序,称之为云原生应用,底层基础架构的耦合比较轻,因此易于迁移;它可以充分地利用云所提供的能力,因此云原生应用的开发、部署、管理相对于传统的应用程序更加高效和便捷。云原生架构主要包括如下几个方面:

技术分享|一文看懂云原生

 1、容器化 

容器是一种轻量级的虚拟化技术,通过容器可以简化应用的部署、管理和交付。容器化的好处在于运维的时候不需要再关心每个服务所使用的技术栈了,每个服务都被无差别地封装在容器里,可以被无差别地管理和维护,现在比较流行的工具是docker和Kubernetes。

  2、微服务 

微服务的定义是独立部署的、原子的、自治的业务组件,业务组件彼此之间通过消息中间件进行交互,业务组件可以按需独立伸缩、容错、故障恢复。微服务倡导运用化整为零,实现各个功能的独立开发与部署、提升应用架构的灵活性,从而提升对业务的响应速度。在提倡敏捷的今天,微服务已经成为应用架构的一种默认的选择。

  3、持续交付 

持续交付的定义就是一直在交付,敏捷开发和DevOps要求随时都有一个合适的版本部署在生产环节上,频繁发布、快速部署、快速验证,所以必须要持续交付。持续交付出现的情况是需求迟迟不能确定从而缩短了开发时间,需求不能确定所带来的问题是在确定的过程中整个市场或用户已经发生了变化,开发出来的内容早已不符合当下用户的需求了。为了快速的验证需求,往往在生产环境上会部署多个版本,从而也产生了不同的发布部署方式,比如灰度发布、蓝绿发布。

  4、DevOps 

DevOps的定义是研发运维一体化,通过自动化流程使得软件过程更加快捷和可靠。它不是一个产品,而是一种新的团队工作方式、新的技术理念。DevOps这个框架什么都可以往里装,提供了指导思想、流程和工具,为应用的迭代更新保驾护航,是运维行业的未来之路。

云是一切的基础,为上层应用的运行提供了计算、网络、存储等基础架构资源;容器在云的基础架构和应用之间,集成了应用和基础架构资源;应用层面,用户可以根据场景来选择微服务架构或者是无服务器架构;在复杂的交互场景当中,通过服务网格,可以对服务组建的通讯进行管控;通过DevOps构建一个应用架构不断迭代更新的正向循环。


云原生应用的特点主要有:微服务化,服务间松耦合,应用构成主要包括业务组件和平台;交付周期短,部署方式以容器平台为中心,可移植性强;可依靠容器平台实现自动化运维;可根据策略和指标完成快速弹性扩缩。相比于传统应用,云原生应用将让企业和开发人员更加专注于业务价值的创造,而非日常的琐碎易错任务——这一改变将引导生产力与创新的变革。

以上是关于技术分享|一文看懂云原生的主要内容,如果未能解决你的问题,请参考以下文章

一文看懂云计算虚拟化和容器

一文看懂 K8s 日志系统设计和实践

一文看懂微服务背后的技术演进与应用实践

一文看懂微服务背后的技术演进与应用实践

一文读懂云原生

10 分钟看懂云原生