InfraPub 为您找到相关结果 346

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

文件这块的理描述的文章已经非常多了,所以这里我不再做过多的赘述,感兴趣的同学可以从Wikipedia翻阅一下。由于这块内容比较复杂,不属于本文普及的内容,建议读者另行自研,这里我非常推荐马士兵老师将linux文件系统这块,讲解的真的非常好。 select模型 此模型是IO多路复用的最早期使用的模型之一,距今已经几十年了,但是现在依旧有不少应用还在采用此种方式,可见其长生不老。首先来看下其具体的定义(来源于man二类文档): int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout); 这里解释下其具体参数: 参数一:nfds,也即maxfd,最大的文件描...阅读全文

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

漫画赏析:Linux 内核到底长啥样

显示的图形界面嗳,对,图形界面(X Window)一般就在 7 号终端;tty5 和 tty6 是空的,这表示这两个终端没人用。等等,tty1 呢? tty tty(终端)是对外沟通的渠道之一,但是,不是每一个进程都需要 tty,某些进程可以直接通过其他途径(比如端口)来和外部进行通信,对外提供服务的,所以,这一层不是完整的一层,只是个跃层。 好了,我们有落下什么吗? 这小丑是谁啊?啊哈,我也不知道,或许是病毒?你说呢?【本文转自 Linux.中国,始链接在这里】...阅读全文

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

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

的社区聚会分享你的想法,或者使用以下渠道: 在 StackOverflow 上发表问题或者回答问题 在 K8sPort 上加入社区门户网站得到支持 关注我们的 Twitter 账号 ( @Kubernetesio)获取最新咨询 在 Slack 上和社区互动 分享你和 Kubernetes 的故事 非常感谢社区广大的贡献者和支持者,感谢你们让这次和所有的发布成为可能。 文链接:Kubernetes 1.7: Security Hardening, Stateful Application Updates and Extensibility(翻译:钟最龙)【中文转自DockOne.io】...阅读全文

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

为什么 Django 能持续统治 Python 开发世界

非常活跃的社区,有80,000个StackOverflow问题和数不清的博客来自开发人员和高级用户。 有一些流行网站使用Django,包括 Bitbucket, Pinterest, Instagram, 以及 The Onion。 Django的人气不断飙升,可能仍然是Python开发人员最受欢迎的选择。 您之前的项目是否用过Django? 你真的认为Django是Python开发人员最好的框架吗? 一如既往,您的意见对于所有读者都至关重要,请在下面的评论栏中分享您的看法。 文出处: manmohan 译文出处:开源中国 Django“自备军需”(Batteries-Included) 目录...阅读全文

博文 2017-07-21 14:15:11 debian.cn

不要光想着价格 QLC 与 TLC 闪存有什么不同

TLC的这个活生生的案例在前面,解决起来会更容易一些。 3、成本 虽然QLC只是在TLC的电子单元内增加了一个比特位,但其所要求的技术含量却非常高。因为不仅要在有的基础上增加一个比特单位,还需要双倍的精度才能保有足够高的稳定性以及性能。不过,一旦解决了所有技术上的难题,随着SSD容量的大幅增加,其所需要的单位成本也会相应降低。 4、容量 东芝的QLC的技术已经可以实现每闪存颗粒768Gb(96GB)的容量,相比之TLC颗粒的 512Gb有了更大提升。如果采用16颗粒封装,那么可以实现单颗芯片封装达到1.5TB的容量,容量达到目前单颗最大。如果一块SSD采用八颗这样的新品,总容量可以达到惊人的12TB。 虽说目前QLC 闪存不过刚正式出现在人们的视线中,其在速度、寿命、稳定性等方面可能会比TLC...阅读全文

博文 2017-08-01 09:52:54 debian.cn

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

