wiki
2. 操作系统理论
- Linux IO 模型
- 多核和多处理器的区别: 多核是一个 CPU 有多个处理单元(core),多处理器是多个 CPU。现在计算机支持多个处理器,并且每个处理器有多个核。
- 其他
3. 数据结构和算法
- hash
- 一致性 hash 指南:翻译的一篇文章,虽然核心是一致性 hash,但对 hash 基础也有介绍
- Redis 集群中的 hash 算法
- 一些资料
- 加解密算法:常见对称、非对称加解密算法
- 缓存淘汰算法,最常用 LRU(最近最少使用)
- LSM
4. 数据库
4.1. 关系型数据库
4.2. 面向文档的数据库(Document-oriented databases)
4.3. NoSQL
4.4. 全文检索
4.5. TSDB
4.6. 消息中间件
5. DevOps
5.1. 系统运维
5.2. 中间件
5.3. 容器化
相关文档会逐步迁移至 云原生专题。
5.3.1. Docker
5.3.2. Kubernetes
- 官方文档
- 架构:Master-Node 通信
- 容器:镜像、容器环境变量、运行时类、生命周期 Hooks
- Ingress 服务暴露
- 实践
- 书 & 文章
- kubernetes-under-the-hood 侧重运维部署层面,涉及整体技术架构、网络、DNS 等;如果仅是关注 Kubernetes 本身,不推荐看
- 资源:各种帅帅的图,以及 Kubernetes 的资源连接
5.4. 监控告警
APM:Application Performance Management。一般会分为三大块:
分类 | 主流方案 |
---|---|
Logs(日志) | EFK,小场景使用:Loki + Grafana |
Traces(链路) | Jaeger、SkyWalking |
Metrics(指标) | Prometheus + Grafana |
5.4.1. Prometheus
- Prometheus-多年来的监控转型 翻译自 CoreOS 文章,写于 2018.8.9,介绍了 Prometheus 的历史和未来。 简单概括为:Prometheus 在 2012 年 SoundCloud 开发团队受谷歌内部的 Borgmon 项目启发开发的, 用于解决微服务架构的监控和告警问题。2016 年捐赠给 CNCF,转由社区开发和维护。 现今,Prometheus 已经是云原生体系下的监控标配。而未来将致力于做监控的标准化工作。
- Prometheus 文档(非官方) 官方文档笔记
- 基于 Prometheus 的监控告警
- Multi-Cluster Monitoring with Thanos 使用 Thanos 解决 Prometheus 的单点问题
- 运维:安装、配置参数、常见运维问题等
5.4.2. Grafana
- Grafana 开源的监控平台
5.4.3. 开源的监控告警平台
- Nightingale: 夜莺,滴滴开源
- Doraemon: 哆啦A梦,360 开源
5.6. 网络
- eBPF 技术简介 eBPF 是我见过的 Linux 中最神奇的技术,没有之一,已成为 Linux 内核中顶级子模块,从 tcpdump 中用作网络包过 滤的经典 cbpf,到成为通用 Linux 内核技术的 eBPF,已经完成华丽蜕变,为应用与神奇的内核打造了一座桥梁,在系统跟踪、观测、 性能调优、安全和网络等领域发挥重要的角色。为 Service Mesh 打造了具备 API 感知和安全高效的容器网络方案 Cilium,其底层正 是基于 eBPF 技术
5.7. 存储
企业中不同场景下使用的存储,可以用三种囊括:
- 块存储:块设备,比如 U 盘、硬盘等裸磁盘,直接提供给主机或者服务器访问
- 文件存储:在块设备基础上添加了文件系统,通过文件系统对外提供存储服务(NAS)
- 对象存储:以 REST API (比如业内通用的 AWS S3)的方式对文件对象进行 PUT、GET 操作
开源分布式存储系统:
6. 程序设计
6.1. 前端
6.2. C++
6.3. Go
- 构建环境:安装、环境配置、工具链等说明
- Package 发布:一个 Go 的 Github 项目如何发布
- 包管理工具
- 时间格式化与解析
- 构建 Go 项目最佳实践 侧重心得体会 持续更新
- Go 语言 FAQ 一些常见的语言使用和设计问题
- 资源:一些资源链接