InfraPub 为您找到相关结果 779

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

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

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

开源社区纠纷不断:20 年的 Debian 开发者被排挤出项目

励 Debian 做出改变,继而改进开发者参与维护的体验。Rails 核心成员纷纷宣布离职继不久之前 Rust 审核团队集体离职事件,近日,又有人发现不少 Rails 核心成员纷纷宣布离职。这还要溯源去年 4 月,Basecamp 创始人以及 Rails 创建者不允许员工在内部谈论种族等政治话题,这引起了员工很多不满,很多人觉得自己被限制了自由言论。当时,很多核心员工选择离职来表示抗议。随着事情不断的发酵,DHH(Rails 创建者)关闭了自己推特的评论功能。如今 DHH 表示他无缘参加今年的 RailsConf 主题演讲,举办方给出的理由是因为去年他大部分时间都不在线。于是 DHH 就吐槽认为这是无稽之谈,不仅发文列举了他去年为Rails的贡献,还表示这是对政治和形态识差异的报复。在这...阅读全文

使用 setfacl 管理文件的访问控制列表ACL

absolute path names # file: opt/test # owner: root # group: root user::rwx user:code:r-- //可以看code单独的权限为r-- group::rwx mask::rwx other::rwx 注:code 的权限并不是只根据ACL配置来决定的,它是由code用户基本权限与配置的ACL权限的“与”运算决定的,即other:rwx 与 code:r-- = code:r-- 可以使用code用户,测试是否可写。在写文件时,会出现-- INSERT -- W10: Warning: Changing a readonly file提示。 除了对单个用户进行设置外,还可以对用户组、有效权限(mask)进行设置。 如对用户组...阅读全文

思科前员工离职后删库 直接损失达240万美元

会议、视频消息、文件共享和其他协作工具等。 Ramesh 认罪时表示自己 “部署代码时行为鲁莽,并有无视了可能对思科造成伤害的巨大风险。” 由于 Ramesh 的行为,超过 16,000 个 WebEx Teams 帐户被关闭长达两周,导致思科花费约 1,400,000 美元的员工时间来恢复应用程序,并向受影响的客户退款超过 1,000,000 美元。 目前,此次事件没有造成客户数据泄露。Ramesh 被控违反《美国法典》第 18 篇第 1030(a)(5)(B) 和 (c)(4)(A)(i)(I) 条,“故未经授权访问受保护的计算机并轻率地造成损害”。这项罪名的最高法定刑罚是 5 年监禁和 25 万美元的罚款。 被告 Ramesh 本人正在保释中,保释金为 50,000 美元。量刑听证...阅读全文

博文 2020-08-29 10:27:23 debian.cn

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

用 docker,则打包过程就交由 docker build 完成。Deploy:用 Bake 中创建的镜像部署成一台虚拟机。Jenkins: 执行一个 Jenkins 的 job。Manual Judgment : 暂停,等待用户的许可后再继续。Pipeline : 执行另外一个 pipeline。Script :执行任的脚本。Wait : 等待一段时间。 从 pipeline 的定义看,Spinnaker 和 Jenkins 有几分相似,不过两者的设计出发点的不同,stackoverflow上有相关的讨论。总结来看,jenkins 偏向 CI,产出物是软件包;Spinnaker 是 CD,将软件包分发服务器/虚拟机上,保持软件正常运行,它的目标只是让“部署”的过程更容易更可扩展。有一...阅读全文

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

Debian 社区陷入尴尬 或群龙无首

介绍,这似乎可以理解为现在迟迟没有人愿竞选领导人的主要原因。 再加上开发流程迟缓等问题,如果今年的领导人选举直 Chris 卸任都没有结果出现,那么 Debian 更是岌岌可危。 信奉“Debian 大法好”的开发者们,拯救组织的机会就摆在眼前,快去参与竞选吧。动荡让我们快速成长。...阅读全文

博文 2019-03-14 11:05:23 debian.cn

Go1.16 新特性:一文快速上手 Go embed

, _ := f.ReadFile("helloworld/hello2.txt") fmt.Println(string(data2)) } 同时既然能够支持目录读取,也能支持贪婪模式的匹配: //go:embed helloworld/* var f embed.FS 可能会有小伙伴注,embed.FS 也能调各类文件系统的接口,其实本质是 embed.FS 实现了 io/fs 接口。 只读属性 在 embed 所提供的 FS 中,我们可以发现其都是打开和只读方法: type FS func (f FS) Open(name string) (fs.File, error) func (f FS) ReadDir(name string) ([]fs.DirEntry, error) func (f FS...阅读全文

博文 2021-02-17 08:44:12 CSDN

GlusterFS 和 Ceph 比比看

