InfraPub 为您找到相关结果 391

Kubernetes 1.7:安全加固、有状态应用更新等

项来向 API 服务器添加自定义业务逻辑在对象创建的时候进行更改,以及验证策略。 对于联合的集群,引入了基于策略的联合资源放置(Policy-based Federated Resource Placement),处于alpha状态,其基于自定义的要求如规则、定价或者性能。 废弃: 第三方资源(Third Party Resource,TPR)已经被自定义资源定义(Custom Resource Definition,CRD)取代,后者的API更加简洁,并且解决了 TPR beta 测试时出现的问题和边缘场景。鼓励从 TPR 迁移到 CRD,因为Kubernetes 1.9中社区会去掉TRP。 上面就是 Kuberenetes 1.7 关键特性的一部分。完整的列表可以查看发布说。 采用 感...阅读全文

博文 2021-01-28 17:50:35 debian.cn

Debian 11 "bullseye" 发布,带来内核 exFAT 支持

、 OpenSSH 和 Mutt 的部分语言的手册页,例如法语、西班牙语和马其顿语,得到了显改进。欲获得此项改进,请安装 manpages-*xx*(其中 xx 是您所需的自然语言的代码)。在 bullseye 的生命周期中,进一步的翻译改进将会通过 backports 仓库提供。更多详情可查看:https://www.debian.org/News/2021/20210814 图像 小部件...阅读全文

DevOps 越来越流行,2019 年这八大趋势值得关注

来看,DevOps 的采用率从 2015 年到 2016 年增加了约 8%,预计这一数字将在 2019 年大幅增长。 根据 Statista 的报告,很多商业组织正在采用 DevOps,2018 年增长率高达 17%,而 2017 年则为 10%左右。 你可以在 RightScale 上查看完整的报告。Forrester 的报告中也确提到了 2018 年将是 DevOps 年。我们看到了将影响来年 DevOps 发展的八个事实。 焦点从 CI 管道转到 DevOps 装配线 管道为应用程序提供了从源码控制到生产环境的一套完整的可视化视图。你可以在某个地方看到所有的内容。现在不仅要做 CI(持续集成),还要做 CD(持续交付)。企业正投入时间和精力,以便更多地了解如何自动化完整的软件开发过程...阅读全文

博文 2018-12-10 22:49:57 debian.cn

Apollo 分布式配置中心详解

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 本文简单从功能特点做介绍,更详细的说请参考Apollo配置中心介绍。本地快速部署可以参考这里。线上的演示环境从这里可以访问到: 106.54.227.205 (账号/密码: apollo/admin) Apollo 配置中心产生背景 大多情况下程序随着功能的复杂,程序的配置也会增多:包括各种功能开关、参数配置、服务地址信息配置等,同时开发人员对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群的管理配置、权限控制、审核机制等。 在这样的大环境下,传统的通过配置文件、数据库...阅读全文

博文 2020-04-12 12:16:26 debian.cn

六个开源软件开发的潜规则

孤立地看待问题。这表,你要对项目各个部分如何与其他人协作交互有比较深入的理解。让你的补丁填坑而不是挖坑。这样你朝成为社区精英的目标上又前进了一大步。 粗枝大叶,自寻烦恼 代码提交完毕后你的工作还没结束。如果代码被接受,还会有一些关于这些更改的讨论和常见的问答,还要做测试。你要确保你可以准时提交,努力去理解如何在不影响社区其他成员的情况下,改进代码和补丁。 和谐相处,助人助己 开源社区不是自相残杀的丛林世界,我们更看重项目的价值而非个体的贡献和成功。如果你想给自己加分,让自己成为更重要的社区成员、让社区接纳你的代码,那就努力帮助别人。如果你熟悉网络部分,那就去复审网络部分,用你的专业技能让整个代码更加优雅。道理很简单,顶级的审查者经常和顶级的贡献者打交道。你帮助的人越多,你就越有价值。 八面...阅读全文

博文 2017-05-20 10:27:11 debian.cn

三星谈论下一代DRAM解决方案:GDDR7、DDR5、LPDDR5X和V-NAND

