软考 系统架构设计师系列知识点之云原生架构设计理论与实践(1)

所属章节:

第14章. 云原生架构设计理论与实践

          第1节 云原生架构产生背景

云原生(Cloud Native)是近几年云计算领域炙手可热的话题,云原生技术已成为驱动业务增长的重要引擎。同时,作为新型基础设施的重要支撑技术云原生也逐渐在人工智能、大数据、边缘计算、5G等新兴领域崭露头角。伴随着各行业上云的逐步深化,云原生转型进程将进一步加速。本章主要介绍了云原生背景、定义、架构以及相关云原生技术等方面知识。

14.1 云原生架构产生背景

“云原生”来自于“Cloud Native”的直译,拆开来看,Cloud就是指其应用软件是在云端而非传统的数据中心Native代表应用软件从一开始就是基于云环境、专门为云端特性而设计,可充分利用和发挥云平台的弹性 + 分布式优势,最大化释放云计算生产力。

对于原来的企业而言,企业内部IT建设以“烟筒”模式比较多,每个部门甚至每个应用都相对独立,如何管理与分配资源成了难题。大都数都基于最底层IDC设施独自向上构建,需要单独分配硬件资源,这就造成资源被大量占用且难以被共享。但是上云之后,由于云厂商提供了统一的IaaS能力和云服务,大幅提升了企业Iaas层的复用程度,CIO或者It主管自然而然想到IaaS以上层的系统也需要被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本。

对于开发而言,传统的IT架构方式,将开发、IT运营和质量保障分别设置,各自独立,开发与运营之间存在着信息“鸿沟”,开发人员希望基础设施更快响应,运营人员则要求系统的可靠性和安全性,而业务需求则是更快地将更多的特性发布给最终用户使用。这种模式被称为“瀑布式”流程的开发模式,一方面造成了开发上下游的信息不对称,一方面拉长了开发周期和调整难度。但是随着用户需求的快速增加和产品迭代周期的不断压缩,原有的开发流程不再适合现实的需求,这时工程师们引入了一种新的开发模式——敏捷开发。但是,敏捷开发只是解决了软件开发的效率和版本更新的速度,还没有和运维打通。出于协调开发和运维的“信息对称”问题,开发者又推出了一套新的方法——DevOps。DevOps可以看作是开发、技术运营和质量保障三者的交集促进之间的沟通、协作与整合,从而提高开发周期和效率。而云原生的容器、微服务等技术正是为DevelopOps提供了很好的前提条件,保证IT软件开发实现DevOps开发和持续交付的关键应用。换句话说,能够实现DevOps和持续交付,已经成为云原生技术价值不可分割的内涵部分,这也是无论互联网巨头企业、还是众多中小应用开发公司和个人,越来越多选择云原生技术和工具的原因。

这里进行一下DevOps的相关内容(以下内容引自百度百科):

1. 概述

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营质量保障(QA)部门之间的沟通、协作与整合

DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

DevOps的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

2. 详述

DevOps是Development和Operations的组合,是开发和运营维护的总称。软件设计过程中,应对开发部门、运维部门进行协调,确保各项工作流程与方法高效使用,为项目管理工作提供可靠参考。基于devops软件开发源于2009年欧洲传统IT模式,对解决运维管理问题起到关键作用。为巩固软件设计与开发结果,将开发、运维与测试结合一起,形成了DevOps软件开发管理模式。

基于DevOps软件开发可对测试环境进行应用,同时可将数据包融入到软件环境中。DevOps立足全局角度,对开发效果进行分析,加强人员之间的合作与交流也是软件开发设计工作重点,应对其进行合理安排。在devops框架下,对软件进行开发可实现自动化操作,使得人机交互方案应用具有可行性。

传统的软件组织将开发、IT运营和质量保障设为各自分离的部门。在这种环境下如何采用新的开发方法(例如敏捷软件开发),这是一个重要的课题:按照从前的工作方式,开发和部署不需要IT支持或者QA深入的、跨部门的支持,而却需要极其紧密的多部门协作。然而DevOps考虑的还不止是软件部署。它是一套针对这几个部门间沟通与协作问题的流程和方法。

需要频繁交付的企业可能更需要对DevOps有一个大致的了解。Flickr发展了自己的DevOps能力,使之能够支撑业务部门“每天部署10次”的要求──如果一个组织要生产面向多种用户、具备多样功能的应用程序,其部署周期必然会很短。这种能力也被称为持续部署,并且经常与精益创业方法联系起来。 从2009年起,相关的工作组、专业组织和博客快速涌现。

