Openkruise学习总结和思考
阅读了 OpenKruise 的源码实现,从中谈一些总结和思考
一个读阻塞问题的思维盲区反思
讨论一个 jedis 连接 redis 的阻塞读的技术问题,来反思做技术的思维盲区。
对云原生的一些总结思考
这几年一直在云原生 K8S 领域做些研发、设计、运维的工作,说些对云原生的一点点总结和思考,抛砖引玉
Docker 网络 host、bridge、macvlan 基本原理和验证
Docker 作为容器的主流平台,不仅仅提供了虚拟化隔离,同时也配备的网络隔离技术,并使用不同的网络驱动满足不同的场景,这篇文章对 Docker 的3种网络实现Host、Bridge、Macvlan进行模拟验证,并在实践中理解背后的基本原理。
容器网络 flannel 主要 backend 基本原理和验证
SDN(软件定义网络)改变了传统的网络世界规则,它的灵活性和开放性带来了成本的优势,如 [fastly 使用 SDN 技术构建了一个可伸缩的低成本路由器](https://www.fastly.com/blog/building-and-scaling-fastly-network-part-1-fighting-fib)。而在容器生态中,[Flannel](https://github.com/coreos/Flannel/) 为容器集群构建 Overlay 网络。网上大多数文章还是介绍的 Flannel 第一个版本 vxlan overlay 实现原理,本文介绍 Flannel vxlan overlay 第一版和最新版两种方式的基本原理及 hostgw、UDP 的实现。
Ddr:去中心化 decentralized docker registry 镜像仓库设计
Docker 作为轻量级容器技术解决应用容器化已经为广大用户使用,涵盖了应用的编译、打包、部署、测试等整个周期。镜像为运行 Docker 容器提供了基础和重要的前提,Docker Registry 提供了一个存储、分发、管理 Docker 镜像的仓库服务,在某些场景下,如跨国部署场景,要求镜像仓库服务提供更高效的上传下载,同时降低复杂度和具备服务高可用。因此,本文设计了一种镜像仓库服务的去中心化的新思路。
好用的工具集
收集一些好用的工具集,涉及到 API 设计、Database 设计、图形工具、文档工具等。
第三次写博客
这是第三次重写博客,第一次是2009年,第二次是2014年,今年已到了2018年,工作也快十年,做过也看过一些东西,但总觉得缺少思考和记录,先不管正确与否,落笔总是思考的过程,从技术认知到文字是一个过程,从文字到付诸实践又是一个过程,所以还是鼓励自己把一些技术认知写下来,一方面锻炼自己那拙笨的文字能力,另一方面自己在这个落笔的过程中也有所思考。对于写技术文章来讲,自己完全还是个新人。作为新人的我,也在摸索如何写技术文章,以什么风格去表达技术。
探讨一种更高效的代理模式
Service Mesh 提供了微服务化开发的新思路,核心思想是构建一个代理转发网络并结合控制和转发分离的做法来对成千上万个微服务间做流量、策略、安全等管理,而另一方面 Linux Kernel 提供一种运行时高效扩可编程的网络注入机制 eBPF,借此能实现 L47 层代理转发。假设借助 eBPF,作为 Service Mesh 的数据转发层,对接 Pilot、Mixer 等控制面,实现策略、流量和安全管理,是不是一种更高效的方式?这会比 Envoy 拥有更好的性能,虽然性能未必是 Mesh 首要考虑的问题,后搜索发现 Cilium 果然做了类似的尝试,详情见 [http://docs.cilium.io/en/latest/gettingstarted/istio/](http://docs.cilium.io/en/latest/gettingstarted/istio/),但对接的方式很特别,并不像 Envoy 一样,为每一个 Pod 部署一个 Envoy 容器,而是在多个 Pod 外部署一个 Cilium,以 Kubernetes Daemon Set 模式部署,为多个 Pod 进行代理,对控制器层面的 Pilot 做了定制,部署配置如下:
初识 vxlan
在云计算的服务里,我们需要在物理的二层网络或者三层网络里虚拟化出二层网络供租户使用,这个虚拟的二层网络叫做子网,由多个这样的子网组成了一个 VPC。这种软件定义网络改变这如今很多网络的玩法。
动手写了2个 xcode 插件
使用 XCode 的 XAlign 插件进行 Code 排版,但这个插件需要选中的时候进行排版,我想在保存的时候触发排版,于是稍微改造了下这个插件,同时又写了个保存时检测 JSON 格式的插件,并根据异常信息移动光标到错误处
偶遇野指针导致数组 crash 了
App 在 load 的时候任务过重影响了性能,所以很自然想做并发,我的场景是主线程对 Array 只做新增 append 操作,其他线程进行读 read 操作,只要 read 的 index 小于数组大小,自然认为不会 crash,但结果 exc_bad_access 了,写了2段测试code,fragment1 正常,fragment2 报错
我们实际造了个分治数组
We are guessing Apple,but we don't know the Apple is guessing us!我们造了一个轮子,我们用分块的数组造了一个支持大容量的数组,目的在数据量大下能加快数组的读写性能,其实完全没必要,本文重点分析 OC 语言中 `NSMutableArray` 的基本实现。
重写博客
之前在`javaeye`上写博客,还搭建过`Wordpress`(php+mysql的博客系统),但没申请主机,今天发现`GitHub+jekyll`搭建静态bolg还蛮简单,就心血来潮了,重新开始写博客;)