的内存技术组合的承诺。"万亿GB是三星自40多年前开始生产的内存总量,这一万亿中大约有一半是在过去三年里生产的,这表数字转型的进展有多快,"三星电子总裁兼内存业务主管Jung-bae Lee说。"随着内存带宽、容量和功率效率的进步使新的平台成为可能,而这些反过来又刺激了更多的半导体创新,我们将越来越多地推动在数字共同进化的道路上实现更高水平的整合。"推进数据智能的DRAM解决方案三星的1b级DRAM目前正在开发中,计划在2023年进行大规模生产。为了克服DRAM扩展到10纳米范围以外的挑战,该公司一直在开发图案化、材料和架构方面的颠覆性解决方案,像High-K材料这样的技术正在顺利进行。该公司随后强调了即将推出的DRAM解决方案,如32Gb DDR5 DRAM、8.5Gbps...阅读全文

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

deployments,而背后的复杂性被隐藏在简单的抽象中。但为了充分理解它为我们提供的价值,我们需要理解它的内部原理。 本指南将引导您理解从 client 到 Kubelet 的请求的完整生命周期,必要时会通过源代码来说背后发生了什么。 这是一份可以在线修改的文档,如果你发现有什么可以改进或重写的,欢迎提供帮助! 1. kubectl 验证和生成器 当敲下回车键以后,kubectl 首先会执行一些客户端验证操作,以确保不合法的请求(例如,创建不支持的资源或使用格式错误的镜像名称)将会快速失败,也不会发送给 kube-apiserver。通过减少不必要的负载来提高系统性能。 验证通过之后, kubectl 开始将发送给 kube-apiserver 的 HTTP 请求进行封装。kube-apiserver 与...阅读全文

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

最全 MongoDB 基础教程

( { justOne: , writeConcern: } ) 参数说 query: (可选) 删除的文档的条件 justOne: (可选) 如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档 writeConcern: (可选) 抛出异常的级别 db.ruochen.remove({'title': 'mongodb'}) # 只删除第一条找到的记录 db.COLLECTION_NAME.remove(DELETION_CRITHRIA, 1) # 删除所有数据 db.ruochen.remove({}) db.ruochen.find() # remove() 方法 并不会真正释...阅读全文

博文 2021-02-22 07:45:45 OSChina

21款必不可少的Ubuntu桌面应用程序

Atom文本编辑器。 12. Steam Linux Gaming 如果你打算在Linux系统上玩游戏,那么确实值得花一番心思来安装Steam,这是一种大受欢迎的游戏发布平台。 有3000多款Steam游戏适用于Linux,包括众多知名游戏,比如《古墓丽影》、《杀出重围:人类分裂》和《战锤:全面战争》。还有大批的独立游戏和经典游戏值得探究一番。 13. NeoFetch系统信息工具 在寻找一种巧妙的方法来了解你运行的是什么窗口管理器、GTK主题、桌面环境、内核和bash版本?你可以点击一大堆菜单来搞个白,也可以运行一个命令:neofetch。 重要的事先说:你需要先安装这个应用程序,之后才可以运行它;为此,你需要从NeoFetch Github页面下载最新版本。 14. Corebird...阅读全文

博文 2021-01-28 17:50:19 debian.cn

深入理解Golang之context

(parent, &c) return &c, func() { c.cancel(true, Canceled) } } // newCancelCtx returns an initialized cancelCtx. func newCancelCtx(parent Context) cancelCtx { // 将parent作为父节点context生成一个新的子节点 return cancelCtx{Context: parent} } func propagateCancel(parent Context, child canceler) { if parent.Done() == nil { // parent.Done()返回nil表父节点以上的路径上没有可取消的context...阅读全文

博文 2021-01-27 09:05:27 知乎

Debian 9 使用kubeadm创建 k8s 集群(下)

