美团外卖:日订单量超1600万的自动化业务运维之路
kubernetes,简称K8s,是知名的开源容器编排与调度平台,它的目标是让容器化部署、资源分配简单且高效。K8s是绝对主流且流行的容器管理平台,据说在合肥运维同学不会k8s是找不到工作的。本文我们... 03月13日 1,712 1...阅读全文
kubernetes,简称K8s,是知名的开源容器编排与调度平台,它的目标是让容器化部署、资源分配简单且高效。K8s是绝对主流且流行的容器管理平台,据说在合肥运维同学不会k8s是找不到工作的。本文我们... 03月13日 1,712 1...阅读全文
对比 PaaS 白金版 es节点,标准型S1 8核16G, 9个 1000GB SSD云硬盘 x 1, 单月费用 ¥7865.4 自建主机选用S5型号,主机费用:¥ 6561,便宜了 16.6% 自建主机选用SA2型号,主机费用:¥ 5715,便宜了 27.3% 所以,有能力还是自建 ES 集群,没能力就用PaaS吧...阅读全文
kubernetes,简称K8s,是知名的开源容器编排与调度平台,它的目标是让容器化部署、资源分配简单且高效。K8s是绝对主流且流行的容器管理平台,据说在合肥运维同学不会k8s是找不到工作的。本文我们... 03月13日 1,712 1...阅读全文
有一个网络接口,可以不带选项运行 iftop。iftop 需要 root 权限: $ sudo iftop 当你有多个接口时,指定要监控的接口: sudo iftop -i wlan0 就像 top 一样,你可以在运行时更改显示选项。 h 切换帮助屏幕。 n 切换名称解析。 s 切换源主机显示,d 切换目标主机。 s 切换端口号。 N 切换端口解析。要全看到端口号,请关闭解析。 t 切换文本界面。默认显示需要 ncurses。我认为文本显示更易于阅读和更好的组织(图1)。 p 暂停显示。 q 退出程序。 图 1:文本显示是可读的和可组织的。 当你切换显示选项时,iftop 会继续测量所有流量。你还可以选择要监控的单个主机。你需要主机的 IP 地址和网络掩码。我很好奇 Pandora 在我那可...阅读全文
Policy) 目前,Harbor 会对某些镜像的运行加以限制,即那些被安全策略进行了漏洞(CVE) 扫描,且结果符合限制条件的镜像。又是为了对的某些 CVE 的情况进行例外处理,例如,忽略低严重性 CVE 或当前无解决方案的 CVE,1.9 为管理员引入了一项功能,使其可以创建一个 CVE 白名单,从而允许这些镜像在有限的时间段内运行,而不管是否具有特定 CVE 安全漏洞 。系统管理员可以创建一个对所有项目都有效的全局 CVE 白名单,而项目管理员则可以在单个项目级别进一步细化此白名单。 内容复制的改进 1.8 版推出了在 Harbor 与其他 Registry(例如 Docker Hub 和 Huawei Cloud)之间进行跨 Registry 内容复制的功能,而 1.9 版对这些功能进行了扩展...阅读全文
众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。为了追求成为一个好的Java程序员,我决定从今天开始死磕Java的并发编程,尽量弥补自己在这方面的知识缺陷。 并发必须知道的概念 在深入学习并发编程之前,我们需要了解几个基本的概念。 同步和异步同步和异步用请求返回调用的方式来理解相对简单。 同步:可以理解为发出一个请求后,必须等待返回结果才能执行下面的操作。 异步:请求发出后,不需要等待返回结果,可以继续执行后续操作,异步请求更像是在另一个 “空间” 中处理请求的结果,这个过程不会影响请求方的其他操作。 举个生活中的例子,比如我们去实体店买衣服,挑选完款式后下单让售货员去仓库拿货,在售货员拿货的过程你需要在店...阅读全文
prometheus存在单点问题,具体痛点可以这么描述: prometheus单机存储和抓取能力都有上限,容易单点故障。 虽然有一种方式是通过部署N个prometheus分别抓取不同的target来分摊压力的,但是grafana就要为不同的图表配置不同的prometheus地址,复杂程度比较棘手。 thanos+prometheus可以解决这个问题,它提供了一个核心能力: 1,thanos querier组件可以反向代理到N个prometheus,然后grafana直接指向thanos querier即可,thanos querier会从N个prometheus同时查询数据,返回满足Promql的数据结果; 2,如果N个prometheus抓取的数据存在重复的,那么thanos...阅读全文
中,例如C:\Program Files\TortoiseSVN\bin。2. 创建分支在SVN中,可以使用checkout命令来创建新的分支。具体步骤如下:Step 1:在指定分支的上级目录下,右键单击鼠标,选择“SVN Checkout...”Step 2:弹出“Checkout”窗口,在URL处输入分支的远程地址,例如http://localhost/branches/feature-branch/,并选择本地的工作副本路径。Step 3:单击“OK”按钮,等待下载即可。3. 切换分支切换分支操作非常简单,只需要在SVN上进行简单的操作即可。具体步骤如下:Step 1:在工作副本下,右键单击鼠标,选择“SVN Switch...”Step 2:弹出“Switch”窗口,在“To...阅读全文
的权限,并可以参与社区投票(比如一年一次的选举等)。 一方面,DD 完全掌握自己的工作,可以做任何技术性和非技术性的决定,几乎不受任何限制。也就是说,Debian 社区里没有领导。 另一方面,这些拥有投票权的 DD 们,通过一般决议流程(General Resolution),成为了 Debian 群体中的权力主体。他们可以任命或者罢免 DPL;对于 DPL 或者代表的任何决定觉得不爽都可以推翻;可以用 3:1 的多数票修改 Debian 章程;还可以处置 Debian 的信托财产等等。 除此之外,为了保障所有的开发者声音都被尊重,Debian 章程还特立独行地将“None Of The Above”(以上都不是)设为默认选项。也就是说,当你觉得以上的选项你都不想投票,你可以另开一栏,写上你...阅读全文
前言 在 DevOps 实践中,基础设施即代码如何落地是一个绕不开的话题。像 Chef,Puppet 等成熟的配置管理工具,都能够满足一定程度的需求,但有没有更友好的工具能够满足我们绝大多数的需求?笔者认为 Terraform 是一个很有潜力的工具,目前各大云平台也都支持的不错,尤其是使用起来简单明了。本文会简单的介绍一下 Terraform 相关的概念,然后通过一个小 demo 带大家一起进入 Terraform 的世界。说明:本文的演示环境为 ubuntu 16.04。 Terraform 是什么? Terraform 是一种安全有效地构建、更改和版本控制基础设施的工具(基础架构自动化的编排工具)。它的目标是 "Write, Plan, and create...阅读全文
Caddy 是一个用 Golang 开发的高效 Web Server,相比 Nginx,它的配置和使用要简单很多,能自动开启 HTTPS、并且支持 HTTP/2 和 QUIC。 下载安装 Caddy 首先去 Download Caddy 选择你需要的插件,然后复制下方的 One-step installer script (bash),例如我的是 $ curl https://getcaddy.com | bash -s http.cache,http.cors,http.expires,http.filemanager,http.git,http.ipfilter,http.minify,http.nobots,http.ratelimit,http.realip...阅读全文
前不久组内又有一次我比较期待的分享:“Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题。 我之前了解一些操作系统的概念,主要是毕业后对自己大学四年的荒废比较懊恼,觉得自己有些对不起计算机专业出身,于是在工作之余抽出时间看了哈工大在网易云课堂的操作系统公开课,自己也读了一本讲操作系统比较浅的书 《Linux内核设计与实现》,而且去年自己用 C 写简单的服务器时,也追根究底了解了更多的系统底层知识。多亏了这些知识,让我对应用层的知识更有掌控感,也在上次排查问题时(从应用到内核查接口超时)助了我一臂之力。 前几天另一位同事来问另一个虚拟内存相关的问题,我才发现对于虚拟内存,我的理解还不够深刻,一些概念还...阅读全文
了答案。 从单机到分布式,是追求更快和更高的性能,但也带来了更多的不确定性。比如,不确定计算机何时异常,不确定磁盘何时损坏,不确定网络通信的延迟,也不确定消息是否被正常消费。这些不确定性构成了分布式应用的挑战,简而言之: 异构的机器与网络:稳定性问题普遍的节点故障:可靠性问题不可靠的网络:一致性问题 面对这些挑战,业界提出了诸多的分布式理论、协议,如CAP定理,BASE理论,一致性协议2PC/3PC/ZAB,来保证系统的正常运行。虽然问题貌似是有了解决方案,但是应用的复杂度升高了。应用除了需要实现业务需求,还要兼顾非业务需求,集成诸如服务发现、负载均衡、失效转移、动态扩容、数据分片、调用链路监控等分布式系统的核心功能,对应用有很强的侵入性,这就是以Spring Cloud为代表的微服务框架的...阅读全文
Ceph v10.2.7 发布了。Ceph 是加州大学 Santa Cruz 分校的 Sage Weil(DreamHost 的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自 2007 年毕业之后,Sage 开始全职投入到 Ceph 开 发之中,使其能适用于生产环境。Ceph 的主要目标是设计成基于 POSIX 的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。 该版本更新日志尚未找到,了解更多请查看 提交记录 或关注 官方博客 。 下载地址 Source code (zip) Source code (tar.gz)...阅读全文
如果要了解一两个 ip 的一些简单的情况,比如 ls -l /data | wc -l,以前是要写到 inventory 文件中的, ansible -i hosts all -m shell -a "ls -l /data0/ | wc -l" 也可以这样,一台机器最后面要有一个逗号, ansible all -i 192.168.1.1, -m shell -a "ls -l /data0/ | wc -l" 两台机器用逗号隔开,并且不能有空格, ansible all -i 192.168.1.1,192.168.1.2 -m shell -a "ls -l /data0/ | wc -l" 参考: http://stackoverflow.com/ 除了上面的 shell 模块,还...阅读全文
Trivy是一种适用于CI的简单而全面的容器漏洞扫描程序。Trivy可检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。 Trivy很容易使用,只要安装二进制文件,就可以扫描了。扫描只需指定容器的镜像名称。与其他镜像扫描工具相比,例如Clair,Anchore Engine,Quay相比,Trivy在准确性、方便性和对CI的支持等方面都有着明显的优势。推荐在CI中使用它,在推送到container registry之前,您可以扫描本地容器镜像。...阅读全文
律动 BlockBeats 消息,5 月 25 日,据官方消息,牛油果 Enumivo 团队宣布推出新项目 EVO Chain,旨在复制一条 ETH2。官方表示,将在区块高度 12,520,000 至 12,800,000 区间内进行代币空投。 用户需要在此区间内,向 0x3fEa51dAab1672d3385f6AF02980e1462cA0687b 地址发送 0 ETH,成功后便可获得 4 EVO,同时团队将获得 1 EVO。单一地址发送交易次数不限,EVO 总量 1 亿枚。 团队同时表示,对 DPoS 已经失望,此前发行于 EOS 链上的项目将会迁移至 EVO Chain 上。...阅读全文
作为谷歌开源的容器集群管理系统,Kubernetes 建立在谷歌内部的 Borg 技术之上。发展到今天,Kubernetes 的规模已经变得非常庞大,它被认为是计算基础设施的未来,与虚拟机一脉相承,就像虚拟机取代裸机成为计算部署的最常见单元一样,尤其是在云环境中。 作为业界最主流的容器技术,谷歌会不会考虑迁移到 Kubernetes 呢? https://www.infoq.cn/article/juhmwqtyaad6z3okkjnj...阅读全文
Bind是使用最广泛的DomainName Server,它是Berkeley Internet Name Domain Service的简写,伯克里大学编写的。在Debian Stretch 9.3中,它的最新版本是Bind 9.10.5。 安装 Bind 比较简单,使用如下命令即可, apt-get install bind9 apt-get install bind9-host dnsutils apt-get install bind9-doc 配置 Bind,有以下步骤, 1,域名解析 这里以将 debian.cn 解析到192.168.10.2为例: cd /etc/bind vim named.conf.local 增加正向解析和反向解析区域(zone): zone...阅读全文
自从锐速发布以来,这款牛逼的单边加速神器的确为一些线路不太优秀的服务器带来了更优秀的体验。但是呢,过高的价格和不再低端售卖。导致了我们并无法实现一个免费好用的单边加速功能。 但是谷歌为我们带来了干货 新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT)。 目前在 Linux Kernel 4.9 中加入了该算法,所以我们只要升级内核就可以爽一波了。难懂的技术说明,我们也不说了,TCP BBR 的目的就是要尽量跑满带宽,并且尽量不要有排队的情况。 注: 更新内核有一定风险,请注意备份。 开启 TCP BBR 只要 Linux 发行版的 Kernel 即内核版本大于等于 4.9 即可开启,开启方法是通用的,如何升级至 Kernel 将在下面介绍。 修...阅读全文
debian官方提供了脚本ftpsync来搭建源镜像,而 apt-mirror 是一个更简单便捷的源镜像搭建工具。 安装 apt-mirror sudo apt-get install apt-mirror 配置文件/etc/apt/mirror.list只要修改很少的地方,大部分使用默认值即可。 这里使用中科大镜像 ftp.cn.debian.org 作为上游镜像,只镜像 debian jessie amd64 架构,不镜像源代码包。 ############# config ################## # # set base_path /var/spool/apt-mirror # # set mirror_path $base_path/mirror # set...阅读全文
Let’s Encrypt 将于 2018 年 1 月开始发放通配证书。通配证书是一个经常需要的功能,并且我们知道在一些情况下它可以使 HTTPS 部署更简单。我们希望提供通配证书有助于加速网络向 100% HTTPS 进展。 Let’s Encrypt 目前通过我们的全自动 DV 证书颁发和管理 API 保护了 4700 万个域名。自从 Let's Encrypt 的服务于 2015 年 12 月发布以来,它已经将加密网页的数量从 40% 大大地提高到了 58%。如果你对通配证书的可用性以及我们达成 100% 的加密网页的使命感兴趣,我们请求你为我们的夏季筹款活动(LCTT 译注:之前的夏季活动,原文发布于今年夏季)做出贡献。 通配符证书可以保护基本域的任何数量的子域名(例如...阅读全文
和运行时的标准规范。Hyper 的 runV 被视为“容器管理程序”,支持 Xen 和 KVM。以上两个项目都被包含在 Kata 中,runV 用来启动容器。 在几天前举行的 Kubecon/CloudNativeCon 大会上有一场 演讲 提到了所谓的“虚拟容器”的底层技术,可以运行直接由超级管理程序管理的容器。在多租户环境里运行由 Kubernetes 管理的容器时,租户之间的隔离问题是重中之重。使用不同的虚拟机来运行不同的容器可以达到一定程度的隔离。但对于 Hyper 来说,这样做不是必需的,因为每个容器由单独的管理程序进行管理,而不是运行在单独的虚拟机上。 现有的 OpenStack 容器项目 Magnum 和 Zun 使用了其他容器技术和编配器。用户可以通过 Magnum 为容器创...阅读全文
Bridge处理器、四代Haswell处理器和六代Skylake处理器都未能对该漏洞免疫。目前研究人员对AMD处理器的实验还在进行中。 不过与先前CTS-Labs实验室不同,这几位研究者已于更早些时间发现了漏洞,但他们给予了英特尔充足的时间,到最近才将其发表。 研究人员认为,BranchScope是目前首个良好的、直接攻击分支预测单元的手段。对分支预测单元在信道攻击上的漏洞,BranchScope扩展了处理器领域对此的认知。 他们认为,现存的安全补丁和微码更新智能防护部分来自BranchScope的攻击,但还需要进一步的措施才能完全免疫。但是英特尔则对漏洞的危害状况保持着乐观的态度。 英特尔表示:“我们一直在与这些研究人员合作,并已确定他们描述的问题与先前的信道攻击相似。因此我们认为,现有的软件修复方...阅读全文
随着64层堆栈3D NAND闪存的大规模量产,全球6大NAND闪存厂商今年都开始转向96层堆栈的新一代3D NAND,几家厂商的技术方案也不太一样,SK Hynix给他们的新闪存起了个4D NAND闪存的名字。 在今年的FMS国际闪存会议上正式宣告了业界首个基于CTF技术的4D NAND闪存,日前他们又宣布4D NAND闪存正式量产,目前主要是TLC类型,96层堆栈,512Gb核心容量,使用该技术可以减少30%的核心面积,读取、写入速度分别提升30%、25%。 根据SK Hynix之前公布的信息,所谓的4D NAND闪存其实也是3D NAND,它是把NAND闪存Cell单元的PUC(Peri Under Cell)电路从之前的位置挪到了底部,所以叫了4D NAND闪存,本质上其实还是3D...阅读全文
的资助和支持。” 据悉,目前已确定将成为 ACT 的一部分的四个项目为: FOSSology:开源许可证合规性软件系统和工具包,允许用户从命令行运行许可证,版权和导出控制扫描。 QMSTR:该工具创建了一个集成的开源工具链,可实现许可证合规性管理的行业最佳实践。QMSTR 集成到构建系统中,以了解软件产品及其来源和依赖性。开发者可在本地运行 QMSTR 以验证结果,查看问题并生成合规性报告。 SPDX Tools:软件包数据交换(SPDX)是用于传达软件物料清单信息的开放标准,包括组件、许可证、版权和安全参考。 Tern: 这是一款检查工具,用于查找容器映像中安装的软件包的元数据。它可以更深入地了解容器的物料清单,从而可以更好地决定基于容器的基础架构、集成和部署策略。...阅读全文
Q4OS 3.8 稳定版发布了(发布公告),代号为“Centaurus”。这是一个长期支持(LTS)版本,支持至少五年的安全补丁和软件更新。 Q4OS 是基于 Debian 的桌面 Linux 发行版,它被设计为提供传统样式的用户界面(Trinity)及简单的附件,并提供稳定的应用程序编程接口以支持复杂的第三方应用软件,例如谷歌 Chrome、VirtualBox 与开发工具。 新版本 Q4OS Centaurus 基于 Debian Buster 10 和 Plasma 5.14,也可选 Trinity 14.0.6 作为桌面环境,它适用于 64 位和 32 位/i686pae 计算机,以及不带 PAE 扩展的旧 i386 系统。 Q4OS 的具体目标之一是能够将 Plasma 和...阅读全文
SLC、MLC、TLC、QLC……NAND闪存类型的进化一直是个争议话题,可靠性和寿命越来越差,或者说P/E编程擦写循环次数越来越低,东芝甚至已经开始探讨PLC,不知道会渣成什么样。对于最初的SLC(每单元只保存1比特数据),很多人都十分怀念,但如今已经几乎绝迹,只在极少数特殊场合才能看到。 东芝正在打造可视为SLC加强版的XL-Flash,而高端固态存储厂商Greenliant最新打造的NANDrive EX系列SSD产品,更是应用了超长寿的SLC闪存。 Greenliant NANDrive EX并非消费级产品,而是面向高性能计算、工业、交通运输、视频和网络等特殊行业应用,特别是那些需要超长寿命、高可靠性的应用,能长久保持数据完整。 它采用了Greenliant自家专门设计的...阅读全文
GitLab 于上周发布了 12.5 新版本,官方在发布说明中介绍到,为了尽可能高效地交付高质量的软件,企业会经常需要跨多云以支持广泛的基础架构,因此新版带来了 EKS 集群和环境面板等功能以支持跨各种配置的项目配置,更方便监控和管理。 轻松创建并部署 EKS 集群 在新版本中 GitLab 添加了 EKS 集成,因此我们可以在 GitLab 集群页面中选择 EKS 作为选项,然后系统会提示进行身份验证以使用 AWS 账户。一旦通过身份验证,只需为集群指定所需的参数,GitLab 将负责完成其余的工作。因此在新版本中,我们只需单击几下就可以在 Amazon 的 EKS 上创建 Kubernetes 集群。 使用 Crossplane 配置多云托管服务 在 GitLab 12.5 中,我们可...阅读全文
本文将简单介绍 Debian 环境下,Jenkins 服务的安装与配置。通常Jenkins有两种方式安装,一种是通过官方提供的 Deb 包安装,另一种是用 tomcat 作为容器来运行 jenkins。这里我们使用Deb包方式,部署简单、后期的更新维护也很方便;这也是我们选择 Debian 部署 Jenkins 的原因。 安装 Jenkins 第一步:添加 jenkins 安装源 # wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - # vim /etc/apt/sources.list deb http://pkg.jenkins.io/debian-stable binary 第...阅读全文
VE 对所有对象(例如 VM、storage、nodes 等)使用基于角色的用户和权限管理。新的 LDAP 同步使 LDAP 用户和组同步到 Proxmox 用户和组权限框架中。添加了对 API 令牌的全面支持和集成,从而允许其他系统、软件或 API 客户端对REST API 的大部分进行无状态访问。API 令牌可以为单个用户生成,并且可以选择配置单独的权限和到期日期以限制访问的范围和持续时间。如果 API 令牌遭到破坏,则可以撤销该令牌,而不必禁用用户本身。 进一步的显着增强: QEMU/KVM:已启用对复制磁盘的实时迁移(使用 zfs 进行存储复制)的支持。由于简化了卸载过程,因此测试 Ceph 存储变得更加容易。 下载地址:https://www.proxmox.com...阅读全文
如本地应用)中支持视频会议和协作系统。现在需要更多的特性和优化。 IETF WebTransport (WEBTRANS) 和 WebRTC Ingest Signaling over HTTPS (WISH) 工作组已经在开展工作,在 IETF 其他工作组的基础上进一步协调、拓展相关工作。其中包括 QUIC(定义支持 WebTransport API 开发的新协议)和 HTTPBIS(指定简单、可扩展的、基于 HTTPS 的信令协议),以在广播工具和实时媒体广播网之间建立基于 WebRTC 的单向视听会话。 W3C WebRTC 工作组已经开始研究 WebRTC Next Version Use Cases,规划 WebRTC 的未来,特别是: 在服务器介导的视频会议中的端到端加密 即时处...阅读全文
本站放出了Linode各个机房的测试结果,但是可能很多国内用户对Linode还是不是很熟悉,这里打算写一篇文章给想要入手Linode VPS的朋友提供一个参考,其实过程很简单,唯一麻烦的是,需要有一张VISA或者MASTERCARD的信用卡,因为Linode默认不支持PayPal付款,只支持信用卡付款。 Linode官网:www.linode.com 首先,我们通过上面哪个链接打开Linode官网,打开后页面如下: 页面上有三个输入框,分别是输入邮箱,用户名和密码,我们按照要求输入之后,来到一个提示页面: 这里提示我们已经往我们邮箱发送了一封邮件,我们打开邮箱,能看到有一封邮件,如图: 用填写注册信息的浏览器打开邮件里面的验证链接,来到这个界面: 这是说欢迎我们,内容可以不用管,点击其中的...阅读全文
PostgreSQL 继续向着将在 2017 年 9 月份发布的第 10 个主版本迈进,EnterpriseDB 首席架构师和 PostgreSQL 贡献者 Robert Hass 根据 PostgreSQL官方路线图 编制 了一份 PostgreSQL 10 重要特性列表。 数月之前发布的 PostgreSQL 10 路线图包含多个单独的路线图,每个路线图对应一个特定的公司或个体贡献者。想要概括地了解路线图的内容并不容易。以下是 Hass 选出的一部分特性: 表分区 :这可以视为是表继承的简化版本,在表继承中,父表总是为空,子表(分区)有一个隐式约束,当元组插入父表时,它可以影响元组实际上添加到哪个分区。当使用继承关系推导表的属性时,表分区有望简化这个过程,让特定的优化成为可能。 逻辑复...阅读全文
MongoDB 4.2 正式发布了,MongoDB Server 4.2 提高了现代事务和分析数据平台的技术水平。 Mongodb-4.2 的主要改动包括: 分布式事务将 MongoDB 的多文档 ACID 从副本集扩展到共享集群,能够为更广泛的用例服务按需物化视图使用新的 $Merge 运算符,在集合中缓存大型聚合的输出是一种常见的模式,新的 $Merge 运算符将可以有效地更新这些结果,而不是完全重新计算它们通配符索引使建模像产品目录这样的高度异构的集合变得简单和自然,而不牺牲对索引的支持。只需定义一个过滤器,它将自动索引集合中所有匹配的字段、子文档和数组MongoDB 查询语言增强功能,如更有表现力的更新、新的数学运算符和扩展的 regex 支持。此版本的 update 和...阅读全文
下面的逻辑来覆盖默认设置: 主配置文件最先被读取, 优先级也最低。 所有 *.conf.d/ 中的配置文件 都会覆盖主配置文件中的设置。 所有 *.conf.d/ 中的配置文件(无论位于哪个目录中), 统一按照文件名的字典顺序处理。 当多个配置文件都设置了同一个选项的时候: (1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准; (2)如果该选项可接受一个值列表,那么将会按照文件名的字典顺序将所有值列表拼接起来。 为了便于排序, 建议给所有 *.conf.d/ 中的配置文件 都加上两位十进制数字的文件名前缀。 如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件, 那么最佳做法是在 /etc/ 目录中 创建一个指向 /dev/null 的同名符号链接...阅读全文
,CPU持续上升到99% 5分钟内,大量应用报警,并且拒绝服务,RDS的监控显示出现大量慢SQL,联系服务器数据库提供商进行协助 8分钟内,进行数据库主备切换(业务会受损,但是也没办法,没有定位到问题) 9分钟内,部分业务恢复,但是一些业务订单的回调消息堆积超过20w,备库的CPU使用率也持续上升 15分钟内,备库CPU使用率超过97%,业务再次中断,进行切回主库,并进行限流 20分钟内,关闭一些次要应用的流量入口 25分钟内,主库CPU使用率恢复正常 30分钟内,逐步开启关闭的限流应用 35分钟内,所有应用恢复正常 接下来就是与服务器数据库提供商成立应急小组紧急优化可能出现的慢SQL,虽然说可能解决了一些慢SQL,但此次并没有定位到具体的问题,也就为几天后再次发生宕机事件埋下了伏笔 事故影响 某...阅读全文
不重不丢实现浅谈TCP BBR 拥塞控制算法成倍提升访问速度背后原理本文由高可用架构翻译。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。高可用架构改变互联网的构建方式...阅读全文
随着企业的逐步成熟,他们会开发更多工具。在Google,我们持续创建新的外部和内部服务,以及支持这些服务的基础架构。 从2013年起,我们开始放弃之前用来更新和维护服务的简单的自动化工作流。每个服务都要求复杂的更新逻辑,并且还需要适应基础架构的变化,经常性的集群的启动关闭等等。配置多个,互相交互的服务的工作流变得难以维护。 我们需要一种全新的方案来适应业务的增长以及所涉及到的配置的复杂性。为此,我们开发了声明式的自动化系统,作为统一的控制层,并且取代了工作流。这个系统包括两个主要的工具:Podspec,描述服务基础架构的工具,和Annealing,更新生产环境来匹配Prodspec输出的工具。本文讨论我们解决过的问题,以及我们所选择的架构。 Prodspec和Annealing有一个根本共...阅读全文
Channel 1. 概述 “网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对并发支持使得它有更好的性能。 Goroutine和channel是Go在“并发”方面两个核心feature。 Channel是goroutine之间进行通信的一种方式,它与Unix中的管道类似。 Channel声明: ChannelType = ( "chan" | "chan" "<-" | "<-" "chan" ) ElementType . 例如: var ch chan int var ch1 chan<- int //ch1只能写...阅读全文
自从 Linux 上的 容器 变得流行以来,了解 Linux 容器和虚拟机 之间的区别变得更加棘手。本文将向您提供详细信息,以了解 Linux 容器和虚拟机之间的差异。 Linux 容器 vs 虚拟机 – 应用程序与操作系统 首先要了解的有关容器和虚拟机的一个事情是,一个运用于应用程序,另一个是为操作系统设计的。这就是为什么您经常会看到一些企业应用程序运行在容器上而不是自己的虚拟机上。在虚拟机上使用容器有一些优点。 容器最大的优点之一是可以预留比虚拟机少的资源。请记住,容器本质上是单个应用程序,而虚拟机需要更多资源来运行整个操作系统。 如果您需要运行 MySQL,NGINX 或其他服务,使用容器是非常有必要。但是,如果您需要在自己的服务器上运行完整的 LAMP 堆栈 ,则运行虚拟机更好。虚...阅读全文
nftables 来完整地替代了 iptables,因为它有更好、更简单的语法,更好的支持双栈 ipv4/v6 防火墙等等。 支持更多的 ARM 64 和 ARMHF 的单板机。 Debian 已经支持一些常见的新的单板机,其中最新的包括 pine64_plus、ARM64 的 pinebook、Firefly-RK3288、ARMHF 64 的 u-boot-rockchip 以及 Odroid HC1/HC2 板、SolidRun Cubox-i 双核/四核(1.5som)和 SolidRun Cubox-i 双核/四核(1.5som+emmc)板、Cubietruckplus 等。同样支持 Rock 64、Banana Pi M2 Berry、Pine A64 LTS Board、Olimex...阅读全文
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 本文简单从功能特点做介绍,更详细的说明请参考Apollo配置中心介绍。本地快速部署可以参考这里。线上的演示环境从这里可以访问到: 106.54.227.205 (账号/密码: apollo/admin) Apollo 配置中心产生背景 大多情况下程序随着功能的复杂,程序的配置也会增多:包括各种功能开关、参数配置、服务地址信息配置等,同时开发人员对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群的管理配置、权限控制、审核机制等。 在这样的大环境下,传统的通过配置文件、数据库...阅读全文
使用 Debian 安装程序,它提供了更多可以微调的选项,包括使用自动化的网络安装工具的功能。Debian 提供平滑的更新。保持操作系统最新十分容易,不论您是想升级到一个全新的发布版本,还是只想升级一个单独的软件包。Debian 是许多其他发行版的基础。许多非常受欢迎的 Linux 发行版,例如 Ubuntu、Knoppix、PureOS 以及 Tails,都基于 Debian。我们提供了所需的所有工具,使得每个人在有需要的时候都可以制作自己的软件包,以补充 Debian 档案库里没有的软件包。Debian 项目是一个社区。所有人都可以成为 Debian 社区的一员;您不必是一名开发者或系统管理员。Debian 有一个民主的治理架构。由于所有 Debian 项目的成员都享有平等的权利,所以...阅读全文
,你几乎不能更改init系统。然而对大多数不深入sysadmining的用户来说,使用哪个init系统并不重要。 当然,每个经验丰富的Linux用户都有自己的看法。这里就不一一列举出来了,Linux社区充满了很多精通技术的开发人员,他们对Linux应该如何发展和成长有着自己的意见。这些观点大多数是不相关的,取决于具体的工作需求。即便很多人投诉systemd,但却没有更完美的替代品出现,这也是systemd迅速扩张的原因。 我发现systemd单元和服务文件很容易维护,更重要的是,它可以很容易地转让给别人。systemd的拥护者给出了支持其的原因,比如很稳定,有一个容易的可配置的方式管理服务,也有一些中立人士不强烈反对systemd,但它的扩展速度实在令人担忧。它接管了很多不需要任何修复的功能...阅读全文
。 • 自动测试:包括单元、集成和端到端测试,会使用到 Roboelectric、XCTest、JUnit 和 WebDriver 等工具。 在代码变更的生命周期内,每次提交都会执行移动构建并运行测试栈,这样就会运行很多次。单单 Android 一天就有 5 万到 6 万个构建版本。移动部署系统遵循较早的基于 Web 的模式,每周发布一次,按 cherry-picking 策略随机选择变更。尽管代码传输速度和发布频率有所增长,但工程师的生产率保持不变。然而,本文提到的标准(代码行和推送次数),可能并非衡量生产率的最佳标准。 据 2016 年 IEEE 的论文和相关讨论,Facebook 早在 2005 年就利用了某种形式的 CD。该论文中的一些结论列出了 CD 成功的先决条件:可观的持续投资、高度熟...阅读全文
Nuster 是一个基于 HAProxy 的高性能缓存服务器。Nuster 完全兼容 HAProxy,并且利用 HAProxy 的 ACL 功能来提供非常细致的缓存规则,比如 请求地址为某某时缓存 请求参数中的 X 为 Y 时缓存 响应头中的 X 为 Y 时缓存 请求速率超过多少时缓存 等等 Nuster 性能评测 非常快, 单进程模式下是 nginx 的 3 倍,多进程下 nginx 的 2 倍,varnish 的 3 倍。详见benchmark 安装 Nuster git clone https://github.com/jiangwenyuan/nuster.git cd nuster make TARGET=linux2628 make install 详情请参照 HAProxy...阅读全文
,但是当应用程序繁重,需要 CPU 做大量工作时,Node.js 肯定会有所欠缺。在这种情况下,PHP 最适合做 Web 应用程序的后端。 5.单页应用程序: 如果您使用过 Gmail,那么您可能知道什么是单页应用程序(Single Page Application)。Web 应用程序在初始客户端请求时加载,之后根据客户端请求刷新的网页的特定部分。Node.js 与 AngularJS 的联合是开发单页应用程序的完美方案。 6.开发环境: Node.js 可以用于桌面应用程序开发(Windows,Linux和Mac),移动应用程序开发(混合和跨平台应用程序),甚至构建基于控制台的应用程序。虽然有一些也可以使用 PHP 来开发,但是大多数开发人员不会这样做。 7.社区支持: 由于 PHP 比...阅读全文
Fio(Flexible I/O Tester) 是一款由 Jens Axboe 开发的用于测评和压力/硬件验证的自由开源的软件。它支持 19 种不同类型的 I/O 引擎 (sync、mmap、libaio、posixaio、SG v3、splice、null、network、 syslet、guasi、solarisaio,以及更多), I/O 优先级(针对较新的 Linux 内核),I/O 速度,fork 的任务或线程任务等等。它能够在块设备和文件上工作。 Fio 接受一种非常简单易于理解的文本格式的任务描述。软件默认包含了几个示例任务文件。 Fio 展示了所有类型的 I/O 性能信息,包括完整的 IO 延迟和百分比。 它被广泛的应用在非常多的地方,包括测评、QA,以及验证用途。它支持...阅读全文
ComplianceIntegrated with many AWS servicesEventually ConsistentFree to use 基本概念 User 您可以在账户中创建与组织中的用户对应的各 IAM 用户,而不是与他人共享您的根账户凭证。IAM 用户不是单独的账户;它们是您账户中的用户。每个用户都可以有自己的密码以用于访问 AWS 管理控制台。您还可以为每个用户创建单独的访问密钥,以便用户可以发出编程请求以使用账户中的资源。 Group IAM中,组是 IAM 用户的集合。利用组,可为多个用户指定权限,以便更轻松地管理这些用户的权限。例如,您可能有一个名为 Admins 的组,并向该组授予管理员通常需要的权限类型。该组中的任何用户均自动具有分配给该组的权限。如果有新用户加入您的组织,并且需要管理员权限,则可...阅读全文