什么是云原生应用?有哪些特点?
云原生从籍籍无名到火热发展,现在已进入2.0时代。在讨论云计算的时候,必讨论云原生,云原生已成为云计算的未来发展方向。
那云原生到底是什么?
目前关于云原生没有确切的定义,
云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,Cloud+Native。
云原生的四要素
微服务:关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。譬如谐云的微服务治理平台,就是基于Istio的Mesh方案完全透明支持Dubbo和SpringCloud等平台框架,无侵入、无开发语言限制的完整服务治理,整理功能上覆盖微服务总览、注册中心、配置中心、API网关和ServiceMesh的同时,还从多维度立体覆盖了微服务的运维监控。并能从服务拆分方法、技术选型与问题解决等方面指导客户开发微服务应用。
2.容器化:容器化是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的“容器”中。谐云自主研发的容器云平台,是基于Docker和Kubernetes技术构建的一套完整IT标准化和自动化框架,以“面向终态、优化IT资源”为目标的新一代PaaS平台,能够提高企业的IT管理能力,在降低运营成本和风险的同时,获得更高的运维效率,保障业务稳定运行和高效迭代。
3.DevOps:这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上DevOps应该还包括测试,DevOps是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付能力。谐云DevOps平台使用业务价值为导向的开发运营融合模式,以平台形式固化开发运营一体化框架体系的流程,打通从需求管理、配置管理、个人构建、版本构建及产品运营的产品全生命周期管理,解决研发、QA、运维三者之间的矛盾,实现了产品全流程可视化、评价指标规范化、产品运营可持续化。
4.持续交付:持续交付(CONTINUOUS DELIVERY,CD)的侧重点在于交付,其核心对象不在于代码,而在于可交付的产物。由于持续集成仅仅针对于新旧代码的集成过程执行了一定的测试,其变动到持续交付后还需要一些额外的流程。与持续集成相比较,持续交付添加了测试Test->模拟Staging->生产Production的流程,也就是为新增的代码添加了一个保证:确保新增的代码在生产环境中是可用的。
云原生趋势
相比于传统应用,云原生应用将让企业和开发人员更加专注于业务价值的创造,而非日常的琐碎易错任务——这一改变将引导生产力与创新的变革。
到2022年有75%的全球化企业将在生产中使用容器化的应用(当前不足30%)、还有50%的应用软件将运行在容器化PaaS平台(目前少于20%)——Gartner
面对未来趋势,传统软件必须从架构、流程和文化层面进行重构,来逐步实现云原生应用的转型。我们需要:
更快:通过敏捷协作与自动构建,将修改的代码快速交付生产。
打造效能平台,在统一的技术栈和流水线支持下,实现全流程自动构建,自动发布。缩短从需求到生产的代码交付时间。
更轻:基于平台开发一个应用,而非独立开发一个系统
利用统一的开发运维平台,并将通用组件不断下沉至平台,业务应用开发则专注于特定领域,最终实现平台化开发与交付。
更开放:采用开源技术,拥抱开源社区
开源社区不仅仅提供技术组件,还制定了云原生相关的技术交互标准。诸如OpenTracing, CloudEvents等云原生标准接口定义了未来在云原生语义下,各个异构框架如何进行统一的交互。我们应当在技术选型时,主动接入这些标准,并将相关实现积极回馈于开源社区。