且需要单独的网络组件,该组件可以透地将来自一个节点上的pod的流量路由到另一个节点上的pod。 此功能由pod网络插件提供。 对于这个群集,您将使用Flannel ,一个稳定且高性能的选项。 在本地计算机上创建一个名为master.yml的Ansible playbook: nano ~/kube-cluster/master.yml 将以下播放添加到文件以初始化集群并安装Flannel:〜/ KUBE群集/ master.yml - hosts: master become: yes tasks: - name: initialize the cluster shell: kubeadm init --pod-network-cidr=10.244.0.0/16...阅读全文

博文 2019-05-13 22:57:41 debian.cn

一位五年工作经验架构师的感悟

过去而蹉跎;不要羡慕别人现在的生活;不要羡慕陈冠希,长得帅,女朋友交的多。你没有别人找的帅,不努力,你就是天天守着电脑看看片。说不定那天你去创个业,成功了,然后的然后,你想想然后的然后。。。 所以,不为过去蹉跎,活在当下,把握当下。 找到你的追求,然后就去追求 首先,我这里没有使用信念。信念,可能太重了。尤其对于中国人而言,信仰普遍都是缺失的,很难一直相信、坚信一件事。 第二,很多人,不知道自己想要什么,想去追求什么。所以一直不知道,该怎么去改变,该怎么去追求。 我是为了追求钱? 其实我不追求钱,当然我不是圣人,我家里不富裕,就是从农村出来的,我结婚的时候没有自己的房子(谢谢妻子),我还有很多东西没有买。我需要钱,但是不是为了钱而工作,工作这么多年,没有询问过加薪,没有为了加薪而跳槽(当...阅读全文

博文 2021-01-28 17:50:31 debian.cn

Monit:开源服务器监控工具

!= 0 then alert 控制台访问验证 访问Monit Web界面主要通过ALLOW选项进行控制,ALLOW选项用于指定身份验证并仅授权特定客户端进行连接。 如果正在使用Monit命令行界面,至少需要一个文密码(见下文),否则Monit命令行界面将无法连接到Monit Web界面。 尝试连接到Monit,但提交错误的用户名和/或密码的客户端将使用其IP地址记录。 主机和网络允许列表 Monit维护允许连接的主机和网络的访问控制列表。您可以添加任意数量的主机,但只允许具有有效域名或其IP地址的主机。 Monit将查询名称服务器以检查任何尝试连接的主机。如果主机(客户端)正在尝试连接,但无法在访问列表中找到或无法解决,Monit将立即关闭与客户端的连接。 配置文件示例: set httpd...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

协议介绍之深入了解 gRPC

。发送请求的时候,只要指定 field 在静态 table 里面的索引,双方就知道要发送的 field 是什么了。 对于动态 table,初始化为空,如果两边交互之后,发现有新的 field,就添加到动态 table 上面,这样后面的请求就可以跟静态 table 一样,只需要带上相关的 index 就可以了。 同时,为了减少数据传输的大小,使用 Huffman 进行编码。这里就不再详细说 HPACK 和 Huffman 如何编码了。 小结 上面只是大概列举了一些 HTTP/2 的特性,还有一些,譬如 push,以及不同的 frame 定义等都没有提及,大家感兴趣,可以自行参考 HTTP/2 RFC 文档。 Hello gRPC gRPC 是 Google 基于 HTTP/2 以及...阅读全文

博文 2017-06-22 11:08:48 debian.cn

处理器架构消亡史

Interlocked Pipeline Stages)项目以研究精简指令集计算技术。当时,该项目的成果向他展示了这项技术潜在的经济价值,并让他在1984年休假期间成立了 MIPS Computer Systems 。1985年,该公司推出了第一个实现 MIPS架构的微处理器,即 R2000 。1990年代初期,MIPS科技公司开始将自己的微处理器设计许可给第三方供应商。事实证,由于MIPS处理器核的简单性,这种方式相当成功,这使 MIPS 架构的微处理器可以用于许多应用,这些应用所集成的 MIPS 架构微处理器比以前同时期使用的具有相同功能的CISC架构微处理器在设计上的花费少得多,而门数和价格却差不多。基于 MIPS架构 的芯片广泛应用于嵌入式市场,包括计算机网络,电信,视频街机游戏,视频游戏机,计算机打...阅读全文

在 Kubernetes 上扩展 TensorFlow 模型

