草庐IT

云原生爱好者周刊:谁开发的软件,谁负责运维

kubesphere 2023-03-28 原文

2006 年,亚马逊 CTO Werner Vogels 在接受 ACM 访谈,谈及亚马逊研发人员同时负责研发和运营维护工作背后的理念时,说了一句 "You build it, you run it",意思就是“构建代码的人需要负责让代码在生产环境中运行起来,并负责后续的维护工作”。最近几年云原生和 DevOps 火起来之后,运维与开发之间的界限越来越糢糊,研发人员已经开始渐渐地承担运维工作了,不得不说亚马逊的眼光很超前。

Equal Experts 的首席顾问专门撰写了一本小册子来解释与 "You build it, you run it" 相关的准则、最佳实践和误区,与传统的运维模式进行对比(他们把传统的运维模式称为 "Ops Run It",即由专门的 Ops 团队来负责运维),并强调 “You build it, you run it” 并不会抢了专职运维团队的饭碗,运维同学大可不必惊慌?

链接?:https://www.equalexperts.com/wp-content/uploads/2022/03/YBIYRI_Playbook-4.pdf

开源项目推荐

kube-opex-analytics

kube-opex-analytics 是一款 Kubernetes 计量与分析工具,可以帮助组织跟踪其 Kubernetes 集群在一段时间内的资源消耗状况,组织可以将其作为关键指标,采取适当的成本优化决策。

Capsule

Capsule 是使用 Kubernetes Operator 实现的多租户系统,Capsule 控制器将多个命名空间聚集在一个叫做租户(Tenant)的轻量级抽象中。每个租户内,用户可以自由地创建自己的命名空间,并共享所有分配的资源。同时租户中的安全策略、资源配额、RBAC 以及其他在租户层面定义的策略会自动被租户中的所有命名空间继承,不需要集群管理员的干涉。

KubeArmor

KubeArmor 是一个云原生环境的安全加固系统,可以在系统层面限制容器和主机的权限和行为(比如访问文件系统、对网络进行操作、执行二进制等)。一旦有任何违反安全策略的行为,KubeArmor 会立即生成带有容器标识的告警。

readme.so

readme.so 是用来帮助项目 owner 生成 REAME 文档的工具,包含了很多模板。

文章推荐

去哪儿网业务大规模容器化最佳实践

近几年随着云原生技术的成熟,去哪儿网为了实现整个技术体系的演进,去哪儿网在 2021 年向云原生迈出了第一步 -- 容器化 。落地过程包括了价值评估、基础设施建设,CI/CD 流程改造、中间件的适配、可观测性工具、应用自动化迁移等。迁移过程涉及到了 3000 个应用左右,涉及千人级研发团队,是一个难度非常大的系统工程。这篇文章会讲述迁移过程涉及到的 CI/CD 模型改造、自动化应用容器化改造等最佳实践。

在 Kubernetes 集群中使用 Rust 运行 WebAssembly 工作负载

在 Kubernetes 集群中运行 WebAssembly 工作负载目前还在探索阶段,但非常具有革命意义,因为 Wasm 工作负载的启动速度与容器相比更快,更安全,体积更小。而 Rust 是一门性能和 C 语言不相上下的编程语言,而且非常注重安全性。将 Rust 与 WebAssembly 强强联合会擦出怎样的火花呢?本文就介绍了如何在 Kubernetes 集群中使用 Rust 来运行 WebAssembly 工作负载。

云原生不是单纯的容器化,而是一种文化

现在大家一谈到云原生,就和容器化、微服务这些字眼划上等号,甚至连 CNCF 也是这么定义的。本文的作者从另外一个角度阐述了云原生的价值,她更倾向于把云原生看成一种文化。

云原生一周动态要闻

Fluent Bit 下载量达到 10 亿次

日前,CNCF 和 Fluent Bit 社区宣布,Fluent Bit 已经被下载和部署超过 10 亿次。

Fluent Bit 在设计时考虑了高性能,是一个高度可扩展的日志和指标处理器。它迅速普及,因为它使任何组织都能够有效地管理大规模的可观察性数据,以及立即了解其系统的性能。

Fluent Bit 是个CNCF 毕业阶段项目,隶属于 Fluentd。这种状态意味着它已在生产中得到证明,几乎可以被任何企业部署。Fluent Bit 每天被下载 2-5 百万次。

Go 1.18 发布

日前,go 团队发布了 go 1.18。

Go 1.18 是一个大型版本,其中包括新功能、性能改进以及对该语言的最大更改:

  • 泛型:引入了对使用参数化类型的通用代码的新支持;
  • 模糊测试:将模糊测试完全集成到其标准工具链中;
  • 工作区:新的 Go 工作区模式可以使得用户在多个模块中工作;
  • 20% 的性能改进

有关 go 1.18 中所有内容的更详细说明,请参阅发行说明

GitLab 的免费套餐继续收紧

一年多前,GitLab 放弃了 Starter 层,这让许多开发人员感到沮丧。随着这一变化,免费用户以外的任何用户的价格从每位用户每月 4 美元上升到每位用户每月 19 美元,至今仍保持不变。

从 2022 年 6 月 22 日开始,使用免费层的组织将被限制为每个命名空间五个用户,因为 GitLab 表示它正在继续“寻找方法让 DevOps 成为各种规模的团队和组织的现实”。

30% 的 Apache Log4j 安全漏洞仍未修补

几个月前,Apache Log4j 出现安全漏洞,并被评为 10.0 CVSSv3。根据云安全公司 Qualys 的说法,只有 70% 的漏洞已被修补。

如果您仍在运行不安全的 Log4j 版本,那么系统其余部分的安全性并不重要。

超过一半的带有 Log4j 的程序也不受支持。您的软件供应商修补这些问题的几率介于渺茫和零之间。

本文由博客一文多发平台 OpenWrite 发布!

有关云原生爱好者周刊:谁开发的软件,谁负责运维的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  5. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  6. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  7. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  8. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  9. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  10. ruby-on-rails - environment.rb 中设置的常量在开发模式中消失 - 2

    了解Rails缓存如何工作的人可以真正帮助我。这是嵌套在Rails::Initializer.runblock中的代码:config.after_initializedoSomeClass.const_set'SOME_CONST','SOME_VAL'end现在,如果我运行script/server并发出请求,一切都很好。然而,在我的Rails应用程序的第二个请求中,一切都因单元化常量错误而变得糟糕。在生产模式下,我可以成功发出第二个请求,这意味着常量仍然存在。我已通过将以上内容更改为以下内容来解决问题:config.after_initializedorequire'some_cl

随机推荐