Ceph 中,默认情况下将数据复制三个不同的节点,这确保备份始终可用。 商品化硬件。GlusterFS 和 Ceph 是在 Linux 操作系统之上开发的。因此,对硬件唯一的要求是这些产品具有能够运行 Linux 的硬件。任何商品化硬件都可以运行 Linux 操作系统,结果是使用这些技术的公司可以大大减少在硬件上的投资——如果他们这样做的话。然而,实际上,许多公司正在投资专门用于运行 GlusterFS 或 Ceph 的硬件,因为更快的硬件可以更快地访问存储。 去中心化。在云环境中,永远不应该有中心点故障。对于存储,这味着不应该用一个中央位置存储元数据。GlusterFS 和 Ceph 实现了元数据访问去中心化的解决方案,从而降低了存储访问的可用性和冗余性。 现在来谈谈 GlusterFS 与...阅读全文

博文 2017-08-09 10:35:29 debian.cn

一位资深Java架构师的晋级心得

Java 架构师是什么?是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。 所谓架构师,思考的是全局的东西,是如何组织你的系统,以达业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等。可能涉及的东西包括了从硬件软件的方方面面。 架构师在软件开发的整个过程中起着很重要的作用。 架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。 在成为Java架构...阅读全文

博文 2019-01-13 22:49:22 debian.cn

Oracle Linux 8.0 发布

于 RPM 的 Linux 发行版上安装、更新和删除软件包。引入 Cockpit 服务器远程管理器,这是一个简单、轻量级但功能强大的交互式 GNU/Linux 服务器远程管理器,可通过 Web 浏览器提供实时 Linux 会话。 内核 modinfo 命令已更新,可识别和显示使用 CMS 和 PKCS#7 格式签名的模块签名信息。一组内核模块移动 kernel-modules-extra 包中,这味着默认情况下这些模块都不安装,非 root 用户也无法加载这些组件,因为默认情况下它们也被列入黑名单。内存总线限制已扩展 128 PiB 的虚拟地址空间和 4 PB 的物理内存容量。Linux 内核中的 I/O 内存管理单元(IOMMU)代码也会更新以启用 5 级分页表。kdump 特性可以...阅读全文

博文 2019-07-20 22:39:32 debian.cn

HTTPS 证书有效期被提议缩短至13个月

由 Web 浏览器制造商、软件开发人员和安全证书颁发机构组成的行业团体 CA/Browser Forum,正在考虑将 HTTPS 证书的有效期从 27 个月缩短 13 个月。关于这样的提案,已经不是第一次提出。在 2017 年时,CA/Browser Forum 就否决了一项将证书有效期从 39 个月缩短至 13 个月的提案。 而早在一年前,证书的最长有效期已经从 39 个月降至 27 个月。 我们都知道,HTTPS 证书用于加密浏览器和站点之间的连接,帮助软件确定没有人篡改或窃听这些连接。 如果减少 TLS/SSL 证书有效的时间,网站必须更频繁地更新其证书。理论上,这样的证书有效期也有助于减少欺诈活动,如果是偷来的证书则很快会失效,被遗弃的网站也会更快地过期。这将迫使他们使用最新和最...阅读全文

博文 2019-08-14 14:13:58 debian.cn

Go 泛型的括号选择:[ ] or ( )

type关键字,那么歧义就会消失: type A[type N] E 此外,使用小括号时产生的歧义似乎不会出现在方括号中。下面是一些使用方括号但不需要额外嵌套小括号的例子: using () using [] func f((T(int)) func f(T[int]) struct{ (T(int)) } struct{ T[int] } interface{ (T(int)) } interface{ T[int] } [](T(int)){} []T[int]{} 为了更好地理解以及进行测试,他们表示将开始对原型实现进行修改,让泛型能使用小括号或方括号(注不能同时混用,只能使用其中一种)。这些修改将首先提交 dev.go2go 分支,最终会出现在 Go playground 上...阅读全文

博文 2020-07-16 10:38:01 debian.cn

Postgres 10 开发者新特性

目前非常流行的RDBMS PostgresSQL已经在几周前发布了它的第10个版本。由于Postgres的可靠性、节约成本、成熟,当然还有它的开源,已经21岁的Postgres在开发者之中仍旧非常流行。 Postgres 10带来了一些新特性,其中一些特性另开发者感十分兴奋。10Clouds在博客中详细介绍了其中的一些特性。通过消除主表(master table)中触发器(trigger)的需求,本地分区(native partitioning)现在变得更简单了。这味着创建分区表将变得更简单,并且从开发者的角度来看,现在从分区数据表中进行查询和插入与在非分区的数据表进行这些操作是完全一致的。 多列统计(multicolumn statistics)是Postgres 10的另一项改进...阅读全文

博文 2017-12-30 11:46:16 debian.cn

深入了解Docker背后的namespace技术

/etc/hosts type ext4 (rw,relatime,errors=remount-ro,data=ordered) devpts on /dev/console type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) 上面是在我的demo容器中看的挂载点。为了创建一个新的mount namespace,我们使用CLONE_NEWNS标志位。大家可以注这个标志位名称有点奇怪,为什么不是 CLONE_NEWMOUNT或者CLONE_NEWMNT呢?这是因为mount namespace是Linux中的第一个命名空间,所以这里的这里的标记位参数名字有点不符合常规,经常我们在编码实现一个新的特性或者应用的...阅读全文

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

