InfraPub 为您找到相关结果 261

Gitlab CI 配置文件 .gitlab

no 定义此作业完成部署的环境名称 coverage no 定义给定作业的代码覆盖设置 script script是Runner执行的yaml脚本。举个例子: job: script: "bundle exec rspec" 该参数也可以用数组包含多个命令: job: script: - uname -a - bundle exec rspec 有时候,script命令需要被单引号或者是双引号包裹起来。举个例子,当命令中包含冒号(:)时,script需要被包在双引号中,这样YAML解析器才可以正确解析为一个字符串而不是一个键值对(key:value)。使用这些特殊字符的时候一定要注意::,{,},[,],,,&,*,#,?,|,-,<,>,=,!。 stage stage允许一组jobs进入...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

Gitlab CI 配置文件 .gitlab

this after my script coverage 注意:GitLab 8.17 中 引入。 coverage允许你配置代码覆盖将会从该job中提取输出。 在这里正则表达式是唯一有效的值。因此,字符串的前后必须使用/包含来表明一个正确的正则表达式规则。特殊字符串需要转义。 一个简单的例子: job1: coverage: '/Code coverage: \d+\.\d+/' Git Strategy GitLab 8.9中以试验性功能引入。将来的版本中可能改变或完全移除。GIT_STRATEGY要求GitLab Runner v1.7+。 你可以通过设置GIT_STRATEGY用于获取最新的代码,可以再全局variables或者是在单个job的variables模块中设置。如果没有设置...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

域名与商标: 如何防止域名被仲裁

是相当高的。因此,在推销域名的时候,应尽量避免使用域名注册邮箱进行,而且还得保证你所使用的推销邮箱与你本人的关联性不强才行。同时,为迫使对方高价赎回,利用这类商标域名,建立一些会对商标产生负面影响的网站,就更不可取了。 如果一旦认定域名为“恶意抢注”,通行的作法是商标权利人胜诉。 二、盗用和模仿类域名 即平时所讲的TYPO域名和加前缀、加后缀的流量域名,在域名仲裁中也是及易被仲裁的类别。 这类域名由于与对应的商标高度相似,及易导至网络用户的混淆、误认,实际上是淡化了原商标的知名度。这类域名会被定义为商标盗用类域名。它也有两个显著特点: 1、域名与商标(包括知名公司的名称、专有指代标识)及为相似,客观上会造成他们混淆、误认。2、商业使用。 第一个特点是显著的,大多数情况下,米农注册这类域名...阅读全文

博文 2019-01-18 14:59:59 debian.cn

Git 介绍与使用详解

出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。 1.1.1集中化的版本控制系统,代表Svn 缺点: 1、依赖中央服务器。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 2、如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 3、整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险 4、必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,效就很低了。 1.1.2分布式版本控制系统,代表Git...阅读全文

博文 2017-02-25 09:00:27 程序员

细数k8s支持的4种类型的container - 侃豺小哥

始化容器不会被开始执行。因此,如果启动任务很长,则可以考虑将其分为多个步骤,每个步骤都由一个初始化容器处理,以便您知道哪些步骤失败。 如果任何初始化容器失败,则将重新启动整个Pod(除非您将restartPolicy设置为Never)。重新启动Pod意味着再次重新执行所有容器,包括任何初始化容器。因此,您可能需要确保启动逻辑允许多次执行而不会导致重复。例如,如果数据库迁移已经完成,则应仅忽略再次执行迁移命令。 初始化容器是延迟应用程序初始化直到一个或多个依赖项可用的很好的选择。例如,如果您的应用程序依赖于施加API请求速限制的API,则您可能需要等待一段时间才能接收来自该API的响应。在应用程序容器中实现此逻辑可能很复杂;因为它需要与健康和就绪状态探测器结合使用。一种更简单的方法是创建一个...阅读全文

博文 2021-08-20 11:45:32 博客园

谷歌公开了内部管理Infra层的两个工具的Paper

解决这个问题之前,我们依赖于传统的工作流引擎。比如,一个工作流列出部署新二进制文件的步骤:在集群X上做金丝雀测试,然后将N部署到集群Y和Z上,运行测试等等。 创建工作流本身就需要大量工作,因此我们只为经常需要做的事情创建工作流,比如二进制文件的版本更新。我们通常手动处理不那么常见的情况,比如重启。已有的脚本经常会过期而不再适用。 对于运维人员来说,这些工作流很容易实现:做X,然后Y。想要添加力测试?只需要添加一个步骤。但是随着工作流使用规模的扩大,它的问题也显露出来。 首先,扩展工作流会造成很多重复。每个服务都有很好的理由要求一些特殊逻辑,这意味着需要定制化的实现。尝试了几次整合工作流的实现,但是只有适用于某个特定模型的服务才能使用。这样导致的重复让服务变得不一致。最佳实践,比如跨集群的有...阅读全文

