Weir's Note
Home
Archives
Tags
About
稳定性的模式与反模式
稳定性的模式与反模式 稳定性之于系统,就像健康之于人类,看起来重要不紧急,然而一旦失去,就追悔莫及。 稳定性是一切 0 前面的 1。 本文简单介绍下稳定的模式和反模式,大家在设计系统的时候可以多一点思考。 稳定性的反模式:集成点 每一个依赖点的都有可能有问题。 利用断路器、超时、中间件解耦和握手等模式进行防御性编程,以防止集成点出现问题。 同层连累反应 例如在负载均衡下,一台服务器的停机会
2020-09-17
sre
stability
LIVENESS PROBE 的问题
Readiness and Liveness ProbesKubernetes 提供了两种功能 Readiness and Liveness Probes,它们可以定期执行操作(例如发出 HTTP 请求,打开 TCP 连接或在您的容器中运行命令),以确认您的应用程序按预期工作。 Kubernetes 使用 Readiness Probes 来了解容器何时准备开始接受流量。当 Pod 的所有容器都准
2020-06-28
cloud-native
best-practive
Replacing iptables with eBPF in Kubernetes with Cilium
Why Cilium is awesome? It makes disadvantages of iptables disappear. And always gets the best from the Linux kernel. Cluster Mesh / multi-cluster. Makes Istio faster. Offers L7 API Aware filtering as
2020-06-19
network
cloud-native
谈谈 ACID、CAP 和 BASE
背景知识ACIDACID 是指数据库管理系统在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性: 原子性(atomicity) 一致性(consistency) 隔离性(isolation) 持久性(durability) CAP来自 Berkerly 的 Eric Brewer 教授提出了一个著名的 CAP 理论:一致性(Consistency)
2020-06-15
distributed-system
Raft 协议介绍
寻找一种易于理解的一致性算法(扩展版)论文: In Search of an Understandable Consensus Algorithm (Extended Version) 摘要Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Ra
2020-06-15
distributed-system
Dockerfile ENV 的问题
今天遇见一个小问题,大概是这样,我们的镜像是分层的,在 base 镜像里设置了一个 ENV,然后在后面一层镜像的时候 unset 掉了,但是实际运行的时候发现这个 ENV 一直存在,导致应用启动失败。花了一些时间查问题,其实本身也是 dockerfile 的设计,之前没有体系化的去看,所以这篇就记录下关于 ENV 的最佳实践。 Dockerfile reference for the ENV in
2020-05-28
cloud-native
docker
云原生交付思考
当 DevOps 遇上容器时,PPT 上往往有各种遐想的空间。实际在落地的过程中,因为公司已有成熟的发布系统,该发布系统是基于虚拟机时代的场景设计,发布主要是更新下代码和重启服务。为了兼容现有的发布模式,交付做的并不成功,和 k8s 的弹性理念存在冲突。所以我们需要打造一个以 k8s 为核心的新一代云原生 PaaS。
2020-05-25
cloud native
关于网卡中断不均衡问题及其解决方案
前不久生产碰到一个故障,一台宿主机上出现了大量的丢包,对业务造成了比较大的影响,遇到的问题还是蛮值得记录下来,所以简单的整理了下。 我们先了解几个概念: 什么是中断CPU 工作的模式有两种,一种是中断,由各种设备发起;一种是轮询,由 CPU 主动发起。 我们主要看下中断。 中断又分为两种:一种硬中断;一种软中断。硬中断是由硬件产生的,比如,像磁盘,网卡,键盘;软中断是由当前正在运行的进程所产生的。
2020-05-13
sre
linux
network
[译] A deep dive into Kubernetes controllers
原文地址 Kubernetes 运行一组控制器,它们负责处理日常任务,以确保集群的期望状态与观察到的状态一致。例如,Replica Sets 维护在集群中运行的正确数量的 pods。Node Controller 查找服务器的状态,并在服务器宕机时做出响应。基本上,每个控制器负责 Kubernetes 世界中的特定资源。对于用户管理他们的集群,用户理解 Kubernetes 中每个控制器的角色
2020-03-06
cloud-native
Linux 丢包那些事
背景最近一直在排查一些网络的问题,比如 connect timeout 、read timeout 以及一些丢包的问题,刚好想整理一些东西,方便和团队内及开发分享。 我们先看下 Linux 系统接收数据包的过程: 网卡收到数据包。 将数据包从网卡硬件缓存转移到服务器内存中。 通知内核处理。 经过 TCP/IP 协议逐层处理。 应用程序通过 read() 从 socket buffer 读取数据
2019-10-28
sre
tcp
linux
1
2
3
4
Search
×
keyword