学习
一起来学 Go --(5)Goroutine 和 Channel
· ☕ 5 分钟
1. Go 中的并发模型 1.1 通信模型 CSP CSP 全称 Communicating Sequential Process ,通信顺序进程,描述的是一种并发通信模型。Process 可以使用很多个 Channel ,而 Channel 不关心谁在使用它,只负责收发数据。 Go 社区中,有一句非常著名的论断: 不要通过共享内存来通信,要通过通信来共享内存。意思是,不

Etcd、Etcdctl 应用实践
· ☕ 5 分钟
1. Etcd 基本介绍 Etcd 是一个分布式 Key/Value 的存储系统,通过分布式锁、leader 选举、写屏障(write barriers) 实现了分布式协作,提供高可用、持久化数据存储和检索服务。 工作原理 每个 Etcd 节点都存储了一份完整的数据,任意时刻至多存在一个主节点。主节点处理所有来自客户

Jenkins 插件开发
· ☕ 4 分钟
使用 Jenkins 总是离不开各种各样的插件,为了更好的实践 DevOps ,我们也应该具备开发插件的能力,使整个流程都能够在 Jenkins 中汇合。 1. Jenkins 插件 1.1 插件的生态 Jenkins 前身 Hudson 始于 2004 ,历经 16 年,依然作为主流的 CI/CD 引擎。除了,Jenkins 提供了 Master-Agent 分布式构建、Pipeline 编排的功

Kubernetes 调度器之亲和性
· ☕ 3 分钟
1. Kubernetes 中的调度器 kube-scheduler 是 Kubernetes 中决定 Pending 状态的 Pod 运行在哪个 Node 的组件,被称之为调度器。 Kubernetes 中内置了大量的调度策略,也提供了一些高级调度策略(nodeAffinity、podAffinity 等),以供用户使用,基本能够满足绝大部分的业务需求。 前面的文档 Kubernetes 之 L

一个完整的 Git 提交流程
· ☕ 1 分钟
这也是一个给开源项目提交 PR 的完整 Git 流程。 1. 本地配置 提交用户信息 1 2 git config --global user.name "username" git config --global user.email "user@email.com" GPG 配置 参考:GPG 验证提交 2. 克隆代码 首先 fork 原仓库 克隆 fork 的仓库代码 1 git clone https://github.com/yourname/django-xss-cleaner.git 添加原仓库 1 git remote add upstream https://github.com/shaowenchen/django-xss-cleaner.git 查看本地配置的远程源 1 2 3 4 git remote -v origin xxx upstream xxx 3. 日常开发 拉取最新