首发:巨子嘉     作者:巨子嘉

云计算的拐点已至,进入成熟期,云原生成为驱动云计算发展的新动力引擎,致力于成为新型基础设施,不仅是企业数字化转型的最佳技术路径,同时也成为新兴领域,人工智能、大数据、边缘计算、5G 等底层基础平台。

云原生充分释放了云计算的红利,未来将有更多的业务应用生于云,长于云;为了最大程度发挥云原生的优势,支持好各种复杂个性化场景,云原生技术体系还在不断完善演进,覆盖范围也从集中式中心场景到分散式的边缘场景延伸拓展;理念也在不断总结升华,以应用为中心,从微服务到Service Mesh,再到Serverless层层演进,业驱云长,云随业动。

1.

云原生的定义

Pivotal对云原生的定义:云原生是一种构建和运行充分利用云计算模型优势的应用程序的方法。

CNCF对云原生的定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格(Service Mesh)、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。

阿里云对云原生的定义:围绕基础设施、应用架构、开发运维等场景,让系统更加弹性可靠容错、松耦合、易管理可观测,充分发挥云计算的优势,提升技术效率。代表技术为容器、服务网格、不可变基础设施、声明式API和Serverless。

总的来说,云原生并不存在明确统一的定义,其代表了一种在云计算基础设施之上,以应用为中心的技术架构与思想理念,是云计算发展演进的一次彻底革命性的突破。云原生助力企业快速构建标准化、弹性高可靠、松耦合、易管理维护的应用系统,提升交付效率,降低运维复杂度。具体表现在如下两个方面:

在技术架构方面,云原生技术架构具备:一)敏捷的弹性伸缩能力,不同于虚拟机分钟级的弹性伸缩响应,云原生应用可实现秒级甚至毫秒级的弹性伸缩响应;二)智能的服务故障自愈能力,云原生应用具有极强的自愈能力,可实现应用故障的自动摘除与重构;三)大规模的复制分发能力,云原生应用标准化的交付制品,可实现跨平台、跨区域,云边一体规模化复制分发部署能力。

在应用价值方面,云原生标准化了异构基础资源,有效解决了异构环境的部署一致性问题,为资源的标准化、自动化、服务化奠定了基础:一)加速数字基础设施升级,解放生产力,降低用户数字化技术的使用门槛,提高资源的利用率;二)重塑研发运营的生产方式,打破组织壁垒,实现研发与运维的跨域协同,提升交付效率;三)实现应用交付的敏捷,大幅提升交付速度,降低业务试错成本,高效响应用户需求,增强用户体验加速业务创新。

2.

云原生的发展

云计算的发展史,浓缩成两个字,就是抽象;没有技术架构解决不了,如果有,就再抽象一层,云计算的发展史,就是基础设施的不断抽象史,直至无可再抽!

整个云计算发展大致可以分为两个阶段:以虚拟化技术为核心的传统云计算阶段,以及以容器技术为核心的云原生阶段。

传统云计算阶段:虚拟化是传统云计算的基础,简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine);通过Hypervisor技术完成物理资源虚拟化的工作,Hypervisor有VMware、KVM、Xen、Virtual Box等多种实现方案,其中KVM(kernel-based virtual machine)是基于Linux内核的虚拟机技术,是目前最热门的单主机虚拟化方案;OpenStack是云管理平台,基于虚拟化技术构建包含计算,存储,网络等产品的基础云平台。

云原生阶段:容器也是虚拟化,但是属于轻量级的虚拟化。虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。

容器优势明显:一)启动快(秒级启动);二)资源使用率高(一台主机可以同时运行上千个容器),三)占用空间小(虚拟机一般GB级别,而容器只需要MB级)。Kubernetes是容器管理平台,主要职责是容器编排(Container Orchestration),包含启动容器,自动化部署、扩展和管理容器应用,还有回收容器。相比OpenStack,Kubernetes不仅屏蔽底层差异化的基础设施,提供计算,存储,网络基本云计算能力,更重要的是容器编排,监控治理等应用赋能能力。

3.

云原生的架构原则

云原生时代需要新的架构理念及原则,来帮助应用更好地利用云的优势,让业务更敏捷、成本更低,同时又具备伸缩性、灵活性。通过遵从这些架构原则,可以确保应用技术架构的先进性及科学性,避免出现大的偏差,云原生七大原则如下:

①服务化:云原生架构强调在分布式环境下,应用基于服务流量(而非网络流量)的控制策略实现限流降级、熔断隔仓、灰度、反压、零信任安全等。

②弹性:云原生架构强调应用的部署规模可以随着业务量的变化自动伸缩,无须提前规划容量,准备固定的硬件和软件资源。

③可观察性:云原生架构强调主动通过日志、链路跟踪和度量等手段,让一次请求的多次服务调用的耗时、返回值和参数都清晰可见,甚至可以下钻到每次三方软件调用、SQL 请求、节点拓扑、网络响应等,实现应用运行的全过程透明可观察。