由于人工智能 / 机器学习日益集成到应用和业务流程中,因此生产级机器学习模型需要更多可扩展的基础设施和计算能力,以用于训练和部署。 现代机器学习算法在大量数据上进行训练,并且需要数十亿次迭代才能使成本函数最小化。这类模型的垂直扩展会遇到操作系统级别的瓶颈,包括可提供的 CPU、GPU 和存储的数量,而且对于这种类型的模型,已经证效率并不高。更为高效的并行处理算法,例如异步训练和 allreduce 式训练,需要一个分布式集群系统,由不同的 worker (工作器)以协调的方式同时学习。 可扩展性对于在生产环境中服务深度学习模型也非常重要。将单个 API 请求处理到模型预测端点可能会触发复杂的处理逻辑,这将花费大量时间。由于更多用户访问模型的端点,为了有效地处理客户端请求,需要更多服务实例...阅读全文

Web前端知识体系精简

,但Javascript在函数Function对象中建立了原型对象prototype,并以Function对象为主线,从上至下,在内部构建了一条原型链。 简单来说就是建立了变量查找机制,当访问一个对象的属性时,先查找对象本身是否存在,如果不存在就去该对象所在的原型连上去找,直到Object对象为止,如果都没有找到该属性才会返回undefined。 因此我们经常会利用函数的原型机制来实现JS继承。关于函数原型链可参考博客:JS原型对象和原型链 2、函数作用域 函数作用域就是变量在声它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。在JS中没有会块级作用域,只有函数作用域,因此JS中还存在着另外一种怪异现象,那就是变量提升。关于作用域的介绍请参考博客:函数的作用域和作用域链 3、函数指针...阅读全文

博文 2021-01-28 17:50:33 debian.cn

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

一、当 Kubernetes 成为云原生事实标准,可观测性挑战随之而来当前,云原生技术以容器技术为基础,通过标准可扩展的调度、网络、存储、容器运行时接口来提供基础设施。同时,通过标准可扩展的声式资源和控制器来提供运维能力,两层标准化推动了开发与运维关注点分离,各领域进一步提升规模化和专业化,达到成本、效率、稳定性的全面优化。在这样的大技术背景下,越来越多的公司引入了云原生技术来开发、运维业务应用。正因为云原生技术带来了越发纷繁复杂的可能性,业务应用出现了微服务众多、多语言开发、多通信协议的鲜特征。同时,云原生技术本身将复杂度下移,给可观测性带来了更多挑战:​1、混沌的微服务架构,多语言和多网络协议混杂业务架构因为分工问题,容易出现服务数量多,调用协议和关系非常复杂的现象,导致的常见问题...阅读全文

博文 2022-03-21 09:11:51 joseph

最全的 DevOps 工具集合

本文最初发布于 Better Programming 博客,经原作者授权由 InfoQ 中文站翻译并分享。 随着 DevOps 的出现频率越来越高,很多企业都在蠢蠢欲动,想要设计和开发 DevOps 平台。工欲善其事必先利其器,本文为大家总结了 DevOps 各个阶段可以选择的工具,也许 DevOps 平台的技术选型在这一篇文章中就可以完成。 DevOps 的目标是持续改进,因此技术选型也是分阶段的。 DevOps 技术类别 规划工具 在规划阶段最重要的是要制定共同的目标、保证透度和赋权。目前业内比较常用的规划工具主要包括 GitLab、TaskTop、CollabNet VersionOne、Pivotal Tracker、Trello 和 Azure Boards。 GitLab...阅读全文

博文 2021-05-26 14:35:21 博客园

大起底:揭开亚马逊云计算丰厚利润的秘密 - 电子商务

