当前位置: 首页 > news >正文

盘点云原生的5大特征

5826932582e49ff496d4e381bb071d1f.gif

导读:随着公有云和私有云的广泛部署,云计算基础设施成为企业部署新业务的首选。可以说,云计算已进入下半场,各大云计算服务商的厮杀日益激烈,新的概念也层出不穷。

近年来,云原生计算(Cloud Native Computing)越来越多地出现在人们的视野中,可以说云原生是云计算时代的下半场,或许我们可以称之为云计算2.0。云原生的出现是云计算不断与具体业务场景融合,与开发运营一体化碰撞的结果,是一场由业务驱动的对云端基础设施、编排体系的重构。

作者:刘文懋 江国龙 浦明 阮博男 叶晓虎

来源:大数据DT(ID:hzdashuju)

a46cfaed4df8c32b1c3e912821de2a22.png

近年来,云计算模式逐渐被业界认可和接受。在国内,包括政府、金融、通信、能源在内的众多领域的大型机构和企业,以及中小企业,均对其托管业务的基础设施进行了不同程度的云化。

但它们大多数利用开源或商业的IaaS系统构建云计算平台,只是简单地将传统物理主机、平台或应用转为虚拟化形态。这种方式所带来的好处是整体资源的利用更加合理,且集约式的运营会降低成本,提升整体运营效率和成熟度。但总体而言,这样的上云实践只是“形”上的改变,还远没有达到“神”上的变化。

在云计算的下半场,应该充分利用云计算弹性、敏捷、资源池和服务化等特性,解决业务在开发、运行整个生命周期中遇到的问题。毕竟,业务中出现的问题才是真正的问题。

比如,传统应用有升级缓慢、架构臃肿、无法快速迭代等问题,于是云原生的概念应运而生。笔者认为云原生就是云计算的下半场,谁赢得云原生的赛道,谁才真正赢得了云计算。

谈到云原生,不能不提始终推动云原生发展的CNCF(Cloud Native Computing Foundation,云原生计算基金会)。CNCF是一个孵化、运营云原生生态的中立组织。截止到2020年,CNCF共有371个开源项目、1402个项目和组织,可以说是一个覆盖面相当广的云计算组织。

CNCF对云原生的见解是:

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

云原生提倡应用的敏捷、可靠、高弹性、易扩展以及持续更新。在云原生应用和服务平台的构建过程中,近年兴起的容器技术凭借其高弹性、敏捷的特性以及活跃、强大的社区支持,成为云原生等应用场景下的重要支撑技术。无服务、服务网格等服务新型部署形态也在改变云端应用的设计、开发和运行,从而重构云上业务模式。

不同于以虚拟化为基础的传统云计算系统,云原生系统一般有如下特征。

01 轻、快、不变的基础设施

在云原生环境中,支撑基础设施通常是容器技术。容器生命周期极短,大部分是以秒或分钟为单位,占用的资源也比虚拟化小得多,所以容器的最大特点就是轻和快。

而正是因为容器有轻和快的特点,在实践中通常不会在容器中安装或更新应用,而是更新更为持久化的镜像,通过编排系统下载新镜像并启动相应的容器,并将旧的容器删除。这种只更新镜像而不改变容器运行时的模式称为不变的基础设施(immutable infrastructure)。从不变的基础设施就能看出,云原生的运营与传统虚拟机运营方式截然不同。

7788bd8ff58bfa7c4a7747c5d58d02ee.png

02 弹性服务编排

云原生的焦点是业务,而非基础设施,而业务的最核心之处是业务管理和控制,如服务暴露、负载均衡、应用更新、应用扩容、灰度发布等。服务编排(orchestration)提供了分布式的计算、存储和网络资源管理功能,可以按需、弹性地控制服务的位置、容量、版本,监控并保证业务的可访问性。

服务编排对应用层隐藏了底层基础设施的细节,但又提供了强大的业务支撑能力,以及让业务正常运行的容错、扩容、升级的能力,使开发者可以聚焦业务本身的逻辑。