务就跟着学,一定要了解自己的需求,并知道为什么要采用微服务架构。 更多公司预计会选择企业版软件 很多公司仍处于是自己开发还是购买企业版软件的两难境地。我们建议你做自己最擅长的事情,并按照自己的要求购买相应的工具。这样不仅可以帮助你专注于你的目标,还可以完全依赖第三方平台来提高工作效率。很多公司现在都在通过企业版软件来构建自己的基础设施,并确保安全性尽可能得到最好的控制。 Kubernetes 将进一步演化 Kubernetes 因为易用性而成为增长最快的容器技术。Kubernetes 还建立了一个壮大的开源社区。在世界各地,很多 CIO 和技术专家已经在使用 Kubernetes,并预计在 2019 年会有重大的发展。 最近,云生计算基金会(CNCF)进行了一项调查,分享了容器编排领域所发...阅读全文

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

玩转 AWS 的必备工具

SaltStack。 AnsibleAnsibleisSimpleITAutomation Ansible的配备简易,不用在远程控制instances上事先尤其的手机软件,只必须能根据ssh登陆和Python就可以了。其理都不繁杂,Ansible最先根据ssh将Ansible的可执行程序拷贝到总体目标isntances上并实行,随后根据ssh连接在远程控制服务器上启用Ansible可执行程序。Ansible应用YAML做为配备模版英语的语法。 小编在考博士期内以前参加过一个十分相近Ansible的群集管理系统软件新项目GXPClusterShell。GXP比Ansible大概早了五年。根据GXP不但能够达到相近Ansible的群集管理方法,与此同时也涵盖了一个根据make的Map-Reduce解决构架和一...阅读全文

欧洲核子研究组织(CERN)是如何使用 Linux 和开源的 - 云+社区

和围绕着它的级联结构。”Bell 说,“全世界约有 12 个大型一级数据中心,然后是 150 所小型大学和实验室。他们从大型强子对撞机的数据中收集样本,以帮助物理学家理解和分析数据。”这种结构意味着 CERN 正在进行国际合作,数百个国家正致力于分析这些数据。归结为一个基本则,即开源不仅仅是共享代码,还包括人们之间的协作、知识共享,以实现个人、组织或公司无法单独实现的目标。这就是开源世界的希格斯玻色子。...阅读全文

博文 2021-11-29 13:20:55 腾讯云

玩转 AWS 的必备工具

主要详细介绍Ansible和SaltStack。 AnsibleAnsibleisSimpleITAutomation Ansible的配备简易,不用在远程控制instances上事先尤其的手机软件,只必须能根据ssh登陆和Python就可以了。其理都不繁杂,Ansible最先根据ssh将Ansible的可执行程序拷贝到总体目标isntances上并实行,随后根据ssh连接在远程控制服务器上启用Ansible可执行程序。Ansible应用YAML做为配备模版英语的语法。 小编在考博士期内以前参加过一个十分相近Ansible的群集管理系统软件新项目GXPClusterShell。GXP比Ansible大概早了五年。根据GXP不但能够达到相近Ansible的群集管理方法,与此同时也涵盖了...阅读全文

TLS1.3 正式版发布 — 特性与开启方式科普

。TLS1.2具有很强的可配置性,因此一些有安全漏洞的站点为兼容老版本的浏览器而没有关闭那些旧的属性。 TLS1.3信奉“少即是多”哲学,取消了对一些老旧而衰弱的加密方式的支持。这意味着你无法打开那些潜在的漏洞。TLS1.2中有的大量特性都被删除了,其中大部分特性与那些著名的攻击有关,这些特性包括: RSA 密钥传输 —— 不支持前向安全性 CBC 模式密码 —— 易受BEAST和Lucky 13攻击 RC4 流密码 —— 在HTTPS中使用并不安全 SHA-1 哈希函数 —— 建议以SHA-2取而代之 任意 Diffie-Hellman 组 —— CVE-2016-0701漏洞 输出密码——易受 FREAK 和 LogJam攻击 TLS1.3 消除了旧版本中糟糕的加密方式,同时降低了旧的攻击方式对其...阅读全文

博文 2018-08-14 14:40:05 debian.cn

Docker 快速入门之 Dockerfile