④韧性:云原生架构强调多个维度诠释了软件持续服务的能力,提升软件的MTBF(Mean Time Between Failure,平均无故障时间)。从架构设计上,韧性包括服务异步化能力、重试/限流/降级/熔断/反压、主从模式、集群模式、AZ 内的高可用、单元化、跨 region 容灾、异地多活容灾等。

⑤自动化:云原生架构强调需要使用 CI/CD流水线自动化交付工具,一方面标准化应用交付过程,另一方面在标准化的基础上进行自动化,通过配置数据自描述和面向终态的交付过程,让自动化工具理解应用交付目标和环境差异,实现整个软件交付和运维的自动化。

⑥零信任:云原生架构强调在任何情况下,不应该信任网络内部和外部的任何人/设备/系统,需要基于认证和授权重构访问控制的信任基础,诸如IP地址、主机、地理位置、所处网络等均不能作为可信的凭证。

⑦架构演进:云原生架构强调对新建应用,采用云原生架构并且权衡选择侧重的架构原则(通常是选择弹性、敏捷、成本的维度);对存量应用迁移,则需要从架构上考虑迁出迁入成本/风险,对应用云原生重构,通过微服务/应用网关、应用集成、适配器、服务网格、数据迁移、在线灰度等应用和流量进行细粒度控制及治理。

4.

云原生应用建设之路

云原生平台建设之路,基于Kubernetes云原生容器技术为基础,构建以应用为中心的一站式云原生基础设施平台:

面向平台,建设容器网络、容器存储、容器安全等基础能力;建设容器镜像仓库、容器监控、容器日志等配套设施及监控运维能力。

面向应用,建设对容器化应用的全生命周期管理,包含应用的自动伸缩、配置管理、资源管理、自动运维等基础应用管理能力;应用升级策略,如滚动、灰度等高级管理能力。

面向交付,建设DevOps流水线,对接多种代码仓库,自助配置流水线的阶段和任务等研发过程支持能力。同时结合实际应用场景及团队技术储备能力,还可以深入构建微服务,无服务等高级平台能力,提升应用的分布式及治理能力。

云原生应用建设之路,从容器化,微服务,持续交付到DevOps逐渐推进,难度也在逐渐增加,从单纯的技术,到自动化平台,最后到DevOps整个团队文化与技术配合的大体系,实现基础设施平台及业务系统交付的大跨越。

容器化:容器化就是将应用整合到容器中并且运行起来,容器能够简化应用的构建、部署和运行过程。

微服务:微服务是一种软件架构方式,它将应用构建成一系列按业务领域划分模块的、小的自治服务。在微服务架构中,每个服务都是自我包含的,并且实现了单一的业务功能,服务间通过Restful来通信,以此来实现高内聚,低耦合,去中心化管理的软件架构模式。

持续交付:借助CI/CD自动化平台,从原始需求识别,最终产品部署到生产环境这个过程中,需求以小批量形式在团队的各个角色间顺畅流动,能够以较短地周期完成需求的小粒度频繁交付。

DevOps:团队践行DevOps的敏捷理念,基于DevOps的思想构建一体化能力平台,研发运维团队借助平台完成全流程高效协作,最终实现技术的敏捷到业务敏捷的价值转化。

5.

总结

总的来说,微服务与容器化技术已常态化,基本上成为当前应用建设的标配。一方面,Service Mesh,CI/CD流水线技术也日趋成熟,DevOps与云原生深度融合相互驱动,在不同领域得到了初步实践;另一方面,技术团队的构成也正发生着与云原生相应的变革,研发运维团队融合一体。

但是在云原生应用实践中,依然存在诸多挑战及陷阱,企业及团队不要盲目将云原生当成是万能圣母。在使用云原生之前,需要综合评估业务真实需求,团队能力现状以及未来的布局。好风凭借力,由简到难,逐步深入,以容器化,微服务为起点,逐渐借助持续交付工具完善流程及团队能力,最后切实落地DevOps理念,实现业务交付及价值交付的闭环。

本文来源于公众号:巨子嘉

边缘计算社区的老朋友“巨子嘉”,十几年技术架构从业经历,开源布道师,近几年专注云原生相关体系,关于云原生的一切均可请教,如果对云原生、微服务感兴趣,可以关注一下巨老师他们公众号,纯友情推荐,非广告。

边缘计算社区:促进边缘计算领域知识传播,中立,客观,如果您关注边缘计算、5G、物联网、云原生等领域请关注我们。