需要租赁托管的服务器来运行网站,他们必须支付足够费用才能获得想要的性能。阿尔瓦雷兹介绍说,科技公司租用的服务器往往超过了实际所需,造成浪费。亚马逊联系到了他,介绍即将推出的新服务,并提供了提前试用。阿尔瓦雷兹回忆说:“一瞬间我白了,亚马逊提供了一个改变我一生的产品,这将改变我的人生,以及所有开发者的人生。”这样的评价并不夸张。S3蓬勃发展,时至今日已经在网络上保存了100万亿个数据对象。亚马逊云计算负责对象和块存储的副总裁麦兰·汤姆森·布科维奇(Mai-Lan Tomsen Bukovec)在接受电视媒体采访时介绍说,今天一些企业客户存储的数据多达几百PB(1PB等于1024TB),某些案例下甚至多达1EB(等于1024PB)。有时候,企业在S3上保存的数据超出了必要。上述业内人士金塞拉回...阅读全文

博文 2021-09-07 11:41:54 cnBeta.COM

社交巨人Facebook使用Linux和Btrfs的姿势

被我们称之为“影子层”的地方进行——我们可以在一个非生产环境重放生产网络的流量,这样我们能够在一个非常安全的地方检测系统的稳定性和性能。我们可以像做实验那样一边加大流量一边说:“好了,我先给它(测试环境)5%的生产网络流量,然后一路增加到100%,看看会有什么发现吧。”像做A/B测试那样,我就能得到两个内核在整个实验过程中对比鲜的数据。 我们有工具能验证内核并帮助测试上游内核。这样比较容易发现上游内核新的有意思的bug,而非只是找到已经被上游内核修复过的bug。 Linux.com:您比较担心什么问题? Chris Mason:就运行Linux内核或者文件系统而言,我们还没遇到什么问题;况且有这么多的社区在支持Linux,我也没有必要担心什么。 Linux.com:您参与Linux开发也有...阅读全文

博文 2021-01-28 17:50:22 debian.cn

Spinnaker 介绍 – Netflix 的持续交付平台

个例子可以说两者的关系:Netflix 内部有人不用 Spinnaker 的 pipeline,而只是将 Spinnaker 看为一个部署工具,直接在 jenkins 中调用它的 API 来部署服务。 逻辑架构 Spinnaker 自己是一个微服务架构,由若干组件组成,所有组件都开源在github上,整个逻辑架构如下图所示: Deck:AngularJS 写的 WebUI。Gate:提供 API 接口给外部程序,Deck 也是其中之一,Spinnaker 的大门。Cloud Driver:对接各种云服务提供商,比如AWS, GCP, Azure 等。她负责所有对这些云服务的读写操作。Orca :处理 pipeline 和任务编排,比如创建一个虚拟机,等待它创建完成,然后执行其他操作...阅读全文

博文 2018-12-21 19:30:47 debian.cn

利用 NAT VPS 进行流量中转

过 iptables 实现 IP 端口数据包转发服务配置关于 NAT VPS 的使用说NAT VPS 的正确食用方式NAT VPS 主机端口转发(流量中转)教程国内中转高性价比方案:NAT VPS + iptables 端口流量转发通过国内服务器转发流量Ubuntu UFW 防火墙设置Setup a Shadowsocks relay在 Azure 搭建 ShadowSocks 国内跳板,并开启 UDP 转发UFW Essentials: Common Firewall Rules and CommandsHow To Setup a Firewall with UFW on an Ubuntu and Debian Cloud ServerConfigure Uncomplicated...阅读全文

博文 2021-03-11 21:16:11 Silearner

基于thanos搭建分布式prometheus

: path: /data/thanos-receive-data type: DirectoryOrCreate - name: thanos-receive-config configMap: name: thanos-receive-config 细节大家可以自己慢慢看,我讲一下关键: 用statefulset部署集群,因为这是一个有状态的存储集群,不能随便漂移。 因为是分布式存储集群,要通过POD亲和性避免2个POD跑到1个Node上。 核心配置是声receive集群的地址列表,这里利用headless service可以直接拿到每个POD的dns name,是有规则的。 每个thanos receive实例的启动参数中指定replica标签唯一标识它。 thanos-receive集群的...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

下一代时间同步服务 Chrony 详解

System time : 0.001607892 seconds slow of NTP time Last offset : -0.001619716 seconds RMS offset : 0.001619716 seconds Frequency : 2.047 ppm fast Residual freq : +6.159 ppm Skew : 1000000.000 ppm Root delay : 0.041321401 seconds Root dispersion : 0.413354427 seconds Update interval : 2.1 seconds Leap status : Normal 这里主要关注 Update interval 这个参数, 说最后两次更新...阅读全文