Debian下编译安装Golang

=$PATH:$GOROOT/bin:$GOPATH/bin GOROOT是源码与可执行文件的位置。 GOPATH是放置Go的第三方安装包的位置。(编译过程中并未使用。) GOROOT_BOOTSTRAP是用来自举的Go目录,是1.4版本。 export PATH=*是添加编译好的Go、以及以后通过go get安装的第三方库,进入可执行环境。这句,老鸟应该都很熟。 由于GOROOT目录下,只有go和gofmt两个可执行文件,所以也可以用软链接来配置。 注:这里出现了go和go1.4两个目录,它们本质上是相同的。为避免clone两遍,可以直接本地复制。 cp -r go go1.4 正确的编译步骤 先进入GOROOT_BOOTSTRAP/src,执行git checkout go1.4.3,切换...阅读全文

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

Rust 1.37.0 稳定版发布

1.37.0 中,还可以使用 Self : Variable 引用枚举变量: impl Coin { fn value_in_cents(&self) -> u8 { match self { Self::Penny => 1, Self::Nickel => 5, Self::Dime => 10, Self::Quarter => 25, } } } 更确切地说,Rust 现在允许通过“type-relative resolution”来引用枚举变量,>::Variant。 内置 cargo 支持独立依赖关系 cargo vendor 命令集成 Cargo,该命令获取项目的所有依赖项,将它们解压缩 vendor/ 目录中,并展示了在构建过程中使用分布式代码所需的配置片段...阅读全文

博文 2019-08-17 21:17:23 debian.cn

WebAssembly:无需容器的 Docker (上)

布与 WasmEdge 合作支持 WebAssembly。本文将解释什么是 WebAssembly(Wasm),为什么它与 Docker 生态相关,并提供一些实践示例供大家尝试。 我们假设你已经熟悉 Docker 工具。 我们将使用我们在 PHP 的 WebAssembly 端口上做的工作来演示如何构建 PHP 解释器,将其打包为 OCI 镜像的一部分,并使用 Docker 运行它。请注,本文专注动手经验,而不是讨论技术细节。WebAssembly 是什么?为什么选它?本节是对 WebAssembly 的基本介绍。 已经熟悉 Wasm 的小伙伴,可以快速重温一下,明天的文章将介绍更多实践。什么是 WebAssembly?WebAssembly 是一种定义二进制指令格式的开放标准,它支持从不...阅读全文

博文 2023-01-03 06:35:56 spider

Linux下多线程程序为什么消耗大量虚拟内存

你打算在程序代码中来设置这个东西,那么可以调用mallopt(M_ARENA_MAX, xxx)来实现,由于我们AuthServer采用了预分配的方式,在各个线程内并没有分配内存,所以不需要这种优化,在初始化的时候采用mallopt(M_ARENA_MAX, 1)将其关掉,设置为0,表示系统按CPU进行自动设置。 外发现 想tcmalloc小对象才从线程自己的内存池分配,大内存仍然从中央分配区分配,不知道glibc是如何设计的,于是将上面程序中线程每次分配的内存从1k调整为1M,果然不出所料,再分配完64M后,仍然每次都会增加1M,由此可见,新版 glibc完全借鉴了tcmalloc的思想。【原文出处: 陈斌的博客】...阅读全文

博文 2015-01-28 10:35:39 debian.cn

Pardus 17.1 发布,基于 Debian 的发行版

此次更新内容:新版本提供了三个不同名称的独立 ISO 映像表明图 — Xfce,DDE(Deepin 桌面环境)和服务器。 发行说明仅以土耳其语提供,但在临时的 Pardus 版本中,在线翻译服务翻译了更改日志: 下载目录的默认名称已从“下载”更改为“İndirilenler”; 系统设置菜单已改进; 默认打印机测试页面已重新设计; 预先定义的“pardus”用户的密码在开启直播系统时被移除; gdebi 程序运行图形界面时发生的崩溃是固定的; gnome-disks 程序某些部分的 bug 已经修复; 新增桌面壁纸; 许多软件包已经更新; 主题已经刷新; 深度桌面媒体支持添加; 许多安全和系统性能补丁已被添加 完整内容请查看 发布主页 。 下载地址:http...阅读全文

17万块硬盘最新二季度故障报告出炉:仅三款幸免-机械硬盘 —快科技