, CMD, ENTRYPOINT 等指令的用户以及用户组。默认为 root 用户。语法: USER [:] 3.12 WORKDIR WORKDIR 指令用于设置 RUN, CMD, ENTRYPOINT, COPY, ADD 等指令的工作目录。语法: WORKDIR /path/to/workdir 4 总结 本文从一个具体的例子出发,讲述了如何利用 Dockerfile 构建镜像,然后解释了 Dockerfile 文件中的指令的语法,有关更多内容可访问官方文档。 5 参考资料 Dockerfile reference 本文转载自 Locez.com,在文基础上,略有增删。...阅读全文

博文 2017-12-16 13:50:31 debian.cn

监控Kubernetes集群证书过期时间的三种方案 - OSCHINA

Prometheus Operator, 使用的是生的 Prometheus, 则需要修改 Prometheus 配置文件的 configmap 或 secret, 添加 scrape config, 示例如下: 如果在使用 Prometheus Operator, 则可以增加如下 Probe CRD, Prometheus Operator 会自动将其转换并 merge 到 Prometheus 中. apiVersion: monitoring.coreos.com/v1 kind: Probe metadata: name: kubernetes-apiserver spec: interval: 60s module: http_2xx prober: path: /probe url...阅读全文

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

Linux 容器 vs 虚拟机 — 谁更胜一筹

拟机有着更好的灵活性,可以供您选择您的操作系统,并在您认为合适的情况下进行升级。相比之下,运行已配置应用程序容器在主机的操作系统升级方面是隔离的。 Linux 容器 vs 虚拟机 – 用例场景 我最喜欢使用容器的因之一就是使用 Linux 库版本。例如,假设您需要 Python 的特定版本来开发应用程序。然后,当你在运行应用程序的盒子上更新时,突然发现 Python 版本发生了变化,导致应用程序无法正常工作。 使用容器的另一个好处是你可以把一个应用程序放到一个容器中,然后在任何支持你正在运行的容器类型的操作系统上运行它。当你想要一个运行在不同 Linux 发行版应用程序时。通过使用容器,可以在各种不同的发行版上运行类似的应用程序环境。容器提供了可移植性。 容器对于快速的跨发行版部署是更可行...阅读全文

博文 2017-11-25 10:23:56 debian.cn

nsenter 及 Linux命名空间 简介

,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 56:7b:98:07:30:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.134.93/27 brd 192.168.134.95 scope global eth0 valid_lft forever preferred_lft forever 通过内网 IP 地址,我们得知已成功进入容器内部。 理 namespace namespace 是 Linux 中一些进程的属性的作用域,使用命名空间,可以隔离不同的进程。 Linux在不断的添加命名空间,目前有: mount:挂载命名空间,使...阅读全文

博文 2020-12-15 11:22:44 debian.cn

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

:更新了 42821 个软件包(占 buster 软件包总数的 72%)。而且,由于各种因,有相当数量的软件包(9519 个,占 buster 软件包总数的 16%)从这次发行中被删除了。您将不会看到这些包有任何更新,而且在包管理软件中它们会被标记为“过时的”;桌面程序和软件包如往常一样,Debian 也提供了多个桌面程序和环境。提供的桌面环境包括 GNOME 3.38,KDE Plasma 5.20,LXDE 11,LXQt 0.16,MATE 1.24,以及 Xfce 4.16。生产力应用也得到了升级,包括办公套件:LibreOffice 已升级到 7.0 版;Calligra 已升级到 3.2 版;GNUcash 已升级到 4.4 版;这次发行包含了许多软件的更新,其中包括:​无驱动扫...阅读全文

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

中文文:https://www.yangcs.net/posts/what-happens-when-k8s/ (杨传盛的博客) 英文文:https://github.com/jamiehannaford/what-happens-when-k8s 想象一下,如果我想将 nginx 部署到 Kubernetes 集群,我可能会在终端中输入类似这样的命令: $ kubectl run --image=nginx --replicas=3 然后回车。几秒钟后,你就会看到三个 nginx pod 分布在所有的工作节点上。这一切就像变魔术一样,但你并不知道这一切的背后究竟发生了什么事情。 Kubernetes 的神奇之处在于:它可以通过用户友好的 API 来处理跨基础架构的...阅读全文

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

互联网协议正在发生变化

