Go Programming Pattern in Kubernetes PhilosophyGo Programming Pattern in Kubernetes Philosophy Harry Zhang @resouer Contents • What I will talk? • Kubernetes basic in 1 min • For Kubernetes developers: • The Golang programming patterns of • gPRC based interface design in Kubernetes (CRI as example) • For Kubernetes users: • Effective pattern of programming based on Kubernetes • ⼴广告(Don’t worry, it’s not that kind of AD) • What popular open source projects in this world • Written by, and heavily depends on Golang Again: Why Go? • All about community • A sad story: • https://github.com/google/lmctfy • Now think about a0 码力 | 29 页 | 2.12 MB | 1 年前3
Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践Operator Pattern:用 Go 扩展 K8s 的最佳实践 吴学强 ApeCloud KubeBlocks Maintainer & 研发总监 目 录 认识我们 00 什么是 Operator 01 Operator 基础模型 02 Operator 最佳实践 03 我们是谁 云猿生(ApeCloud)是一家提供数据库内核与管理平台的基 础软件开发商. KubeBlocks 熟悉如何生成二级资源(Managed Resource) 6. 熟悉如何写 UT 7. 熟悉如何制作 Helm Chart 课后思考题: 1. 如何不启动 WebHook? 2. API 只要用 Go 写就可以了吗,需要修改对应的 YAML 文件吗? 3. Setup 阶段,用 Watch 函数取代 Owns 并实现同样的目的。 4. Reconcile 函数为什么不区分 Create、Update0 码力 | 21 页 | 3.06 MB | 9 月前3
石墨文档Go在K8S上微服务的实践-彭友顺石墨文档GO在K8S上微服务的实践 彭友顺 石墨文档 基础设施负责人 目 录 1 架构演进 01 2 微服务的生命周期 02 3 如何管理好微服务 03 架构演进 第一部分 架构演进 单体应用时期 垂直应用时期 微服务时期 快速、简单 耦合强 隔离、稳定 复制多 隔离、稳定 复用高 架构演进 组件增多 架构复杂 维护困难 架构演进 传统模式 K8S模式 format、lint、breaking 检查。 CI build 阶段 • 会基于 pb 的注释自动产生文档,并推送至内部的微服务管理系统接口平台中 • 会生成 Go/PHP/Node/Java 桩代码和错误码,推送到指定的仓库 开发阶段 • go get 客户端、服务端的gRPC和错误码的代码 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 Generate • protoc -I {error proto file} --go-errors_out={output directory} • 实现我们自定义的error类型,方便断言。 • 根据注解的code信息,在错误码中生成对应的grpc status code •0 码力 | 41 页 | 3.20 MB | 1 年前3
实际案例Kubernetes on Supporting 1 Million Bike-Taxi Drivers in IndonesiaGiri Kuncoro System Engineer Go-Jek Indonesia @girikuncoro Iqbal Farabi System Engineer Go-Jek Indonesia @iqbal_farabi We’re from Jakarta, Indonesia Ojek! Go-Jek 1.0 Call-center for ojek service service 01 2010 Milestone Go-Jek 1.0 Call-cente for ojek service 01 Mobile App First mobile app was launched 02 2010 2015 Milestone Go-Jek 1.0 Call-center for ojek service 01 Mobile App growth of Go-Pay into P2P, withdrawal, etc 03 2010 2015 2017 Milestone Go-Jek 1.0 Call-center for ojek service 01 Mobile App First mobile app was launched 02 More Apps! Incl. growth of Go-Pay0 码力 | 37 页 | 34.65 MB | 1 年前3
Advancing the Tactical Edge with K3s and SUSE RGSfirst responder, and the kit they wear and carry. Our focus is on creating highly sensitive and effective systems that enable teams to do their jobs quicker and more efficiently.” The industry is accustomed first responder, and the kit they wear and carry. Our focus is on creating highly sensitive and effective systems that enable teams to do their jobs quicker and more efficiently.” An array of embedded0 码力 | 8 页 | 888.26 KB | 1 年前3
在大规模Kubernetes集群上实现高SLO的方法cluster. Increase of SLO: Get the weakness of the cluster by analyzing the failure reasons and effective actions should be taken to increase the success rate. The unhealthy node: Detect the unhealthy0 码力 | 11 页 | 4.01 MB | 1 年前3
Over engineeringthe core of Kubernetes kopse c t . . Kris Nova ..to Kris Nova Microsoft ACS ..while working at... Kris Nova Kris Nova go/AUTHORS Kris Nova r/golang Thanks Renee French! Kris Nova “I speak for the software..” # -- vpc: vpc/{{ ClusterName }} dhcpOptions: dhcpOptions/{{ ClusterName }} {{ end }} Over Engineering Go in Kubernetes # --------------------------------------------------------------- # Zones (Availability cloud” - Kris Nova Kubernetes Kops Kubernetes Operations Statically linked CLI tool written in Go Kubernetes Kops Kubernetes Operations import “k8s.io/kubernetes” Kubernetes Kops Kubernetes Operations0 码力 | 75 页 | 4.56 MB | 1 年前3
Putting an Invisible Shield on Kubernetes SecretsHardware configurations • Biz scenarios • Solutions evaluated • Go KMS Plugin + C Go SGX Functions • C++ KMS Plugin • Rust KMS Plugin ü Go KMS Plugin + TEE LibOS (Occlum [1]) [1] https://github.com/occlum/occlum kubectl completed PoC • API server and the rest changes for the TEE-based - PoC stage • Where we go? • To keep the production practice • To explore more potential intersections between Cloud-Native0 码力 | 33 页 | 20.81 MB | 1 年前3
QCon北京2017/智能化运维/Self Hosted Infrastructure:以自动运维 Kubernetes 为例main() { compile_c(argv[1]); } gcc Self hosting go // golang source code package main import "os" func main() { compile_go(os.Args[1:]) } go Self hosting Self hosting $ uname -s minix $ gcc0 码力 | 73 页 | 1.58 MB | 1 年前3
第29 期| 2023 年9 月- 技术雷达wazero 评估 wazero 是使用 Go 编写的一个零依赖的 WebAssembly(WASM)运行时。尽管运行时本身与语言无关,我们 仍想对 Go 开发者们强调 wazero,因为它提供了一种很方便的方式, 使用任何 符合标准的语言 编写的 wasm 模 块来扩展你的 Go 应用程序。它不依赖于 CGO,所以你可以很容易地将你的 Go 应用程序交叉编译到其他平台。 尽管在选择 WASM mock 实现,并模拟外部依赖的行为。通过类型安全的方 法生成期望的调用,并通过灵活的方式 mock 返回值,它使得测试能够专注于业务逻辑,而无需担忧外部依赖 的正确性。Mockery 使用了 Go 生成器,且简化了测试套件中的 mock 的生成与管理。 语言和框架 © Thoughtworks, Inc. All Rights Reserved. 39 92. Netflix DGS0 码力 | 43 页 | 2.76 MB | 1 年前3
共 23 条
- 1
- 2
- 3