云存储服务商Backblaze发布了二季度的硬盘故障率统计报告。 此次统计涵盖了BB旗下的177935块机械硬盘,总的年化故障率为1.01%。 硬盘出问题数量最多型号来自希捷4TB(ST4000DM000),但需要注的是其通电服役时间同样比较长,整体年化故障率1.94%。 有三款硬盘在统计周期内没有故障发生,分别是希捷6TB(ST6000DX000)、HGST 12TB(HUH72122ALE600)和西数16TB(WUH72186ALE6L0)。 综合来看,在二季度,西数以及西数旗下的HGST硬盘,可靠性整体表现还是最为可圈可点。 另外,BB还统计了从2013年至今的硬盘故障率表格,并得出东芝16TB、西数14TB和HGST的12TB/4TB是年化故障率最低的三块硬盘。 - THE...阅读全文

博文 2021-08-05 10:50:48 科技改变未来

Debian 9.7 发布:安全更新版本

Debian 使用的包管理器 apt/apt-get 曝出了一个远程代码执行漏洞,该漏洞允许网络中间人在正在安装任何包的机器上以 root 权限执行任代码。最新版的 apt 已经修复了该漏洞,尚未安装最新更新或正在安装最新更新的用户可以通过暂时禁用 HTTP 重定向来防止中间人攻击。 Debian 紧急释出了 9.7 版本,修复该漏洞。将现有版本升级之此版本可以通过包管理系统指向 Debian 的 HTTP 镜像来实现。建议遵循 DSA-4371 中的说明。 镜像列表:https://www.debian.org/mirror/list Bug 修复 base-filesUpdate for the point release 安全更新 DSA-4371apt 完整的软件包更新列表...阅读全文

博文 2019-01-24 09:49:36 debian.cn

谷歌将给 Chrome 做全新的 Material Design

2月份,有消息称,谷歌将对 Chrome 动一次大手术,使用全新的“Material Design 2”UI设计语言。不过,XDA 的一份最新报道显示,“Material Design 2”是误传,谷歌正在进行的工作是将Chrome桌面浏览器变得对触摸设备更加友好。 对于桌面版而言,当下已经有越来越多的支持触摸屏的二合一笔记本、一体机等设备了,需求在逐渐增长。 需要注的是,9月2日将是Chrome浏览器十周年的生日,虽然“Material Design 2”被否决,但是“Material Design refresh”是确定要进行的事情。 此前在安卓版的 Chrome 上,弧形地址栏“Omnibar”的出现就是一种 UI 调整信号。...阅读全文

博文 2018-04-10 10:11:30 debian.cn

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

worker1 Ready 1d v1.14.0 worker2 Ready 1d v1.14.0 如果所有节点都具有Ready for STATUS值,则表示它们是群集的一部分并准备好运行工作负载。 但是,如果一些节点将NotReady作为STATUS ,则可能味着工作节点尚未完成其设置。 等待大约五十分钟,然后重新运行kubectl get nodes并检查新输出。 如果少数节点仍具有NotReady作为状态,则可能必须验证并重新运行前面步骤中的命令。 现在您的集群已成功验证,让我们在集群上安排一个示例Nginx应用程序。 第7步 - 在群集上运行应用程序 您现在可以将任何容器化应用程序部署您的群集。 为了保持熟悉,让我们使用部署和服务部署Nginx,以了解如何将此应用程序部署集群。 如果更...阅读全文

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

Kubernetes 1.7 发布,安全强化、StatefulSet 更新及可扩展特性

