读发布!设计与部署稳定的分布式系统(第2版)笔记20_实例层之代码

 

1. 术语的定义

1.1. 服务

1.1.1. 指共同协作、以单元的形式对外提供功能的跨机器进程集合

1.1.2. 一个服务可以由多种可执行文件组成

1.1.3. 一个服务可能包含来自多个可执行文件的多个进程

1.1.4. 可能对外呈现单个IP地址,并在后台进行负载均衡

1.1.5. 可能有多个IP地址,且每个都使用相同的DNS名称

1.2. 实例

1.2.1. 指单台机器(容器、虚拟机或物理机)上的一个安装文件集,位于运行相同可执行文件的负载均衡阵列中

1.2.2. 一组实例指的是运行相同可执行文件的多个进程,这些实例在不同的机器上运行

1.3. 可执行文件

1.3.1. 指由构建过程所创建的制品,机器可以将其作为进程来启动

1.3.2. 在编译型语言中,是一个可执行的二进制文件

1.3.3. 对于解释型语言则是源文件

1.3.4. 还包括在执行之前需要安装的共享库

1.4. 进程

1.4.1. 指在系统中正在运行的一个应用程序,也是可执行文件的运行时镜像

1.5. 安装文件集

1.5.1. 指可执行文件、所有衍生目录、配置文件以及机器上的其他资源

1.6. 部署

1.6.1. 在一台机器上创建安装文件集的行为

1.6.2. 部署是自动化的过程,其定义在源代码控制系统中保存

2. 构建代码

2.1. 保证用户准确地知道实例中添加的代码

2.2. 建立从开发人员到生产环境实例的强大的“监管链”至关重要

2.3. 必须确保任何未经授权的一方,都无法在用户系统中添加代码

2.4. “监管链”从开发人员的工位开始,开发人员应该在版本控制系统中管理代码

2.4.1. 只有代码才能进入版本控制系统

2.4.2. 版本控制并不擅长处理第三方库或依赖库

2.5. 构建工具必须能将依赖库从某处下载到开发人员的计算机中

2.6. 从互联网下载依赖库虽然方便但不安全

2.6.1. 中间人攻击或上游库的操纵,从互联网下载的某个依赖库能轻易地被悄悄替换掉

2.6.2. 从网上下载依赖库,也应该尽快将其转移到私有库中

2.6.3. 只有当依赖库的数字签名与来自上游提供商已公布的信息匹配时,才能将该依赖库存入私有库中

2.7. 开发人员不应该最先在自己的机器上创建生产版本

2.7.1. 开发人员的计算机已经被彻底污染了

2.7.2. 浏览器也安装了“惹人嫌”的工具栏和冒牌的“搜索增强器”

2.8. 只能在CI服务器上创建生产版本,并将其二进制文件存在其他人无法写入的安全的部署包库中

3. 不可变、易处理的基础设施

3.1. 通过脚本描述的机器运行状态

 

3.1.1. “一层层抹泥”的方法更新机器的状态有两大挑战

3.1.1.1. 这样做容易产生副作用,脚本无法描述机器状态

3.1.1.2. 只能部分工作的受损的机器或脚本,它们会使机器处于未定义的状态

3.2. 创建新镜像

 

3.2.1. 不可变基础设施

3.2.1.1. 机器一旦部署就不再变更

3.2.2. 始终从已知的基础镜像开始,在其上施加一组固定的更改,之后不再对该机器进行修补或更新,这样做会更可靠

3.2.3. 当需要变更计算机时,再次从基础镜像开始,创建一个新的镜像

3.2.4. 容器的“文件系统”是部署包库中的二进制镜像,包含能在实例上运行的代码,当需要部署新代码时,我们不会再修补容器,而是构建并启动一个新容器,放弃旧容器

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HOT47-从前序与中序遍历序列构造二叉树

leetcode原题链接:从前序与中序遍历序列构造二叉树 题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder …

获取java对象被更新的属性和值

业务场景 更新User信息后&#xff0c;需要收集哪些字段的哪些值被更新了。 思路 比较originUser和newUser&#xff0c;收集值不同的属性以及变化前后的值。 代码实现 public static Map<String, Map<String, Object>> getChange(Object originObject, Object ne…

