HashiCorp 开源项目在中国仍可用

上周,HashiCorp 在官网发布声明,宣布禁止企业和开发者在中国地区使用该公司旗下企业软件:

请注意,中国出口管制条例禁止 HASHICORP 在中华人民共和国销售或以其他方式提供企业版本的 VAULT。因此,未经 HASHICORP 书面同意,不得在中华人民共和国境内使用、部署或安装 HASHICORP VAULT 企业软件。

HashiCorp 是一家专注于 DevOps 工具链的公司,旗下明星级产品包括 Vagrant、Packer、Terraform、Consul、Nomad 等,再加上 Vault,这些工具贯穿了持续交付的整个流程。

上述声明发布后,国内一些媒体将其解读为“HashiCorp 禁止 Terraform、Consul、Vagrant 等禁止在中国使用”,但其实受该声明影响的暂时只有私密信息管理工具 Vault 企业版,而且类似的声明早在一年前就已出现,目标是服务于 Vault 的落地,因此 HashiCorp 的开源软件在中国仍可用。

Terraform:Terraform 是一种安全有效地构建、更改和版本控制基础设施的开源工具(基础架构自动化的编排工具)。它的目标是“Write, Plan, and create Infrastructure as Code”,基础架构即代码,Terraform 也提供了 Kubernetes 应用程序的完整生命周期管理,包含 Pod 的创建、删除以及副本控制等。国内众多公有云都支持 Terraform。Consul:是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发,目前在国内也有大量的使用和落地案例。

Vagrant:也是一个比较流行的虚拟机管理软件,使用 Vagrant 可以让开发者用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等。

Helm 项目旅程报告

今天是开源软件包管理器 Helm 正式被捐献给 CNCF 的两周年纪念日。为了梳理、纪念 Helm 近年来的转变,上周,CNCF 发布了 Helm 的项目旅程报告,详细介绍了 Helm 的状态和发展。

2015 年 10 月 19 日,Helm 完成第一次 commit。从 2018 年 6 月 1 日加入 CNCF 至今,Helm 吸引了 13874 位开源贡献者和 1694 家贡献企业,并新增 9454 commits,项目影响力和成熟度进一步提高。

Helm 的贡献者包括许多巨头科技公司,例如 Google、Microsoft、三星 SDS 等,以及一部分快速增长的中型公司和数十家小型企业和初创公司。

其中,目前对 Helm 贡献排名最高的两家公司是 Microsoft 和 Codecentric AG,分别占 17% 和 6%。在早期,Microsoft 和 Google 曾为 Helm 提供了大部分初始代码贡献,但随着贡献企业数量激增,现在其他企业和组织对 Helm 的影响力明显提升,社区发展更民主。

Helm 的个人贡献者来自五大洲的十几个国家。在加入 CNCF 前的三年中,Helm 只拥有 3642 名贡献者,但在加入 CNCF 两年后, 贡献者数激增 216%,达到了 13874 人。

更多内容,请见:https://www.cncf.io/cncf-helm-project-journey/

为什么开源会使 K8s 更具魅力

Kubernetes 是 Google 在 2014 年开源的一个容器集群管理系统,用于容器化应用程序的部署、扩展和管理。发展至今,它已经成为容器编排的事实标准。那么是什么让 Kubernetes 如此受开发者和企业欢迎呢?

问:Kubernetes 会一直火下去吗?亦或是昙花一现?

当前是计算发展历史的一个转折点。我们已经经历了物理硬件、虚拟机、容器,甚至开始发展无服务器概念。我们一直希望把应用模块变得更小,让底层平台的功能变得更强大,并且流程越来越透明。如果它完全透明了,开发人员是不是就可以不用关注它了?

同样的,上述问题也适用于 Linux。如果应用程序运行良好,并且 Linux 运行正常,这时我们就可以无视运行速度快、扩展性强的 Linux,转而让开发者更关注业务。Kubernetes 现在就是在努力做好这件事。

问:Kubernetes 是如何吸引应用程序开发人员兴趣的?

开发者通常都希望对运行在 Kubernetes 上的应用进行迭代更新。弹性是 Kubernetes 刻在 DNA 里的一部分,它可以在不中断的情况下就完成更新,所以能充分满足企业对于敏捷响应、灵活迭代的需求。

现在 Kubernetes 上既跑着大数据、人工智能和机器学习的应用,也跑着传统 Java 应用。它作为一个应用程序开发平台,将变得更加强大而灵活。

问:为什么开源可以让 Kubernetes 吸引企业公司?

当大型公司开始寻找云原生解决方案时,Kubernetes 是开源的,所以他们都可以尝试使用它。

同样的,这些企业在寻找第三方解决方案提供商时,双方的交流非常平等自然,因为大家聊的是对于开源社区的贡献的和理解,尽管这些企业一开始在认知上存在不足,但通过在开源社区中的不断学习、沉淀理解,任何人都能成为专家。

另外,与常规的项目需求不同,如果这些企业希望 Kubernetes 能实现他们需求的一个功能,即便当前还没有任何现成的答案,但借助开源的力量,他们能在开源贡献者的支持下立即实现。

Gartner:六种容器、K8s 最佳实践

