KEDA 成 CNCF 沙盒项目

上周,Kubernetes 事件自动伸缩项目 KEDA 宣布成为 CNCF 的沙盒项目

根据介绍,KEDA 旨在提供 Kubernetes 自动伸缩的一些关键功能。在没有 KEDA 之前,用户只能基于内存和 CPU 使用率等指标进行自动伸缩。尽管这些值至关重要,但它们往往会无视来自 Azure、AWS、GCP、Redis 和 Kafka 等来源的大量外部指标。

而 KEDA 可以对事件驱动的 Kubernetes 工作负载进行细粒度自动伸缩,它提供了一个简单、统一的 API 来自动扩展部署,能充当指标服务器,允许用户使用专用的 Kubernetes 自定义资源定义来定义自动调节规则

2019 年 11 月 19 日,KEDA 发布 1.0 版本,项目成熟度进一步提高。伴随社区的不断壮大,IBM、Pivotal、VMware 等企业相继成为贡献者,今年 1 月,项目开发组把 KEDA 捐赠给了 CNCF 以确保它的中立性。

未来,KEDA 会关注自动扩展 HTTP 工作负载和伸缩器两个主要主题,进一步强化项目能力。

https://keda.sh/blog/keda-cncf-sandbox/

CNCF 项目代码量超过 10 亿行

上周,CNCF 宣布所有项目的代码量已超过 10 亿行,这对于 CNCF 和整个云原生社区而言,都是一个重大的里程碑。

  • Google Chrome:670 万行代码
  • Windows 10:5000 万行代码
  • CNCF:10 亿行代码

对比以上数据,这个 10 亿背后的价值更加直观。首先,这意味着 CNCF 及其项目都以惊人的速度增长。其次,随着项目在沙盒和孵化器中逐步发展直至毕业,它们会不断壮大,变得更稳定可靠以供企业使用

据介绍,CNCF 统计数据使用的是自己开源的工具 DevStats。这是一个 Kubernetes 原生应用程序,并使用了许多其他生态项目,包括 Helm、containerd、CoreDNS 等。

DevStats 的工作原理是它会下载 CNCF 六年间所有 public action 数据,筛选保留约 1400 个托管项目 repo,把处理完的数据存储在 Postgres 数据库中,并每小时下载一次更新的数据。

除了统计 PR 和 commit,DevStats 还允许用户跟踪自定义指标。它有许多非标准的仪表板,例如分析机器人活动、公司隶属关系、贡献者位置、时区、性别、编程语言、许可证类型等。

https://github.com/cncf/devstatscode#api

Kubernetes 案例:沃达丰

沃达丰(Vodafone)是世界上最大的移动通讯网络公司之一,从 2016 年起,这家企业决定通过数字化转型为 25 个国家/地区的用户提供最佳体验。

在云计算普及之前,电信行业一直有使用大量定制硬件的传统,沃达丰也不例外。它的传统软件大多经过深度定制,与特定硬件、VM 联系紧密,因此自动化程度较低。为了实施数字化转型,沃达丰选择了交付效率最高的云原生和微服务。

随着转型的展开,由于需要使用混合云,沃达丰发现支撑 25 个市场的数字化服务离不开优化底层资源共享。再加上 5G 的加速发展和边缘用例的出现,沃达丰需要在内部构建更多的云原生功能,因此采用轻量级容器编排平台 Kubernetes 成为当务之急。

沃达丰为产品团队建立一个 Kubernetes 平台,为不同市场提供数字化服务,并在整个平台上进行一致的设置和管理。他们把 DevSecOps 和安全性纳入管道,以便实现云原生应用程序自动化安全部署。

电信运营监管的最大依赖和要求之一是吞吐量性能。使用虚拟化解决方案时,由于每台机器都配备制动系统,因此将解决方案扩展到不同服务器之间会非常缓慢。但是,容器能使电信工作负载变得更加有效和高效,在合理时间范围内随工作负载的变化和需求弹性伸缩。

依靠 Kubernetes,如今沃达丰的软件开发工作已经从 97% 外包转为 95% 内部实现,客户满意度和销售量进一步提高,能更好地开展以数据为导向的数字营销。4Docker 官方 GitHub Action去年,GitHub 推出 GitHub Action,允许开发者在 GitHub 服务器上直接测试、部署代码,吸引了不少 Docker 用户自行打造 Docker Action 功能实现整套 CI/CD 流程。

上个月,Docker 正式宣布发布其第一个 Github Action,从构建镜像、tagging 到推送镜像,用户可以更灵活地通过 GitHub Action 来定义自己的 workflow,CI/CD 进一步简化。

完整的项目请参考 docker-github-action。需要额外注意的是, 如果你的仓库是公开的,请注意将自己的用户名密码等设置为 secrets ,可参考下方示例,以防泄漏。

  • name: Build and push Docker images
  • uses: docker/build-push-action@v1.0