当上世纪九十年代互联网开始被广泛使用的时候,其大部分的通讯只使用几个协议:IPv4 协议路由这些数据包,TCP 协议转发这些包到连接上,SSL(及后来的 TLS)协议加密连接,DNS 协议命名那些所要连接的主机,而 HTTP 协议是最常用的应用程序协议。 多年以来,这些核心的互联网协议的变化几乎是微乎其微的;HTTP 增加了几个新的报文头和请求方式,TLS 缓慢地进行了一点小修改,TCP 调整了拥塞控制,而 DNS 引入了像 DNSSEC 这样的特性。这些协议看起来很长时间都一成不变(除了已经引起网络运营商们的大量关注的 IPv6)。 因此,希望了解(甚至有时控制)互联网的网络运营商、供应商和决策者对这些协议采用的做法是基于其有工作方式 —— 无论是打算调试问题,提高服务质量,或施加政策...阅读全文

理解 Linux 的虚拟内存

。 在 Linux 中,内存设置被映射为 /dev/mem,root 用户通过对这个文件读写,可以直接操作内存。 JVM 进程占用虚拟内存过多 使用 TOP 查看系统性能时,我们会发现在 VIRT 这一列,Java 进程会占用大量的虚拟内存。 导致这种问题的因是 Java 使用 Glibc 的 Arena 内存池分配了大量的虚拟内存并没有使用。此外,Java 读取的文件也会被映射为虚拟内存,在虚拟机默认配置下 Java 每个线程栈会占用 1M 的虚拟内存。具体可以查看 为什么linux下多线程程序如此消耗虚拟内存。 而真实占用的物理内存要看 RES (resident) 列,这一列的值才是真正被映射到物理内存的大小。 常用管理命令 我们也可以自己来管理 Linux 的虚拟内存。 查看系统内存状...阅读全文

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

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

?如果你是 Oracle JDK 8 的用户, License 尚可免费使用,但之后若希望得到持续安全更新则需要为此付费。如今,在 Oracle 主导下的 Java 大环境已经发生变化。作为最大的 Java 的用户之一,阿里巴巴几乎拥有世界最大规模的 Java 应用集群,肯定需要为此采取一些行动。 基于此,阿里巴巴决定开源 OpenJDK 长期支持版本 Alibaba Dragonwell,一是因为其自身拥有大量 Java 客户和业务需求,阿里巴巴希望他们可以继续免费享受到 JDK 的所有功能;二是考虑到不少开发者可能会做出新的选择,阿里巴巴决定开源该项目,为开发者提供一个新的参考。 在过去三个月时间内,阿里巴巴方面对该项目进行了持续维护和更新。据了解,本次 GA 版本的主要目的是让...阅读全文

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

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

初始化容器,该容器要等到API准备好后才能成功退出。只有在初始化容器成功完成其工作之后,应用程序容器才会启动。 初始化容器不能像应用程序容器那样使用运行状况和就绪探针。因是它们要成功启动和退出,就像Jobs和CronJobs的行为一样。 同一Pod上的所有容器共享相同的卷和网络。您可以利用此功能在应用程序及其初始化容器之间共享数据。 正如我们刚刚讨论的那样,init容器总是比同一个Pod上的其他应用程序容器先启动。结果,调度程序对init容器的资源和限制赋予了更高的优先级。必须仔细考虑这种行为,因为这可能会导致不良后果。例如,如果您有一个初始化容器和一个应用程序容器,并且将初始化容器的资源和限制设置为高于应用程序容器的资源和限制,那么只有在有一个可用节点满足初始化的情况下,才调度整个Pod...阅读全文

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

Cortex: 高可用和水平扩展Prometheus监控系统

/ helm delete --purge cassie helm delete --purge prom-one helm delete --purge grafana 结论Cortex是一个强大的工具,可无缝地运行多个Prometheus服务器,同时简化了用户的操作和使用。虽然Thanos确实提供了非常相似的功能,但它们的实现方式却大不相同。通过尝试实现的用例将推动选择Cortex与Thanos。但是,Cortex确实使运行高度可扩展且具有弹性的基于Prometheus的监视系统变得容易。翻译: 云生生态圈 · Marionxue作者: By Shaunak Deshmukh文: https://www.infracloud.io/blogs/cortex-prometheus-ha/参考资料...阅读全文

