内部开发者平台(或 IDP)是使开发团队能够更快、更轻松、更一致地交付应用程序的基础设施。Kubernetes 本身是一个功能强大的平台,但它引入了太多复杂性和功能,因此不能简单地将其作为 IDP 交给开发团队。若要期望他们能取得成功,非常重要的一点是要设置一些防护措施,使他们能够有效地使用 K8s,而不会增加与可靠性、成本效益和安全性相关的风险。

虽然 Kubernetes 本身并不适合作为 IDP,但它是构建 IDP 的坚实基础。Kubernetes 为平台工程师提供了许多工具,例如,它可以为开发人员构建 IDP、提供更简化的构建和运行应用程序的方式。因此需要考虑的问题是,如何构建一个既能为开发人员提供良好体验,又不会妨碍部署到生产环境的平台。通过使用策略和治理、基于角色的访问控制(RBAC)和默认网络策略应用安全措施,有一些很好的方法可以防止集群中发生错误。

Kubernetes 平台的构成

基于 Kubernetes 的 IDP 不仅包括 Kubernetes,还包括开发人员所需的工具和流程。作为 Kubernetes 的安全限制,IDP 还需要您希望在 Kubernetes 中建立的策略和治理。这种组合使您能够为开发人员提供一条 "黄金路径",让他们能够更快地部署应用程序。Kubernetes 平台由四个主要部分组成:

插件

插件是提供默认“开箱即用”功能所需的工具,可扩展 Kubernetes 的功能,包括 DNS、TLS、Ingress、日志记录、跟踪等。这些工具可以是开源项目也可以是来自供应商的软件。

创建治理

Kubernetes 治理是创建策略、程序和一组标准策略的过程,用于定义和实施 Kubernetes 平台中的最佳实践,以及资源管理、调度、升级和基于角色的访问控制。

启用部署(CI/CD)

这是应用程序从代码进入平台的方式。在 IDP 中,您为开发人员创建了一条 "黄金路径”,让他们能更轻松地将新应用程序和服务部署到平台中,同时保持高效安全

提供反馈

IDP 的一个重要组成部分是向开发团队提供及时反馈。平台的这一部分必须包括快速检测问题通知,并与他们已经使用的工具集成。同时还应在代码审查过程中为开发人员提供建议的修复选项。

治理和策略:三个阶段

当您考虑如何在 Kubernetes 中应用治理和策略时,这确实是一个过程。首先,您需要选择或创建必要的策略。接下来,您需要一种自动的方式来识别违反政策的行为,然后指导如何修复这些违反策略的行为。最后,需要能够自动阻止这些违规行为进入集群。

团队在开始部署 Kubernetes 的时候往往没有遇到什么初始问题,也就是说在这个阶段开发团队在内容、编码和交付应用程序和服务时没有什么明显的问题。但平台团队后来发现开发团队忽略了一些重要的安全措施来帮助维护安全并持续应用最佳实践。因为在开发者平台中,开发人员可以轻松地在需要时部署他们想要的内容。除非团队中有人返回并手动检查所有设置,否则在出现问题之前可能不会有任何意识。

可以使用开源策略引擎(如 Polaris 或 Open Policy Agent (OPA))在 Kubernetes 中自动应用策略。使用类似的解决方案,您可以确保您的配置与环境中的策略保持一致,帮助您保持一切顺利运行。

选择策略

在开始使用策略执行与成本效益、安全性和可靠性相关的 Kubernetes 最佳实践时,开发人员往往不知道从哪里开始,也不知道应该关注什么。最好的入门方法是确定什么对您来说最重要,这就是创建策略的方法。如果成本对你来说是最重要的,那么就把重点放在影响成本的策略上,如资源请求和限制。如果安全是你的首要关注点,那就处理以 root 身份运行的容器或生成网络策略。我们的建议是从小处着手,挑选一两个能实现目标的策略,然后全面实施这些策略。

识别、修复和阻止违规行为

接下来,需要找出当前集群中违反策略的地方,并开始逐一纠正这些问题。修复关键类别中的问题后,您就可以开始在访问时执行策略了。当开始执行策略并成功阻止违反策略的行为之后就可以放心了,因为这些问题不会再次弹出,你可以对要强制执行的下一组策略重复该过程。随之也就变得更加高效和安全了。

构建强大的 IDP

对于内部开发人员平台而言,应用 Kubernetes 治理和策略使您能够高效地管理资源,帮助控制成本,确保应用程序获得最佳运行所需的资源。它还能帮助您通过控制访问和实施最佳实践来确保安全性和合规性,并通过建立标准、自动化的应用部署和扩展流程来提高可靠性和弹性。稳健的 Kubernetes 治理和策略是构建安全、高效、可靠的内部开发人员平台的关键组成部分,可满足开发人员和整个组织的需求。