Kubernetes 1.7已经发布,该版本聚焦于安全、存储和扩展性等交付特性,其中包括Network Policy API、StatefulSets自动升级策略以及可扩展的API聚合层。Kubernetes的上一个发布版1.6版侧重于解决规模化和自动化上的问题,显然最新的1.7发布版力图为Kubernetes在企业组织中的进一步采用夯实基础。需注的是,虽然1.7版的核心集群编排功能是以稳定版提供,但是其中给出的一些头条发布特性在文档中被标为Alpha版或Beta版。 新提供的安全特性包括:Network Policy API。该API当前已提升稳定版,在实现为网络插件时,用户可以设置并强制使用规则,指定可相互通信的Pod(类似于在用的网络/云ACL);节点授权器(Node...阅读全文

博文 2017-07-19 12:23:15 debian.cn

Node.js Vs. PHP:你应该选择哪一个

现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 JavaScript 编写后端代码。这最终催生了MEAN(MongoDB + Express +AngularJS + NodeJS )堆栈 web 开发框架,从前端后端甚至是数据库(MongoDB -JSON)都使用 JavaScript。在 Node.js 之前,Web 开发通常是在 PHP 的帮助下完成的,因为它很容易与 HTML 集成,帮助开发人员立即构建动态网站。在这篇文章中,我们将比较 Node.js 和 PHP,看哪一个最适合当前的行业需求。 PHP 和 Node.js 的基本区别在于...阅读全文

博文 2017-12-23 23:15:39 debian.cn

三个简单而优秀的 Linux 网络监视器

你可以通过 iftop、Nethogs 和 vnstat 这三个 Linux 网络命令,了解有关你网络连接的大量信息。iftop 通过进程号跟踪网络连接,Nethogs 可以快速显示哪个在占用你的带宽,而 vnstat 作为一个很好的轻量级守护进程运行,可以随时随地记录你的使用情况。 iftop iftop 监听你指定的网络接口,并以 top 的形式展示连接。 这是一个很好的小工具,用于快速识别占用、测量速度,并保持网络流量的总体运行。看我们使用了多少带宽是非常令人惊讶的,特别是对于我们这些还记得使用电话线、调制解调器、让人尖叫的 Kbit 速度和真实的实时波特率的老年人来说。我们很久以前就放弃了波特率,转而使用比特率。波特率测量信号变化,有时与比特率相同,但大多数情况下不是。 如果你只...阅读全文

博文 2017-11-07 00:07:38 debian.cn

Systemd 及 Service 文件含义解析

统服务而言,比较重要的就是其中的 service 文件。我们先来看一个httpd.service文件,所在目录: /usr/lib/systemd/system/。其实单元文件可以从两个地方进行加载,优先级从低高分别是: * /usr/lib/systemd/system/ :软件包安装的单元 * /etc/systemd/system/ :系统管理员安装的单元 Httpd.service 文件样例: ``` [Unit] Description=The Apache HTTP Server After=network.target remote-fs.targetnss-lookup.target Documentation=man:httpd(8) Documentation...阅读全文

博文 2021-02-17 10:02:50 joseph

Debian 使用VSFtpd安装配置架设FTP服务器

000010010 在unix中文件权限是三类用户,三种权限。三类用户分别是文件所有者user(u),文件所有者所在主群组group(g)、其它用户others(o),三种权限分别是起读read(r)、写write(w)、执行execute(x)。 如果一个文件的权限如下:所有者有读写的权限,群组有读和执行权限、其它用户有读权限,可以写成: rw-r-xr– 其中前三位指明了所有者的权限、中间三位指明了组权限、最后三位指明了其它用户的权限。我们用ls -l可以看文件权限详情,列出来的是10位,最前一位如果是d表示是子目录。 说回来,如果把这上面9位字母换成二进制数则是: 110101100 如果换成八进制是多少? 因此文件权限可以用9位二进制数表示。umask在英文中是屏蔽的思,那么 umask=022...阅读全文

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

AWS IAM 基本概念介绍

使用场景 Federating Existing Users 下图介绍用户如何使用 IAM 获取临时 AWS 安全凭证以访问您 AWS 账户中的资源 访问控制相关概念 Permissions 基于身份的 (IAM) 权限和基于资源的权限 下图阐明了两种权限类型。第一列显示与身份(两个用户和两个组)关联的权限。其中一些权限确定可对其执行操作的特定资源。这些操作支持资源级 权限。第二列显示挂载资源的权限。这些服务支持基于资源的权限。 Policies 要给用户、组、角色或资源指定许可,您必须创建一个策略,它是一个显式列出许可的文档。从最基本的义上而言,策略使您能够指定以下内容: 操作:您将允许哪些操作。每个 AWS 服务都有自己的一组操作。例如,您可能允许用户使用 Amazon S3...阅读全文

博文 2019-06-04 20:22:31 debian.cn

高性能缓存服务器 Nuster

义一个 cache filter, 另外cache-rule也需要添加。 可以为多个代理添加,并单独设置某个代理的缓存是否开启。 如果定义了多个 filter,需要把 cache filter 放在最后。 cache-rule syntax: cache-rule name [key KEY] [ttl TTL] [if|unless condition] default: none context: backend, listen 定义缓存规则。可以同时定义多个,但是需要注顺序,匹配则会停止测试。 acl pathA path /a.html filter cache cache-rule all ttl 3600 cache-rule path01 ttl 60 if pathA...阅读全文

博文 2017-12-15 22:17:31 debian.cn

深入理解Golang之context

: fmt.Printf("send message: %d\n", <-messages) } } }(ctx) defer close(messages) defer cancel() select { case <-ctx.Done(): time.Sleep(1 * time.Second) fmt.Println("main process exit!") } } 这个例子中,只要让子线程监听主线程传入的ctx,一旦ctx.Done()返回空channel,子线程即可取消执行任务。但这个例子还无法展现context的传递取消信息的强大优势。阅读过net/http包源码的朋友可能注在实现http server时就用了context, 下面简单分析一下。1、首先Server在开启服务时会创建一个...阅读全文

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

Tmux 快速教程:快捷键和配置

Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录远程主机并运行前台程序,那么这个窗口等于就被占用了,想要看一下 CPU 的使用率,就得再连接一次。但是如果在远程主机上运行 tmux,那么就可以开启多个控制台(类似于窗口),相当高效,比方说可以像下面这样: 需要注的是,这里是在我本地使用 tmux,最好在远程主机也安装 tmux,这样就只需要连接一次。 Hello World 前面提的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作,下次登录可以查看。其他的功能还有: 窗口切换,每个窗口里还可以分割面板 配置方便,可以使用脚本 类似 vim 的双层操...阅读全文

博文 2017-11-07 15:17:49 debian.cn

Web前端知识体系精简

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

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

为何说微软不会基于Linux内核重构Windows

软已经了设备格局的变化。 微软认识当前社会人类使用各种系统和各种平台,在系统上有 Android、Ubuntu、iOS、macOS、Chrome OS等等,而且除了 x86 之外还有 ARM。 微软已经表示他们能够适应这个多元的世界,在这些平台上推出了相关产品和服务,同时确保 Windows 在传统领域的竞争力。目前微软正基于 Android 和 iOS 推动移动领域的创新,不仅移植了微软 Office,而且还包括 Microsoft Launcher 在内的很多优秀应用,而且近期也推出了搭载 Android 系统的 Surface Duo 手机。 在 Ubuntu 系统上,微软推出了很多针对 Linux 工作站的工具,例如 Code, .NET, Azure tools...阅读全文

博文 2020-10-15 14:59:58 debian.cn

2016 年 Go 语言使用习惯调查

Go 语言官方博客公布了 2016 年 Go 语言使用调查。在 3,595 名被调查者中,89% 称他们在工作中或工作之外用 Go 编程;63% 称他们的工作是 Web 开发,但只有 9% 的人只从事 Web 开发,一半以上被调查者的工作涉及三个以上领域;63% 的人用 Go 开发命令行程序,60% 写 API 或 RPC 服务,52% 写 Web 服务。 被调查者对 Go 的满度非常高(这显然与被调查者这一群体高度相关),他们主要在 Linux 上进行开发,其次是 MacOS,第三是 Windows;最爱的编辑器是 Vim,其次是 VSCode、Atom、IntelliJ、Sublime Text 和 Emacs;大部分人主要通过 Stack Overflow 寻找 Go 相关问题的答...阅读全文

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

DebConf20 开发者大会敲定在以色列海法举行

Debian 项目团队于今天正式敲定明年 DebConf20 Debian GNU/Linux 开发者大会将会在以色列的海法(Haifa)举行。海法位于以色列北部,继耶路撒冷和特拉维夫之后的以色列第三大城市。DebConf20 同时也是该开发者大会成立 12周年,DebConf 团队和委员会经过了广泛的讨论,最终没有选择葡萄牙的里斯本。 Daniel Lange 表示:“在 DebConf 委员会和更广泛的 DebConf 团队广泛讨论之后,我们承认部分 Debian 成员因为政治原因不愿前往以色列。五位 DebConf 成员经过长达2个小时的最终会议,以 3:2 的投票表决最终选择了以色列。不过DebConf21 应该会在葡萄牙里斯本举办。” DebConf 是 Debian 项目每年...阅读全文

博文 2019-03-21 12:19:51 debian.cn

Debian Buster 10.2 发布: 合计115项改进

Debian项目团队于今天发布了Debian GNU/Linux 10 “Buster”分支的第二个维护版本更新,和此前版本更新相隔2个多月时间。为那些想要在新电脑上部署操作系统,或者不想要下载数百个更新的用户,Debian 10.2将会提供新的安装镜像。Debian GNU / Linux 10.2“ Buster”总共包含115个更改,包括66个各种BUG修复,以及49个针对各种核心组件和软件的安全更新。 下载:https://www.debian.org/mirror/list Debian团队表示:“值得注的是,本次维护版本更新并不构建Debian 10的新版本,只是对系统的部分组件进行了更新。因此目前不需要丢弃旧的安装媒介。在完成安装之后,可以使用最新的Debian镜像来升级至...阅读全文

博文 2019-11-17 17:20:30 debian.cn

如何为 k8s 节点增加污点,或者移除污点?

nodes master1 node-role.kubernetes.io/master=:NoSchedule` 注: 为master设置的这个taint中, node-role.kubernetes.io/master为key, value为空, effect为NoSchedule 如果输入命令时, 你丢掉了=符号, 写成了node-role.kubernetes.io/master:NoSchedule, 会报error: at least one taint update is required错误 容忍tolerations主节点的taints 以上面为 master1 设置的 taints 为例, 你需要为你的 yaml 文件中添加如下配置, 才能容忍 master...阅读全文

Red Hat牵头推进NVFS文件系统

由 Red Hat 工程师牵头的团队,正在为 Linux/开源社区研究名为 NVFS 的文件系统。NVFS 的目标是成为像英特尔 Optane DCPMM 那样的高速文件系统。NVFS面向基于DAX的设备(直接访问),并将整个设备映射成一个线性地址空间,从而绕过 Linux 内核的块层(block layer)和缓冲区缓存。 在 NVFS 文件系统之前,开源社区有个用于持久性内存的 NOVA 文件系统,但该项目在去年外结束了。在没有另一个面向高性能持久性内存设备的 Linux 文件系统的情况下,Red Hat 的 Mikulas Patocka 一直在领导 NVFS 的工作。 尽管 NVFS 是面向基于 DAX 的设备,但它采用了与 EXT4 类似的设计方法,并与 Linux 的 VFS...阅读全文

博文 2020-09-16 09:44:28 debian.cn

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

的 K8S 环境不矛盾。 另外一方面,如果说定制的概念是指基于 K8S 本身开发体系所提供的插件机制去做二次开发,那每家厂商都要定制,因为 K8S 本身不是一个产品级就绪的环境,需要使用者去适配网络和存储还有计算,因为每个公有云厂商基于自己的 IaaS 去提供 K8S 产品,必然要去开发插件。 综上,向用户应该提供原生的、标准的 K8S 产品,但底层应该基于自身 IaaS 平台去定制,本质还是为了提高用户使用 K8S 的效率,让用户开箱即用。 K8S 落地挑战:改造成本和人才问题 记者:你觉得目前国内云厂商提供的 K8S 集群编排服务在推广方面目前欠缺的是什么?是什么阻碍了客户进一步去使用这些容器集群服务? 叶理灯:K8S 以容器技术为核心、以容器镜像为打包标准的特点,味着如果要迁移这个...阅读全文

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

Debian 8 (Jessie)下面如何安装卸载docker

-https ca-certificates gnupg2 添加新的GPG key. $ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D 安装 Docker 环境 确保已经按照第一步的操作步骤添加了backports源,然后执行下面的命令。 $ sudo apt-get update $ sudo apt-get install docker-engine 注这里的包名为 docker-engine,不是系统中自带的那个低版本的 Docker,也不是先前使用的 Docker.io。安装完成后,Docker daemon 会...阅读全文

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

Go 公布 2.0 设计草案:规模化和扩展性、支持泛型

error) bool// As checks whether err or any of the errors in its chain is a value of type E.// If so, it returns the discovered value of type E, with ok set to true.// If not, it returns the zero value of type E, with ok set to false. func As(type E)(err error) (e E, ok bool) 三、泛型(Generics) 想要扩展大型代码库,代码的可重用性非常重要。 Go 团队在早期其实一直有在调查和讨论“泛型”的可能性设计,但由于种种原因...阅读全文

