时代在发展,技术在迭代。传统的软件架构从自建服务架构模式转变为云计算模式
到现在发展为云原生模式。一起来学习一下云原生到底给我们带来了什么变化。
云原生可以拆分为两个单词:云(Cloud),原生( Native)。其实这里还隐藏了一个词——“计算”(Computing),因为云原生本质上是一种与云计算(Cloud Computing)相同的计算方式,因此通常我们在说云原生的时候,实际上是暗指云原生计算(Cloud Native Computing)。
传统的自建的架构有很多缺点:
在轰轰烈烈的上云运动中,有逐渐演化为云原生。
云原生:是一套构建、运行应用的技术体系和方法论,一切的开发都基于云,技术栈都是基于开源、开放的技术标准。
所以,从云原生的定位可以看到,云原生包含大量新的PaaS层技术和新的开发理念,是释放云计算价值的最短路径,也推动着云计算的再升级。
云原生不仅是对使用云的应用架构的再升级,也是对云平台的技术和云服务的再升级。
从构建现代化应用的角度,我们可以发现,云原生对应用的重构体现在应用开发的整个生命周期中
应用持续交付能力往往会许多的挑战,比如配置基线,版本管理,自动化。这些有时候是牵一发而动全身,很容易出现差错。
应用云原生之后我们可以通过容器结合GitOps和不可变的基础设施,对整个应用打包和分发就可实现软件环境的整体部署。整个过程高度自动化,支持版本追踪和回溯,也解决了持续发布遇到的挑战,减少了CI/CD中错误发生的几率,从而提高了整体的质量和效率。
在传统软件交付模式下,交付人员需要学习手册/文档,然后完成应用的 "安装配置" 和“与老系统的集成”方面的工作。
安装配置点:包括硬件上的安装配置、软件的安装配置和应用本身的安装配置。
集成点:包括新环境中硬件、软件和老系统的集成工作(如:监控、服务调用、消息集成等)
云原生软件交付模式主要有如下几个变化:
1、利用容器做整体交付
整体交付减少容器内部组件之间的安装配置工作可通过工具和脚本自动完成软件交付,提升效率
2、将Git作为“Single Version of Truth”(唯一真实版本)
3、声明式API
4、尽量采用OpenAPI作为系统间的集成方式
所以,云原生软件交付模式可以方便地提升软件交付过程的自动化程度,更便于企业实施CI/CD,也可以极大地提升交付效率。
传统运维更多的是面向操作的运维,其本质是基于规则的运维。也就是运维人员提前准备好规则 ,在满足规则的情况下采取相应的操作。
云原生运维可以基于标准化基础设施的运维,通过完整的可观测性实现系统中各类异常的实时可见,也可以结合声明式API实现自动化运维
应用使用云原生技术有如下两种方式:
re-platform与re-build,两者最大的差别是前者没有进行架构升级,这样就很难构建更好的现代化应用。
云原生,就是在上云的过程中,充分发挥云平台的弹性计算、弹性存储的优势,尽量把应用设计成适合云计算的架构,把部署设计成简单易用的流程,这样才能实现业务快速上线,快速迭代。
其真正的目的:降低开发成本,是开发者专注于业务。提升软件交付能力,专业的人做专业的事