参考链接:

https://cloudnativenow.com/features/enable-a-great-kubernetes-developer-platform-experience/

如何基于 Kubernetes 实现优质开发者平台体验?的更多相关文章

  1. 涂鸦基于OAuth2在开发者平台上的探索与实践

    前言 开发授权(OAuth2)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资料(如照片.视频.联系人列表),而无需将用户名和密码提供给第三方应用. OAuth2允许用户提供一 ...

  2. 云无关、桌面端、基于Kubernetes的平台Otomi

    一.Otomi介绍 Otomi官网:https://otomi.io/ Otomi-core核心模块Github地址:https://github.com/redkubes/otomi-core Ot ...

  3. 基于Python+Django的Kubernetes集群管理平台

    ➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...

  4. 白瑜庆:知乎基于Kubernetes的kafka平台的设计和实现

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云+社区,未经许可,不得转载. 自我介绍 我是知乎的技术中台工程师,现在是负责知乎的存储相关组件.我的分享主要基于三个,一个是简单 ...

  5. 腾讯基于Kubernetes的企业级容器云平台GaiaStack (转)

    GaiaStack介绍 GaiaStack是腾讯基于Kubernetes打造的容器私有云平台.这里有几个关键词: 腾讯:GaiaStack可服务腾讯内部所有BG的业务: Kubernetes:Gaia ...

  6. 基于kubernetes自研容器管理平台的技术实践

    一.容器云的背景 伴随着微服务的架构的普及,结合开源的Dubbo和Spring Cloud等微服务框架,宜信内部很多业务线逐渐了从原来的单体架构逐渐转移到微服务架构.应用从有状态到无状态,具体来说将业 ...

  7. 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1

    基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...

  8. 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2

    基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...

  9. 基于Kubernetes/K8S构建Jenkins持续集成平台(下)

    基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...

  10. 基于kubernetes平台微服务的部署

    基于kubernetes平台微服务的部署 首先下载插件: kubernetes Continuous Deploy 然后去找 .kube/ 里的config 复制里面的内容 去添加凭据: 然后就是脚本 ...

随机推荐

  1. vue全家桶进阶之路49:Vue3 环境变量

    vue3 环境变量 在Vue3中,可以通过环境变量来管理应用程序中的配置.这些配置可以包括后端API的URL.API key.跟踪ID等等.在不同的开发.测试.生产环境中使用不同的配置是非常有用的.V ...

  2. vue全家桶进阶之路31:Vue3 数据和方法的双向绑定ref、reactive、toRefs

    ref 在 Vue 3 中,你可以使用 setup 函数来定义组件的数据和方法.在 setup 函数中,你可以使用 ref.reactive 和 computed 等 Vue 3 的响应式 API 来 ...

  3. XTU OJ 程设训练 1407 Alice and Bob

    题目描述 Alice和Bob打球,已知他们打过的每一回合的输赢情况,每个回合获胜的一方可以得一分. Alice可以随意设定赢得一局比赛所需的分数和赢得整个比赛所需要的局数. Alice想赢得比赛,请问 ...

  4. TypeError: this.CliEngine is not a constructor

    vue cli3 项目老是提示TypeError: this.CliEngine is not a constructor这个,看着特别扭 解决方法也不难,直接点击Details 然后再点击,如下第一 ...

  5. 【Python】sqlmodel: Python 数据库管理ORM 的终极形态?

    ORM 大家都知道ORM(Object Relational Mapping)是一种将对象和关系数据库中的表进行映射的技术,它可以让开发者更加方便地操作数据库,而不用直接使用SQL语句. 直接使用SQ ...

  6. 绘图;OSPF 虚连接

    绘图;OSPF 虚连接 原图如下 绘图 实验拓扑 实验需求 按照图示分区域配置OSPF 配置虚连接认证 实验步骤 配置相应接口IP地址及loopback 环回口地址 按照图示分区域配置OSPF AR1 ...

  7. 【QCustomPlot】配置帮助文档

    说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记.同系列文章目录可见 <绘图库 QCustomPlot 学习笔记>目录.本篇介绍 QCustomPlot 帮助文档的配置. ...

  8. 痞子衡嵌入式:主流QuadSPI NOR Flash厂商关于QE位与IO功能复用关联设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是几家主流QuadSPI NOR Flash厂商关于QE位与IO功能复用关联设计. 痞子衡之前写过一篇文章 <串行NOR Flash下 ...

  9. MVCC并发版本控制之重点ReadView

    MVCC并发版本控制 本文大部分来自<MySQL是怎样运行的>,这里只是简单总结,用于各位回忆和复习. 版本链 对于使用 InnoDB 存储引擎的表来说,它的聚簇索引记录中都包含两个必要的 ...

  10. 基于生成式预训练Transformer的跨语言文本摘要与情感分析

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...