博文 2021-10-09 17:00:22 知乎

Debian 向左:或将迎来根本性改革 - OSCHINA

决定离开贡献18年之久的 Debian。促使他离开的直接因是,Debian 社区对于是否接受 systemd(一种 init 进程)争执不下。这件事引起了 Debian 内部长达数年的争论,至今仍然没有定论。 当然,systemd 事件仅仅是一个引子,Joey 已经感受到了 Debian 社区背后所隐藏的某种“病态”。 “ 我第一次感觉到 Debian 的这种(病态),是在 Debian 改变‘ /usr/doc’这一错误的文件保存路径(系统文件的标准要求被保存在‘usr/share/doc’中)的时候,完成这样一个再简单不过的操作更改,Debian 居然花了6年之久。” 在 Joey Hess 看来,这实在太荒诞了。 要知道,Joey 并不是为此离开的第一位前辈。此前,Matthew...阅读全文

博文 2021-12-06 13:55:01 中文开源技术交流社区

如何读懂火焰图?+ 实例讲解程序性能优化 - xuxh120

火焰图(flame graph)是性能分析的利器。本文介绍它的基本用法。 一、perf 命令 让我们从 perf 命令(performance 的缩写)讲起,它是 Linux 系统生提供的性能分析工具,会返回 CPU 正在执行的函数名以及调用栈(stack)。 通常,它的执行频率是 99Hz(每秒99次),如果99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。 $ sudo perf record -F 99 -p 13204 -g -- sleep 30 上面的代码中,perf record表示记录,-F 99表示每秒99次,-p 13204是进程号,即对哪个进程进行分析,-g表示记录调用栈,sleep 30则是持续30秒。 运行后会产生一个庞大...阅读全文

博文 2022-03-11 10:05:09 博客园

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

? Linux 系统当时的分割方式基本就是磁盘分割。所以如果你下载了所有的磁盘的话,某种意义上你也就下载了一套 Linux 系统。我们认为这个方法不够好,我们要用更适合分工开发的法子来。 我们决定 Debian 的系统开发由资源包来。也就是说,系统的每一个内容、每一个板块都会以资源包的形式存在,这些资源包能够自动整合成一个完整的系统。你下载了这个资源包的时候,它就知道如何移除自己或是升级自己。 分工也一样按照资源包来,哪个资源包出错了就能非常明确地知道是谁的责任。我们会在开发时设定标准和规定,保证任何来源的资源包都能在我们的系统上照常运行。所以你只要下载全资源包,你就有了一整个系统。这感觉就像手工布艺一样,把很多布片拼成一整个作品,只不过实际上理要比这复杂不少。 当然 Debian 项目的资源包分割法...阅读全文

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

协议介绍之深入了解 gRPC

及它的相关属性。在 HTTP/1.x 时代,我们采用纯文本协议,并且使用 \r\n 来分隔,如果我们要传输的元数据很多,就会导致 header 非常的庞大。另外,多数时候,在一条连接上面的多数请求,其实 header 差不了多少,譬如我们第一个请求可能 GET /a.txt,后面紧接着是 GET /b.txt,两个请求唯一的区别就是 URL path 不一样,但我们仍然要将其他所有的 fields 完全发一遍。 HTTP/2 为了结果这个问题,使用了 HPACK。虽然 HPACK 的 RFC 文档 看起来比较恐怖,但其实理非常的简单易懂。 HPACK 提供了一个静态和动态的 table,静态 table 定义了通用的 HTTP header fields,譬如 method,path 等...阅读全文

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

最全的 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 博客园

深入了解Docker背后的namespace技术