DevOps的引入能对产品交付、测试、功能开发和维护(包括──曾经罕见但如今已屡见不鲜的──“热补丁”)起到意义深远的影响。在缺乏DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”──例如运营人员要求更好的可靠性和安全性,开发人员则希望基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。这种信息鸿沟就是最常出问题的地方。

以下几方面因素可能促使一个组织引入DevOps:

1、使用敏捷或其他软件开发过程与方法

2、业务负责人要求加快产品交付的速率

3、虚拟化和云计算基础设施(可能来自内部或外部供应商)日益普遍

4、数据中心自动化技术和配置管理工具的普及

5、有一种观点认为,占主导地位的“传统”美国式管理风格(“斯隆模型 vs 丰田模型”)会导致“烟囱式自动化”,从而造成开发与运营之间的鸿沟,因此需要DevOps能力来克服由此引发的问题。

DevOps经常被描述为“开发团队与运营团队之间更具协作性、更高效的关系”。由于团队间协作关系的改善,整个组织的效率因此得到提升,伴随频繁变化而来的生产环境的风险也能得到降低。

3. DevOps对应用程序发布的影响

在很多企业中,应用程序发布是一项涉及多个团队、压力很大、风险很高的活动。然而在具备DevOps能力的组织中,应用程序发布的风险很低,原因如下 [1]:

(1)减少变更范围

与传统的瀑布式开发模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。由于部署经常进行,因此每次部署不会对生产系统造成巨大影响,应用程序会以平滑的速率逐渐生长。

(2)加强发布协调

靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协作工具来确保所有相关人员理解变更的内容并全力合作。

(3)自动化

强大的部署自动化手段确保部署任务的可重复性、减少部署出错的可能性。

更多内容请看下回。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/474371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新一代 数据安全管理平台是什么,对于各行各业的公司又有什么价值?

新一代数据安全管理平台,在数据安全建设体系中可发挥“全局风险治理、统一指挥调度”的重要作用,为用户提供跨数据类型、存储孤岛和生态系统集成数据的产品和服务,从而实现更简单、一致的数据安全。 数据安全管理平台是以数据访问行为分析为基…

Redis如何设置键的生存时间或过期时间

键的生存时间或过期时间 概述。 通过EXPIRE命令或者PEXIPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键: 127.0.0.1:6379>…

Oracle:ORA-01830错误-更改数据库时间格式

1,先把报错SQL语句拿出来执行,看看是不是报的这个错 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 2,然后查看默认日期格式是不是“YYYY-MM-DD HH24:MI:SS”(正确格式)。; 执行: SELECT * FRO…

美团24秋招第一套笔试试题

小美的字符串匹配度 我的代码(16/20) import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextL…

Apache Superset

前言 最近在准备一个小的项目,需要对 Hive 的数据进行展示,所以想到了把 Hive 的数据导出到 MySQL 然后用 Superset 进行展示。 Superset 1.1 Superset概述 Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接…

表格固定行固定列问题

效果图 代码&#xff1a; 1.第一部分&#xff1a;表格固定行&#xff1a;用合计行来实现 <el-tableclass"fixedRowcol":data"tableData"bordershow-summarysum-text"合计"ref"table"></el-table> 2.第二部分&#xff1…

Docker 【通过Dockerfile构建镜像】【docker容器与镜像的关系】

文章目录 前言一、前期的准备工作二、上手构建一个简单的镜像三、DcokerFile1 指令总览2 指令详情 四、Dockerfile文件规范五、docker运行build时发生了什么?六、调试手段1. 修改镜像打包后&#xff0c;如何验证新内容已更新至镜像 七、Dockerfile优化方案 前言 docker构建镜…

【Spark编程基础】实验三RDD 编程初级实践(附源代码)

目录 一、实验目的二、实验平台三、实验内容1.spark-shell 交互式编程2.编写独立应用程序实现数据去重3.编写独立应用程序实现求平均值问题 一、实验目的 1、熟悉 Spark 的 RDD 基本操作及键值对操作&#xff1b; 2、熟悉使用 RDD 编程解决实际具体问题的方法 二、实验平台 …

burpsuit教程汉化+Repeater(非常详细),从零基础入门到精通,看完这一篇就够了

前言&#xff1a;释疑解惑 《BP使用教程一》发布后&#xff0c;后台收到了许多小伙伴的私信问BP是怎么汉化的&#xff0c;在这里统一为大家解答一下。 BP的汉化依赖于汉化jar包&#xff0c;在启动时引入汉化包即可&#xff0c;废话不多说&#xff0c;直接上命令&#xff1a; …

