技术阅读周刊第十四期:Golang 作者 Rob Pike 在 GopherConAU 上的分享

技术阅读周刊,每周更新。

历史更新

What We Got Right, What We Got Wrong

URL: https://commandcenter.blogspot.com/2024/01/what-we-got-right-what-we-got-wrong.html?utm_source=changelog-news

本文是 Golang 核心作者之一 Rob Pike 去年底在澳大利亚 GopherConAU 会议上的分享;总结了 Go 语言 14 年来的做对了哪些事情、做错了哪些事情。

主要包括:

Top 10 Platform Engineering Tools You Should Consider in 2024 | by Romaric Philogène | Jan, 2024 | Medium

URL: https://medium.com/@rphilogene/top-10-platform-engineering-tools-you-should-consider-in-2024-892e6e211b85

本文介绍了作为一个平台工程师需要掌握的工具。

先定义了什么是平台工程师:
为研发人员提供平台资源进行开发,让开发人员可以在云环境中自助完成整个软件生命周期的各个环节,比如基础环境搭建、代码 pipelines、监控等。

以下是会用到的工具:

  • kubernetes:这个就不用多讲了。
  • Crossplane:用于管理多集群的 kubernetes
  • Qovery:内部开发者平台
  • Github/Gitlab CI/CD
  • ArgoCD:kubernetes 原生提供的持续部署工具。
  • Docker
  • Terraform: 基础设施自动化工具,可以通过声明式配置文件实现多云基础设施的部署和管理。
  • Datadog:监控和日志分析平台,当然也可以使用 Prometheus/Grafana 等

Load Balancing Algorithms Explained Visually

URL: https://blog.quastor.org/p/load-balancing-algorithms-explained-visually?utm_source=tldrwebdev

本文介绍了一些负载均衡算法以及其优缺点。

Round Robin_1.gif

  1. 轮询算法(Round Robin):每个请求按顺序分配到不同服务器。实现简单,但不能考虑服务器负载情况。

  2. 加权轮询(Weighted Round Robin):考虑服务器性能给各服务器设置权重,请求分配按权重比例进行。仍然不能实时反应服务器负载变化。

  3. 最少连接数(Least Connections):实时监测各服务器连接数,将请求分配到连接数最少的服务器上。实现较复杂,需要定期探测各服务器状态。

  4. 最短响应时间(Least Response Time):监测各服务器响应时间,分配给响应最快的服务器。

  5. 双随机选择(Power of Two Choices):随机选择两台服务器,将请求分配给负载较轻的一台。减少监测开销。

  6. 一致哈希(Consistent Hashing):根据请求关键信息计算哈希值,将请求分配给对应的机器范围。解决主机添加和删除问题。

  7. 其他算法如根据磁盘、内存利用率进行负载分配等。

What problem did Go actually solve for Google

URL: https://www.reddit.com/r/golang/comments/176b5pn/what_problem_did_go_actually_solve_for_google/

这是一个 Reddit 上的帖子,OP 的问题是 Rob 在之前的分享中提到 Golang 创建的原因是要解决 Google 内部的问题,但没有具体讲 Google 到底遇到了什么问题?
什么问题是几百种编程语言都无法解决的问题?

以下是一些高赞回答:

  • 更快的本地编译速度
  • 对新手来说更好理解的代码
  • 更严格的代码风格,使得大家的代码都差不多。
  • 更容易编写并发程序

总体来说, Go 主要解决的是在大型分布式系统中如何更高效地进行协作开发、实现高性能又易维护。这正是 Google 当时最关心的问题。

文章链接:

#Newletters