YoloV5/YoloV7改进---注意力机制:SRM,卷积神经网络再校准模块,性能优于SE、GE

目录 1.SRM介绍 ​编辑 2.SRM引入到yolov5 2.1 加入common.py中&#xff1a; 2.2 加入yolo.py中&#xff1a; 2.3 yolov5s_SRM.yaml 2.4 yolov5s_SRM1.yaml 3.YOLOv5/YOLOv7魔术师专栏介绍 1.SRM介绍 论文&#xff1a;https://openaccess.thecvf.com/content…

人工智能学习07--pytorch22--目标检测:YOLO V3 SPP

视频链接&#xff1a; https://www.bilibili.com/video/BV1t54y1C7ra/?vd_sourceb425cf6a88c74ab02b3939ca66be1c0d yolov3 spp spp&#xff1a;空间金字塔池化 trick&#xff1a;实现的小技巧&#xff0c;方法。&#xff08; up&#xff1a;Bag of Freebies里有很多trick&…

多实例部署和Nginx+Tomcat负载均衡、动静分离

目录 一、Tomcat多实例部署 1.安装好 jdk 2.安装 tomcat 3.配置 tomcat环境变量 4.修改 tomcat2 中的 server.xml文件&#xff0c;要求各 tomcat 实例配置不能有重复的端口号 5.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件&#xff0c;添加 tomcat 环境变量 6.启…

4.44ue4:相机抖动

1.创建相机抖动类 右键内容面板&#xff0c;点击创建蓝图类&#xff0c;搜索shake&#xff08;camera shake&#xff09; 2.使用相机抖动&#xff1a; 节点&#xff1a;play world .. api解释&#xff1a; epicenter&#xff1a;震源 inner Radius&#xff1a;内圈范围&a…

记一次CPU告警挖矿事件应急响应

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 事件背景介绍02 定位挖矿主机03 挖矿主机分析04 病毒样本分析05 入侵路径梳理06 安全加固建议 01 事件背景介绍 某单位服务器存在CUP资源异常占用情况&#xff0c;现需对该情况进行排查。 02 定位…

Mysql中IP地址如何在数据库中存储

用无符号的32位整数存储&#xff0c;不要用字符串存储ip 为什么呢&#xff1f; 在Mysql中&#xff0c;当存储ipv4地址的时候&#xff0c;应该使用32位的无符号&#xff08;int unsigned&#xff09;来存储ip地址&#xff0c;而不是使用字符串&#xff0c;用int unsigned类型存…

[ZJCTF 2019]NiZhuanSiWei1

拿到是一段php代码 <?php $text $_GET["text"]; $file $_GET["file"]; $password $_GET["password"]; if(isset($text)&&(file_get_contents($text,r)"welcome to the zjctf")){echo "<br><h1>&quo…

一百二十六、DBeaver——导入CSV文件(文件中无表字段)到ClickHouse

一、目标&#xff1a;将CSV文件的数据导入到ClickHouse中 备注&#xff1a;CSV文件没有表字段&#xff0c;只有纯粹的数据 二、实施步骤 第一步&#xff0c;右击表名&#xff0c;选择导入数据 第二步&#xff0c;在源类型和格式&#xff0c;选择从CSV文件导入&#xff0c;然…

Spring Boot 中的 @ComponentScan 注解是什么,原理,如何使用

Spring Boot 中的 ComponentScan 注解是什么&#xff0c;原理&#xff0c;如何使用 在 Spring Boot 中&#xff0c;ComponentScan 是一种注解&#xff0c;它可以让 Spring 自动扫描指定的包及其子包中的组件&#xff0c;并将这些组件自动装配到 Spring 容器中。本文将介绍 Com…

java jvm什么是记忆集,卡表?

记忆集 &#xff1a; 是一种用于记录 从非收集区域指向收集区域的指针集合的抽象数据结构 。如果我们不考虑 效率和成本的话&#xff0c;最简单的实现可以用非收集区域中所有含跨代引用的对象数组来实现这个数据结 构 记忆集作用 &#xff1a;解决对象跨代引用所带来的问题&a…