博文 2023-01-08 11:23:20 CSDN博客

王垠:如何掌握所有的程序语言

吗?你不能。你得看看它里面装的是什么型号的处理器,有多少个核,主频多少,有多少 L1 cache,L2 cache……,有多少内存和硬盘,显示器分辨有多大,显卡是什么 GPU,网卡速度,等等各种“配置”。有时候你还得看各个组件之间的兼容性。 这些配置对应到程序语言里面,就是所谓“语言特性”。举一些语言特性的例子: 变量定义 算术运算 for 循环语句,while 循环语句 函数定义,函数调用 递归 静态类型系统 类型推导 lambda 函数 面向对象 垃圾回收 指针算术 goto 语句 这些语言特性,就像你在选择一台电脑的时候,看它里面是什么配置。选电脑的时候,没有人会说 Dell 一定是最好的,他们只会说这个型号里面装的是 Intel 的 i7 处理器,这个比 i5 的好,DDR3 的内...阅读全文

博文 2017-07-10 10:13:17 debian.cn

Apollo 配置中心简单介绍

,服务端都会返回304 - Not Modified定时频默认为每5分钟拉取一次,客户端也可以通过在运行时指定System Property: apollo.refreshInterval来覆盖,单位为分钟。客户端从Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中客户端会把从服务端获取到的配置在本地文件系统缓存一份 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置应用程序可以从Apollo客户端获取最新的配置、订阅配置更新通知 4.6.1 配置更新推送实现 前面提到了Apollo客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。 长连接实际上我们是通过Http Long Polling实现的,具体而言: 客户端发起一个Http请求到服务端服务端会保持住...阅读全文

博文 2021-04-09 17:53:51 CSDN

说透IO多路复用模型_京东云开发者的博客

候,系统会将已经就绪的socket添加到双向链表中,然后通过epoll_wait方法检测的时候,其实检查的就是这个双向链表,由于链表中都是就绪的数据,所以避免了针对整个客户端socket列表进行遍历的情况,使得整体效大大提升。 整体的操作流程为: 首先,利用epoll_create在内核中创建一个epoll对象。其实这个epoll对象,就是一个可以存储客户端连接的数据结构。 然后,客户端socket连接上来,会通过epoll_ctl操作将结果添加到epoll对象的红黑树数据结构中。 然后,一旦有socket有事件发生,则会通过回调函数将其添加到ready list双向链表中。 最后,epoll_wait会遍历链表来处理已经准备好的socket,然后通过预先设置的水平触发或者边缘触发来进行数...阅读全文

博文 2023-01-01 15:13:50 CSDN博客

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

记录的更改)。在我们的例子中,控制器通过一个 Informer 注册一个创建事件的特定回调函数(更多信息参加下文)。 当 Deployment 第一次对外可见时,该 Controller 就会将该资源对象添加到内部工作队列,然后开始处理这个资源对象: 通过使用标签选择器查询 kube-apiserver 来检查该 Deployment 是否有与其关联的 ReplicaSet 或 Pod 记录。 有趣的是,这个同步过程是状态不可知的,它核对新记录与核对已经存在的记录采用的是相同的方式。 在意识到没有与其关联的 ReplicaSet 或 Pod 记录后,Deployment Controller 就会开始执行弹性伸流程: 创建 ReplicaSet 资源,为其分配一个标签选择器并将其版本号设置...阅读全文

博文 2022-04-18 16:18:04 CSDN

CCPA vs. GDPR:欧美这两部个人数据保护法有什么差异?

否落入加州CCPA管辖。 2.3 小结 相比而言,GDPR的管辖较广泛,管辖逻辑复杂,只要与欧盟、欧盟居民、向欧盟输出产品服务或监控欧盟个人等因素相关,即大概落入GDPR管辖范围。 相反,CCPA管辖逻辑简明,聚焦于管辖“以营利目的处理个人信息的企业”,为被管辖实体设置了“年收入金额门槛”和“消费者、家庭和设备数量门槛”,注重对于风险影响程度和范围较大的实体进行管辖,执法的针对性就更强。 3. 数据跨境传输管控:GDPR环环相扣严格限制,CCPA无明确规定 3.1 GDPR对跨境传输的授权与限制——五道“关口” GDPR对数据跨境传输到欧盟境外的情况规定了较为严格的条件。从立法价值取向上,通过以下“五步走”的方式[11],GDPR就为数据流出欧洲经济区(EEA)设置了层层关口,且GDPR给...阅读全文