万字长文揭穿你,根本就不懂云原生!
近年来 , 随着云计算概念和技术的普及 , 云原生一词也越来越热门 , 无论是应用还是安全 , 凡是和云相关的 , 都要在云后面加上原生二字 , 好像不提云原生 , 在技术上就落后了一大截 。
一、云原生产生背景
随着云计算技术的发展 , 企业上云已成为趋势 , 越来越多的企业都已将应用部署到了云上 。但是应用上云并不意味着就能充分利用云平台的优势 。目前 , 大部分云化的应用 , 都是基于传统的软件架构来搭建的 , 然后再移植到云上去运行 , 和云平台的整合度非常低 , 主要表现在以下几个方面:
1.操作系统依赖强
传统应用程序和底层操作系统、硬件、存储和后备服务之间存在紧密的依赖关系 , 这些依赖关系使得应用程序在跨越云基础设施进行迁移和扩展时非常复杂且有风险 。
2.系统紧耦合
传统的企业应用多采用单体架构 , 将许多不同的功能模块捆绑在一个部署包中 , 导致功能模块之间产生不必要的依赖 , 并导致开发和部署过程中丧失敏捷性 , 无法独立的部署、发布更新、重启 。
3.手动化扩展
通过手工管理基础设施 , 包括手工编写管理服务器、网络和存储的配置脚本 。在大规模复杂的操作中 , 操作人员在诊断问题时会很慢 , 而且无法大规模地实施 。手工制作的自动化脚本还有可能将人为错误硬编码到基础设施中 。
4.恢复缓慢
基于虚拟机的基础设施相对于基于微服务的应用程序来说 , 是缓慢而低效的 。因为单个虚拟机启动/关闭的速度很慢 , 并且在部署应用程序代码之前就会带来巨大的开销 。
5.瀑布开发
传统应用的开发模式 , IT团队定期发布软件 , 通常间隔几周或几个月 。尽管发布的许多组件已经提前准备好了 , 并且没有依赖关系 , 也必须等待版本中的其他组件 。客户想要的功能被延迟 , 企业失去赢得客户和增加收入的机会 。
总体来说 , 提供方便的基础设施 , 只是对云计算最初级的利用(提升利用率 , 按需使用 , 不够了随时扩容) , 无法充分发挥云计算的优势 , 要想充分发挥云计算的优势(弹性、高可用性、易扩展性) , 就必须进行真正的云化 , 不仅仅是基础设施和平台的变化 , 应用也需要做出改变 , 这就需要摈弃传统的方法 , 在架构设计、开发方式、部署维护等各个阶段和方面都基于云的特点重新设计 , 从而建设全新的云化的应用 , 也就是云原生的应用 。
二、云原生的定义
关于什么是云原生 , 不同的人定义不同 , 目前比较权威的定义主要来自Pivotal公司和云原生计算基金会(CloudNativeComputingFoundation , 简称CNCF) 。
1.Pivotal的定义
Pivotal公司是云原生应用的提出者 , 并推出了CloudFoundry和Spring系列开发框架 。早在2015年 , Pivotal公司的MattStine写了一本名为《迁移到云原生应用架构》的小册子 , 其中探讨了云原生应用架构的几个主要特征:符合12因素的应用、面向微服务架构、自服务敏捷架构、基于API的协作以及抗脆弱性 。
在2017年10月 , 接受采访时 , MattStine对云原生的定义做了小幅调整 , 将云原生架构定义为具有以下六个特质:模块化(Modularity)、可观测性(Observability)、可部署性(Deployability)、可测试性(Testability)、可处理性(Disposability)以及可替换性(Replaceability) 。而Pivotal官网对云原生概括为4个要点:DevOps、持续交付、微服务以及容器化 。
文章图片
文章图片
图1:Pivotal云原生思想
MattStine认为云原生是一个思想的集合 , 云原生既包含技术(微服务 , 敏捷基础设施) , 也包含管理(DevOps、持续交付、康威定律以及重组等) , 云原生也可以说是一系列云技术、企业管理方法的集合 。
- 「长文综述」康红普院士:无煤柱开采围岩控制技术及应用
- 叫叫阅读:2021年度用户累计阅读量达到13492020万字助力海量用户养成阅读好习惯
- 嫌作者写的太烂,读者盗号改文!还帮作者改了大纲,码了两万字新剧情……网友:手把手教学
- 微博如何发长文(微博发长文教程)
- 万字总结:从0到1,SOP构建和策略设计
- 大写的服!中科大博士写20万字论文:如何给女朋友送礼物
- 硬核万字长文:我是如何把Skia的体积“缩小”到1/8的?
- 群响:万字长文看新国货品牌人的破局之路