Docker基于mamespace、cgroups、chroot等技术来构建容器,不是一个系统调用就能搞定,容器是一个用户态的概念。本文中Docker软件工程师Michael Crosby深入探讨了Docker对namespace技术的应用。 相信你在很多地方都看到过“Docker基于mamespace、cgroups、chroot等技术来构建容器”的说法,但你有没有想过为何容器的构建需要这些技术? 为什么不是一个简单的系统调用就可以搞定?因在于Linux内核中并不存在“linux container”这个概念,容器是一个用户态的概念。 Docker软件工程师Michael Crosby将撰写一些列博客,深入到Docker运行的背后,探索在 docker run这段代码的背后发生了什么...阅读全文

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

成为Debian社区维护人需要做好的准备

)而自发组织的,致力于满足各种各样的用户需求,并执着于追求其自身所信仰的“软件自由”。参阅 Debian Social Contract(Debian 社会契约),DFSG(Debian 自由软件指导方针) 和 Debian Constitution (Debian 宪章)。 申请成为 Debian 开发人员需要经历一些看似繁琐的过程,尤其是申请 Debian Developer 所需要经历的 NM Process,笔者认为来者难免会望而生畏,不胜其烦。如果你有这样的感觉,不妨看看这个幻灯片:Debian New Maintainer Process: History and Aims by bubbles, moray and daf. 文地址:http://blogs.gnome.org...阅读全文

Docker 17.06 社区版发布

with Docker中尝试新特性 在论坛或者在Slack的Docker社区频道中提问 参加6月28日的 CE 17.06在线聚会 文链接:ANNOUNCING DOCKER 17.06 COMMUNITY EDITION (CE)(翻译:钟最龙) 指标 日志驱动插件 Service日志 Service中节点本地的网络支持 配置对象 证书轮换的优化 Swarm Mode事件 专用的数据路线 GUI中新增了重置Docker数据而不需要丢失所有的设置 为主机添加一个实验性的DNS 用来认证注册表访问的登录证书 目录...阅读全文

博文 2017-06-30 23:08:57 debian.cn

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

。Rosco 基于 Packer 的镜像创建服务,她将一个 Debian 或者 RedHat 的包封装到虚拟机镜像中,这个过程有点像烘焙,所以也叫 image bake。Front50 存储所有pipeline,应用,通知的信息。Igor 对接 Jenkins 的服务,比如 pipeline 中需要调用 jenkins,那么就依赖这个服务。Echo 提供通知服务,对接各种各样的服务商:Slack, Hipchat, SMS (via Twilio) , Email。Rush 脚本执行引擎。 管理方法 Spinnaker 看起来也是一个复杂的微服务架构,由不少服务组成,所以本身也遵循一些运维准则: 每个 Spinnaker 的服务(如 deck,gate,orca)都运行在独立的 cluster 中...阅读全文

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

百度运维工程师挖矿实录:四个月用155台服务器挖矿赚10万判3年

起运维人员挖矿导致百度损失 2.7 万的事件,同样是运维人员在“涉险”,为什么是运维人员呢? “运维”人员在企业的价值,他们自己的调侃是:当企业没有发生技术故障的时候,大家感觉不到运维人员的存在。当企业发生故障的时候,大家感觉到运维人员确实没有存在的必要。 但调侃归调侃,这反映了技术运维人员在企业中面临的尴尬处境,但实际上,运维人员对于一家企业运营维护的保障,确实是很重要的。他们的职责包括服务器的部署、配置、维护;互联网平台的部署、升级、迁移、数据备份恢复;监控服务器,平台的运行,系统优化等,可以说,他们掌握了企业的后门,一旦运维部门发生危险,公司有可能陷入瘫痪状态,因此,一直以来,运维人员也拥有很多访问权限,而这却变成了运维人员不惜“涉险”的一个因之一。 于是,如何对运维人员进行权限管理...阅读全文

博文 2020-03-17 20:42:41 debian.cn

Golang 中的 channel 通道详解

发送和接收操作将导致两个goroutine做一次同步操作。 因为这个因,无缓存Channels有时候也被称为同步Channels 。当通过一个无缓存Channels发送数据时,接收者收到数据发生在再次唤醒发送者goroutine之前。单向channel当一个channel作为一个函数参数时,它一般总是被专门用于只发送或者只接收。为了表明这种意图并防止被滥用,Go语言的类型系统提供了单方向的channel类型,分别用于只发送或只接收的channel。类型 chan<- int 表示一个只发送int的channel,只能发送不能接收。相反,类型<-chan int 表示一个只接收int的channel,只能接收不能发送。(箭头<-和关键字chan的相对位置表明了channel的方向 。)这种限...阅读全文