博文 2018-09-01 18:39:47 debian.cn

Linux 基金会与 RISC

,2010年诞生于加州大学伯克利分校,当时的Krste Asanovic教授希望寻找一个合适的CPU指令架构,但X86架构复杂臃肿、ARM架构需要授权费、开源的OpenRISC架构又太老旧了,所以他最终决定自己做个开源CPU架构,在2015年最终成立了RISC-V基金会,专门推动RISC-V发展,现在的RISC-V基金会成员也扩大了80多人,包括Google、HP、西数等公司都开始支持RISC-V架构。 RISC-V指令集灵活、高效、开源还免费,非常适合做移动处理器、IoT物联网、网络处理器等等低功耗、嵌入式设备,对ARM的威胁也是最大的,而且国内的公司也开始积极参与RISC-V生态系统,今年10月份在中国上海成立了中国RISC-V产业联盟,包括芯原微电子、北京君正、安徽华米、上海小蚁、苏州国芯...阅读全文

博文 2018-12-01 09:45:27 V 基金会合作推广开源芯片

LXD 3.8 发布,下一代容器管理器

LXD 3.8 发布了,LXD 是下一代容器管理程序,它提供类似于虚拟机的用户体验,但使用的是 Linux 容器。LXD 的核心是一个特权守护程序,它通过本地 unix 套接字以及网络暴露 REST API。随后客户端通过该 REST API 执行所有操作,这味着无论是与本地主机还是远程服务器通信,都以相同的方式运行。LXD 附带提供命令行客户端。 此版本改进了许多功能,还带来一些新功能,包括: 自动化容器快照 引入了三个配置键来控制自动快照并配置它们的命名方式。 支持项目之间的复制/移动 lxc copy 和 lxc move 都添加了一个新的 –target-project 选项,可以在项目之间复制或移动容器。 cluster.https_address 服务器选项 以往,集群...阅读全文