云原生应用的构建之路相关推荐

  1. 极客星球 | 阿里:云原生数据湖构建与分析实践

    编者按:6月24日[Coder Park]第一季架构篇之大数据平台架构分享线上直播活动圆满结束.本期特邀MobTech袤博科技合伙人.首席数据官杨冠军担当出品人,阿里巴巴计算平台事业部大数据平台技术专 ...

  2. 数字化觉醒时代:传统企业云原生技术体系建设之路(一)

    文 山金孝 没有集装箱,就没有全球化:没有云原生,就没有数字化.从大型传统企业到互联网巨头,从百年老店到创业新星,从大政方针到民间资讯,数字化的理念和口号无处不在,全社会数字化觉醒时代已然到来.喧嚣之 ...

  3. 腾讯TencentOS 十年云原生的迭代演进之路

    蒋彪,腾讯云高级工程师,10+年专注于操作系统相关技术,Linux内核资深发烧友.目前负责腾讯云原生OS的研发,以及OS/虚拟化的性能优化工作. 导语 TencentOS Server (又名 Ten ...

  4. 阿里宜搭发布专有云版本,基于云原生的应用构建PaaS平台

    4月8日,阿里巴巴旗下0代码应用搭建平台"宜搭"发布专有云版本,可以基于阿里云专有云为客户实施专有云部署,实现客户数据的专有云存储,为政府.大型企业提供高稳定.高安全的应用搭建服务 ...

  5. 小程序云开发_小程序开发进入云原生时代 加速构建开发者生态

    2019-11-07 16:44 作为Serverless理念大规模落地的最佳实践,"小程序·云开发"正受到越来越多的关注. 11月7日,在腾讯Techo开发者大会"小程 ...

  6. 红帽资深解决方案架构师魏新宇:云原生应用构建之路

    魏新宇 读完需要 7 分钟 速读仅需 3 分钟 魏新宇,红帽资深解决方案架构师.在 IaaS.PaaS 方面有丰富的经验,致力于开源解决方案在企业中的推广和应用.从售前角度主导了红帽在金融.汽车行业的 ...

  7. 谈谈为什么我们需要云原生架构?

    未来的软件,从诞生起,就是生在云上,长在云上的.这个说法绝对不是没有根据的,看看现在的互联网大厂在做的事情,你就知道了: 阿里宣布成立云原生技术委员会,并投入数十亿大力推动阿里经济体全面云原生化,对外 ...

  8. 如何利用云原生技术构建现代化应用?

    简介: 阿里云为企业提供了基于阿里云互联网架构的解决方案,也同时让这些新的互联网应用.新的电商平台应用迁移到阿里云上. 作者|愚奇 ​ 今天,云和云计算技术已经被企业广泛所接受,关于云.云计算.云原生 ...

  9. 如何利用云原生技术构建现代化应用

    简介:在2021研发效能峰会上,阿里云中间件首席架构师愚奇就"如何利用云原生技术构建现代化应用"的主题分享了,如何利用云的特性及云原生的技术及产品,帮助企业的传统应用转化为现代化应 ...

最新文章

  1. 公共安全再受质疑 看安防语音对讲新趋势
  2. 【Python小程序】必备软件系列之文字识别提取,前台再也不同担心纸质转电子文件啦~
  3. java 句柄 内存_Java内存区域学习
  4. Java Script 学习笔记(一)
  5. 如何修改数据库表或存储过程的所有者
  6. 桌面在计算机哪个文件夹,windows的桌面文件夹是哪个?
  7. 基金委托管理系统试题
  8. C#中GDI绘制高质量平滑图形实例
  9. 序列化框架MJExtension详解 + iOS ORM框架
  10. Java中内存泄漏八种情况的总结
  11. 解决 Office 2007/2010 安装错误:1402 安装程序无法打开注册表项 UNKNOWN\Components\“随机数字”
  12. 使用adb shell screencap命令截图
  13. 小火狐进化_神奇宝贝御三家还是原来的最可爱?新的三只也不差
  14. 我在windows10下,使用CMake gui 编译krita源码,CMake gui报错:LibMyPaint_DIR-NOTFOUND
  15. 钟汉良日记:做短视频和直播的基础能力
  16. 算法教学 _ 决策树算法
  17. Solidity基础入门讲解
  18. 美术加艺考美术班:速写怎么练习效率最高?
  19. 计算机论文初稿,科学网—博士论文初稿完成 - 周涛的博文
  20. 解决微信开发者工具不能使用云开发的资源

热门文章

  1. 情人节来了!程序员应该如何优雅的度过?
  2. 金山变身网游商上市 民族软件业何其尴尬(转)
  3. 财政指标是什么意思_国民经济主要指标是意思主要是什么?
  4. background 图片+颜色
  5. i春秋之SQL注入-1
  6. 宠物动物有什么计算机专业岗位,动物医学河南高校有哪些 月薪过万的专业 不只是计算机专业...
  7. scratch-gui使用scratch-desktop打包成exe文件
  8. 银行/金融软件系统测试的特点
  9. pip报错:Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/pip/: There was a problem confirm
  10. Win7安装原版XP