GitLab 开源 18 个 DevOps 功能上周,GitLab 在博客中宣布开源 18 个付费功能,免费提供给社区使用,方便开发者们更好地进行协作。新开源的功能集涵盖规划、创建、验证、打包、发布、配置和防御 7 大领域,可贯穿 DevOps 生命周期。

1.将相关问题联系在一起

  • 支持将存在双向关系的问题展示在问题描述下方的方框中(跨小组、项目)。
  • https://docs.gitlab.com/ee/user/project/issues/related_issues.html#related-issues

2.从 GitLab 将问题导出为 CSV

  • 用户可以从 GitLab 将问题导出为 CSV,并将其作为附件发送到默认通知电子邮件中。
  • https://docs.gitlab.com/ee/user/project/issues/csv_export.html

3.发行板聚焦模式

  • GitLab 发行板是一个软件项目管理工具,用于计划、组织和可视化功能或产品发布的工作流程。它的聚焦模式(Focus mode)可以隐藏导航 UI,使开发者可以集中精力处理发行板上的问题。
  • https://docs.gitlab.com/ee/user/project/issue_board.html#focus-mode-starter

4.服务台

  • 服务台是一个模块,可让团队直接在 GitLab 内部通过电子邮件与任何外部方联系,无需外部工具。
  • https://docs.gitlab.com/ee/user/project/service_desk.html#service-desk-premium

5.Web IDE 的 Web 终端(Beta)

  • Web IDE 的交互式 Web 终端使用户可以直接从 GitLab(包括通过 Web IDE)访问终端以与 Runner 进行交互。
  • https://docs.gitlab.com/ee/user/project/web_ide/index.html#interactive-terminals-for-the-web-ide-ultimate

6.文件同步到 Web 终端

  • Web IDE 中的文件更改可以同步到正在运行的 Web 终端,这使用户能够在预配置的终端环境中测试其代码更改。
  • https://docs.gitlab.com/ee/user/project/web_ide/#file-syncing-to-web-terminal

7.设计管理(Alpha)

  • 这个工具允许用户将设计资产(框架图、模型等)上传到 GitLab issues,并将它们存储在一个位置,从而为产品设计师、产品经理和工程师提供解决问题的单一来源凭据。
  • https://docs.gitlab.com/ee/user/project/issues/design_management.html#design-management-premium

8.代码质量

  • 用户可以使用 GitLab 代码质量分析源代码质量,确保项目代码简单、易读。
  • https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html

9.Conan (C/C++) repo

  • 每个项目都可以拥有自己的空间来存储 Conan 软件包。
  • https://docs.gitlab.com/ee/user/packages/conan_repository/

10.Maven (Java) repo

  • 每个项目都可以有自己的空间来存储其 Maven 工件。
  • https://docs.gitlab.com/ee/user/packages/maven_repository/index.html

11.NPM (node) registry

  • 每个项目都可以拥有自己的空间来存储 NPM 软件包。
  • https://docs.gitlab.com/ee/user/packages/npm_registry/index.html

12.NuGet (.NET) repo

  • 每个项目都可以有自己的空间来存储 NuGet 软件包。
  • https://docs.gitlab.com/ee/user/packages/nuget_repository/

13.金丝雀部署

  • 如果用户只想把应用程序新版本推给一小部分设备,可以使用金丝雀部署。
  • https://docs.gitlab.com/ee/user/project/canary_deployments.html

14.增量部署

  • 用户准备在生产环境中部署新版本应用程序时,可能会需要逐步推出生产以检查应用程序的运行方式,可以使用增量部署。
  • https://docs.gitlab.com/ee/topics/autodevops/index.html#incremental-rollout-to-production-premium

15.功能标记

  • 功能标记允许用户通过动态切换某些功能来以不同的方式发布项目。
  • https://docs.gitlab.com/ee/user/project/operations/feature_flags.html

16.部署板

  • 部署板提供了 Kubernetes 上运行的每个 CI 环境的当前运行状况和状态合并视图。用户无需访问 Kubernetes 即可在现有工作流程中查看部署的进度和状态。
  • https://docs.gitlab.com/ee/user/project/deploy_boards.html

17.支持多个 Kubernetes 集群

  • 使用 GitLab Premium,用户可以将多个 Kubernetes 集群关联到项目,方便为不同的环境使用不同的集群。
  • https://docs.gitlab.com/ee/user/project/clusters/#multiple-kubernetes-clusters-premium

18.容器网络安全网络策略

  • 用户可以将网络策略安装到由 GitLab 管理的 Kubernetes 集群中,以限制 Kubernetes Pod 之间的通信。
  • https://docs.gitlab.com/ee/user/clusters/applications.html#install-cilium-using-gitlab-ci

原文请点击:https://mp.weixin.qq.com/s/VWVZzEAqNlbKcuDqkxpY1w