03 开发运营一体化

开发运营一体化(DevOps)是一组将软件开发和IT运营相结合的实践,目标在于缩短软件开发周期,并提供高质量软件的持续交付。虽然DevOps不等同于敏捷开发,但它是敏捷开发的有益补充,很多DevOps的开发理念(如自动化构建和测试、持续集成和持续交付等)来自敏捷开发。

与敏捷开发不同的是,DevOps更多的是在消除开发和运营侧的隔阂,聚焦于加速软件部署。

当前,很多云原生应用的业务逻辑需要及时调整,功能需要快速丰富和完善,云端软件快速迭代,云应用开发后需要快速交付部署,因而开发运营一体化深深地融入云原生应用整个生命周期中。

88f3b00c4307cf1d51d03adb83a34cc4.png

04 微服务架构

传统Web应用通常为单体应用系统,如使用WebSphere、WebLogic或.Net Framework等,从前端到中间件再到后端,各个组件一般集中式地部署在服务器上。

后来随着Web Service标准的推出,应用以标准的服务交付,应用间通过远程服务调用(RPC)进行交互,形成了面向服务的架构(Service-Oriented Architecture,SOA),极大提升了应用组件的标准化程度和系统集成效率。

在云原生应用设计中,应用体量更小,因而传统单体应用的功能被拆解成大量独立、细粒度的服务。

微服务架构使得每个服务聚焦在自己的功能上,做到小而精,然后通过应用编排组装,进而实现等价于传统单体应用的复杂功能。其优点是后续业务修改时可复用现有的微服务,而不需要关心其内部实现,可最大限度地减少重构开销。

05 无服务模型

无服务(Serverless)是一种基于代码和计算任务执行的云计算抽象模型,与之相对的是基于服务器(虚拟机、容器)的计算模式。

无服务在公有云和私有云上都有相应的服务,如AWS Lambda、阿里云的函数计算、Kubernetes的Kubeless、Apache OpenWhisk等。无服务聚焦在函数计算,隐藏了底层复杂的实现方式,使开发者能够聚焦于业务本身。

e51e63970f69fd1c164cbb62acfac419.png

总体而言,云原生真正以云的模式管理和部署资源,用户看到的将不是一个个IT系统/虚拟主机,而是一个个业务单元,开发者只需要聚焦于业务本身。可以说微服务的设计、无服务的功能是云原生理念的核心体现,而容器、编排、服务网格均是实现云原生的支撑技术。

关于作者:刘文懋,绿盟科技集团首席安全专家、创新中心与星云实验室负责人,计算机学会(CCF)理事,中国网络空间安全人才教育论坛人才标准认证工作组专家,中国网络空间新兴技术安全创新论坛理事,云安全联盟(CSA)云安全服务管理工作组联合主席。曾发表著作《软件定义安全:SDN/NFV新型网络的安全揭秘》。

江国龙,资深研究员和架构师,主要研究方向包括虚拟化网络安全、云计算系统安全、云原生安全、5G/边缘计算安全等。作为核心人员,参与编写了多份云安全相关白皮书、技术报告、技术标准。积极活跃于云原生安全社区,热衷于技术探索和分享。

浦明,绿盟科技集团星云实验室资深安全研究员,在云原生应用安全及安全创新领域有丰富的实战经验,长期从事Kubernetes、微服务、服务网格安全的研究。在绿盟科技任职期间,参与过安全应用商店、安全编排与自动化响应(SOAR)平台、容器安全、安全产品云原生化的架构设计和研发工作。

阮博男,绿盟科技集团星云实验室安全研究员,主要研究方向为云和虚拟化安全,积极探索Linux、云、虚拟化及前沿安全攻防技术。曾作为核心人员参与绿盟科技的SOAR、容器安全、云原生入侵检测等项目和产品。

叶晓虎,绿盟科技集团首席技术官,先后担任国家火炬计划课题负责人、北京市下一代网络安全软件与系统工程技术研究中心主任、海淀区重大科技成果产业化负责人等。在信息安全管理、安全架构和技术方面有将近20年的经验,并且作为安全专家多次参与国家级重大事件网络安全保障工作。