博文 2018-12-14 10:29:14 debian.cn

Rancher 2.2.2 发布:优化 Kubernetes 集群运维

自动生成证书的有效期为 1 年。这味着如果您在大约 1 年前创建了 Rancher 配置集群,那么 1 年后需要轮换证书,否则证书过期后集群将进入错误状态。现在,2.2.2 的用户在 UI 上即可完成轮换工作,再也无需过去繁复的操作了。 Rancher 研发团队也将尽快为 Rancher 2.0 和 2.1 用户提供后端端口解决方案,这样 2.0 和 2.1 的用户也可以在现有集群上轮换证书了。 对 Kubernetes v1.14.1 的实验性支持 Rancher v2.2.2 中实现了对 Kubernetes v1.14.1 的实验性支持。这也为我们在后期更新版本中对 Windows 的支持提供了途径。上个月 Kubernetes 的最新版本 v1.14 发布,是第一个对...阅读全文

博文 2019-04-22 13:49:38 debian.cn

Debian 10 Buster 国内常用镜像源

随着 Debian Buster 10.3 的发布,Debian Buster 日趋稳定。如果在生产上使用了 Debian 9 的系统,现在是可以安全的,灰度升级 Debian Buster 做前期验证了。这里我们整理一下国内较知名的镜像站点,共大家在生产环境中使用。 如何更新系统安装源 一般我们修改 /etc/apt/sources.list 文件,将 Debian 的默认源地址改成新的地址即可,比如将 http://deb.debian.org 改成 https://mirrors.163.com,可使用以下这条命令: sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list 注...阅读全文

