AWS CNI Proposal

查看原文

AWS VPS CNI K8S

本文是 aws-cni 的设计文档。AWS Kubernetes CNI 插件可用于在 EKS 中提供类似 Flannel, Calico 这类网络软件的功能 - 为 Pod 配置必要的网络。

更具体的,它的设计目标: * 为成为 kubernetes 节点的每个 ec2 实例创建多个 Elastic network interface(ENI),分配二级 IP 地址 * 为每个 Pod 挑选一个可用的二级 IP 地址,把主机跟 Pod 的网络连起来,允许 Pod-Pod, Pod-PodInAnotherHost, Pod-AWSService, Pod-DC, Pod-Internet 多个级别的通信。

它的需求是 …

read more

Whats new in Python_3_7

查看原文

Python 3.7 的新货。

  • 内建 breakpoint() 函数,在需要的地方插上 breakpoint() 就能启动调试了。以及,可以通过 PYTHONBREAKPOINT 环境变量配置想用什么软件做当调试器,例如 web-pdb
  • Data Class 单纯的数据类,可以约束乱用 dict 的现象。
  • 可以在 module 级别写 __getattr__ // 有点像 quixote 的 _q_lookup..
  • 也可以在 module 级别写 __dir()__ -> List[str]
  • time.time_ns() 可以获得纳秒时间了,适合在 performance 排查时使用。
  • DeprecationWarning 只在测试和 main 的时候启用。
  • 可用标准库的 contextvars …
read more

GlusterFS Architecture

查看原文

GlusterFS 是一个分布式的文件系统,基本存储单元是 Brick,一组 Bricks 组成一个 Volume,一个 Volume 通过 FUSE 挂载到 Mount Point 上。大多数操作的基本单元是 Volume。

GlusterFS 可以使用多种 Volume:

  • 默认:文件存储于单个 Brick 上。这也意味着数据可能因为硬件原因造成丢失。 Distributed Volume
  • Replicated Glusterfs Volume: 文件 Replicate 到多个 Bricks 上。一般首选该模式。 Replicated Clusterfs Volume
  • Distributed Replicated Glusterfs Volume: 文件 Replicate 到某个 Volume 的多个 Bricks 上。 Distributed Replicated Glusterfs Volume
  • Striped Glusterfs Volume …
read more

GlusterFS Quickstart

查看原文

安装 GlusterFS 需要至少 3台服务器,每台服务器一块 disk 装 OS,另一块放数据。需要在每台机器上把 /data 目录建在 /dev/sdb1 (假设是这块 disk),然后配置到 /etc/fstab 中,可通过 mount 立即挂载。需要启动 glusterfs-server, 配置防火墙,每台 server 需要配置对应集群机器的 peer probe。最后集群启动好以后就可以通过 gluster volume create 创建 Volume。

read more

Stellar - A Simplified Container System

查看原文

Stellar 是一个低功耗的 kubernetes 替代方案。使用 containerd 运行容器,CNI 搭建 multihost 网络,普通 DNS 做服务发现,NATS 实现集群的事件系统。

部署需要:安装 containerd, 把 sctl, stellar, stellar-cni-ipam 丢进 $BIN, 然后添加配置,在多节点上运行即可。

read more

Observability time series vs logging vs tracing

查看原文

本文就 Monitoring 涉及到的三种数据结构:Time Series, Log Event, Tracing Span 提供了通用解决方案。

  • TimeSeries: 监控的时间序列数据,自搭首选 Prometheus,买服务用 DataDog。InfluxDB 可以作为 Prometheus 的另外一个方案。不推荐 Cassandra, Elastic,写性能太差。
  • Log Event: 应用产生的日子条目,数据量大,自搭首选 Elastic 全家桶,买服务用 Splunk。这里的日志特指已经把日志解析成 JSON 这样的结构化数据。
  • Tracing:服务追踪产生的数据,首选 Jaeger(k8s), Zipkin,OpenAPM。这类服务太贵了,建议自搭。

结论:要想做好服务的 Observability,这三类数据是无论如何要收集好的 …

read more

File parts in pathlib

查看原文

本文给出文件路径的几个部分的术语:

/path/to/README.en.md:

  • root: /
  • parent: /path/to
  • stem: README.en
  • suffix: .md
  • suffixes: .en.md
  • name: README.en.md
read more

Envoy and gRPC-Web - an alternative to REST

查看原文

本文描述了这样一套框架:使用 gRPC-web 作为前端,gRPC 作为通信协议,Envoy 作为暴露 gRPC 服务的代理。如果后端的各种内部服务都选用 gRPC 接口的话,这套方法可以作为 REST 的替代品,毕竟干嘛不全部用一套接口呢。

read more

Tabnine - all-language autocompleter

查看原文

Tabnine 是一款用机器学习模型的思路做 autocompleter。经过试用我觉得对于曾经写过的代码,要写类似代码的时候表现的很惊艳。

基本思路:项目代码排除 gitignore 后以后的文件,进入 Text Domain,算出 words。写代码的时候,编辑器插件发出即时 query,比对接下来要打哪些字。

项目超过 200kb 的话需要买 license。

read more

What I learned by bringing down linkedin

查看原文

Linkedin 的 SRE 工程师搞挂了一个多小时的网站。起因是把线上环境弄脏了,回滚的时候又把一半的服务拿去做滚动升级,最后发生了雪崩 - 剩下的那一半服务器不够承载流量直到挂了。

事故管理:大部分事故都不是一个人的责任,它一定是环环相扣导致的。事故管理对事故不对人,找到原因,做出改进,就这样。

read more

« Page 3 / 54 »