去年,Gartner 曾发布一份名为《在生产中运行容器和 Kubernetes 的最佳实践》的付费报告,指出到 2022 年,全球将有 75% 的组织在生产中运行容器化应用程序,届时 Kubernetes 也会成为管理容器的一般方法。

为了帮助更多开发者和企业做好应用容器和 Kubernetes 的心理、技术准备,社区摘取了报告列举的 6 大最佳实践,供大家参考:

规划并应用 DevSecOps

报告称:“安全不是事后的想法,它需要嵌入到 DevOps 流程中。”如果企业希望在生产环境中使用容器和 Kubernetes,他们必须先拥抱 DevSecOps 文化,在 CI/CD 管道中应用镜像扫描定位问题、利用开源工具审核 Docker 容器,并遵循 CIS 基准,确保适当的访问控制并使用第三方加密服务保护敏感信息和凭证。

细粒度监控

对于容器,Gartner 认为传统的以主机为中心的监控(例如 CPU 利用率、延迟、网络带宽等)根本不够,企业的 DevOps 必须更精细地进入容器本身。在监控工具挑选上,应首选能和 Kubernetes 深度集成的、能反映应用状态的实时解决方案,且需要提供精细的日志记录。

重新评估数据持久性

现在比较常见的是容器上的有状态工作负载。如果要对应用程序进行重大的重新设计,这可能会影响数据存储过程。Gartner 在报告提示道:对于面向微服务的状态应用程序,基础架构和运营商需要一个存储平台,该存储平台应能够最大程度地提高该工作负载的可用性、敏捷性和性能。

针对 Kubernetes 优化网络

可移植性需要贯穿开发环境和测试环境,为了适应现在多云、混合云的采用趋势,企业需要事先考虑容器网络有跨多个云、多个环境的需求。报告指出,网络解决方案需要与 Kubernetes 的原语和策略引擎紧密集成。除了检查 SDN 等工具是否支持 Kubernetes 网络和集群中主机之间的负载均衡,采用服务网格技术也是一个选择。

管理容器生命周期

了加快应用程序交付流程,自动化工具不可或缺。Gartner 建议企业首先要考虑应用应用程序自动化发布工具和用于容器生命周期管理的自动化工具,为容器基础镜像设置标准,帮助自动化应用程序工作流程。

正确编排

最后,尽管 Kubernetes 已经成为事实上的容器编排工具,但是不同企业在具体应用上还是存在细微差别。在比较编排方法时,Gartner 建议企业主要考虑弹性伸缩、操作系统支持、运行时稳定性、开源以及对混合云和多云的支持,综合比较。

本周 K8s 开源项目推荐

k8s-pod-rbac-breakout

  • 这是一个脚本,开发者可以在自己的集群中运行该脚本,以测试 RBAC 规则是否太宽松了。
  • github.com/geerlingguy/k8s-pod-rbac-breakout

k8s-cronjob-prescaler

  • 该工具提供了一种机制,使 cronjobs 可以在自动扩展集群上运行,并确保在 cronjob 工作负载按时启动时集群会被弹性缩小到所需的大小。
  • github.com/microsoft/k8s-cronjob-prescaler

magicpak

  • 该工具能帮助开发者构建最少的 Docker 镜像,而无需进行任何麻烦的准备工作,例如静态链接。
  • github.com/coord-e/magicpak

kdbg

  • kdbg(Kubernetes 调试器)是一个基于最新 Alpine Linux 镜像的小型 Docker 容器,用于从 Pod 内部调试 Kubernetes 集群。
  • github.com/nvucinic/kdbg

kyaml2go

  • 这是来自 Kubernetes 资源规范 yaml 的 Go 客户端代码生成器。
  • github.com/PrasadG193/kyaml2go

kubectl-ssh-proxy

  • 这是一个 kubectl 插件,可以让开发者在使用 kubectl 和 SSH bastion 后的集群时觉得更方便。
  • github.com/little-angry-clouds/kubectl-ssh-proxy

Stack Overflow 年度开发者报告

近日,Stack Overflow《2020 年开发人员调查》报告出炉,这是 Stack Overflow 开展开发人员年度调查的第 10 年,可以说是见证软件行业巨变与更迭的十年。本次发布的最新报告对来自全球 186 个国家的 65000 名软件开发人员进行了调研。

以下是报告的部分亮点:

  • 在全球范围内,使用 Perl、Scala 和 Go 的开发人员薪水最高,中位数约为 $75k;
  • 技术经理、SRE、DevOps 专家和数据工程师往往会获得较高的薪水。其中技术经理的薪水 9.2 万美元,是所有岗位中收入最高的人群,而学术研究员的薪水为 4.1 万美元,是所有岗位中收入最低的人群;
  • Rust 连续第 5 年蝉联最受喜爱的技术榜首;
  • JavaScript 连续八年保持其最普遍使用的编程语言榜首,Python 略高于 Java 排名第四;
  • 35 岁以下的开发者占比 72.1%,超过 54% 的开发人员在 16 岁之前写出了他们的第一行代码。

对于开发者常用的平台,和往年一样,Linux 和 Windows 保持着前两名的位置,均获得了半数以上的受访者支持。但随着云原生技术的盛行,数据也显示 Docker、Kubernetes 之类的技术正在逐年上升