SVN切换分支用法汇总

一、SVN切换分支操作介绍SVN(Subversion,下文简称SVN)是一种版本控制系统,它提供了一系列的命令行工具来管理源代码。在代码的开发过程中,可能会需要更改当前工作目录下所处的分支。SVN提供了switch命令供用户进行分支切换操作,该命令只修改当前工作目录下本的模块链接并不会真的修改目标URL中的版本库。在SVN中,一个版本库可能会有多个分支,我们可以通过checkout命令来创建这些分支,也可以使用branches工具来进行分支的删除、移动、查看等,这些工具都是由SVN提供的。SVN提供了非常完善的分支管理机制,让我们可以方便地在开发过程中,随时随地地更换所处的分支。二、SVN切换分支常用命令及其参数介绍切换分支是SVN的基本操作之一,下面是一些常用的命令及其参数。大家可以...阅读全文

博文 2023-06-09 14:22:35 infras

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

库?服务需要支持多大的流量? 这些都是很重要的问题,但服务是动态并且变化的:二进制版本不断更新,实例被添加和删除。架构也就需要随之演进:可能需要在某个特定的集群添加新的缓存,移除一些过时的日志等等。 在2014年,我们发现自己不能充分地适应服务的灵活性。对于绝大多数服务,我们使用人工编制的工作流来变更基础架构:推送x,然后y;手动执行不常见的变更。 但是团队通常需要管理数十个服务,每个服务都有很多job,数据库,配置以及自定义的管理流程。已有的解决方案因为如下两大因无法扩展: 基础架构配置和API是异构的,并且很难连接在一起——比如,不同的服务使用不同的配置语言,抽象级别,存储和推送机制等等。因此,基础架构不一致,很难确定出通用的变更管理。生产变更管理的流程很脆弱,不理解变更之间的联系...阅读全文

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

Debian 相比 Ubuntu 有哪些不同之处

会选错。尽管我们上面提到了种种区别,但是Ubuntu和Debian并不是偶然成为免费软件领域的两大领先发行版。Ubuntu和Debian的共同霸主地位表明,任何一个都是合理的选择,只要你明白自己的优先事项就行。 文标题:How Ubuntu is different from Debian,作者:M.el Khamlichi...阅读全文

博文 2017-12-22 23:41:07 debian.cn

Gitlab CI 配置文件 .gitlab

,将从项目中使用默认值。 可以设置的值有:clone,fetch,和none。 clone是最慢的选项。它会从头开始克隆整个仓库,包含每一个job,以确保项目工作区是最始的。 variables: GIT_STRATEGY: clone 当它重新使用项目工作区是,fetch是更快(如果不存在则返回克隆)。git clean用于撤销上一个job做的任何改变,git fetch用于获取上一个job到现在的的commit。 variables: GIT_STRATEGY: fetch none也是重新使用项目工作区,但是它会跳过所有的Git操作(包括GitLab Runner前的克隆脚本,如果存在的话)。它主要用在操作job的artifacts(例如:deploy)。Git数据仓库肯定是存在的,但...阅读全文

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

RabbitMQ 高可用实现镜像队列

:A,B同时停 该场景下可能是由掉电等因造成,只需在30s内联系启动A和B即可恢复镜像队列。 场景3:A先停,B后停,且A无法恢复。 因为B是master,所以等B起来后,在B节点上调用rabbitmqctl forget_cluster_node A以接触A的cluster关系,再将新的slave节点加入B即可重新恢复镜像队列。 场景4:A先停,B后停,且B无法恢复 该场景比较难处理,旧版本的RabbitMQ没有有效的解决办法,在现在的版本中,因为B是master,所以直接启动A是不行的,当A无法启动时,也就没版本在A节点上调用rabbitmqctl forget_cluster_node B了,新版本中forget_cluster_node支持-offline参数,offline参数允许...阅读全文

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

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