MySQL:基础篇

一、数据库概述 基本概念 RDBMS&#xff08;关系型数据库&#xff09;和非DBMS对比 RDBMS 实质&#xff1a; 优势&#xff1a; 非DBMS 介绍&#xff1a; 类型&#xff1a; RDBMS设计规则 表、字段、记录 表之间的关联关系 1、一对一 2、一对多 3、多对多 4、自我引用 二、…

Linux网络编程: TCP协议首部与可选项简述

一、TCP/IP五层模型 物理层&#xff08;Physical Layer&#xff09;&#xff1a;物理层是最底层&#xff0c;负责传输比特流&#xff08;bitstream&#xff09;以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流&#xff0c;例如通过电缆、光纤或无线传输等。…

蓝桥杯 第3217题 简单的异或难题 C++ Java Python

题目 思路和解题方法 计算给定数组中子数组异或和的问题。它采用了前缀异或的方法来预处理数组&#xff0c;然后对于每个查询&#xff0c;通过异或操作计算子数组的异或和。 读取输入的数组&#xff0c;并计算每个位置的前缀异或和。对于每个查询&#xff0c;读取查询的左右边界…

有哪些好用的客户管理软件?这5款系统好在哪里?

问题链接&#xff1a;有哪些客户管理比较好的软件&#xff1f; - 知乎 从题主的描述来看&#xff0c;问题主要聚集在客户信息管理、销售流程管理、客户优先级管理这几大方面&#xff0c;再回答这个问题之前&#xff0c;我们要先明确几个问题。比如&#xff0c;客户对企业的重要…

蓝桥杯--错误票据

求解答&#xff0c;不知道出现什么问题(虽然知道自己写的挺麻烦的&#xff0c;但是孩子能写出来就不容易了&#xff09; public class top2 {//错误票据public static void main(String[] args){Scanner scannernew Scanner(System.in);int wscanner.nextInt();String []snew S…

uniapp 开发微信小程序 出现启用组件按需注入问题如何解决

问题描述 在使用uniapp 开发微信小程序&#xff0c;进行上架发布时 代码质量栏 出现启用组件按需注入问题。 虽然现实代码上传成功&#xff0c;但是作为一个吹毛求疵的老猿人&#xff0c;肯定是无法容忍的。那么如何解决呢&#xff1f; 问题解决方案 在uniapp端&#xff0c…

GDB界面调试CGDB快速上手

什么是 CGDB&#xff1f; CGDB 是一个基于 GNU Debugger&#xff08;GDB&#xff09;的 Curses&#xff08;字符用户界面&#xff09;前端。它提供了一个类似于文本编辑器的界面&#xff0c;可以帮助用户更轻松地执行调试操作&#xff0c;而无需离开终端。 安装 CGDB 首先&a…

【鸿蒙HarmonyOS开发笔记】通知模块之发布进度条类型通知

概述 进度条通知也是常见的通知类型&#xff0c;主要应用于文件下载、事务处理进度显示。HarmonyOS提供了进度条模板&#xff0c;发布通知应用设置好进度条模板的属性值&#xff0c;如模板名、模板数据&#xff0c;通过通知子系统发送到通知栏显示。 目前系统模板仅支持进度条…

HarmonyOS定时器与定时任务

HarmonyOS 的 ArkTS 说白了 就是 TS和JS混合 加了一些新特性的语言 定时任务 就还是用 js代码就OK了 我们代码这样写 Entry Component struct Twox {build() {Row() {Column(){Button("触发定时任务").onClick(()>{setTimeout(()> {console.log(执行)},2000…

【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT

目录 系统介绍 硬件配置 硬件连接图 系统分析与总体设计 系统硬件设计 ESP8266 WIFI开发板 人体红外传感器模块 光敏电阻传感器模块 火焰传感器模块 可燃气体传感器模块 温湿度传感器模块 OLED显示屏模块 系统软件设计 温湿度检测模块 报警模块 OLED显示模块 …

LoRa模块在野外科研与环境保护中的角色:科技守护自然之宝

随着科技的不断发展&#xff0c;LoRa&#xff08;低功耗广域网&#xff09;模块在野外科研与环境保护中正发挥着越来越重要的作用。其卓越的通信能力、低功耗特性以及良好的穿透能力&#xff0c;为科学家和环保人士提供了一种先进的技术手段&#xff0c;有助于更深入、更全面地…