博文 2020-02-22 21:35:25 debian.cn

2022年云原生服务网格展露的五大趋势

近日,OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》。其中,云原生社区创始人宋净超在报告中对开源云原生服务网格领域进行了深入解读,以下为主要观点。2022 云原生服务网格五大趋势2022 年,云原生展露了一些趋势。因我更多地关注服务网格领域,在此就该方向谈谈我的观点,欢迎其他专家交流。一是 零信任的云原生安全备受关注。CNCF 在《云原生安全白皮书》中指出,“我们需要在应用安全生命周期中采用更自动化和安全的架构设计(如零信任)”,这表明云原生安全越来越受重视。零信任安全味着默认情况下,网络内外都不信任任何人,并且要对试图访问网络资源的每一个人进行验证。部署服务网格有助于缩小云原生部署的攻击面,并为构建零信任应用网络提供关键框架。二是 API 网关与服务网格融合...阅读全文

不可变基础设施 (immutable infrastructure) - 云原生定义解析

(对于大中型机,甚至重启都是一种奢侈的)。所以,在当时不可变基础设施的设想是难以实现的,开发人员总是需要在服务器上对运行环境做一下持续的更改,如:系统升级,配置修改,补丁等。在许多手动修改之后,服务器的不同配置的重要性或必要性变得不清楚,因此更新或更改任何配置可能会产生想不的副作用(这就导致了 Martin Fowler所说的snowflake server “Phoenix Server”,2012)。可变基础设施通常会导致以下问题。在灾难发生的时候,难以重新构建服务。持续过多的手工操作,缺乏记录,会导致很难由标准初始化后的服务器来重新构建起等效的服务。在服务运行过程中,持续的修改服务器,就犹如程序中的可变变量的值发生变化而引入的状态不一致的并发风险。这些对于服务器的修改,同样会引入中间...阅读全文

CentOS停止维护后,我们应该用什么操作系统?

有很多理由可以选择 Debian 作为您的操作系统——作为用户、作为开发者,甚至是在企业环境中。大多数用户称赞它的稳定性,以及软件包和发行版的平滑的升级过程。Debian 也被软件和硬件开发人员广泛使用,因为它能运行在众多架构和设备上,提供了一个公开的缺陷跟踪系统,以及面向开发人员的其他工具。如果您在专业环境中使用 Debian,您还可以享受诸如 LTS 版本和云映像带来的额外好处。对我而言,使用 Debian 的原因是它完美的易用性和稳定性。这些年来,我使用了各种不同的发行版,但是 Debian 是唯一一个能够完美使用的发行版。NorhamsFinest 在 Reddit 上写道面向用户的 DebianDebian 是自由软件。Debian 是由自由和开放源代码的软件组成的,并将始终保...阅读全文

红帽 2017 峰会 第三天回顾:自动化的未来

为期三天的第13届红帽峰会已在波士顿当地时间5月4日闭幕。除了前两日报道的OpenShift与企业数字转型的动向,本次峰会还有另外两个产品动向值得注。 1、以Ansible为核心的全栈自动化 红帽管理平台相关负责人已经明确在一次媒体沟通会上表示,Ansible已经被定位作为红帽自动化工具体系的中心。红帽其他的自动化工具—— 跨云管理产品CloudForms 自动打安全补丁产品Satellite 自动化运维工具Puppet API管理工具3scale 上述工具仍将继续履行各自的职责,同时全面与Ansible集成。非红帽的其他自动化工具——比如Amazon Lambda——也优先以Ansible作为与红帽管理平台的接入点。也就是说,未来在Ansible上(尤其是Ansible Tower)将...阅读全文

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