在前一篇文章中,我们介绍了 Debian Stretch 环境下,Kubernetes 集群安装的准备工作。本文我们将继续介绍 k8s集群 的安装配置工作。 第4步 - 设置主节点 在本节中,您将设置主节点。 但是,在创建任何Playbooks之前,值得介绍一些概念,例如Pod和Pod网络插件 ,因为您的群集将同时包含这两个概念。 pod是运行一个或多个容器的子单元。 这些容器共享资源,例如文件卷和网络接口。 Pod是Kubernetes中的基本调度单元:pod中的所有容器都保证在调度pod的同一节点上运行。 每个pod都有自己的IP地址,一个节点上的pod应该能够使用pod的IP访问另一个节点上的pod。 单个节点上的容器可以通过本地接口轻松进行通信。 然而,pod之间的通信更复杂,并...阅读全文

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

译:Kubernetes 最佳实践

(RBAC)在 K8s 集群中使用 RBAC 对于正确保护系统至关重要。可以为用户、组和 service account 分配权限,以在特定命名空间(角色)或整个集群(ClusterRole)上执行允许的操作。每个角色可以有多个权限。要将定义的角色绑定到用户、组或 service account,使用 RoleBinding 或 ClusterRoleBinding 对象。RBAC 角色授予应设置为使用最小权限则,即仅授予所需的权限。例如,管理员组可能有权访问所有资源,而运维人员组可能能够部署,但不能读取 secret。在外部托管Kubernetes集群(使用云服务)在自己的硬件上托管 K8s 集群可能是一项复杂的工作。云服务将 K8s 集群作为平台即服务 (PaaS) 提供,例如 Azure 上...阅读全文

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

“Debian 章程有毒” - OSCHINA

,Debian 邮件列表出现了一封标题为“Leaderless Debian”的公开信,文章表示,这年的3月3日-10日是候选人提名阶段,然而,截至公开信发出,还没有一位符合资格的 Debian 开发者提交申请。 此前的 Debian 领导人 Chris Lamb 一直被寄予厚望,他已经连任了两年,但是今年他公开表示因为一些 Debian 相关的,以及一些私人的因不参与竞选。由此,Debian 不得不根据章程延长提名时间,直至有人提交申请为止。 当然,最后还是有人跳了出来参加竞选。这里要指出的是,这一尴尬事件非常直观地反映出一个事实 —— DPL 并不吃香。 准确来说,在 Debian 章程的制约下,DPL 是一个没有绝对权利的虚席。 首先,DPL 并不接触具体业务,他可以任命某人执行专门的任务,而这...阅读全文

博文 2021-12-06 13:55:33 中文开源技术交流社区

Gitlab CI 配置文件 .gitlab

/gitlab-ce 上面这个例子将会为所有的分支执行job,但master分支除外。 Job variables 在job中是可以使用关键字variables来定义job变量。它的运行理跟global-level是一样的,但是它允许设置特殊的job变量。 当设置了job级别的关键字variables,它会覆盖全局YAML和预定义中的job变量。想要关闭全局变量可以在job中设置一个空数组: job_name: variables: [] Job变量的优先级关系可查看variables文档说明。 tags tags可以从允许运行此项目的所有Runners中选择特定的Runners来执行jobs。 在注册Runner的过程中,我们可以设置Runner的标签,比如ruby,postgres...阅读全文

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

HAProxy用法详解 最详细中文文档

:同gid,不过指定的组名; – log

[max level [min level]]:定义全局的syslog服务器,最多可以定义两个; – log-send-hostname []:在syslog信息的首部添加当前主机名,可以为“string”指定的名称,也可以缺省使用当前主机名; – nbproc :指定启动的haproxy进程的个数,只能用于守护进程模式的haproxy;默认只启动一个进程,鉴于调试困难等多方面的因,一般只在单进程仅能打开少数文件描述符的场景中才使用多进程模式; – pidfile: – uid:以指定的UID身份运行haproxy进程; – ulimit-n:设定每进程所能够打...阅读全文

博文 2014-05-10 17:14:46 debian.cn