本文摘编自《云原生安全:攻防实践与体系构建》,经出版方授权发布。(ISBN:9787111691839)

b6ab6dd2a67d61b7415a1dfc18c5732d.png

《云原生安全:攻防实践与体系构建》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:本书介绍了云原生的容器基础设施、K8S编排系统和常见云原生应用体系;在介绍安全体系前先深入分析了前述架构各个层面的安全风险,并给出攻击实践,后续计划开放靶场环境,有很好的可操作性和说服力;在介绍安全体系时,首先从高层分析新型基础设施防护的思路切换,然后分为两个维度介绍相关的安全机制,清晰地拆解了复杂的安全技术栈,让读者很容易理解DevOps安全和云原生安全两者如何融合。

93c2392609496a96a6d4283ccf62be4e.gif

刷刷视频👇

b0067bc92565268c6ccb415cf1b29470.gif

fe43a70c1d6630b1831cac7ede940416.png

扫码关注【CSAPP小课堂】视频号

8a507e3f994840bb4c545d471d8ec244.gif

更多精彩回顾

书讯 | 11月书讯(上)| 拿下这些新书,赢在起跑线

书讯 | 11月书讯(下) | 拿下这些新书,赢在起跑线

资讯 | 什么是ETL?一文掌握ETL设计过程

书单 | 8本书助你零基础转行数据分析岗

干货 | 架构设计的新思路,《架构之道》读书笔记

收藏 | 终于有人把微服务讲明白了

上新 | 【新书速递】构建高质量软件:持续集成与持续交付系统实践

赠书 | 数据大牛都在啃的15本书

36770465dad24e9a3fb13a29ea5cc23e.gif

60f5f1fe7988413bef6314c7ab5141cd.gif

点击阅读全文购买

相关文章:

  • 一文读懂逻辑门
  • 【新书速递】金融商业算法建模手册
  • 开源 12 年后,Go 语言成为一刀流剑客
  • 被 CSAPP 虐了!
  • 7张图揭晓RocketMQ存储设计的精髓
  • 看漫画来告诉你:什么是 “元宇宙” ?
  • 【第80期】浅谈如何成为技术一号位?
  • SpringBoot 实战:加载和读取资源文件内容
  • 终于有人把云计算与数据库的关系讲明白了
  • 为什么 Rust 是编程的未来?
  • 四种代码洁癖类型,程序员看了直呼内行
  • JavaScript成最受欢迎的编程语言,社区规模近 1650 万
  • 微软不会放弃Electron:Electron 快速入门及IPC 通信
  • 什么是边缘计算?它是怎样火起来的?终于有人讲明白了
  • 进阶必看的 RocketMQ ,就这篇了
  • 【面试系列】之二:关于js原型
  • Js基础知识(一) - 变量
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redis在Web项目中的应用与实践
  • Vue ES6 Jade Scss Webpack Gulp
  • yii2中session跨域名的问题
  • 京东美团研发面经
  • 来,膜拜下android roadmap,强大的执行力
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 因为阿里,他们成了“杭漂”
  • 在Unity中实现一个简单的消息管理器
  • 智能合约开发环境搭建及Hello World合约
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​io --- 处理流的核心工具​
  • ​ubuntu下安装kvm虚拟机
  • ​第20课 在Android Native开发中加入新的C++类
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $.each()与$(selector).each()
  • (2)STL算法之元素计数
  • (4)Elastix图像配准:3D图像
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (篇九)MySQL常用内置函数
  • ******IT公司面试题汇总+优秀技术博客汇总
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .CSS-hover 的解释
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .net 怎么循环得到数组里的值_关于js数组
  • ?
  • @angular/cli项目构建--Dynamic.Form
  • @Transactional 竟也能解决分布式事务?
  • [2018-01-08] Python强化周的第一天
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [Assignment] C++1
  • [C#]winform部署yolov9的onnx模型
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现