博文 2021-01-04 08:41:14 debian.cn

六大算法之三:动态规划【转载】

)确定决策并写出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。 (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。 一般,只要解决问题的阶段、状态和状态转移决策确定了,就可以写出状态转移方程(包括边界条件)。 实际应用中可以按以下几个简化的步骤进行设计: (1)分析最优解的性质,并刻画其结构特征。 (2)递归的定义最优解。 (3)以自底向上或自顶向下的记忆化方式(备忘录法)计算出最优值 (4)根据计算最优值时得到的信息,构造问题的最优解 算法实现的说 动态规划的主要难点在...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

Apollo 配置中心简单介绍

示、编辑。用户也可以切换到文本模式,以文件形式查看、编辑。页面上可以方便地进行发布、回滚、灰度、授权、查看更改历史和发布历史等操作 3.3 添加/修改配置项 用户可以通过配置中心界面方便的添加/修改配置项: 输入配置信息: 3.4 发布配置 通过配置中心发布配置: 填写发布信息: 3.5 客户端获取配置(Java API样例) 配置发布后,就能在客户端获取到了,以Java API方式为例,获取配置的示例代码如下。更多客户端使用说请参见Java客户端使用指南。 Config config = ConfigService.getAppConfig(); Integer defaultRequestTimeout = 200; Integer requestTimeout...阅读全文

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

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

Grafana 图表工具,做到了灵活的指标监控,融合基础框架,让业务方开箱即用…然而,我们说第二阶段是基于 OpenTracing 全链路采样监控,随着业务的高速发展,这套架构的不足点也逐渐显露出来。 3.3 架构特点 体验层面 指标:覆盖面广,维度细,能清晰地根据各模块各维度来统计分析,基本做到了监控灵活的图表配置需求。但不可否认它是一种时序聚合数据,无法细化为个体。假如在某个时间点发生过几次高耗时操作,当吞吐量达到一定时,平均耗时指标曲线仍然趋于平稳,没有显的突出点,导致问题发现能力降低。 链路:1%的采样率使得业务服务基本不会因调用链发送量大而导致性能问题,但同时也往往无法从错误,高耗时的场景中找到正好采样的链路。期间,我们曾经考虑将头部采样策略改为尾部采样,但面临着非常高昂的 SDK 改造成本...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

三个技巧 大幅减少 Docker 镜像体积

压缩为单个提交。事实证,在 Docker 中也可以使用多阶段构建达到类似的目的。在这个示例中,你将构建一个 Node.js 容器。让我们从 index.js 开始: const express = require('express') const app = express() app.get('/', (req, res) => res.send('Hello World!')) app.listen(3000, () => { console.log(`Example app listening on port 3000!`) }) 和 package.json: { "name": "hello-world", "version": "1.0.0", "main...阅读全文

博文 2018-09-06 10:50:29 debian.cn

理解 Linux 的虚拟内存

有些矛盾。于是翻一下资料重新整理一下这些知识,希望下次在用到它们时能更顺畅。转载随意,请注来源,文章持续修订。 由来 虚拟内存 毋庸置疑,虚拟内存绝对是操作系统中最重要的概念之一。我想主要是由于内存的重要”战略地位”。CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢。于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方。 而在现代操作系统中,多任务已是标配。多任务并行,大大提升了 CPU 利用率,但却引出了多个进程对内存操作的冲突问题,虚拟内存概念的提出就是为了解决这个问题。 虚拟内存简单直观的解释 操作系统有一块物理内存(中间的部分),有两个进程(实际会更多)P1 和 P2,操作系统偷偷地分别告诉 P1 和 P2,我的整个内存...阅读全文

博文 2018-11-25 11:03:49 debian.cn

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 详解(下)

DPDK Graph Pipeline 框架简介与实现原理

的介绍 graph walk 的概念简单了,它总是有次序地去完成一系列操作: 21行:定位下一个需要处理的 node 23行:准备下一个需要处理的 node 的 objects /报文 29行:处理定位好的 node 32行:检查 graph walk 是否完成 在 graph walk 层面来看,最重要的就是第一步:定位下一个要处理的 node。DPDK 的 graph 框架利用了 circular buffer 和附带的 head 和 tail 指针定位下一个 node,如果 head 不等于 tail 指针,这就代表了 circular buffer 里有需要处理的 node,而在 libgraph 库中,这些待处理的 node 也被称为 pending stream。 回到第一步...阅读全文

博文 2023-02-09 07:13:55 掘金

阿里巴巴版 JDK 首发 GA 版 生产环境可用

某些测试用例,启动阶段跑分会有 10% 的提高。该特性在阿里巴巴的双 11 抢购场景中得到了大量验证。目前,阿里巴巴正在社区努力推进,希望通过 JEP 的方式将该功能推到上游 OpenJDK 社区。 下图是阿里一个应用在“双十一”期间使用 JWarmUp 时的效果: 说:图中蓝线是正常启动 (默认开启分层编译),红线是启用 JWarmUp 的 CPU 使用率。 (1)是开启了 JWarmUp 选项,在应用启动时候,流量进来之前积极加载和编译方法。(2)是流量进来的时刻。(3)是正常模式启动下,CPU 消耗 100% 维持了 70s。(注:作图省略了一部分数据)(4)对应的绿线是稳定后 CPU 的使用率。 可以看到应用 JWarmUp 后在流量进来的时候 JWarmUp 可以减少大量 CPU...阅读全文

博文 2019-07-11 10:24:52 debian.cn

译:Kubernetes 最佳实践

统中不同组件的交互方式。K8s 官方文档中推荐的 Pod 标签包括名称、实例、版本、组件、部分和管理者。标签也可以以类似于在云环境中对资源使用标签的方式使用,以跟踪与业务相关的事物,例如对象所有权和对象应属于的环境。此外,还建议使用标签来详细说安全要求,包括机密性和合规性。使用网络策略应该使用网络策略来限制 K8s 集群中对象之间的流量。默认情况下,所有容器都可以在网络中相互通信,如果恶意行为者获得对容器的访问权限,从而允许他们遍历集群中的对象,这会带来安全风险。网络策略可以在 IP 和端口级别控制流量,类似于云平台中的安全组的概念,以限制对资源的访问。通常,默认情况下应拒绝所有流量,然后应制定允许规则以允许所需流量。使用防火墙除了使用网络策略来限制 K8s 集群上的内部流量外,还应该在...阅读全文

博文 2022-09-13 19:32:21 atbug.com

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

减轻用户迁移到 K8S 的负担。 目前 UK8S 插件还属于正在整理开源的阶段,还没有正式的发布,但我们已经小范围的开放了代码,把我们的插件代码分发给到很多用户,但公开的开源,我们希望做的更加规范一点再进行,因为我们的插件还在不断的迭代中,有一天我们觉得达到一定程度的稳定了,我们就会进行公开开源。 记者:你认为未来 K8S 以及容器的技术方向上比较值得重点关注的技术点是什么? 叶理灯:虚拟化容器。未来的方向我们相信是 Serverless,这个也是云计算应该做的,持续地为了用户提高效率和降低成本。刚才我也说了,现在用户使用 K8S 还是有资源管理的负担的,不是完全的面向应用来运维,所以需要解决这个问题,让计算节点对用户透。用户通过 Docker 镜像和配置文件就可以把一个应用跑起来,而不用...阅读全文

博文 2019-06-14 08:28:49 debian.cn

Apache Kafka发布 3.0 正式版

费者和管理客户端KIP-630:Kafka Raft 快照我们在 3.0 中引入的一个主要功能是 KRaft 控制器和 KRaft 代理能够为名为 __cluster_metadata 的元数据主题分区生成、复制和加载快照。Kafka 集群使用此主题来存储和复制有关集群的元数据信息,如代理配置、主题分区分配、领导等。随着此状态的增长,Kafka Raft Snapshot 提供了一种有效的方式来存储、加载和复制此信息.KIP-746:修改 KRaft 元数据记录自第一版 Kafka Raft 控制器以来的经验和持续开发表,需要修改一些元数据记录类型,当 Kafka 被配置为在没有 ZooKeeper (ZK) 的情况下运行时使用这些记录类型。KIP-730:KRaft 模式下的生产者 ID...阅读全文

博文 2021-09-26 14:13:03 joseph

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

一的数据模型。通过使用复合容器的适配器模式,您可以通过创建Pod来将来自不同系统的异构监视数据转换为一个统一的表示形式,该Pod将应用程序容器与知道如何进行转换的适配器分组在一起。同样,由于这些Pod共享名称空间和文件系统,因此这两个容器的协调非常简单了。 增强主容器功能。Sidecar容器扩展并增强了“主”容器,它们可以使用现有的容器并使它们变得更好。例如,考虑一个运行Nginx Web服务器的容器。添加另一个将文件系统与git存储库同步的容器,在这些容器之间共享文件系统,并且您已经构建了Git Push-to-deploy。但是您已经以模块化的方式完成了此工作,其中git同步器可以由不同的团队构建,并且可以在许多不同的Web服务器(Apache,Python,Tomcat等)上重复使用...阅读全文

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

Kafka生产问题总结以及性能优化

用kafka生产者的幂等性来实现。 kafka生产者的幂等性:因为发送端重试导致的消息重复发送问题,kafka的幂等性可以保证重复发送的消息只接收一次,只需在生产者加上参数 props.put(“enable.idempotence”, true) 即可,默认是false不开启。 具体实现原理是,kafka每次发送消息会生成PID和Sequence Number,并将这两个属性一起发送给broker,broker会将PID和Sequence Number跟消息绑定一起存起来,下次如果生产者重发相同消息,broker会检查PID和Sequence Number,如果相同不会再接收。 PID:每个新的 Producer 在初始化的时候会被分配一个唯一的 PID,这个PID 对用户完全是透的。生...阅读全文

博文 2023-01-05 23:16:48 CSDN博客

Golang 操作 Kafka 样例

务器都是一个代理(Broker). 消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。 5.Partition(分区):Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset) Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。 复制代码 1.1.5. 消息 消息由一个固定大小的报头和可变长度但不透的字节阵列负载。报头包含格式版本和CRC32效验和以检测损坏或截断 1.1.6. 消息格式 1. 4 byte CRC32 of the message 2. 1 byte "magic...阅读全文

博文 2023-01-10 13:46:09 掘金

深入了解Docker背后的namespace技术

output... none on /mytmp type tmpfs (rw,relatime) 这里去掉了一些常见的输出。 从结果中就能看出,多了一个新的tmpfs挂载点。赞!继续在当前shell下执行mount来对比下。 注意到了为何tmpfs挂载点为何没有显示出来了么?这是因为我们创建的挂载点是在我们自己的mount namespace下,不是在父namespace下。 前面我说过mount namespace和filesystem jail是不同的,继续执行我们的./mount和 ls命令,就能给出证了。 UTS Namespace UTS namespace(UNIX Timesharing System包含了运行内核的名称、版本、底层体系结构类型等信息)用于系统标识。包含了...阅读全文

博文 2015-05-17 10:03:00 debian.cn

Kafka 3.0新特性全面曝光,真香!

=> Offset LeaderEpoch ControlType Key Value Timestamp这样,Follower以拉模式复制Leader日志,就相当于以Consumer角色消费元数据Topic,符合Kafka原生的语义。那么在KRaft协议中,是如何维护哪些元数据日志已经提交——即已经成功复制到多数的Follower节点上的呢?Kafka仍然借用了原生副本机制中的概念——high watermark(HW,高水位线)保证日志不会丢失,HW的示意图如下。状态机说:要让所有节点达成一致性的状态,大部分都是基于复制状态机来实现的(Replicated state machine)简单来说就是:初始相同的状态+相同的输入过程=相同的结束状态,这个其实也好理解,就类似于一对双胞胎,出生时候就长得一样...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com