云原生_概念及主流技术
“云原生”是什么?
业内一般认为,区别于从本地环境移植到云上的大部分程序,云原生强调最初的开发就是为了最终部署到云环境上。在公有云、私有云和混合云等新型动态环境中,赋能组织或企业去构建和部署可弹性扩展的应用。
用最简单的语言来说,云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生的英文为CloudNative,其实是一个词组Cloud+Native,词组中前者表示应有程序位于云中,后者表示应用程序从设计之初就会考虑云环境,原生为云而设计,在云上以最佳姿势运行。
要做好整个企业的云原生体系建设,需要有个总体的视角,不谋全局者,不足以谋一域。我们将企业的架构进行全方面的梳理,并给出云原生体系建设总图,这个图当然不是一蹴而就就能建设完毕的,而是根据业务需求不断迭代演进出来的,但是我们要知道目标在哪里。
企业架构不仅仅是技术问题,还有流程问题和组织问题,总的来说分为五个方面,业务架构、技术架构、数据架构、研发流程和组织架构。
实现“云原生”的落地,需要有技术支撑。云原生计算基金会(CNCF,Cloud Native Computing Foundation)给出了一个关于“云原生技术”的定义,中间提到了一些典型技术,例如容器(包括容器编排)、服务网格、微服务、不可变基础设施、声明式API等。
Matt Stine在2015年发表《迁移到云原生架构》一书中定义了符合云原生架构的特征:12要素应用、微服务、自服务敏捷基础设施、基于API协作、扛脆弱性等,总结出,云原生核心技术=DevOps + 持续交付 + 微服务 + 容器 + 云安全
云原生几乎就是一个技术大杂烩,它几乎囊括目前大部分流行的后端技术,近些年,还逐渐延伸到了AI、机器学习、边缘计算等领域。
通过这些技术,为软件应用在架构、支撑服务和支持组件、基准平台上进行了标准化;同时也解决了升级、扩容、稳定性、私有云/公有云/混合云统一基础架构等问题。
级、扩容、稳定性、私有云/公有云/混合云统一基础架构等问题。