The website uses cookies. By using this site, you agree to our use of cookies as described in the
Privacy Policy
.
I Agree
My Markups
Toggle navigation
Login
Upgrade
richard yuwen
768 articles
My Web Markups - richard yuwen
卓越的经理会和他的团队一起分析一个特定任务或事件失败的原因
极大的热情在团队、部门、公司范围内表彰员工的杰出表现
期望自己的团队一天工作整8个小时,那么他自己也要工作同样长的时间
尊重他的团队的专业技能、 时间安排以及各种诉求
对你的时间估测进行改动的话, 他会征得你的同意,而不是强行地进行更改
使用一些工具来跟踪和汇报每天的开发任务
各种可能的方法关注你的工作量
管理时间、任务、需求、规范、资源和人员的经理
好的经理管理的是任务
技术能力参与到团队的技术讨论中去,或是在困难的情况下给予方法论上的建议和帮助
要有技术的基础
首先是一个有技术背景的人
你工作上成功的概率基本上正比于你老板的职业技能和工作的有效性
软件开发的周期变得短
软件开发的模式有发生了巨大的变革
如何成为一位卓越的技术经理?
15 annotations
mp.weixin.qq.com
394
谷歌进行了很多尝试,积累了大量经验。Kubernetes 项目的目的就是将 Borg 最精华的部分提取出来,使现在的开发者能够更简单、直接地应用。它以 Borg 为灵感,但又没那么复杂和功能全面,更强调了模块性和可理解性
谷歌的容器之路:从Borg到Kubernetes - InfoQ
1 annotation
www.infoq.cn
429
正念的核心理念就是专注于当下
什么也不要想!专注于呼吸
注意力重新拉回到呼吸上
真实有效地提升你的专注力
在学习上可提高你的效率,增加你多任务处理能力,增强记忆力。
皮层越厚,我们学起来越轻松
大脑皮层表面积更大,大脑灰质更厚
年龄与灰质之间的关系
改善你专注力的硬核操作
(4 封私信 / 12 条消息) 冥想的具体做法是怎样的? - 知乎
9 annotations
www.zhihu.com
347
冥想,或者洗个热水澡,放点舒缓的音乐
好好放松你的大脑,让它得到充足的休息
顾名思义,不能有丝毫放松,时刻保持高度集中。这时候一定要把所有干扰排除干净,准备一个好的罐子,剩下的就开始闷头学习吧。
一个成年人的极限专注时间是90分钟
有间隔的练习,穿插安排其他的学习内容
一天连续学10个小时,效果比不上10个断开学的1小时
心锚
培养读书的习惯
将它们从大脑中擦除,既保留了想法,又让大部分注意力留在了学习上
把你的想法先写在纸上
突然脑子里蹦出学习外的想法,如果不能立刻去完成它,大脑就因为害怕丢失而躁动不安,为了缓解这种不安,它就会主动将大量注意力转移过去,也就是走神
专注就是注意力越聚焦越好。
避免多任务切换
和谐的「良性压力」
想要改变现状,千万不要把自己逼得太紧,「过于用力」只会适得其反。
专注时每被打断1次,就需要至少15分钟恢复到原来的专注程度
5分钟,立马就能整理出一个整洁的桌面。
保证桌面的整洁,过多杂物会悄无声息的夺走注意力
罐子工作法
降低外压的环境,减少无意义的内耗,避免精力分散
学霸都是一次只会专注做一件事情
我们的大脑是可修正的。好习惯可以塑造得更好,坏习惯可以让它逐渐消失掉。
神经有可塑性,它们是会改变的
(4 封私信 / 12 条消息) 怎么才能心无旁骛地学习? - 知乎
23 annotations
www.zhihu.com
355
每个Pod创建containerd-shim进程
runc-v2版本
如何优雅地使用containerd?这里有一份必读的技巧攻略 - 简书
2 annotations
www.jianshu.com
356
provision cloud services directly from the comfort of native Kubernetes tooling
kubernetes-sigs/service-catalog: Consume services in Kubernetes using the Open Service Broker API
1 annotation
github.com
648
Most npm packages are modules
module is any file or directory that can be loaded by Node.js' require()
package is a file or directory that is described by a package.json
19 - Understanding packages and modules | npm 中文文档
3 annotations
www.npmjs.cn
501
attach eBPF programs to userspace functions
attach eBPF programs to kernel functions
blk_start_request
a BPF hash (which the program uses to keep track of when the request starts / finishes)
bytecode language into native code
own bytecode language
can’t access arbitrary kernel memory
filtering algorithms people were using were inefficient
copy all the packets into userspace
bpf syscall
communicate with userspace programs through BPF maps
run in the kernel
100-200 CPU instructions
BPF bytecode program into native code
BPF virtual machine
BPF bytecode
TCP port
figure out the length of the IP header
packets are just arrays of bytes
CFG
copy all the packets
Notes on BPF & eBPF
21 annotations
jvns.ca
480
短时间内将软件部署到生产环境
为什么需要CI/CD_Kubernetes中文社区
1 annotation
www.kubernetes.org.cn
652
--manifest-url-header
kubelet | Kubernetes
1 annotation
kubernetes.io
521
QoS控制技术保障了每个用户的GPU资源不被其他租户抢占
实现不同用户之间的强隔离,有效防止信息泄漏
安全隔离技术
基于工作负载需要的资源分配
KVM架构与NVIDIA合作研发了异构计算产品
深度学习推理场景对GPU的计算资源消耗可能仅仅是训练阶段的数十分之一,甚至更少
计算资源过剩
深度的软硬件结合及优化才能发挥其性能优势
云端异构计算并非单纯地堆积硬件性能
虚拟化环境中更为灵活
Turing架构
可加速深度学习
NVIDIA Tesla P4 GPU
单颗物理GPU更细粒度的服务
公共云虚拟GPU异构计算产品VGN5i实例
国内首家,阿里云发布基于公共云的虚拟GPU服务 – NVIDIA 中国官方博客
15 annotations
blogs.nvidia.cn
666
应用治理架构
统一的分发、上线、运维平台
云原生Operator框架实现了各类分布式中间件的标准化生命周期管理
构建开放、标准化的应用生态
新发布!华为云开启Cloud Native 2.0时代
4 annotations
www.toutiao.com
636
定义、开发和部署的最小单位
集群里的计算单元是漂浮的
友好的 Web 界面,用于展示和操作 Openshift 的资源
)
镜像仓库(Image Registry)
容器的调度是封装的 Kubernetes
Kubernetes概念
底层Docker格式的容器镜像
完整可用的软件系统
数据库服务、日志服务、监控服务
计算、存储、网络以及其他硬件资源
数据中心九层设施
什么是openshift - 菜鸟当家 - 博客园
12 annotations
www.cnblogs.com
594
If the service name is not registered, the server returns a NOT_FOUND GRPC status
grpc/health-checking.md at v1.15.0 · grpc/grpc
1 annotation
github.com
652
Vue 提供了一个官方的 CLI,为单页面应用 (SPA) 快速搭建繁杂的脚手架
npm install vue
Vue 构建大型应用时推荐使用 NPM 安装[1]。NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用
NPM
CDN
在 NPM 包的 dist/ 目录你将会找到很多不同的
CLI 工具假定用户对 Node.js 和相关构建工具有一定程度的了解
安装 — Vue.js
7 annotations
cn.vuejs.org
546
bootstrap.min.js
popper.min.js
jquery-3.5.1.slim.min.js
bootstrap.min.css
Bootstrap · The most popular HTML, CSS, and JS library in the world.
4 annotations
getbootstrap.com
462
直写式缓存
写回式缓存
读写分离
数据库的连接数是有限的
缓存架构的理论分析 - 知乎
4 annotations
zhuanlan.zhihu.com
493
vue init webpack my-project
common workflow recipes
Introduction · GitBook
2 annotations
vuejs-templates.github.io
503
markdown来组织思路和文章结构
Roam Research
Notability
ResearchGate
(4 封私信 / 22 条消息) 有哪些好的科研习惯? - 知乎
4 annotations
www.zhihu.com
556
Error Boundary 标签
vue提供的handleError句柄
sourceMap就是一个文件,里面储存着位置信息。
sourceMap
前端工程化的时代,工程化导出的代码一般都是被压缩混淆后的
Webpack工程化
返回true 就不会被上抛了
window.onerror
从0到1,Vue大牛的前端搭建——异常监控系统 - 知乎
8 annotations
zhuanlan.zhihu.com
286
整个MVVM整合Admin-LTE成功
挂载vue.app
改造页面,使之能够挂载我们的vue app
[SpringBoot+VueJs] 3.2 Admin-LTE介绍 - 简书
3 annotations
www.jianshu.com
523
scss/ and js/ are the source code for our CSS and JavaScript
Contents · Bootstrap v4.5
1 annotation
getbootstrap.com
431
自由文本搜索
备份
异步 vs 同步复制
复制
分片
用户 ID 与数据库分片的映射
数据存储在多台计算机上。我们借助分片
存储用户密码的哈希值
保证发送 Webhook“至少一次
客户端库
AJAX
网络
服务器
怎样构建一个完整的技术平台?以一个简单的电商平台为例-InfoQ
13 annotations
www.infoq.cn
600
ImagePullSecrets
Pre-pulled Images
Nodes to Authenticate
keys to read images from them
avoid using the latest tag
different versions of the same series of images
Images | Kubernetes
6 annotations
kubernetes.io
460
flexbox
spacing
aligning
hiding,
showing
Utilities for layout · Bootstrap v4.5
5 annotations
getbootstrap.com
419
dlv exec
-w disable DWARF generation 禁用调试信息
-s disable symbol table 禁用符号表
适用于所有mac、windows以及不方便在本地进行调试的技术宅
kubelet dlv启动命令是
K8s远程调试,你的姿势对了吗? - 云+社区 - 腾讯云
5 annotations
cloud.tencent.com
369
连接池
Go 连接池相关总结:HTTP、RPC、Redis 和数据库等
1 annotation
www.toutiao.com
387
col-md-offset-
偏移列
Bootstrap 网格系统 | 菜鸟教程
2 annotations
www.runoob.com
387
时间统计法”充分的利用了自己的时间
控制欲望
远离坏习惯
张弛有度,认识自己
规律化的生活,用习惯代替毅力
其实最好的身体状态,就是感觉不到特殊的状态。
无氧运动可以使我们的身体变得更加强壮、增加抵抗力
有氧运动可以调整和增强我们的心血管功能
有一个很少人知道的真相是在当人体发育完毕后我们的代谢水平会逐步下降
奇特的一生
他每天要睡10个小时!只有充足和规律的睡眠才能让人在白天精神抖擞
务必保证自己所需的充足睡眠,这才是高效的根本
别玩手机了,手机不会让你得到休息
交换使用你大脑的不同区域
短时间内(每次60秒或更短)进行剧烈运动
全身心地休息15分钟。
精力管理
(5 封私信 / 22 条消息) 如何保持精力充沛,有效适应困、倦、疲、乏等周期型生理状况? - 知乎
17 annotations
www.zhihu.com
421
解耦
每个数据表作为一个实体类,实体类封装的属性对应到表中的字段,这样的话,实体在贯穿于三层之间时,就可以实现增删改查数据了
用户在界面上轻松的增、删、改、查,那么数据库中也要有相应的增、删、改、查,
三层架构详解 | 菜鸟教程
3 annotations
www.runoob.com
645
ES6标准引入了rest参数
arguments类似Array但它不是一个Array
永远指向当前函数的调用者传入的所有参数
只在函数内部起作用
免费赠送的关键字arguments
函数定义和调用 - 廖雪峰的官方网站
5 annotations
www.liaoxuefeng.com
335
转译器(transpiler)来支持未来的语言特性
m
task runner
模块打包器
包管理器
task runner(npm脚本)
babel或TypeScript
转译代码意味着将一种语言的代码转换为另一种语言的代码
模块打包工具
HTML定义了一个叫 moment的全局变量
JavaScript最初被设计成只能在浏览器中运行,出于安全的考虑,它不能访问客户端计算机的文件系统,因此JavaScript不支持这一特性
moment.min.js在index.js加载之前被加载
【译】向恐龙解释现代JavaScript - 知乎
12 annotations
zhuanlan.zhihu.com
363
本地二进制文件编译Kubernetes
docker镜像编译
本地二进制可执行文件
编译和运行Kubernetes源码_Kubernetes中文社区
3 annotations
www.kubernetes.org.cn
368
用 key 管理可复用的元素
条件渲染 — Vue.js
1 annotation
cn.vuejs.org
478
Linux 内核开发工作流程被视为软件开发行业黄金标准的原因
思维方式也能让我们很好地服务于任何软件项目
信任的文化
持续改进的文化
并对其进行测试以确保它们能正确集成
持续测试和集成
明确的 commit 日志
永远不要 rebase 公共分支
commit 不能破坏构建
每次commit只能做一件事
1991-2002年
一切都变得很难扩展和跟踪
Linux 具有比世界上任何软件项目都好的工作流程
两个月新增 800000 行代码,Linux 内核维护为什么不会崩? - 知乎
13 annotations
zhuanlan.zhihu.com
597
命令行工具 (CLI)
注册表(registry)
网站
世界上最大的软件注册表
01 - npm 是什么? | npm 中文文档
4 annotations
www.npmjs.cn
393
Podman等工具设计出来的时候就是本着服务于K8S的目的
单纯的替换CRI的话可能是对于资源消耗以及容器启动速度都是有明显加成的
依赖其余的守护进程,它能支持非Dockerfile的构建文件
vfs存储驱动程序会耗尽大量磁盘空间。它类似于Dockerfile
Buildah用来构建OCI图像
推,拉和复制镜像来处理Docker和OC镜像
容器的进程是 podman 的子进程
没有 daemon
Podman 的使用体验和 Docker 类似
单独的项目叫 libpod
接口抽象化
进程树并操纵一些底层系统资源
用户空间工具
映像
控制组
名称空间
内核轻量级的操作系统层虚拟化技术
迁移的可能性
新的架构和老的架构的区别
Podman+Skopeo+Buildah
下一代容器架构已出,Docker何去何处?看看这里的6问6答!! - 知乎
20 annotations
zhuanlan.zhihu.com
698
<router-view>
注册了一个router
改造main.js
不同的页面其实是一个组件,而不是通过去后台请求发来的HTML/FTL文件
[SpringBoot+VueJs] 3.3 VueJs的一些基础知识 - 简书
4 annotations
www.jianshu.com
567
数据分析、信号处理和机器学习中的矩阵方法
86岁还在录网课:MIT教授Gilbert Strang最新「线性代数」课程上线 - 知乎
1 annotation
zhuanlan.zhihu.com
659
T检验(Student’s t test)
学过就忘记,
做数据分析不懂统计学很可怕!_改版
2 annotations
www.sohu.com
581
kuberuntime_manager.go
创建cgroups
syncPod
深入分析kubelet(2)——创建Pod - 简书
3 annotations
www.jianshu.com
684
cgroupv2 support meta issue · Issue #2315 · opencontainers/runc
github.com
592
语义化版本
13 - 如何使用语义化版本 | npm 中文文档
1 annotation
www.npmjs.cn
461
1080 × 594
414 × 598
编辑-云原生应用交付调研
2 annotations
km.sankuai.com
605
Private, only users who are members of the project can pull images
Images cannot be pushed to Harbor before a project is created
Harbor docs | Create Projects
2 annotations
goharbor.io
640
preheat action is policy driven
Harbor docs | Preheat Images
1 annotation
goharbor.io
571
obtain the registry’s CA certificate
Registry Certificate
Registry V2 API
Harbor docs | Pulling and Pushing Images in the Docker Client
3 annotations
goharbor.io
655
Service Mesh Interface(SMI)
阿里巴巴云原生架构实践及热议技术解析-InfoQ
1 annotation
www.infoq.cn
632
“能力”的描述文件
开发一个类 PaaS 平台应该是比较容易的
Dapr sidecar 和 Istio 来完善应用层中间件与流量治理能力
生产可用的平台层模型的基础上,继续建设面向开发者的用户侧模型
OAM 模型和它的 Kubernetes 实现 KubeVela 项目,本身就是阿里云原生应用基础设施的核心组件
专访 CNCF 大使张磊:让云原生不再是大厂专属
5 annotations
mp.weixin.qq.com
638
企业级负载均衡器为Master节点上的服务和Infra节点上的服务提供负载均衡
外置存储作为持久存储
多台虚拟机作为Node节点
3台虚拟机作为Infra节点
3台虚拟机作为Master节点
BuildConfig对象中可以直接包含Jenkins Pipeline的内
输入参数构建出目标对象的过程
浏览器可访问的应用域名
将部署好的应用服务通过域名发布到集群外供用户访问
容器去构建、部署和编排应用的应用平台
一文读懂OpenShift总体架构设计 - DockOne.io
10 annotations
www.dockone.io
643
公司的基因。正是因为他们自己长期使用容器,长期实践DevOps
OCP为核心的泛PaaS
400多种容器镜像
BuildConfig
学习技术要学有生命力、生态好的,至少在整明白之前,市场需求还很旺盛
众多开源项目如何在企业中组合使用,迅速构建知识体系,形成战斗力
部署、运维、或者查找文档,都比Kubernetes要方便很多
OCP是众多开源项目的集大成者
OpenShift作为企业级容器平台,它是一盏打开从PaaS到DevOps和微服务的大门
先攻破开发,后打通运维
面向于开发
DevOps早都有方法论
Kubernetes因OCP被企业级客户所接受
OCP因Kubernetes而重生
OCP全球案例超过1000个
DevOps的PaaS平台的产品
客户的应用运行的更快、开发的更快
客户敏态业务的价值是什么呢
敏态、稳态双模IT
Docker使容器具备了较好的可操作性、可移植性,Kubernetes使容器具备企业级使用的条件。而企业级的容器平台,又成为了PaaS、DevOps、微服务新一代的基础架构
红帽随即宣布与谷歌合作,推广Kubernetes。这也奠定了OpenShift在业内今日的影响力
容器的镜像构建、打包等技术
可操作性和实用性
客户自己了解了容器后,寻找能够提供企业级容器解决方案的厂商
IT厂商推动虚拟化技术在客户处的落地
容器方案与客户的运维和开发部门都可以谈
容器的起点就是面向应用
容器是直接用宿主机的操作系统来欺骗容器的应用
虚拟机用假的CPU、内存和网络欺骗操作系统
红帽份额为44%
业容器平台(ECP)
一句话说清OpenShift的核心价值 - DockOne.io
31 annotations
www.dockone.io
611
数据中心和可用性区域
基础设施密度
CI / CD管道(现有和新的)将如何与平台集成
平台将主要由开发人员使用
失败域”
微服务标准化”策略
你需要知道谁将使用你建立的这个平台
PaaS平台OpenShift企业部署的“脑图” - DockOne.io
7 annotations
www.dockone.io
611
任务管理工具的几个缺陷
用甘特图做项目管理,让你的规划更清晰 - 知乎
1 annotation
zhuanlan.zhihu.com
648
自动化流程工具S2I(SourcetoImage)
微服务治理的重要性
缩短产品上市的时间
提高应用从研发到上线的效率和速度
自动化的流程,开发人员可以快速进行应用的构建、容器化及部署
稳定、安全、高效的容器应用平台
DockOne微信分享(一九五):智融集团基于OpenShift的容器化PaaS平台实践 - DockOne.io
6 annotations
www.dockone.io
560
OpenID Connect (OIDC)
goharbor/harbor: An open source trusted cloud native registry project that stores, signs, and scans content.
1 annotation
github.com
659
可以被部署
持续交付的目标是拥有一个可随时部署到生产环境的代码库。
持续交付可自动将已验证的代码发布到存储库
构建、测试、发布软件能够更加地快捷、频繁和可靠
十分钟认识DevOps、CI、CD - DockOne.io
4 annotations
www.dockone.io
642
BuildConfig template完成对build的定义
Openshift Build - DockOne.io
1 annotation
www.dockone.io
628
Grant permission to the robot account
Robot Account
Harbor docs | Create Robot Accounts
2 annotations
goharbor.io
653
包过滤产生了巨大的性能提
BSD Packet Filter
BPF介绍 - 简书
2 annotations
www.jianshu.com
491
特定名字或者标签的images到生产环境中
生产环境模板
开发环境模板
生产环境能够拉取在开发环境中产生的images
设置权限
创建用户
开发和运维的项目
开发和运维分开到不同的项目
允许开发和运维团队在一起工作,而且仍然让他们维护各自关注和控制的领域
创新的产品和服务才是真正的挑战
创新变成产品的能力
对很多公司来说最困难的事情之一就是发布管理
区别于Kubernetes这种容器编排系统的最主要的地方
PaaS的共通之处
对API和CLI等接口进行了自己的封装
OpenShift仅仅是在Kubernetes基础之上架设了自己的WebUI
OpenShift V3 应用发布部署的简单场景演示 - DockOne.io
16 annotations
www.dockone.io
573
Type configuration
disaster recovery
kubernetes-sigs/kubefed: Kubernetes Cluster Federation
2 annotations
github.com
550
kubectl get all
kubectl api-resources
How to List all Resources in a Kubernetes Namespace - Studytonight
2 annotations
www.studytonight.com
611
Modularization(模块化)与Customizable(定制化)
Annotations设定联邦策略时,就会无法正常运作
弹性不佳
控制平面组件会因为发生问题,而影响整体集群效率
混合云(Hybird Cloud)
多云(Multi-cloud)
跨集群的服务发现
提升应用(服务)的可靠性
分散工作负载(容器)
编排策略在多个集群进行应用(服务)部署
跨集群的资源编排
Federation API资源来统一管理
不同公有云供应商(Cloud Provider)上
跨地区(Region)
自动化机制来将工作负载实例分散到不同的集群中
跨集群服务发现设定。
CRD 方式新增了四种API 群组
KubeFed: Kubernetes Federation v2 详解_Kubernetes中文社区
17 annotations
www.kubernetes.org.cn
680
controllers、operators 和 CRDs 等功能来简化日常操作,并为开发者提供更完整的体验,那就更好了
Ingress 来整合我们的预发布环境中的 ELB
Open Policy Agent 来降低各种安全风险
Kustomize
分布式跟踪
Tekton 和 Argo Workflows 作为我们新的 CI/CD 平台
Consul、Vault 和 Consul 模板进行配置管理
Kubernetes 项目都使用了 configmap 和 secret 对象
Grafana 的 Loki
Kubernetes 是一种 PaaS 解决方案,事实并非如此,Kubernetes 是一个用于构建 PaaS 解决方案的平台
开发和生产环境的一致性
复杂的持续集成流水线稳定运行
新的集成环境并运行自动化测试
共享预发布环境
快速重构微服务
遵循 DevOps 理念,才能带来很多好处
正确部署和操作应用程序也具有一定的学习曲线
指标、日志、服务发现、分布式追踪、配置和 secret 管理、持续集成 / 持续部署、本地开发体验、根据自定义指标自动扩展都是需要关注和做出决策的问题
我的两年Kubernetes使用经验总结-InfoQ
18 annotations
www.infoq.cn
589
开箱即用的工具
跨多个云部署Kubernetes
Rancher容器管理平台是基于Kubernetes来构建的
6个出色的Kubernetes发行版,哪款最适合你? - DockOne.io
3 annotations
www.dockone.io
611
成员集群(Member Cluster,以下简称 M 集群
主集群(Host Cluster
KubeSphere 联邦
2 annotations
kubesphere.io
660
持续交付
云原生十五要素
Heroku 的创始人 Adam Wiggins
云原生体系下的技海浮沉与理论探索-阿里云开发者社区
3 annotations
developer.aliyun.com
670
Helm 的版本管理机制
config values yaml文件
输入各种参数最终自动生成所需要的Helm指令
分发helm chart和docker image
自动发布到测试环境
docker image自动填入Helm 包并将打好的helm package提交到JFrog上
CD流水线确保有一种自动化的方式将制品包推送到目标环境上
负责自动将应用程序交付到选定的基础架构环境
构建,打包和测试应用程序
Allure report
SonarQube
浅谈一家全球电商在Kubernetes环境上的CI/CD落地与实践_集成
11 annotations
www.sohu.com
617
maven-release-plugin
B-1.0-20081017-020325-13.jar
一次提交就更新一个版本,这明显不是正确的管理办法
Maven版本管理-Maven Release Plugin插件 - Mark·Hu - 博客园
3 annotations
www.cnblogs.com
634
配置Maven部署构件
Nexus入门指南(图文) - Maven中文 - ITeye博客
1 annotation
www.iteye.com
632
环境下的配置文件也不太⼀样
Kubernetes包管理工具-Helm3安装 | 邹坤个人博客
1 annotation
blog.z0ukun.com
637
Helm 测试
Helm 3 默认添加了针对 Kubernetes 对象的 OpenAPI 验证
它应该只是一个在 Kubernetes API 上执行操作的工具
Helm 现在是一个客户端工具
你不得不了解 Helm 3 中的 5 个关键新特性_Kubernetes中文社区
4 annotations
www.kubernetes.org.cn
604
线上诊断的能力
腾讯大手笔开源整个容器平台,20年技术积累首公开-InfoQ
1 annotation
www.infoq.cn
637
distribute a self-signed CA certificate to all clients
certificates.k8s.io API to provision x509 certificates
server certificate
Certificate Signing Request (CSR)
server.key
ca.crt
ca.key
possible IPs and DNS names
server certificate and key
CA's new root certificate
Certificates | Kubernetes
10 annotations
kubernetes.io
597
save a chart directory to local cache
OCI-based registries
Helm | Registries
2 annotations
helm.sh
625
helm install 命令
Helm | 使用Helm
1 annotation
helm.sh
608
升级Helm
自定义Chart
安装Chart
查找Chart
release 的版本是递增的,每次安装、升级或者回滚,版本号都会加1,第一个版本号始终为1
REVISION已经变成2
--generate-name
--set name=z0ukun
将索引和Chart置于服务器目录中
索引文件和对应压缩包
Kubernetes包管理工具-Helm3使用 | 邹坤个人博客
10 annotations
blog.z0ukun.com
542
default release information storage to Secrets in the namespace of the release
Helm | Advanced Helm Techniques
1 annotation
helm.sh
646
Istio, Kiali and Jaeger out-of-the-box to support your adoption of microservices
out-of-the-box advanced CI/CD features
make developer’s daily life easier
do updates and regression tests whenever there is a new version of one of these components
ONE component among MANY others
Pod Security Policies
developer experience over kubectl
extra power and simplicity
Enterprise Kubernetes with OpenShift (Part one)
8 annotations
www.openshift.com
660
集群 Agent 以外
授权集群端点
产品架构 | Rancher文档
2 annotations
docs.rancher.cn
600
OCI integration
a workflow for creating, installing, and managing charts
Helm Hub
helm create diy
adding repositories
view the history of installed packages
Install packages
Helm Go SDK has been refactored for general use
removal of Tiller
Helm | Helm 3.0.0 has been released!
9 annotations
helm.sh
615
information in Secrets located inside of Kubernetes
a chart and configuration to build a release
Helm Library
Helm Client
release is a running instance of a chart
config contains configuration information
chart is a bundle of information
Kubernetes packages called charts
Helm | Helm Architecture
8 annotations
helm.sh
610
kubelet: add initial support for cgroupv2 by giuseppe · Pull Request #85218 · kubernetes/kubernetes
github.com
435
openAPIV3Schema
crontabs.stable.example.com
Extend the Kubernetes API with CustomResourceDefinitions | Kubernetes
2 annotations
kubernetes.io
633
communication to the Kubernetes apiserver
authenticate the request from the Kubernetes apiserver
proxy the request to the extension apiserver
x509 certificates to authenticate itself to the extension apiserver
Extension apiserver
Configure the Aggregation Layer | Kubernetes
5 annotations
kubernetes.io
611
low latency networking to and from the kube-apiserver
run an extension API server in Pod(s)
Extending the Kubernetes API with the aggregation layer | Kubernetes
2 annotations
kubernetes.io
652
Operator pattern is used to manage specific, usually stateful, applications
adding a Custom Resource to Kubernetes
Extending Kubernetes | Kubernetes
2 annotations
kubernetes.io
683
面向未来的云原生平台架构
该流程能够无缝接入云原生生态中的任何应用管理能力
应用平台本身架构彻底模块化,其所有的能力都是可插拔的
KubeVela 模型层
Trait 一定能够绑定于某种 Workload Type
独立的、可插拔的插件
Kubernetes 生态作为自己的“插件中心”
任何 PaaS 专属的小生态都显得太苍白无力
开源社区已经有了 Kubernetes 生态这样一个近乎“无限”的能力池
插件能力和插件中心
金丝雀
蓝绿发布策略
PaaS 这里,要支持上述任何一个能力,都必须对 PaaS 进行一轮开发
渐进式灰度发布
自定义 metrics 来做水平扩容
运行一个 定时任务
PaaS 的用户体验虽好,但却往往是不可扩展的
可扩展性
研发效能的提升
简单友好的用户体验
应用生命周期管理
比 Kubernetes 本身还复杂的项目
Kubernetes 上的 Heroku
深入解读:KubeVela 与 PaaS 有何不同?_Kubernetes中文社区
23 annotations
www.kubernetes.org.cn
637
身份认证,生产环境一般使用证书进行认证,其认证所需要的信息会放在 kubeconfig 文件中
直接连接到集群的 Kubernetes API Server
Rancher 设置的 webhook
直接通过下游集群(不经过 Rancher)进行认证的原理 | Rancher文档
3 annotations
docs.rancher.cn
694
安全策略和实施集成在基础架构
安全可独立部署的精细化隔离方案
账号体系,明晰应用的所有权和访问权限
端到端的全链路可信的安全解决方案
安全的云原生架构
金融行业肯定是需要云原生的
(12) 当金融科技遇上云原生,蚂蚁金服是怎么做安全架构的?_金融级分布式架构SOFAStack - SegmentFault 思否
6 annotations
segmentfault.com
622
业务应用快速上线
申通快递 双11 云原生应用实践-阿里云开发者社区
1 annotation
developer.aliyun.com
639
上层要补足非常多的能力才能真正把Kubernetes用于生产环境,特别是金融行业的生产环境
K8S之上塑造一个PaaS平台的产品价值主张
业务研发与基础技术更加的解耦
原生发布能力
可灰度、可监控、可应急
(12) 含ppt下载丨云原生应用PaaS平台的建设实践_蚂蚁技术 - SegmentFault 思否
5 annotations
segmentfault.com
627
提高金融行业客户核心业务生产率
谐云DevOps赋能浦发银行数字化创新_Kubernetes中文社区
1 annotation
www.kubernetes.org.cn
656
Host 集群同时承担着 API 入口的作用
被 Host 集群所管理的集群称为 Member 集群
控制平面所在的集群称之为 Host 集群
基于开源 KubeSphere 构建跨多集群的云原生 DevOps 平台_Kubernetes中文社区
3 annotations
www.kubernetes.org.cn
609
不断的灰度上线,由点到面的策略推动
kubernetes在腾讯游戏的应用实践_Kubernetes中文社区
1 annotation
www.kubernetes.org.cn
615
许我们可以通过像 Helm charts 这样的方式来尝试表达一个可部署的应用
OAM 的 specification (OAM 规范) 在设计上天然是可扩展的
Open Application Model 与 Kubernetes 并没有强耦合
应用在具体部署环境中的运维特征
部署配置文件来实例化这个待运行的应用
应用组件(Components)
应用描述就可以彻底与基础设施部署和管理应用的细节分开
重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源
7 annotations
mp.weixin.qq.com
574
annotations
labels
deletionTimestamp
creationTimestamp
generation
resourceVersion
uid
name
namespace
POST, PUT, DELETE, and GET
create, update, delete, or retrieve
prefixing each binary chunk with a byte indicating its channel
leverages SPDY channels
upgradeable HTTP connections
Naming conventions
StatusServiceUnavailable
lower case and be valid DNS subdomain
CamelCase and singular
all lowercase and plural
a subdomain your group or organization owns, such as "widget.mycompany.com
domain name form - the Kubernetes project
"pod status" resource (that acts on "Pod" kind)
the kind "Pod" is exposed as a "pods" resource
API Group
Resource
Kind
should
schema
ease client development
community/api-conventions.md at master · kubernetes/community
29 annotations
github.com
540
Subject Alternative Name
Subject Alternative Names
SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析
openssl 生成证书上 grpc 报 legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0 - jackluo - 博客园
3 annotations
www.cnblogs.com
659
开源的 Kubernetes 插件
Crossplane · Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)
1 annotation
jimmysong.io
664
部分资源集群进行架构升级以及灰度替换生产实例两种方式
CRD + Operator方式完成业务功能的适配和扩展
APIServer 和 etcd 缺少租户级别的服务保障能力
弹性云化集群
3小时内交付可立即使用的包含数千个 Nodes 的 Kubernetes 集群
APIServer 加入自定义索引
DaemonSet 非常高阶,尽量不要采用这类设计
资源的动态使用以及业务自动化运维都对 Kubernetes 的稳定性和性能带来的巨大的挑战
调度引擎中引入了动态资源调度能力和任务画像系统
共享资源的实例可分钟级完成平滑切换
资源水平伸缩能力的效率限制
波峰波谷不重叠的
统一资源调度
深入Kubernetes 的“无人区” — 蚂蚁金服双十一的调度系统-阿里云开发者社区
13 annotations
developer.aliyun.com
666
容器网络——从CNI到Calico(360搜索) - DockOne.io
dockone.io
603
每周需要交付多个测试版本进行持续验证
提升效率,加快交付速度
基于Kubernetes 的CI/CD实践_Kubernetes中文社区
2 annotations
www.kubernetes.org.cn
660
facilitate communication with the Kubernetes controllers
helper containers
CSI volume driver
community/container-storage-interface.md at master · kubernetes/community
3 annotations
github.com
405
网络安全规则的动态配置
工作负载可以在没有IP封装或网络地址转换的情况下进行通信
Calico on Kubernetes 从入门到精通_Kubernetes中文社区
2 annotations
www.kubernetes.org.cn
691
Sidecar里面就可以实现原有SDK客户端实现的各种功能,如服务发现,负载均衡,路由等等
消息系统
数据库访问
Service Mesh产品会成为应用和基础设施/中间件之间的桥梁
请求劫持到Sidecar
加强和改善应用运行环境(即云)来帮助应用
中间件下沉到基础设施
云原生涉及到的面非常广,对开发测试运维都会有影响
加密和解密的过程对于原有应用是透明的
业务动态配置的客户端
目标服务的标识
非业务需求相关的功能都被移到云
2017 年底,kubernetes 胜出
2013 年 docker 出现,容器技术成熟
2000 年前后 x86 的虚拟机技术成熟
Pivotal,云原生的提出者,是如何定义云原生的
畅谈云原生(上):云原生应用应该是什么样子?-InfoQ
16 annotations
www.infoq.cn
650
kubernetes 的 CRD + Controller 模型
应该以 kubernetes 为底座进行能力建设
安全容器技术
HeroKu 提出的 12 factor 应用
闭环循环
把方便留给别人,把麻烦留给自己:云应该让应用更方便
要10%的流量去v2版本,其他的去v1版本
命令式和声明式
服务注册 + DNS 信息同步 + 流量透明劫持 + Sidecar 逻辑处理
服务注册信息中的服务域名和 IP 地址信息(典型如 k8s 中使用 ClusterIP)导入到 DNS 服务器中
域名来做标识符,从而让客户端可以发起一次 DNS 解析请求到 DNS 服务器
升级失败时的回退
两次流量劫持,称为双跳
单跳,服务器端单跳
“单跳”,客户端单跳
请求的原始目标地址和端口信息(original_dest)得以保留
透明劫持
服务发现/负载均衡/实施各种路由策略/认证/加密等一系列能力
iptables 流量劫持方案
流量透明劫持 是我们目前比较认可的动态赋能方式之一
应用本身没有进行轻量化改造,未能使用云提供的能力
云原生的演进过程,不仅仅需要云的努力,也需要应用作配合
将复杂留给云,将简单留给应用
畅谈云原生(下):云原生的飞轮理论-InfoQ
23 annotations
www.infoq.cn
669
一个通用的 chart 对应不同的 values.yaml 做到了复用
Application Configuration 是运维人员
设计应用的运维能力定义的过程中,我们重点关注的是运维能力怎么发现和管理的问题
运维能力的描述
应用组件的描述
定义必须不是在一个 YAML 里描述所有东西
区分使用角色
一次定义、随处运行
一套应用定义,必须可以不加修改跑到不同运行环境当中
原始的 K8s API 按照现实中的协作逻辑进行合理的拆分和分类,然后分别暴露给研发和运维去使用
基础设施工程师想要基于 K8s 来服务更上层应用开发和运维人员时
运维能力的描述,比如自动扩缩容、流量切换、灰度、监控等,涉及到一系列的规则
应用本身的镜像、启动参数、依赖的云资源等等全部描述起来
应用定义”这个东西,在整个云原生社区里其实是缺失的
Helm 和 Application CRD 只是单纯地将 K8s 的 API 组合在一起,无法描述我们对云上面资源的依赖
访问会依赖 SLB
数据库会依赖 RDS
Kubernetes 我们也试过使用 Helm 以及 Application CRD 来定义应用
Docker 解决了单机应用交付,它就通过 Docker 镜像把单机应用定义的很好
第三层的 OpenKruise 项目
高效、简洁的应用管理与交付体系
Helm 就是位于整个应用管理体系的最上面
Kubernetes 本身并不提供完整的应用管理体系
应用交付分层模型
Docker 化了之后就能‘一次打包、随处运行’
应用的交付场景
一个环境里的不同运维能力,实际上有可能是冲突的
应用开发和应用运维人员的诉求又该怎么传递给基础设施呢
PaaS 平台只允许开发填 Deployment 的极个别字段
给 K8s API “做减法”:阿里巴巴云原生应用管理的挑战和实践
29 annotations
mp.weixin.qq.com
676
Every Pod gets its own IP address
Cluster Networking | Kubernetes
1 annotation
kubernetes.io
702
资源的调度,随着数据中心规模进一步扩大,资源的调度会提上日程
API可编程来驱动
如何落地全球最大 Kubernetes 生产集群 - 云+社区 - 腾讯云
2 annotations
cloud.tencent.com
589
标签添加快捷键和颜色
深入探究下Zotero是如何帮我们管理好文献的!
1 annotation
mp.weixin.qq.com
613
大促常态化
完美日记利用容器服务 ACK 的弹性伸缩能力,合理规划资源,服务器成本降低 50% 以上
更高资源利用率、更快部署速度、更强应用治理能力
K8s 对网络、存储、计算进行了标准化编排
应用低成本、甚至无成本的迁移到新的云基础设施上部署和运行
微服务应用的操作系统
云原生从概念到落地的承接
极简的应用层语义就可以完整描述出自己的代码构建和应用部署细节
业务研发们不需要了解任何 Kubernetes 相关的知识
以应用为中心”的、高度可扩展的 Kubernetes 发行版
KubeVela,则是这个统一模型在 Kubernetes 上的完整实现
Kubernetes 在内的任何云端基础设施提供一个统一、面向最终用户的应用定义模型
丝般顺滑”的云端应用管理与交付体验
基础设施无关的方式去交付与管理应用
阿里云联合微软等云原生社区中坚力量,共同推出的云原生应用层核心项目
从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目-阿里云开发者社区
15 annotations
developer.aliyun.com
590
原地升级
自动化的发布、运行和管理
部署、升级、弹性扩缩容、Qos 调节、健康检查、迁移修复
OpenKruise:阿里巴巴 双11 全链路应用的云原生部署基座_Kubernetes中文社区
3 annotations
www.kubernetes.org.cn
657
蓝绿部署、金丝雀发布、流量镜像
容器微服务层
基础设施层级
基于 Kubernetes 快速搭建
Prometheus + Grafana + AlertManager、EFK
告警、事件、审计
监控、日志和追踪
行业交付标准、交付流程和应用生命周期管理
KubeSphere 所有功能组件都是可插拔的
完整的管理界面,开发与运维在一个统一的平台中
云原生全家桶
统一纳管与对接这些工具,提供一致性的用户体验
公有云或私有化数据中心
多租户平台
IaaS 平台的存储与网络能力
弹性伸缩与敏捷部署
以应用为中心
多租户容器平台
一文说清 KubeSphere 容器平台的价值
18 annotations
www.toutiao.com
658
渐进式发布,快速准确检测到问题,同时快速回滚
可灰度,可监控,可回滚
敏捷开发,小规模,多批次迭代
逃生能力,灰度能力
延迟,流量,错误,饱和度
系统架构简单清晰,具备水平扩展能力
置之死地而后生,面向失败的架构设计
6 annotations
mp.weixin.qq.com
598
导入 Helm 应用仓库
弹性伸缩(HPA)
应用商店
灰度发布、流量管理、网络拓扑与追踪
KubeSphere | 面向云原生应用的容器混合云
4 annotations
kubesphere.io
646
REST API 对接外部系统
架构说明
1 annotation
kubesphere.io
641
Cluster Agent
Cluster Controller
认证代理(Authentication Proxy
附019.Rancher搭建及使用 - 木二 - 博客园
3 annotations
www.cnblogs.com
617
管理云服务商托管的Kubernetes集群
导入已有的Kubernetes集群
已有的节点并部署Kubernetes集群
Rancher 使用 RKE
Alice 可以使用授权集群端点,降低延迟,更好地掌控她的下游集群
kube-api-auth 微服务向授权集群端点提供了用户认证功能
Helm 在专用的 Kubernetes 集群上安装 Rancher
RKE 类似,也是经过认证的 Kubernetes 发行版。它比 RKE 更新,更易用且更轻量化
CLI 工具可用于创建和管理 Kubernetes 集群
认证的 Kubernetes 发行版
Rancher Server 和下游集群之间有明显的延迟
节点 Agent
cattle-cluster-agent
Service Account (Service Accout 提供了一种方便的认证机制)和 Kubernetes 进行交互
Agent 把指令下发到指定的集群中
下游集群的 Agent
指令传递给集群控制器
Rancher Server 管控 Rancher 部署的 Kubernetes 集群
附019.Rancher搭建及使用 - 木二 - 博客园
18 annotations
www.cnblogs.com
617
集群巡检来评估集群的健康情况,并推送报表
重启策略类型增加了Reuse策略
需求标签
应用管理和资源管理可以独立迭代
Hulk API来对接内部的发布部署系统,这样两层API将整个架构解耦开来,领域明确
宿主机的发生重启是一种非常常见的场景
策略引擎,业务可以对自己的应用APPKEY自定义录入策略需求
打散策略
保持Kubernetes的原生兼容性
环境不一致问题是容器镜像出现之前业界的通用问题
OpenStack的整个架构中计算资源的管理模块是非常庞大和复杂
虚拟化本身大概占用10%的宿主机资源消耗
Kubernetes如何改变美团的云基础设施? - 美团技术团队
12 annotations
tech.meituan.com
649
云提供商的负载均衡器,可以向外部暴露服务
自由寻找他们自己的方式,从而降低与 Kubernetes 系统的耦合性
DNS 如何实现自动配置,依赖于 Service 是否定义了 selector
ipvs模式假定在运行kube-proxy之前在节点上都已经安装了IPVS内核模块
生产环境中使用外部的数据库集群,但测试环境使用自己的数据库
Service · Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)
5 annotations
jimmysong.io
640
保持 Pod 的网络和存储状态不变
原地升级 · Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)
1 annotation
jimmysong.io
606
中 service 和 endpoint 的变化情况,并通过 iptables 等来为服务配置负载均衡
kube-proxy · Kubernetes指南
1 annotation
feisky.gitbooks.io
656
machine CRDs in the "seed" cluster,
shoot" cluster control plane into the "shoot" namespace in the "seed" cluster
secrets and credentials
infrastructure
"shoot" cluster consists only out of the worker nodes (no control plane)
shoot" cluster control plane
namespace
shoot" cluster
seed" cluster
Gardener Dashboard
shoot" cluster
end-user cluster,
seed the control plane
seed" cluster
provision hundreds or even thousands of clusters
go-to solution to manage software
Architecture · gardener/documentation Wiki
16 annotations
github.com
603
Virtual Router Redundancy Protocol
接管主Master节点的 IP资源及服务
keepalived实现服务高可用 - 惨绿少年 - 博客园
2 annotations
www.cnblogs.com
658
定义与交付现代微服务应用,无需了解任何 Kubernetes 本身相关的细节
今年最火的 Golang 云原生开源项目,可能就是它了!_Kubernetes中文社区
1 annotation
www.kubernetes.org.cn
652
DockOne微信分享(七十三):SAP Anywhere产品背后CD的实现 - DockOne.io
dockone.io
581
interacting with your Kubernetes cluster
credentials for full access to the cluster
Rancher Docs: RKE Kubernetes Installation
2 annotations
rancher.com
575
Prometheus 监控集群节点
多种主流日志工具集成
快速发布、灰度发布和 A/B 测试
项目由一个集群内的多个命名空间和多个访问控制策略组成,允许用户以组为单位,一次管理多个命名空间,对其进行 Kubernetes 相关操作
全局 DNS
多集群应用
容器日志发送给外部日志系统
赋能 DevOps 团队
附019.Rancher搭建及使用 - 木二 - 博客园
8 annotations
www.cnblogs.com
603
Enterprise
Managed Kubernetes Cluster Operations | Rancher
1 annotation
rancher.com
620
nginx ingress controller
etcd as a datastore
private registry URL
API Audit Log
Rancher Docs: Advanced Options for Docker Installs
4 annotations
rancher.com
653
Helm charts
high-availability RKE cluster
RKE Kubernetes cluster
K3s Kubernetes cluster
Rancher’s Kubernetes distributions
Rancher can be installed on any Kubernetes cluster.
Rancher Docs: Install Rancher on a Kubernetes Cluster
6 annotations
rancher.com
649
716 × 415
编辑-架构图
1 annotation
km.sankuai.com
672
under cgroupv2-only systems
A large amount of effort has been undertaken to support cgroupv2 within runc
Releases · opencontainers/runc
2 annotations
github.com
634
SDN Software Define Network 技术
架构其实就是一系列的选择,一系列的折中选择。今天的架构一直都非常强调关注点分离
思考那些非功能性需求
便携性,容器化编排给开发团队带来了便携性和一致性
高可用和低成本
测试环境
本地构建环境
容器为开发提供的一致性
容器化是未来云原生架构演化的一个重要部分
云原生,强调速度的时候,混沌工程是比较适用的
面向恢复的设计
降级的服务
预防失效的传递效应,则采用的措施是熔断
失效的传递效应
面向失效的设计
软件架构是会受到软件的基础设施的推动
微服务早于云计算而存在
云原生趋势下的架构演进,及架构师的关注点分离
17 annotations
mp.weixin.qq.com
666
network-plugin
cni-bin-dir
Kubelet reads a file from --cni-conf-dir (default /etc/cni/net.d) and uses the CNI configuration from that file to set up each pod's network
Network Plugins | Kubernetes
3 annotations
kubernetes.io
362
THP 是一个抽象层,能够自动创建、管理和使用传统大页
THP
2MB 和 1GB
4096 bytes 即 4K
Huge pages (标准大页)和 Transparent Huge pages(透明大页)_ITPUB博客
4 annotations
blog.itpub.net
655
A类公司是什么?都是在做虚拟产品服务的
B1叫实物电商,B2叫服务型电商
金融就是要变现,不可能允许金融业务亏损
联名信用卡
3000万笔的交易
金融业务有哪些目前被互联网进行了非常大规模的侵蚀和解构
different culture
为了主业而金融,但绝不是依附
产品的稍微宏观一点的层面
零售金融的产品
彭千:金融产品的一样和不一样
10 annotations
km.sankuai.com
575
P3-2及以上职位需要专业委员会加签面试
P3-1的职位需要加签面试
主席/执行主席进行加签面试
专业委员会的分通道主席/常委
专业委员会的委员
P3-1候选人的加签面试官池
《美团面试决策矩阵规范》
6 annotations
km.sankuai.com
633
高密度、高频度的能力要求
组件升级控制器
自愈控制器
节点生命周期控制器
弹性不足
系统改造为适配云原生架构的新方案
周边系统
运维
基础设施
经济体云原生技术路线
开源主流框架构建微服务
海量边缘节点的应用交付
云边弱网或断网环境
云原生和边缘计算交叉领域
边缘云原生
云边协同
边缘计算的场景和需求不断增加
Intel SGX 等加密计算技术
企业的数据资产成为新“石油”
计算存储分离具备巨大的灵活性和成本优势
更高的异构资源利用率
更大的并发调度吞吐
更低的调度延迟
70% 的 AI 任务运行在容器和 Serverless 上
DevOps 文化和工具集
IDC、云端、边缘等
向上支撑多种工作负载和分布式架构
统一调度、高效使用异构算力的资源
1 小时内扩展超百万容器
平滑运行在不同基础设施
资源调度和编排的标准
应用与底层运行环境进行解耦
应用分发和交付标准
以 Kubernetes 为代表的容器技术,已成为云计算的新界面_Kubernetes中文社区
33 annotations
www.kubernetes.org.cn
615
只有心态有了从容,面对金钱、名利才能豁达而又不失进取
人生总会有很多的缺憾,从容的心态是人生最高的境界
人生总会有很多的缺憾,从容的心态是
只有经历过无数次的过失与缺憾,才能在风雨之后看到彩虹
不完美绝非自暴自弃,无所事事的弱价值取向
无为而治
人生境界还有一个层次,那就是经过奋斗把不完满变得完满些
只豁达而不奋斗,就成了玩世不恭,那才是彻底的失败者
金无足赤,人无完人
追求完美即是不完美
次优是人生的最高境界_意林杂志_新浪博客
10 annotations
blog.sina.com.cn
677
IO Cache
服务画像的资源分配,对不同服务的容器设定不同的资源限制,除了常见的CPU、内存外,还有IO的限制、ulimit限制、PID限制等等。所以我们扩展了K8s来完成这些工作
Cache的数据写到磁盘的速率受容器Cgroup IO配置的限制
Buffer IO共享一个内核缓存,并且缓存不隔离,没有速率限制,导致高IO容器很容易影响同主机上的其他容器
Direct IO和Buffered IO
美团容器平台架构及容器技术实践_Kubernetes中文社区
5 annotations
www.kubernetes.org.cn
629
CCA) tools can be thought of as an extension of traditional IaC frameworks
infrastructure automation capabilities and use IaC
promote declarative approaches
configuration resources
Infrastructure as code - Wikipedia
4 annotations
en.wikipedia.org
489
an extremely simple, lightning fast Kubernetes installer
rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distribution that runs entirely within containers.
1 annotation
github.com
600
API Audit Log
Rancher Docs: Installing Rancher on a Single Node Using Docker
1 annotation
rancher.com
660
多个集群资源 UI 化的管理体系
Rancher 中部署开源Rainbond 云原生应用管理平台_Kubernetes中文社区
1 annotation
www.kubernetes.org.cn
682
Horizontal Pod Autoscaler | Kubernetes
kubernetes.io
617
证书部署到/etc/kubernetes/ssl服务器,并保存本地kube配置文件
x509身份验证方法来设置Kubernetes组件和用户之间的身份验证
只需使用controlplane角色指定多个主机
角色为worker和controlplane的主机添加或删除节点
网络插件它均可以支持部署
Kubernetes-基于RKE进行Kubernetes的安装部署_Kubernetes中文社区
5 annotations
www.kubernetes.org.cn
683
RKE不是一个可以长时间运行的、可以监控和操作Kubernetes集群的服务
RKE是一个独立的可执行文件,它可以从集群配置文件中读取并启动、关闭或升级Kubernetes群集
Kubeadm还不支持像HA集群这样的功能
Rancher Kubernetes Engine(RKE)正式发布:闪电般的Kubernetes安装部署体验_Kubernetes中文社区
3 annotations
www.kubernetes.org.cn
675
like support for cgroup v2
won't support new features
bump up the default runtime to "io.containerd.runc.v2" by AkihiroSuda · Pull Request #1359 · containerd/cri
2 annotations
github.com
444
webpack可以看做是模块打包机,分析项目结构,找到JavaScript模块和一些浏览器不能直接运行的语言,类似Scss,JSX,Typescript等,并将其转换和打包为合适的格式供浏览器使用
webpack npm start和npm run server - 简书
1 annotation
www.jianshu.com
497
env
Volumes | Kubernetes
1 annotation
kubernetes.io
584
半年一次的述职
给建设性反馈
中心论点
金字塔原理”能帮人很好地训练结构化思考
目标怎么拆解、方案怎么制定,所需的底层思维能力就是结构化思考
人才激励重股票期权而非现金
只思考还不够,还要“长线思考”(Think long term)。
学习、交流、思考、实践,是获得成长的完整过程
和高人聊
商业模式和经营管理
向标杆学,不一定找同行,更重要的是切中问题本质,看同类问题谁解决得最好
看看标杆怎么做的
工作用严密逻辑表述清楚
六页纸文化”在亚马逊坚持了十几年
最基本的基本功是写作
授人以渔,输出成长的正确方法
美团战斗力的根源-5条人才成长方法论
16 annotations
km.sankuai.com
637
brew uninstall --ignore-dependencies node icu4c
node
brew install node
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.60.dylib
3 annotations
gist.github.com
568
技术栈全面开源、 兼容开源生态,组件可插拔
高可用分布式系统架构
异地容灾、低成本快速扩容的需求
业务需求敏捷迭代
98.金融私有云建设及POC方案纲要
4 annotations
km.sankuai.com
598
the same dependencies
the same configuration
provisioned
Introduction | Vagrant by HashiCorp
3 annotations
www.vagrantup.com
608
那这种变化体现的就是企业对于市场信息「认知」的变化,以及做出的应对反应。
无法直接应用
证伪
从原点假设出发通过推演去探究问题和现象的本质
我们都在习惯性的采用「归纳法」的方式,试图通过行业里标杆企业和案例的研究,再结合自己的经验和洞察,试图通过归纳,给出关于“中台”一个合理解释,并找到一种通用的建设方法。
我们都在习惯性的采用「归纳法」的方式,试图通过行业里标杆企业和案例的研究,再结合自
可以让我们透过中台的各种表象,深入思考和洞察其背后的本质
归纳法
演绎法
第一性原理(First Principles)
白话中台战略-5:中台的第一性原理 - 简书
10 annotations
www.jianshu.com
659
functions for extracting a user IP address from a request and associating it with a Context
handler for /search
derive new Context values from existing ones
cancelation signal to functions
request-specific values
request's deadline
Go Concurrency Patterns: Context - The Go Blog
6 annotations
blog.golang.org
607
tunability
IntelliJ IDEA overview - Help | IntelliJ IDEA
1 annotation
www.jetbrains.com
633
Live templates
Create your first Java application - Help | IntelliJ IDEA
1 annotation
www.jetbrains.com
630
deploy your artifacts onto application servers and debug the deployed applications right from within the IDE
connect to locally running Docker machines to manage images, containers and Docker Compose services
supports major application servers
test runners and coverage tools
supports Maven, Gradle
variable values right in the source code
⌘Y it shows you the definition for the symbol at caret
^⇧Space twice
Features - IntelliJ IDEA
8 annotations
www.jetbrains.com
596
新版人民币5元纸币将发布!提升了整体防伪性能
baijiahao.baidu.com
571
阿里P10、腾讯T4、华为18,互联网公司职级、薪资、股权大揭秘-InfoQ
1 annotation
www.infoq.cn
658
自研上云、开源协同
腾讯的产业互联网,在金融和出行领域应该是比较出彩的
产业互联网和数字化转型之间的差别是什么
云与智慧产业事业群(CSIG)
扎根消费互联网
拥抱产业互联网
我看腾讯组织架构调整这一年-InfoQ
6 annotations
www.infoq.cn
666
Gradle结合Ant和Maven等构建工具的最佳特性。它有着约定优于配置的方法、强大的依赖管理,它的构建脚本使用Groovy或Kotlin 编写
Maven 使用约定而不是配置
Maven本身就提供了依赖管理
Ant是过程式的,开发者需要显示的指定每个目标,以及完成该目标锁需要执行的任务
构建脚本是XML格式的
Another Neat Tool的意思
构建工具用于实现项目自动化,是一种可编程的工具,你可以用代码来控制构建流程最终生成可交付的软件
项目自动化应运而生
编译、单元测试和打包等工作
Gradle核心思想(一)为什么现在要用Gradle? | PhoenixCoder - 刘望舒
9 annotations
liuwangshu.cn
659
Text Link Confirm Show example Confirm icon_global_rename_nor Created with Sketch. icon_global_delete_nor Created with Sketch. Insert title Embed webpage Embed data Keep the link Keep the code Cannot preview. Please get a shared link from Airtable. Show me an example Cannot preview. Please use a webpage link to Amap. Insert Table Insert Sheet Cannot preview. Please get a shared link from Airtable. Show me an example Cannot preview. Please use a webpage link to Amap. Cannot preview. Please get a shared link from Airtable. Show me an example Cannot preview. Please use a webpage link to Amap. Cannot preview. Please get a shared link from Airtable. Show me an example Cannot preview. Please use a webpage link to Amap. Version history Local record
Autopilot 设计要点 - Feishu Docs
1 annotation
bytedance.feishu.cn
424
构建树型关系的Context,来达到上一层Goroutine能对传递给下一层Goroutine的控制
子节点是从复制父节点得到的
即一个请求Request,会在多个Goroutine中处理
理解Go Context机制 - 张伯雨 - 博客园
3 annotations
www.cnblogs.com
643
不要给出你的最低薪资预期
手握多份offer。
这个条件一定要是弹性的
每个HR都一筹莫展地表示他们“可能已经给不出更好的价格了”
不要急于表明自己的立场。也就是,不要轻易泄露底牌
我永远不会给出具体数字,而只给出薪资范畴
一篇还未入职就多挣10万美元的涨薪指南_详细解读_最新资讯_热点事件_36氪
6 annotations
36kr.com
454
Create rpc request
OCI Runtime Bundle
build a shim
runtime authors
containerd/runtime/v2 at master · containerd/containerd
4 annotations
github.com
566
写入不少于1000行的批量写入
每秒处理数百个查询
吞吐量可以使用每秒处理的行数或每秒处理的字节数来衡量
性能 | ClickHouse文档
3 annotations
clickhouse.tech
401
NodeLease
at scale for thousands of clusters today
blast-radius of potential hick-ups
gardener-scheduler
custom controller-manager that acts on our own custom resources
operator pattern
Gardenlet by rfranzke · Pull Request #1601 · gardener/gardener
6 annotations
github.com
669
与用户距离之类
网络带宽
Filecoin 现在连测试网都没有上,更不可能有用户。只有有用户开始使用 IPFS 服务,上传文件,才能挖矿
把 ASICs 设计成能支持对大量内存的随机访问可能是昂贵且可能是不切实际的
得有用户,有用户上传
检索矿工的最大带宽将决定它的交易总量
检索矿工
Proof-of-Work
Proof-of-Spacetime
Proof-of-Replication
Filecoin 就是缺失的激励机制
IPFS 是按内容搜索的技术
让 IPFS 协议能够被更多人使用,让更多的人愿意拿出自己的电脑和存储空间给其他人使用
链上流通的 Token 也叫 Filecoin
域名地址
内容地址
相同文件系统的计算机连接起来
全球的、点对点分布式文件存储协议
星际文件系统
IPFS 的想法,就是让文件分布式存储和读取
IPFS 技术就把文件打碎,分散地存储在不同的硬盘里,下载的时候,再从这些散落在全球各地的硬盘里读取
IPFS 其实就是一种 BitTorrent 协议,开发团队对 BitTorrent 协议稍微升级了一下
来看看你对 IPFS 到底误解有多深!
22 annotations
baijiahao.baidu.com
632
name
execution lifecycle of a container
a first class shim API for runtime authors to integrate with containerd
Runtime v2 (shim API) by crosbymichael · Pull Request #2434 · containerd/containerd
3 annotations
github.com
634
pass the binary to go tool pprof like
protobuf file
heap profile
pprof profile
a few things confusing
mutex contention
Profiling Go programs with pprof
6 annotations
jvns.ca
401
愿景、使命、价值观
据说这是硅谷最重要的文档
1 annotation
www.toutiao.com
423
shim grpc service is the main source of interaction with the shim
Outputs
Inputs
shim should not write to any other location on disk except the bundle
OCI bundle is still the main source of configuration for shims
state and abstract actions
various runtimes
The goals is to provide an API that various runtimes can implement to add support in containerd while still having control of state and abstract actions
a shim API
state management
More VM based runtimes have internal state and more abstract actions
[proposal] Shim API v2 · Issue #2426 · containerd/containerd
11 annotations
github.com
543
Control Sidebar Component | AdminLTE 3 Documentation
adminlte.io
487
changes through the entire stack
any configuration file designed for cgroups v1 will continue to work on cgroups v2
Privileged pods will still use the host cgroup namespace so to have visibility on all the other cgroups
hugetlb
same naming
different naming
CPU pinning
CPU stats
cAdvisor already supports cgroups v2
runc support for cgroups v2
crun
dockershim implementation embedded in the Kubelet
support features only available in cgroups v2 but not in cgroups v1, the OCI runtime specs must be changed
Device plugins that require v2 enablement
OCI runtime specifications
run on a host using either cgroups v1 or v2
features parity between cgroup v2 and v1
Plugins support
Dockershim
Expose new cgroup2-only features
Add support for cgroups v2 to the Kubelet
enhancements/20191118-cgroups-v2.md at master · kubernetes/enhancements
21 annotations
github.com
424
进程之外的解决方案能够确保系统的灵活性
微服务是一个很好的机会能让我们真正的演进架构而不需要付出过多的代价
容器化、微服务、面向云环境
侵入性与语言绑架
Spring Cloud 貌似是微服务的最优解了
最吃香的理论也许是根据 DDD 去进行划分,天然的领域或者子域(domain)貌似都能对应一个服务,因为足够的界限上下文(bounded context)能够保持服务的独立性,使其细节被隐藏在界限之内
拆分服务或者服务边界划分是另一件很难做到的事情
分布式事务
单体应用的代码改动成本会越来越大
我们看中微服务,也是看中了架构方面的优势,即那些非功能性需求
演进能力
非功能性需求
软件的架构设计
软件产品的能力和行为
软件应该走对应的方向,发挥易于修改的特点
soft 则强调易变
软件架构
阿里云交付专家
2020 年,从架构谈起,到 Mesh 结束 - 知乎
18 annotations
zhuanlan.zhihu.com
375
给jQuery对象绑定一个新方法是通过扩展$.fn对象实现的
扩展 - 廖雪峰的官方网站
1 annotation
www.liaoxuefeng.com
481
File System in USErspace
don't reside in the kernel
The kernel is designed to be stable and provide proper access to resources for user applications
move the code to user space
delineation
User-Space
Having file systems in user-space
a niche requirement
a file system Renaissance
User Space File Systems - Linux Today Blog
9 annotations
www.linuxtoday.com
603
web
topN
tool pprof
Go pprof和火焰图 - 林锅 - 博客园
3 annotations
www.cnblogs.com
563
当前层级累积的cpu时间和占比
当前层级cpu的占用时间和百分比
golang系列—性能评测之pprof+火焰图+trace - 知乎
2 annotations
zhuanlan.zhihu.com
544
查看垃圾回收到底在回收哪些内容,这些内容就是导致频繁垃圾回收的“罪魁祸首”
runtime.mallocgc,占比 54.2%
有人说 Go 语言性能不行,大佬不服,使用 pprof 三步优化代码,性能堪比 C++ - 云+社区 - 腾讯云
2 annotations
cloud.tencent.com
448
.navbar-* with .navbar-light or .navbar-dark.
layout-boxed
Layout | AdminLTE 3 Documentation
2 annotations
adminlte.io
537
多租户场景下多个子集群资源名称冲突
provider状态同步实时性优化
多集群调度器优化
业务有一种类型的业务需要同时发布到多个集群
碎片资源
virtual-kubelet提供了一种抽象能力,通过实现provider,用户就实现了一个虚拟的K8s节点
原生kubectl能力
Service进行跨集群通信的能力
TopologySpreadConstraint
Pod的多集群调度
集群碎片资源整合
上层集群
多个集群的调度管理
基于原生virtual-kubelet开发
tensile-kube连接的集群就是一个大集群
通过virtual-node建立上下层集群之间的连接
Node和Pod的生命周期管控
扩展Kubernetes到无限|Virtual Kubelet子项目:tensile-kube介绍 - 云+社区 - 腾讯云
17 annotations
cloud.tencent.com
361
require 此文件之后,这个函数在其他代码中就可以使用了
exports对象的一个属性
创建模块的入口文件
package.json
11 - 如何创建 Node.js 模块 | npm 中文文档
4 annotations
www.npmjs.cn
439
unpack that image into an OCI Runtime filesystem bundle
OCI Image
filesystem bundle
the Image Specification
the Runtime Specification
About the Open Container Initiative - Open Container Initiative
5 annotations
opencontainers.org
702
make install
btrfs
Go 1.13.x or above except 1.14.x
Protoc 3.x compiler and headers
Btrfs headers and libraries for your distribution
containerd/BUILDING.md at master · containerd/containerd
5 annotations
github.com
344
consistent hashing
responsibility is to place each file on exactly one of its subvolumes
Distributed Hash Table
Distributed Replicated
Distributed
Replicated
no data redundancy
bricks
Volume
Geo-Replication
actual filesystem binary "hello"
FUSE module
glibc
mount point /tmp/fuse
API that can be accessed from userspace
userspace filesystem
Architecture - Gluster Docs
16 annotations
docs.gluster.org
653
最大tcp连接数约为2的32次方(ip数)×2的16次方(port数)
详解Linux服务器最大tcp连接数 - 枫飞飞 - 博客园
1 annotation
www.cnblogs.com
621
watch API监听资源变更事件,基于HTTP 长链接
list API罗列资源,基于HTTP短链接
异步消息处理机制
Chunked transfer encoding(分块传输编码)
允许服务器为动态生成的内容维持 HTTP 持久链接
消息的实时性
消息的顺序性
resourceVersion
创建、更新和删除这三种事件类型
理解 K8S 的设计精髓之 List-Watch机制和Informer模块 - 知乎
9 annotations
zhuanlan.zhihu.com
508
a new type of watch event called Bookmark
resource version too old
history window
a new one can be restarted from the last returned resourceVersion
enhancements/20190206-watch-bookmark.md at master · kubernetes/enhancements
4 annotations
github.com
610
写回进行序列化
实体更改日志中
唯一标识符作为用户、作业和订单的标识符。并且我们会确定性地生成唯一标识符
无损消息队列系统群集上交换订单消息
路由到相应的支付服务提供商
作业可能会有多个订单
单一的、集成的、符合 SOX 标准
消息队列系统来对创建订单和处理订单进行解耦
作业 / 订单的系统
零和原则
从任何用户收付资金
与角色无关的系统
健壮的
宕机采取零容忍的态度
高度可用的
Uber 下一代支付平台的系统架构设计-InfoQ
15 annotations
www.infoq.cn
564
必须将多个异步操作封装成一个有状态事务
补偿动作
重试
顾客的名字作为显式关联 ID 写到杯子上
星巴克不使用两阶段提交
4 annotations
mp.weixin.qq.com
493
fuse-overlayfs rather than the VFS file system
n a rootless environment
user-mode networking for unprivileged network namespaces
switch to the alternative OCI runtime crun
change the default OCI Runtime
a rootless container can use
podman/rootless_tutorial.md at master · containers/podman
6 annotations
github.com
574
replication
partitioning
Source(s) and further reading
Everything is a trade-off
How to approach a system design interview question
a little about various key system design topics
how to synchronize them so clients have a consistent view of the data
reads will eventually see it
Eventual consistency works well in highly available systems
After a write, reads will see it
high availability: fail-over and replication
Fail-over
whether the passive server is already running in 'hot' standby
in sequence or in parallel
donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
14 annotations
github.com
503
Adapters layer
Ports layer
key part being the Domain model containing all the logic and rules of the application
Ports and Adapters
Exploring the Hexagonal Architecture
4 annotations
www.infoq.com
377
Do you really know why you prefer REST over RPC
native library
hand-craft native calls
REST is an architectural style
abstracting away the details of how to communicate with the server from the client program
work through
authoritative servers
stale due to DNS propagation delays
ntroduces a slight delay
dynamic content
rewriting URLs to point to the CDN
when content expires
when it is updated
grab new content from your server
eliminate a single point of failure
SSL termination
layer 4 load balancing requires less time and computing resources than Layer 7
Solutions such as NGINX and HAProxy can support both layer 7 reverse proxying and load balancing
master serves reads and writes
slaves, which serve only reads
splits up databases by function
more cache hits due to improved cache locality
update your application logic to work with shards
improve read performance at the expense of some write performance
avoid expensive joins
Data is duplicated.
lack true ACID transactions
favor eventual consistency
consistent over a period of time
efficient retrieval of key ranges
Semi-structured data
Caching improves page load times and can reduce the load on your servers and databases
hash the query as a key and store the result to the cache
cache update strategy
donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
34 annotations
github.com
501
a pull CDN is much easier to configure than a push CDN
you simply upload the entire content of your travel blog to the CDN beforehand
During this first request, the CDN “pulls” the images and so forth to CDN server nearest your Japanese fan
“push” CDNs
“pull” CDNs
The Differences Between Push And Pull CDNs - Travel Blog Advice
5 annotations
www.travelblogadvice.com
570
授权模式和费用也是MIPS失败的另一个因素
聚焦中高端的MIPS则在功耗上没有太多优势,这就限制了他们的发展
一系列基于管线方式工作的处理器
错失智能手机时代,无力回天
精简指令集理念来设计的系统
不同厂商生产不同架构的芯片
关于MIPS与ARM之间的对比分析和差异性-电子发烧友网
6 annotations
www.elecfans.com
686
标准输入、标准输出、标准错误
镜像管理(镜像、元信息等)、容器执行
子系统
独立负责容器运行时和生命周期
认识docker核心组件--->> containerd和runC - 简书
4 annotations
www.jianshu.com
506
(4 封私信 / 12 条消息) 首页 - 知乎
www.zhihu.com
383
protolambda/gocyto: Callgraph analysis and visualization for Go
github.com
445
reused instead of created
Transport caches connections for future re-use
http - The Go Programming Language
2 annotations
golang.org
380
an easy way to deploy and manage their microservices
a service discovery mechanism
Deploying a microservices‑based application is also much more complex
implementing changes that span multiple services
Testing a microservices application is also much more complex
eventual consistency
partitioned database architecture
a microservices application is a distributed system
sufficiently decompose the application in order to facilitate agile application development and deployment
silver bullets
scaled independently
deployed independently
rewrite an old service using current technology
developed independently
best suited to its needs
loose coupling
tackles the problem of complexity
asynchronous, message‑based communication
REST API
business logic along with various adapters
split your application into set of smaller, interconnected services
huge barrier to adopting new technologies
extremely difficult to adopt new frameworks and languages
bring down the entire process
reliability
different modules have conflicting resource requirements
obstacle to continuous deployment
The larger the application, the longer the start‑up time is
Introduction to Microservices | NGINX
28 annotations
www.nginx.com
379
Try
Home - Feishu Docs
1 annotation
bytedance.feishu.cn
263
团队一起分析一个特定任务或事件失败的原因
极大的热情在团队、部门、公司范围内表彰员工的杰出表现
自己也会付出个人的努力来帮助团队获得成功
团队视为是一个贡献者
经理会尊重他的团队的专业技能、 时间安排以及各种诉求
需要你提供时间估测的具体分析,并和你一起探讨
不会以“微管理”的方式来管理你的工作
各种可能的方法关注你的工作量
管理时间、任务、需求、规范、资源和人员的经理
找出某个特定任务的解决方法并实施最佳方案的人,应当是开发人员
认可通常解决一个问题会有很多种方法
在困难的情况下给予方法论上的建议和帮助
联系团队和个人
管理任务
不断地、及时地从你老板那里得到关于你工作表现的反馈
确保团队得到应得的荣誉
团队或其中的个人应该如何做才能够达到成功
会不时地和整个团队以及其中的所有成员保持密切的沟通
更快、更好、更优雅地解决问题
专注于开发这一艺术性的工作上
对于公司来说,所有的事情都是赚钱相关的
软件开发的周期变得短
Agile方法中的变更管理Change Management
如何成为一位卓越的技术经理?
23 annotations
mp.weixin.qq.com
652
威信需要一定的技术能力来支撑
只有最合适,没有最好
领导者的认知来挖掘出解决问题的关键路径
关键路径
问题重要性和优先级
员工自我价值的实现
务必要及时,才有杀伤力和后续的威慑力
提供更大的舞台去满足TA的施展
是强烈的实现自我价值的意愿
明确职责(职位、责任),以减少灰色地带为己任
执行力和自驱力
组织的目标和与员工的自我价值
每一个决策+团队的执行力
内在的专注力量
论理想中的技术团队——领导力
14 annotations
www.toutiao.com
620
Gardener
github.com
678
使用微服务架构将导致基础架构的需求、成本和复杂性激增
业务优先于一切,底层系统则可以适应任何体系架构模式
尚未具备快速开发和部署应用的能力
快速向市场交付有质量产品
级联故障
断路器模式
重试模式
选择有效工具持续并实时监视和分析微服务的是至关重要的
服务发现系统
REST API 的市场
问题追踪器和实现自动部署的工具
源代码管理
支持 API 文档的工具
架构
预算估算
产品分析
“微”指组件的粒度细
松耦合和紧关联的原则
设计、构建、测试和部署生产环境中的软件
YBYO(You Build You Own,自己构建)理念
微服务模式支持单个团队完全负责构建和管理某一小部分软件
产品
问题通常必须由原始开发团队解决,这导致整体延迟
生产支持团队
开发团队
推动组织内的重大文化变革
单体应用重新架构为微服务架构需要付出大量的耐心、时间和经验
微服务架构实施数字化转型
实践微服务六年,我获得了这些心得体会
28 annotations
www.toutiao.com
562
The best products are always built by great teams, not just great individuals
data driven
prioritize and focus
Educate and Empower Teams
Lower barrier to entry
being able to deliver features faster and with confidence
The speed at which a company innovates is limited by its iteration speed
build common abstractions
direction and focus
purpose
figuring out what you do and don’t do in your team
key focus areas
How do we operate
understanding developer pain
Iteration over perfection
Building a Platform Team — Laying the Foundations | by Vasa | Walmart Global Tech Blog | Medium
15 annotations
medium.com
667
flink.hyrax.tce_trace_sink - Grafana
grafana.bytedance.net
407
2017: 企业采用和支持的一年
2014 年中:Google 推出 Kubernetes
2016: Kubernetes 在这一年成为主流
Kubernetes 极简史
3 annotations
www.sohu.com
414
多数节点的公式是 Quorum=N/2+1
第一个节点率先完成了Timer,随后它就会向其他两个节点发送成为Leader的请求
写入请求来自其他Follower节点那么写入请求会给转发给Leader节点
系统中的控制数据
服务的配置信息
更新和访问频次都很高
WAL:Write Ahead Log(预写式日志),是 etcd 的数据存储方式
(...) 看图轻松了解etcd_网管叨bi叨 - SegmentFault 思否
7 annotations
segmentfault.com
431
pod-eviction-timeout
two forms of heartbeats
node controller has not heard from the node
updating the NodeReady condition of NodeStatus to ConditionUnknown when a node becomes unreachable
5 minutes
Nodes | Kubernetes
5 annotations
kubernetes.io
477
avoiding any cross-socket traffic
interference
exclusive CPUs to pod containers in the Guaranteed QoS class which request integer CPUs
UpdateContainerResources
a shared pool of CPUs
on the CPUs remaining in the shared pool
CPU affinity
CFS quota
CFS shares
three kinds of CPU resource controls
Guaranteed QoS class
allocating exclusive CPUs for your workload.
Feature Highlight: CPU Manager | Kubernetes
12 annotations
kubernetes.io
429
docker-registry自己去实现一套对象存储了吗?没有,因为在对象存储这个领域,已经有很多优秀的实现。所以docker-registry是一个HTTP接口的服务,仅仅是在对象存储上包了一层镜像的家族谱系,而且底层支持多种对象存储。
水平扩展的集群存储
从Docker Hub和docker-registry看优秀的后端服务设计实现 - DockOne.io
2 annotations
dockone.io
603
-
插入点在哪里
kprobe叫什么名字
p
ftrace的天下了
debugfs接口注册kprobe
模块加载的方式
inmod
register_kprobe
symbol_name是函数名
运行的内核中动态插入探测点,执行你预定义的操作
tracepoint只是内核在某些特定行为(比如进程切换)上部署的一些静态锚点
eBPF特性也寄生于kprobe之上
内核调试工具
kprobe原理解析(一) - honpey - 博客园
14 annotations
www.cnblogs.com
460
A Snapshot represents a filesystem state
API for allocating, snapshotting and mounting abstract, layer-based filesystems
mount-oriented snapshot
graphdriver informs the transport of image formats.
a snapshotting methodology known as layer
graphdriver
an API for the base snapshotting
avoid the integration between graph drivers and the tar format used to represent the changesets.
containerd/snapshots.md at master · containerd/containerd
8 annotations
github.com
544
覃超大魔王
纪录Vue.js尤雨溪 - 中英CC字幕 - Honeypot呈现_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
1 annotation
www.bilibili.com
682
{Object | Function} plugin
安装 Vue.js 插件
Vue.use( plugin )
API — Vue.js
3 annotations
cn.vuejs.org
480
io.latency
You protect workloads with io.latency by specifying a latency target (e.g., 20ms). If the protected workload experiences average completion latency longer than its latency target value, the controller throttles any peers that have a more relaxed latency target than the protected workload. The delta between the prioritized cgroup's target and the targets of other cgroups is used to determine how hard the other cgroups are throttled: If a cgroup with io.latency set to 20ms is prioritized, cgroups with latency targets <= 20ms will never be throttled, while a cgroup with 50ms will get throttled harder than a cgroup with a 30ms target. Interface The interface for io.latency is in a format similar to the other controllers: MAJOR:MINOR target=<target time in microseconds> When io.latency is enabled, you'll see additional stats in io.stat: depth=<integer>—The current queue depth for the group. avg_lat=<time in microseconds>—The running average IO latency for this group. This provides a general idea of the overall latency you can expect for this workload on the specified disk. Note: All cgroup knobs can be configured through systemd. See the systemd.resource-control documentation for details. Using io.latency The limits are applied only at the peer level in the hierarchy. This means that in the diagram below, only groups A, B, and C will influence each other, and groups D and F will influence each other. Group G will influence nobody. Thus, a common way to configure this is to set io.latency in groups A, B, and C. Configuration strategies Generally you don't want to set a value lower than the latency your device supports. Experiment to find the value that works best for your workload: Start at higher than the expected latency for your device, and watch the avg_lat value in io.stat for your workload group to get an idea of the latency during normal operation. Use this value as a basis for your real setting: Try setting it, for example, around 20% higher than the value in io.stat. Experimentation is key here since avg_lat is a running average and subject to statistical anomalies. Setting too tight of a control (i.e., too low of a latency target) provides greater protection to a workload, but it can come at the expense of overall system IO overhead if other workloads get throttled prematurely. Another important factor is that hard disk IO latency can fluctuate greatly: If the latency target is too low, other workloads can get throttled due to normal latency fluctuations, again leading to sub-optimal IO control. Thus, in most cases then, you'll want to set the latency target higher than expected latency to avoid unnecessary throttling—the only question is by how much. Two general approaches have proven most effective: Setting io.latency higher (20-25%) than the usual expected latency. TThis provides a tighter protection guarantee for the workload. However, the tighter control can sometimes mean the system pays more in terms of IO overhead, which leads to lower system-wide IO utilization. A setting like this can be effective for systems with SSDs. Setting io.latency to several times higher than the usual expected latency, especially for hard disks. A hard disk's usual uncontended completion latencies are between 7 and 20ms, but when contention occurs, the completion latency balloons quickly, easily reaching 10 times normal. Because the latency is so volatile, workloads running on hard disks are usually not sensitive to small swings in completion latency; things break down only in extreme conditions when latency jumps several times higher (which isn't difficult to trigger). Effective protection can be achieved in cases like this by setting a relaxed target on the protected group (e.g., 50 or 75ms), and a higher setting for lower priority groups (e.g., an additional 25ms over the higher priority group). This way, the workload can have reasonable protection without significantly compromising hard disk utilization by triggering throttling when it's not necessary. How throttling works io.latency is work conserving: as long as everybody's meeting their latency target, the controller doesn't do anything. Once a group starts missing its target it begins throttling any peer group that has a higher target than itself. This throttling takes two forms: Queue depth throttling—This is the number of outstanding IO's a group is allowed to have. The controller will clamp down relatively quickly, starting at no limit and going all the way down to 1 IO at a time. Artificial delay induction—There are certain types of IO that can't be throttled without possibly affecting higher priority groups adversely. This includes swapping and metadata IO. These types of IO are allowed to occur normally, but they are "charged" to the originating group. Once the victimized group starts meeting its latency target again, it will start unthrottling any peer groups that were throttled previously. If the victimized group simply stops doing IO the global counter will unthrottle appropriately. fbtax2 IO controller configuration As discussed previously, the goal of the fbtax2 cgroup hierarchy was to protect workload.slice. In addition to the memory controller settings, the team found that IO protections were also necessary to make it all work. When memory pressure increases, it often translates into IO pressure. Memory pressure leads to page evictions: the higher the memory pressure, the more page evictions and re-faults, and therefore more IOs. It isn’t hard to generate memory pressure high enough to saturate a disk with IOs, especially the rotating hard disks that were used on the machines in the fbtax2 project. To correct for this, the team used a strategy similar to strategy 2 described above: they prioritized workload.slice by setting its io.latency to higher than expected, to 50ms. This provides more protection for workload.slice than for system.slice, whose io.latency is set to 75ms. When workload.slice has been delayed by lack of IO past its 50ms threshold, it gets IO priority: the kernel limits IO from system.slice and reallocates it to workload.slice so the main workload can keep running. hostcritical.slice was given a similar level of protection as workload.slice since any problems there can also impact the main workload. In this case it used memory.min to guarantee it will have enough to keep running. Though they knew system.slice needed lower IO priority, the team determined the 75ms number through trial and error, modifying it repeatedly until they achieved the right balance between protecting the main workload and ensuring the stability of system.slice. In the final installment of this case study, we'll summarize the strategies used in the fbtax2 project, and look at some of the utilization gains that resulted in Facebook's server farms. ← Memory Controller Strategies and ToolsCPU Controller →cgroup2 IO controller enhancementsInterface filesProtecting workloads with io.latencyInterfaceUsing io.latencyConfiguration strategiesHow throttling works
This is where you specify IO limits
O
accounting of all IOs per-cgroup
IOPS
system has the flexibility to limit IO to low priority workloads
IO Controller · cgroup2
7 annotations
facebookmicrosites.github.io
385
异构分布式事务
索引属于其所存储数据的衍生数据
一致性有多种级别
最终一致性(eventual consistency)引 – 微风的网络日志
3 annotations
leybreeze.com
632
Salesforce的生态都是围绕市场和销售展开的
为什么巨头都在布局SaaS生态?
1 annotation
mbd.baidu.com
662
当下一次的堆大小达到当前实时集的2倍时就运行GC的决定
压舱物增加了堆的基准大小,从而使GC延迟触发
【转载】Go内存压舱物:利用大块内存降低Go GC的运行频率 - Article - Bytetech
2 annotations
tech.bytedance.net
624
Enable to use snapshotter through containerd CRI plugin containerd/stargz-snapshotter#74
image ref and layer digest
Now it's ready for being experimentally used on k8s-based workloads and seeking adoptabilities on it
Enable to pass additional handler on pull for stargz-based remote snapshots by ktock · Pull Request #1431 · containerd/cri
3 annotations
github.com
521
异步方案,如何实现最终一致性。
最终一致性
放弃强一致支持
分区容错性
可用性
传统的强一致的解决方案(e.g.单机事务)纷纷被抛弃
分布式事务?No, 最终一致性 - 知乎
6 annotations
zhuanlan.zhihu.com
705
程序计数器
线路的位宽最好一次就能访问到所有的内存地址
发送和接收信号,比如中断、设备复位等信号
寄存器、控制单元和逻辑运算单元
运算单元
控制单元
存储单元
CPU 执行程序的秘密,藏在了这 15 张图里 - 小林coding的个人空间 - OSCHINA - 中文开源技术交流社区
7 annotations
my.oschina.net
652
go支持
Go语言——垃圾回收GC - 简书
1 annotation
www.jianshu.com
625
Containerd supports shim v2
containerd-shim-run-v2
reaper’ to reparent the container proces to the shim
metrics ubuntulatest
containerd-shim code
ctr image pull’
containerd-shim-v2 code
monitor stdin(out)
runc runs the container, it exits
First look at the internals of containerd and runc
9 annotations
nanikgolang.netlify.app
420
BigDecimal来进行精确运算
在Java代码中,千万不要使用float或者double来进行高精度运算,尤其是金额运算,否则就很容易产生资损问题
IEEE 754
IEEE二进制浮点数算术标准(IEEE 754)
除2取余
乘2取整
漫话:如何给女朋友解释为什么计算机中 0.2 + 0.1 不等于 0.3 ? - 漫话编程的个人空间 - OSCHINA - 中文开源技术交流社区
6 annotations
my.oschina.net
454
kubelet: add initial support for cgroupv2 by giuseppe · Pull Request #85218 · kubernetes/kubernetes
github.com
385
clean and easy way
a decorator pattern
batching
go’s concurrency model
transforming
moving
how to build data pipelines using golang
data driven applications
Concurrent data pipelines in golang | Towards Data Science
8 annotations
towardsdatascience.com
713
资源退让机制:分时复用。
资源利用的极致
剩余的内存作为cache使用
内存层面的复用就成为另一个研究重点
Sigma 会认为整台物理机都属于在线
在线业务对存储性能要求高,吞吐量却不大
中心式的计算与存储服务,计算节点通过网络连接存储中心,可以屏蔽计算节点对本地磁盘的依赖
异地多活-单元化部署架构
混部管控层,其主要负责混部模式下业务运行的机制的编排与执行
“0层”调度器,主要负责协调两个一层调度器的资源管控和资源分配决策
资源调度系统称为Fuxi
资源调度系统称之为Sigma
混部集群资源管理及分配机制
混部场景业务部署策略
整体架构
混部环境下对在线业务服务干扰影响小于5%
在线业务明显具备更高的优先级和资源抢占能力
业务压力错峰和资源错峰
白天比较低,凌晨比较高
系统帮忙重试,用户是无感的
日常的流量相对于大促而言非常低
以及不可降级
调度管控和内核隔离
资源合理竞争
资源共享
资源整合
资源被响应的容忍度不一
具备不同时段峰值的特性
日均资源利用率仅在10%左右
技术点和方向性的东西
混部技术的探索历程
运维方面的架构设计
数据中心日均 CPU 利用率 45% 的运行之道--阿里巴巴规模化混部技术演进-阿里云开发者社区
32 annotations
developer.aliyun.com
463
在线与离线在单机上运行的规范,
实例管理、资源模型和资源隔离
混部的规模已经达到数十万台
挖掘更多的混部资源
大容量资源灾备和高低分的冗余
大规模的数据计算和日志数据储存和 AI 训练
IDC 与服务器的成本
百度大规模战略性混部系统演进-InfoQ
7 annotations
www.infoq.cn
394
点状的东西被大脑索引是很困难的,但是有逻辑有结构的东西则不同
有逻辑关系的知识,你用的时候才能想起来
大脑是用来思考的,不是用来记忆的。
手把手教你打造一套最牛的知识笔记管理系统! - 知乎
3 annotations
zhuanlan.zhihu.com
633
libcontainer
execdriver作为Docker容器的执行驱动,负责创建容器运行命名空间,负责容器资源使用的统计与限制,负责容器内部进程的真正运行等
execdriver
networkdriver
graphdriver
Driver是Docker架构中的驱动模块。通过Driver驱动,Docker可以实现对Docker容器执行环境的定制
终于有人把 Docker 讲清楚了,万字详解
6 annotations
www.toutiao.com
424
$0 是当前我们选中的 html 节点的引用
【译】你不知道的Chrome调试工具技巧 第一天:console中的 ' - 掘金 - 掘金
1 annotation
juejin.im
418
印度首富宣布研发出5G 网友:你家4G网速不如2G
mbd.baidu.com
661
kubelet和docker的交互简单来说是通过两层gPRC服务来实现的
s.server上的请求映射到s.service上
gRPC服务
连接docker
runtimeService
屏蔽了container的概念
containerRuntime就是负责和容器Runtime进行交互的
kubelet组件如何使用docker
kubelet分析-布布扣-bubuko.com
8 annotations
www.bubuko.com
571
CPU/Memory/IO fields are very different from v1
containerd metrics interfaces
he cgroups lib
cgroups v2 Support · Issue #3726 · containerd/containerd
3 annotations
github.com
649
npm install npm@latest -g.
installing a Node Version Manager or NVM
install npm via the Node.js website
02 - 如何安装 npm 并管理 npm 版本 | npm 中文文档
3 annotations
www.npmjs.cn
483
pressure for workload.slice (orange line) stayed under 10%,
accumulated microseconds
pressure stall information
detect resource shortages
memory, CPU, and IO.
resource pressure
Pressure Stall Information (PSI)
fair warning of impending resource shortages
two metrics: some and full.
10 seconds, 1 minute, and 5 minutes
walltime
PSI Pressure Metrics · cgroup2
11 annotations
facebookmicrosites.github.io
405
插件(plugins)
loader
输出(output)
入口(entry)
webpack v4.0.0 开始,可以不用引入一个配置文件。然而,webpack 仍然还是高度可配置的
概念 | webpack 中文网
5 annotations
www.webpackjs.com
508
BootstrapVue-基于VueJS的Bootstrap框架 · 全球最流行的 HTML、CSS 和 JS 工具库。
code.z01.com
431
Monte Carlo matching procedure
geographic dimensions
biased treatment populations
Together
Through being proactive rather than reacting to issues
Through being proactive rather than reacting to issues
best possible experience
understand the effects of in-field software changes on performance metrics
Comparing metrics between two web browser software versions or operating system versions
0.5%
a change
treatment samples,
reatment samples
treatment sample
matched control
metric distributions
data sparsity issues
a matched control sample
Monte Carlo
Jigsaw
methodology
treatment sample distribution
geographic region
a random subsample of the control sample
geographic region
population of the same devices
control sample
Detecting Performance Anomalies
change to the app or backend servers
network behavior interact
device characteristics
ecosystem continues to grow both in volume and diversity
Detecting Performance Anomalies in External Firmware Deployments
32 annotations
netflixtechblog.com
638
芯片组只负责I/O的管理
CPU、GPU和芯片组
GPU目的只有一个—协助CPU完成高密集的复杂任务
显卡高度并行的特性让
GPU的架构通常会有很多很多相同的处理单元
GPU比CPU更注重于原数据的吞吐量
图形渲染
CPU就需要有效处理很多随机而多样的进程
CPU适合复杂多任务运算,GPU适合并行计算
GPU要比CPU核心数要多得多,达到上千个
到2025年,GPU的计算性能将会提升1000倍。
微处理器的性能确实是每年都会提升50%的
GPU到底是什么,摩尔定律放缓了,高性能GPU会发挥不可替代的作用
12 annotations
baijiahao.baidu.com
467
苹果市值逼近2万亿美元创新高
新浪首页
1 annotation
www.sina.com.cn
557
memory.soft_limit_in_bytes #设置/显示当前限制的内存软额度
memory.limit_in_bytes #设置/显示当前限制的内存额度
写文件memory.limit_in_bytes就可以
memory.oom_control
暂停该进程直到有空余的内存之后再继续运行
soft limit
那么当系统内存吃紧时,系统会让超过soft limit的cgroup释放出超过soft limit的那部分内存
(...) Linux Cgroup系列(04):限制cgroup的内存使用(subsystem之memory) - Linux程序员 - SegmentFault 思否
7 annotations
segmentfault.com
318
cfs_period_us的取值范围为1毫秒(ms)到1秒(s)
(...) Linux Cgroup系列(05):限制cgroup的CPU使用(subsystem之cpu)_Linux程序员 - SegmentFault 思否
1 annotation
segmentfault.com
371
传统监控概念的智慧升级
从各种维度观察服务运行的状态是否良好
指标日志、调用链、变更数据等不同角度运维数据在内的统一
仅仅依靠单纯的性能监控指标远远不够
体量规模增大,业务细分的颗粒度也随之提升
云原生微服务架构
调用链基础上的拓扑与图谱推导都会被华丽丽的实现
非监督学习的算法
日志分析
监控指标
运用机器学习的方法来提升运维效率
人工智能技术与基础运维能力的完美集合
想不到!智能运维的正确姿势:从临场救火到淡然饮茶 - 知乎
12 annotations
zhuanlan.zhihu.com
519
make quick-release
kubernetes/kubernetes: Production-Grade Container Scheduling and Management
1 annotation
github.com
312
This will save a list of dependencies to the file Godeps/Godeps.json and copy their source code into vendor/
tools/godep: dependency tool for go
1 annotation
github.com
348
一个组件的 data 选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝
组件基础 — Vue.js
1 annotation
cn.vuejs.org
531
ctr run -t -d --rootfs rootfs busybox /bin/sh
bundle
rootfs和spec
containered.service
containerd
runc
btrfs
containerd学习 - 简书
7 annotations
www.jianshu.com
443
增加组内回收机制,避免全局内存回收干扰在线任务
高优先级任务可以抢占低优先级任务的时间片
动态调整计算任务占用的内存水位
自动降级计算任务的内存水位
当整机发生 OOM 时,优先杀计算任务中优先级低的任务
剩余的确切计算资源能力
沙子进行筛选,才能把空隙填充满但又不溢出
无损有损降级
计算任务的资源进行降级让给在线服务全使用
大促的分时复用
日常的分时复用
智能挑选空闲容器进行 offline 处理
既能保障高优先级任务不受影响,又能控制影响到的低优先级任务伤害最低
隔离问题没做好,竞争问题没解决,那就很容易引发线上的问题
租户之间的资源配比
在线受到的干扰在 5%以内。
资源争抢隔离问题
阿里巴巴从无到有,花了 4 年多的时间才让这项技术在电商域得以大规模落地
20%-30% 的机器规模
资源占用互补性
水和沙子一样,随时能被赶走
潮汐车道
揭秘!阿里数据中心大幅降低成本的核心技术:混部技术_详细解读_最新资讯_热点事件_36氪
22 annotations
36kr.com
292
a transparent and comprehensive resource control framework
strategy
fbtax2: Putting it All Together · cgroup2
2 annotations
facebookmicrosites.github.io
656
指出哪个参与者(如果在某个特定用例中涉及了多个参与者)或分析类负责由活动矩形所描述的活动
开发活动图和泳道图
1 annotation
www.toutiao.com
368
operational model
cloud capacity management
give every micro-service owner the right information to help them improve or maintain their own efficiency
transparency and optimization
diagnosis side
diagnosis side
prevention
detecting suspicious or malicious activity
Security
People
Performance
Efficiency
Reliability
data
abstracting our infrastructure
continue to build solutions to lighten this cognitive load
performant
efficient
secure
reliable
Central engineering teams
Freedom & Responsibility
How Data Inspires Building a Scalable, Resilient and Secure Cloud Infrastructure At Netflix | by Netflix Technology Blog | Netflix TechBlog
22 annotations
netflixtechblog.com
379
Add CPU and memory cgroupv2 metrics
Unshare cgroup namespace for container when using cgroupv2
support for snapshotters based on shared remote storage
Release containerd 1.4.0 · containerd/containerd
3 annotations
github.com
651
proposal: add tracing support · Issue #3057 · containerd/containerd
github.com
565
CRI + containerd ShimV2 revolution
Container Runtime management engine
Sigma/Kubernetes
lower-layer Container Runtime
CRI + containerd shimv2
CRI is the first calling interface in Kubernetes to be divided into plug-ins
remove and decouple the complex features that are originally invasive to the main code from the core library one by one by dividing them into different interfaces and plug-ins
how to connect containerd to the kata container
implementation of Shimv2 API
kata-Containerd-Shimv2
container-shim-v2 in Sandbox
a containerd shim
specify a shim for each Pod
containerd shim for each container
make KataContainers follow containerd
standard interface between the CRI shim and the containerd runtime
Containerd ShimV2
CRI-O
reuse the existing CRI shims
What can a CRI shim do? It can translate CRI requests into Runtime APIs
CRI shim
Dockershim
maintenance
we do not want a project like Docker to have to know what a Pod is and expose the API of a Pod
Containerd-centric API
Container Runtime Interface
multi-tenant
security
Kernel version run by your container is completely different from that run by the Host machine
each Pod now has an Independent kernel
the more layers you build here, the worse your container performance is
SECCOMP
secure Container Runtime
we are concerned about security
each Pod like the KataContainer is a lightweight virtual machine with a complete Linux kernel
a compressed package of your program + data + all dependencies + all directory files
the Container Image
the Container Runtime
runC that helps you set up these namespaces and cgroups, and helps you chroot, building a container required by an application
binding operation
NodeName field of the Pod object
Pods are created, instead of containers
the designs of Kubernetes CRI and Containerd ShimV2
KataContainers
RuntimeClass
ShimV2
container runtime
CRI
design and implementation of key technical features
CRI and ShimV2: A New Idea for Kubernetes Integrating Container Runtime - Alibaba Cloud Community
49 annotations
www.alibabacloud.com
554
Linux的VFS很值得欣赏吗?Page Cache在NVMEM上一点用没有,inode里面放那么多namespace这样的数据结构就是作死
“优秀架构设计” - 知乎
1 annotation
zhuanlan.zhihu.com
531
集中管理对所有Kubernetes集群的重要性
治理框架自动化
镜像管理
政策目标
策略范围,
集中的策略管理和实施
策略管理
云成本管理工具
云资源管理和成本控制
成本管理框架
访问不同的集群、参数和特征
Kubernetes治理,你应该知道的 - 云+社区 - 腾讯云
11 annotations
cloud.tencent.com
416
console对象是 JavaScript 的原生对象
console 对象与控制台 - JavaScript 教程 - 网道
1 annotation
wangdoc.com
366
competencies
ML models
data products
data exploration
ETL
symbiotic partnership
onus
constructing derived metrics
creating baselines
segments
slicing the data
the last decade
1990s
concepts and methods to improve business decision making by using fact-based support systems
Fire Your BI Team - Towards Data Science
14 annotations
towardsdatascience.com
318
context - The Go Programming Language
golang.org
664
Overcommitting on memory—promising more memory for processes than the total system memory—is a key technique for increasing memory utilization
demand exceeds the total memory available
outweigh the overhead of occasional OOM events
oad shedding is a technique to avoid overloading and crashing a system by temporarily rejecting new requests. The idea is that all loads will be better served if the system rejects a few and continues to run, instead of accepting all requests and crashing due to lack of resources. In a recent test, a team at Facebook that runs asynchronous jobs, called Async, used memory pressure as part of a load shedding strategy to reduce the frequency of OOMs. The Async tier runs many short-lived jobs in parallel. Because there was previously no way of knowing how close the system was to invoking the OOM handler, Async hosts experienced excessive OOM kills. Using memory pressure as a proactive indicator of general memory health, Async servers can now estimate, before executing each job, whether the system is likely to have enough memory to run the job to completion. When memory pressure exceeds the specified threshold, the system ignores further requests until conditions stabilize. The chart shows how async responds to changes in memory pressure: when memory.full (in orange) spikes, async sheds jobs back to the async dispatcher, shown by the blue async_execution_decision line. The results were signifcant: Load shedding based on memory pressure decreased memory overflows in the Async tier and increased throughput by 25%. This enabled the Async team to replace larger servers with servers using less memory, while keeping OOMs under control. oomd - memory pressure-based OOM oomd is a new userspace tool similar to the kernel OOM handler, but that uses memory pressure to provide greater control over when processes start getting killed, and which processes are selected. The kernel OOM handler’s main job is to protect the kernel; it’s not concerned with ensuring workload progress or health. Consequently, it’s less than ideal in terms of when and how it operates: It starts killing processes only after failing at multiple attempts to allocate memory, i.e., after a problem is already underway. It selects processes to kill using primitive heuristics, typically killing whichever one frees the most memory. It can fail to start at all when the system is thrashing: memory utilization remains within normal limits, but workloads don't make progress, and the OOM killer never gets invoked to clean up the mess. Lacking knowledge of a process's context or purpose, the OOM killer can even kill vital system processes: When this happens, the system is lost, and the only solution is to reboot, losing whatever was running, and taking tens of minutes to restore the host. Using memory pressure to monitor for memory shortages, oomd can deal more proactively and gracefully with increasing pressure by pausing some tasks to ride out the bump, or by performing a graceful app shutdown with a scheduled restart. In recent tests, oomd was an out-of-the-box improvement over the kernel OOM killer and is now deployed in production on a number of Facebook tiers. Case study: oomd at Facebook See how oomd was deployed in production at Facebook in this case study looking at Facebook's build system, one of the largest services running at Facebook. oomd in the fbtax2 project As discussed previously, the fbtax2 project team prioritized protection of the main workload by using memory.low to soft-guarantee memory to workload.slice, the main workload's cgroup. In this work-conserving model, processes in system.slice could use the memory when the main workload didn't need it. There was a problem though: when a memory-intensive process in system.slice can no longer take memory due to the memory.low protection on workload.slice, the memory contention turns into IO pressure from page faults, which can compromise overall system performance. Because of limits set in system.slice's IO controller (which we'll look at in the next section of this case study) the increased IO pressure causes system.slice to be throttled. The kernel recognizes the slowdown is caused by lack of memory, and memory.pressure rises accordingly. oomd monitors the pressure, and once it exceeds the configured threshold, kills one of the processes—most likely the memory hog in system.slice—and resolves the situation before the excess memory pressure crashes the system. This behavior ← Memory ControllerIO Controller →Memory overcommitPressure-based load sheddingoomd - memory pressure-based OOMCase study: oomd at Facebook
Load shedding
rejects a few and continues to run
oomd
The kernel OOM handler’s main job is to protect the kernel
out-of-the-box improvement over the kernel OOM killer
a memory-intensive process
Memory Controller Strategies and Tools · cgroup2
10 annotations
facebookmicrosites.github.io
601
MIP which is solved on the fly
CPU accounting controller.
time-series features
contextual features
coming 10 minutes
every couple of hours on weeks of data
container-to-threads
periodically enqueue rebalance events
a remote optimization service
fence
each container’s cpuset cgroup
don’t shuffle things too much
don’t
even out pressure on the L3 caches
don’t use hyper-threads
avoid spreading a container across multiple NUMA sockets
a priori good placement decisions
d threads,
K containers
Mixed Integer Program (MIP)
illusion of concurrency
resource allocation problem
core pinning or nice values
mitigating CFS performance issues
data-driven decisions
heuristics
every few microseconds
data driven solution
performance of these containers
predictability
batch jobs
critical low-latency services
CFS (Completely Fair Scheduler)
mitigate this performance isolation problem
various levels of caching
CPU’s memory hierarchy
overall runtime of batch jobs
Predictive CPU isolation of containers at Netflix | by Netflix Technology Blog | Netflix TechBlog
37 annotations
netflixtechblog.com
420
单一应用程序开发为一组小型服务的方法
应用和依赖封装到一个可移植的容器中
分布式系统架构
集中式架构
后端架构的变迁和云计算的发展密切相关,架构其实在不断地适应云计算,特别是云原生
未来已来:云原生 Cloud Native_知识库_博客园
5 annotations
kb.cnblogs.com
456
软件架构风格
Service Mesh:调度千军万马微服务,2.0妥妥的
1 annotation
baijiahao.baidu.com
467
Listing Image Tags Deleting an Image Detail Errors Base
GET /v2/<name>/tags/list
GET /v2/_catalog
Pushing an Image Manifest
POST /v2/<name>/blobs/uploads/
GET /v2/<name>/blobs/<digest>
a tag or digest.
GET /v2/<name>/manifests/<reference>
Layers are stored in as blobs in the V2 registry API, keyed by their digest
including digest
digest := algorithm ":" hex
a digest
concept of a content addressable identifie
detail field
message f
m
code
json response body
total length of a repository name
separated by a forward slash
retrieve the manifest.
these two components
An “image” is a combination of a JSON manifest and individual layer files
path components
leveraging namespaces
URL layout and protocols of the interaction between docker registry and docker core
decrease the likelihood of backend corruption
reduce bandwidth usage
a set of changes to the Docker image format
Docker Registry HTTP API V2.
Pulling an Image Manifest
HTTP API V2 | Docker Documentation
31 annotations
docs.docker.com
427
handler, registered per API Group
multiplexer
a chain of filters
specific actions
non-persistent entities
POST, PUT, DELETE, and GET
create, update, delete, and retrieve operations
core group (everything below /api/v1
multiple API versions at different API paths
HTTP API with JSON
Kubernetes deep dive: API Server - part 1
10 annotations
www.openshift.com
494
superset of all supported versions for the type with all their features
one special “internal” version for each type
JSON or protobuf decoder
creates a matching empty object using the Scheme
API server is able to losslessly convert between those versions
encoding to JSON or protobuf
?recursive=true
"d" for distributed.
API Server itself is stateless and the only component that directly talks with the distributed storage component: etcd
API Server itself is stateles
Kubernetes Deep Dive: API Server – Part 2
10 annotations
www.openshift.com
527
反序列化为语言中的一个具体的类型
解析用户的请求数据
kubernetes-api-machinery - 云+社区 - 腾讯云
2 annotations
cloud.tencent.com
417
kube-gen
more fine-grained control over what is going on with the objects
Kubernetes Deep Dive: API Server – Part 3a
2 annotations
www.openshift.com
436
listers
informers
typed clientset
a couple of code annotations
listers and informers
typed clients
generated deepcopy functions
utilize the same code-generation tools that are used inside of Kubernetes itself
Kubernetes Deep Dive: Code Generation for CustomResources
8 annotations
www.openshift.com
457
offline调度类,offline调度类的优先级低于cfs调度类,高于idle调度类
现有混部方案都无法解决一个核心问题,就是如何做到让离线不影响在线的问题。
整机的CPU利用率翻一翻
在不影响在线业务的前提下,对整机CPU利用率提升效果非常明显,在有的业务场景下,整机CPU利用率甚至能提升至90%
Cpuset方案
在线业务限定在某些核上,离线业务限定在某些核上面
并没有真正的达到混部的效果,在在线的那些核上,还是没有办法混部离线业务
cgroup提供的share以及period/quota功能来实现
对时延不敏感的业务上,有一定效果
在线无法及时抢占离线的问题
period/quota控制需要遍历整个cgroup树影响性能问题
quota太小导致整机死锁问题
腾讯成本优化黑科技:整机CPU利用率最高提升至90% - 云+社区 - 腾讯云
12 annotations
cloud.tencent.com
373
Redis是使用一种随机抽样的方式
hashmap+双向链表
调整首尾元素的位置
双向链表实现
干货|漫画算法:LRU从实现到应用层层剖析(第一讲) - 宜信技术学院的个人空间 - OSCHINA - 中文开源技术交流社区
4 annotations
my.oschina.net
388
software is commonly delivered as a service
The Twelve-Factor App
1 annotation
12factor.net
493
load balancer query from registry
distributed database as service registry
a copy in consumer itself
heartbeat periodically
may not deregister itself when it’s gone
registers itself with service registry
service registry
Service discovery in microservice architecture | Hacker Noon
7 annotations
hackernoon.com
551
存档路径对于应用来说不可见也不可配置,而是完全交给程序的运行环境管理
每一个运行的进程都会直接的标准输出(stdout)事件流
日志当作事件流 (Treat logs as event streams)
几小时
development, staging, and production as similar as possible
面对突然死亡时保持健壮
优雅终止是指停止监听服务的端口,即拒绝所有新的请求,并继续执行当前已接收的请求,然后退出
最小启动时间
快速、弹性的伸缩应用
瞬间开启或停止
在 12-factor 应用中,进程是一等公民
运行阶段
发布阶段
构建阶段
环境变量可以非常方便地在不同的部署间做修改,却不动一行代码
应用是否正确地将配置排除在代码之外
一份基准代码,多份部署
十二要素应用 (The Twelve-Factor App) - 简书
17 annotations
www.jianshu.com
502
厂商中立的开源生态系统
云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API
Cloud Native定义 | 启航的蜗牛
2 annotations
www.alicharles.com
598
云原生就是云的(或狭义指 K8S 的)最佳实践,生而为云,所谓云原生!
资源的管理都是通过声明式的配置
单个服务的交付问题
虚拟机太重了,无论从打包的体积还是运行时占用的资源都太重了
云原生基础及调研_知识库_博客园
4 annotations
kb.cnblogs.com
531
周期性的调用 KeeyAlive 方法刷新租约
etcd 中所有的数据都存储在一个 b+tree 中(灰色)
客户端与 etcd 之间建立一个数据管道,etcd 会推送从指定 revision 开始的所有数据变更
etcd 中有个 term 的概念,代表的是整个集群 Leader 的任期。当集群发生 Leader 切换,term 的值就会 +1
MVCC
revision 代表的是全局数据的版本
支持了一个 watch 机制,通过 watch 实时地拿到 etcd 中数据的增量更新,从而实现与 etcd 中的数据同步等业务逻辑
etcd 给客户提供的接口是简单直接的
Leader 任期切换后能够重新同步上一个 quorum 被提交的所有数据
Raft 一致性算法完成
quorum 的定义是 (n+1)/2
通常会由 3 个或者 5 个节点组成
2019 年,etcd 即将发布全新的 3.4 版本
etcd 被设计为提供高可用、强一致的小型 keyvalue 数据存储服务
从零开始入门 K8s | 手把手带你理解 etcd - DockOne.io
14 annotations
dockone.io
558
业务逻辑代码(绿色表示)和代理(蓝色表示)
控制面板(ControlPlane)
数据面板(DataPlane)
边车(Sidecar)模式
微服务化、多语言和容器化发展的趋势
独立进程部署在每一个主机上
主机独立进程代理
客户库的形式嵌入在应用程序中
独立的服务注册中心组件
服务消费方仅依赖服务域名
代理(Proxy
服务的消费方如何以某种负载均衡策略访问集群中的服务提供方实例
服务发现:服务的消费方(Consumer)如何发现服务的提供方(Provider)
微服务之-ServiceMesh - 简书
13 annotations
www.jianshu.com
483
菜鸟教程在线编辑器
www.runoob.com
558
communication within a microservices
Service Discovery in a Microservices Architecture - NGINX
1 annotation
www.nginx.com
369
a single entry point into a system
a fallback action
Hystrix trips the circuit breaker and all requests will fail immediately for a specified period of time
a circuit breaker pattern
return cached data if that was available
problem of partial failure
Client‑Side Discovery
asynchronous, messaging‑based mechanism
A system will typically use both asynchronous and synchronous styles
perform independent requests concurrently
NIO‑based frameworks
wait in line in order to update the gateway
API Gateway becomes a development bottleneck
performance and scalability of the API Gateway
encapsulates the internal structure of the application
coarse‑grained API
request routing, composition, and protocol translation
single entry point into the system
owned by multiple microservices
client‑to‑application
fine‑grained endpoints
Building Microservices Using an API Gateway | NGINX
21 annotations
www.nginx.com
394
Cgroups v1 关掉,可以在 /etc/default/grub 文件下修改 kernel 参数, 增加 GRUB_CMDLINE_LINUX_DEFAULT=“cgroup_no_v1=all”
如果想在 Cgroups v2 使用已经被 Cgroups v1 使用的 controller,则需要先将其从 Cgroups v1 中 umount 掉
一个 contoller 无法在 Cgroups v1 和 v2 中同时使用
浅谈Cgroups V2 - InfoQ
3 annotations
www.infoq.cn
553
kafka采用pull
pull:优势在可以控制消费速度和消费数量,
push:优势在于消息实时性高
发布订阅
队列
备份高可用性
灵活的持久化策略
id指定从哪个位置
分配策略
kafka工作原理介绍 - 简书
9 annotations
www.jianshu.com
591
overlay/overlay2驱动更快一些,几乎肯定比aufs和devicemapper更快
diff、merged和work目录
lower
diff
overlay2驱动原生地支持多层lower OverlayFS镜像
work目录
分层的技术被称作union mount
Docker存储驱动之OverlayFS简介 - BookShu - 博客园
7 annotations
www.cnblogs.com
518
建立一个容器
依赖关系图
“检索”构建组件的机制
提供”新组件的机制
依赖注入是你的组件(比如go语言中的structs)在创建时应该接收它的依赖关系的思想
Go中的依赖注入 - 简书
5 annotations
www.jianshu.com
550
没有人可以在一开始就胜任一份工作。不过,如果这真是你的梦想,请一定要相信自己并且记得时刻努力
人就像弹簧,压缩到最大限度的时候就该是到了反弹的时候了
《奋斗的乔伊》熟知的故事,背后总有直戳心底的不解与细节
2 annotations
baijiahao.baidu.com
552
任何放置在 public 文件夹的静态资源都会被简单的复制,而不经过 webpack
调整 webpack 配置最简单的方式就是在 vue.config.js 中的 configureWebpack 选项提供一个对象:
webpack
HTML 和静态资源 | Vue CLI
3 annotations
cli.vuejs.org
494
孤儿(Orphan
级联(Cascading
K8s 社区引入并实现了 Garbage Collector Controller(垃圾回收器)
对象关联参考金字塔是颠倒的
metadata.ownerReferences
孤儿对象
级联删除
Kubernetes 中的垃圾回收 - 知乎
7 annotations
zhuanlan.zhihu.com
399
你可以使用 vue serve 和 vue build 命令对单个 *.vue 文件进行快速原型开发
快速原型开发 | Vue CLI
1 annotation
cli.vuejs.org
457
但总的来说,对于大多数方法来说,您可能不希望强度超过1:12,因为结果太混乱了。低于1:20左右时,您会得到水质,平淡的咖啡,可能太苦了
对于大多数酿造方法和口味,您可以从1:15到1:18的比例开始。第一个应该给您浓浓的风味咖啡。第二个会更轻
咖啡最佳冲煮比例 咖啡粉水比 滴漏咖啡 gafei.com
2 annotations
m.gafei.com
361
均值
3个标准差
标准差
均值
蒙特卡洛模拟有个更为直观清晰的认识
通过大量成千上万甚至百万次的模拟次数,最终得出一个累计概率分布图,这个就是蒙特卡洛模拟
蒙特卡洛模拟正是以概率为基础的一种方法,所以用赌城的名字为这种方法命名
蒙特卡洛模拟(Monte Carlo Simulation)浅析 - 知乎
7 annotations
zhuanlan.zhihu.com
627
Adapter 将输入的数据适配为 BC 内部服务所需的数据对象
「防腐层」对外提供了基于 Facade 模式的粗粒度接口
BC 的划分不仅需要系统分析与架构的知识
软件架构往往受到「康威定理」的影响
从业务的角度出发,对系统进行某种维度的拆分
系统代码不仅应该在架构层次进行划分,以区分不同抽象层次以及功
DDD 实践手册(6. Bounded Context - 限界上下文) - InfoQ 写作平台
6 annotations
xie.infoq.cn
707
远程调用如同“隔空取物”
轻量级GPU虚拟化方案
用户提供了更大的价值和更加灵动的任务处理能力,加速推动AI计算与Kubernetes的发展及落地
混合云+本地数据中心的集中部署与管理
GPU资源池化解决方案
几乎零性能损失的情况下,提供对于物理GPU的细粒度、可远程、运行时动态可配置的虚拟化方案
高效的通讯机制
无需挂载物理GPU
,
同时为这些应用程序提供在GPU资源池中的硬件算力
比如仅能使用整数数量的GPU卡资源
Pod无法共享G卡
无法远程调用GPU卡等
GPU池化和虚拟化功能
Rancher与趋动科技达成深度合作,共同打造面向K8S的GPU资源池化方案_RancherLabs_传送门
14 annotations
chuansongme.com
551
originnal_opcode刚一执行,便会二进宫:再次陷入异常态
插入点处本来的指令
pre_handler
异常(BRK)指令
kprobe原理解析(二) - honpey - 博客园
4 annotations
www.cnblogs.com
405
specific runc version when dealing with advanced features
containerd/RUNC.md at master · containerd/containerd
1 annotation
github.com
471
查看系统中的所有环境
Conda使用指南 - 知乎
1 annotation
zhuanlan.zhihu.com
509
delegation of cpuset controller.
lack of freezer.
/sys/fs/cgroup/cgroup.controllers
systemd.unified_cgroup_hierarchy=1
cgroup v2 (unified mode)
runc/cgroup-v2.md at master · opencontainers/runc
5 annotations
github.com
492
选择 AirPods Pro 耳塞并进行耳塞贴合度测试 - Apple 支持
support.apple.com
640
后者会打开文件两次
前者只打开一次文件a
command产生的标准输入重定向到文件a中,标准错误也重定向到文件a中
Linux 命令行中的2>&1究竟是什么意思? - 简书
3 annotations
www.jianshu.com
466
线程controller
线程模式(THREAD MODE)
授予非特权用户管理权限
cgroup v2,要用监控cgroup.events文件的方式感知cgroup的变化。
cpu、cpuacct 的继任者
memory 的继任者
blkio 的继任者
rdma
hugetlb
cpuacct
threaded cgroup ,称呼为“ 线程子目录
domain cgroup ,称呼为“ 进程(子)目录 ”
一句话介绍cgroup:把一个cgroup目录中的资源划分给它的子目录,子目录可以把资源继续划分给它的子目录,为子目录分配的资源之和不能超过父目录,进程或者线程可以使用的资源受到它们委身的目录的限制。
Linux的资源限制功能cgroups v1和cgroups v2的详细介绍 | 码农网
13 annotations
www.codercto.com
305
(6 封私信 / 36 条消息) 国内各个招聘平台(网站),其优缺点分别是什么?你更推荐哪个? - 知乎
www.zhihu.com
320
随着http://draw.io开源vs code插件之后
强强联手!VS Code让它成为最强流程图工具 - 知乎
1 annotation
zhuanlan.zhihu.com
434
stream-processing evolve as an important and complementary tool in our operational and insights toolset at Netflix
insights capabilities
time to recover, or TTR
time to detect (TTD)
key performance indicator
rolling windows of unique events per asset
fine-grained insights
anomalies in high-volume, high-cardinality data in realtime
alerting on individual video titles across countries and device
API enables easy programmatic integration with automated workflows
The UI gives users the ability to quickly and manually interact with jobs and platform functionality
API for Integration
UI for Self-service
individual job’s autoscaling in action
autoscales the Mesos worker cluster
Mantis autoscales both the cluster size and the individual jobs as needed
peak capacity all the time
anomaly detector application
efficient data and code reuse
error rates per device type
stateful computations
sink to collect and output the processed data
processing stages
source
high-cardinality event streams
high-volume
a flexible model for defining a stream-processing job
a shared pool of computing resources
cloud native
long tail of problems
granularity
too little at the same time
too much data
high throughput
low-latency
speed, power, and incredible visibility
Mantis shrimp
a stream-processing service platform
8 million events per second
insights
better visibility into our complex operational environments
Stream-processing with Mantis - Netflix TechBlog
41 annotations
netflixtechblog.com
642
content addresses
a fully namespaced API so multiple consumers can all use a single containerd instance without conflicting with one another
containerd/namespaces.md at master · containerd/containerd
2 annotations
github.com
446
抓手、生态、闭环、拉齐、梳理、迭代、owner意识
能说、会写、善做是对职场人的三大要求
撕逼甩锅邀功抢活这些闹心的事儿基本也不会缺席
PPT、沟通、表达、时间管理、设计、文档等方面的能力
报警配置和监控梳理
良好的规划能力和清晰的演进蓝图
做系统建设要有全局视野
有的人能把一个小盘子越做越大
想到了leader没想到的地方
直接去找对应的人聊,让别人讲一遍自己基本就全懂了,这效率比看文档看代码快多了
向上沟通反馈
owner意识
主动承担任务,主动沟通交流,主动推动项目进展,主动协调资源,主动向上反馈,主动创造影响力
主动承担,及时交流反馈
主动跳出自己的舒适区,感到挣扎与压力的时候,往往是黎明前的黑暗,那才是成长最快的时候
强迫自己跳出自己的安逸区
积极学习,保持技术能力、知识储备与工作年限成正比,这到了35岁哪还有什么焦虑呢
架构先行于业务
技术同学该如何培养产品思维,引导产品走向
系统建设?系统核心能力,系统边界,系统瓶颈,服务分层拆分,服务治理
代码层,可以做的事情更多了,资源池化、对象复用、无锁化设计、大key拆分、延迟处理、编码压缩、gc调优还有各种语言相关的高性能实践
在架构层,可以做缓存、预处理、读写分离、异步、并行等等
术到道的过程
知识还是零星的几点,不成体系,不仅容易遗忘,而且造成自己视野比较窄,看问题比较局限
在滴滴和字节跳动干了 2 年后端开发,太真实… - InfoQ 写作平台
24 annotations
xie.infoq.cn
410
安装containerd
安装c
crictl images 会列出所有的cri容器镜像。
containerd与kubernetes集成部署 - sarah_linux - 博客园
3 annotations
www.cnblogs.com
363
一个文件被分成很多块,下载时同时进行块的下载
基于p2p网络的大文件分发方案调研汇总 - 作业部落 Cmd Markdown 编辑阅读器
1 annotation
www.zybuluo.com
317
动态组件
插槽分发内容
v-model
单个根元素
Prop 向子组件传递数据
一个组件的 data 选项必须是一个函数
组件基础 — Vue.js
6 annotations
cn.vuejs.org
518
短小的、固定长度(如3周)的小项目
迭代式开发
快速原型法
瀑布式模型
开发被认为是按照需求分析,设计,实现,测试 (确认), 集成,和维护顺序的进行
如何写软件设计文档 - 一抹微蓝 - 博客园
5 annotations
www.cnblogs.com
469
代码就是最好的文档
如何高效阅读代码?Linux大神拍了拍你并教给你这三个步骤 - 知乎
1 annotation
zhuanlan.zhihu.com
491
BT客户端将成为一个Seeder
用P2P方法快速分发Docker镜像 - 存档 - Rainbond社区-企业应用云操作系统
1 annotation
t.goodrain.com
382
Choking/Unchoking算法
常见 p2p系统BitTorrent简介 - bw_0927 - 博客园
1 annotation
www.cnblogs.com
441
迭代周期较长等问题
资源利用率较低
弹性能力不足
【大数据云原生系列】大数据系统云原生渐进式演进最佳实践
3 annotations
mp.weixin.qq.com
384
data decompression
HA and supports cross-cluster replication
uber/kraken: P2P Docker registry capable of distributing TBs of data in seconds
2 annotations
github.com
349
放一个空值在缓存中
缓存穿透、雪崩、热点与Redis - 知乎
1 annotation
zhuanlan.zhihu.com
534
故障隔离
交付隔离
职责划分、解耦
资源审计和分配
论文解读:基于容器的分布式系统的设计模式 - 知乎
4 annotations
zhuanlan.zhihu.com
513
各个层面程序产生的日志
活动流数据,准实时的
要事务支持。
实时响应的交易数据
传统的日志分析系统是一种离线处理日志信息的方式
活跃的流式数据
上游模块的数据计算
为什么你要使用这么强大的分布式消息中间件——kafka - 知乎
7 annotations
zhuanlan.zhihu.com
543
流存储”Pravega”项目
数据处理和存储的规则
上百万 Topics
多租户
多备份机制
ISR 实时备份列表的机制
append-only 日志作为核心的数据存储结构
Kafka 在消息中间件领域基本上占据了垄断地位
86.6% 的企业选择基于开源软件构建自己的大数据处理业务
Kafka 加 Flink 不是终点!下一代大数据平台 Pravega - 知乎
9 annotations
zhuanlan.zhihu.com
544
专门的代理层
高吞吐、高并发、低延迟和负载均衡
性能需求
多台服务器,为同一种互联网应用提供服务,这就是所谓“分布式系统”
浅析分布式系统 - 腾讯WeTest - 博客园
4 annotations
www.cnblogs.com
505
based on labels on pods that are already running on the node
a label whose key
change at runtime
preferredDuringSchedulingIgnoredDuringExecution
requiredDuringSchedulingIgnoredDuringExecution
Assigning Pods to Nodes | Kubernetes
5 annotations
kubernetes.io
594
可以将多次IO往返的时间缩减为一次
AOF做增量持久化
RDB做镜像全量持久化
在消费者下线的情况下,生产的消息会丢失
setnx和expire合成一条指令来用的
过期时间分散一些
过期的那个时间点
5个基本数据类型
BloomFilter
《吊打面试官》系列- Redis基础 - 知乎
9 annotations
zhuanlan.zhihu.com
357
操作系统级别的线程调度,通常不会做出合适的调度决策
Golang的程序中可以支持10w级别的Goroutine
堆栈和指令指针并开始运行goroutine
M直接关联了一个内核线程
M所需的上下文环境
每个P会负责一个队列
一种特殊的两级线程模型
用户态的线程
内核态的线程
内核空间主要操作访问CPU资源、I/O资源、内存资源等硬件资源,为上层应用程序提供最基本的基础资源
CSP(communicating sequential processes)并发模型
Goroutine可以理解为一种Go语言的协程。同时它可以运行在一个或多个线程上
微线程
线程的切换一般也由操作系统调度
【深度知识】GO语言的goroutine并发原理和调度机制 - 简书
14 annotations
www.jianshu.com
418
2020 年春节前后,今日头条DAU高达1.4 亿
今日头条上线搜索广告,8月刚引入前百度搜索高管-站长之家
1 annotation
www.chinaz.com
414
主动正常关闭TCP连接,都会出现TIMEWAIT
解决TIME_WAIT过多造成的问题 - 芹溪 - 博客园
1 annotation
www.cnblogs.com
428
2个MSL(Max Segment Lifetime)
发现大量的TIME_WAIT解决办法 - - ITeye博客
1 annotation
www.iteye.com
394
append-only fi le,AOF
snapshotting , RDB
丰富的数据类型
分布式缓存
互联网高频面试题:Redis灵魂14问?问到你怀疑人生 - 知乎
4 annotations
zhuanlan.zhihu.com
338
Mann-Whitney U test
Automated Canary Analysis at Netflix with Kayenta - Netflix TechBlog
1 annotation
netflixtechblog.com
650
request per second
user traffic for prediction
Fast Fourier Transformation
augmented linear regression based algorithm
Scryer: Netflix’s Predictive Auto Scaling Engine — Part 2 | by Netflix Technology Blog | Netflix TechBlog
4 annotations
netflixtechblog.com
442
main header contains the navbar
Main Header Component | AdminLTE 3 Documentation
1 annotation
adminlte.io
459
nonparametric statistical methods
fast-paced system experiments
daily or weekly patterns
account for
randomized A/B experiments
understand the impact of QoE
deduction-induction iterations
deduction and induction
System Experiments
modeling projects
modeling aspect
statistical models
statistical challenges
continuous experimentation
data-driven decision
data-driven decisio
devices
network infrastructure
varying taste
quality of experience (QoE)
A/B Testing and Beyond: Improving the Netflix Streaming Experience with Experimentation and Data Science
20 annotations
netflixtechblog.com
697
containerd 1.4,
cri plugin started using the shim v2 binary
Containerd distributions should contain v2 shim binaries · Issue #3894 · containerd/containerd
2 annotations
github.com
480
Preserving operational visibility and response capabilities
memorialization
uniqueness
post-incident analysis
Technical Sleuthing
Technical Sleut
Scribe
remediation
Decision Making
Coordination
Incident management
Incident ma
Incident Manager
monitor high-level business KPIs
they operate what they build
reliability consulting
handling the lifecycle of an incident
systemic risk identification
ensuring Netflix stays up
business-critical operations
robust and reliable
reliability
best-in-class service
Keeping Customers Streaming — The Centralized Site Reliability Practice at Netflix
23 annotations
netflixtechblog.com
615
先更新数据库,成功后,让缓存失效
先把数据存到数据库中,成功后,再让缓存失效
只更新缓存,不更新数据库
数据不是强一致性的
Read/Write Through套路是把更新数据库(Repository)的操作由缓存自己代理了
缓存更新的套路 | | 酷 壳 - CoolShell
5 annotations
coolshell.cn
572
工作负载/特征可移植性,互操作性,丰富的运行能力
那就是在一个系统中同时涵盖统一的应用定义和基础设施定义
YAML分解成多个片段呢
片段的拓扑
WorkloadDefinition
容器、函数、甚至虚拟机
框架
关注点分离”的想法与微软的团队非常契
较小片段
CRD作为描述应用的高级抽象
分组策略也是一个特殊类型的运行策略
平台构建者能够定义应用级别的抽象而不引入对平台可扩展性限制的理念
容器和基础设施API资源
Composition组合多个基础设施片段
应用中心的和可移植的基础设施绝非易事
OAM规范与Crossplane无缝集成
我们称之为”traits”
(译)OAM和Crossplane: 构建现代应用的下一个阶段 | 云原生社区
17 annotations
cloudnative.to
586
CNI配置pod的网络命名空间
Docker引擎本身是在containerd的早期版本上构建的,并将很快升级到最新版本。Containerd几乎可以称得上是功能完备且稳定的版本,目前可用的是1.0.0-beta.1。
cri-containerd[1]
Containerd给Kubernetes带来了更多容器运行时的可选方案
3 annotations
www.sohu.com
409
大量随机样本,去了解一个系统
蒙特卡罗方法入门 - 阮一峰的网络日志
1 annotation
www.ruanyifeng.com
607
vue里面使用sass的话就更简单了
vue create testvue
npm install -g @vue/cli
npm是node的包管理工具
变量,嵌套,循环,继承,混合
css预处理器
如何五分钟搞定Vue + Sass? - 知乎
6 annotations
zhuanlan.zhihu.com
507
downloadable package contains both of these libraries
Dependencies & Plugins | AdminLTE 3 Documentation
1 annotation
adminlte.io
403
V2相对于V1,规则发生了一些变化。每个控制组(control group)都有一个cgroup.controllers文件,列出子group可以开启的controller。另外,还有一个 cgroup.subtree_control文件,用于控制开启/关闭子group的controller。
只有叶子控制组才能对进程进行资源控制
memcg
可能是最好的中文cgroup v2文章: Cgroup V2 and writeback support-电子头条-EEWORLD电子工程世界
3 annotations
news.eeworld.com.cn
434
Pod.spec.containers 中的每个 container 计算一个 hash 值
扩展 workload 做部署管理
大部分拉取镜像的耗时
分配、挂载远程盘的耗时
分配网络的耗时
调度的耗时
原地升级至少比完全重建升级提升了 80% 以上的发布速度
只更新 Pod 中某一个或多个容器版本
仅仅更新了原 Pod 对象中 foo 容器的 image 字段
uid也变了
同样的名字
StatefulSet
Deployment
揭秘:如何为 Kubernetes 实现原地升级 - 知乎
13 annotations
zhuanlan.zhihu.com
384
子单元通过 prop 接口与父单元进行了良好的解耦
todo 对象是变量,即其内容可以是动态的。 我们也需要为每个组件提供一个“key”,稍后再 作详细解释。
还可以绑定到 DOM 结构
不仅可以把数据绑定到 DOM 文本或 attribute
v-bind attribute 被称为指令
Vue.component
介绍 — Vue.js
6 annotations
cn.vuejs.org
522
any functionality which is not required by the daemon is done by the client
containerd/PLUGINS.md at master · containerd/containerd
1 annotation
github.com
576
对外输出上,谷歌云明显没有AWS有经验
谷歌本身在公有云上的思路不太清楚
谷歌也是第一家提出云计算概念的公司
谷歌在2002年到2004年间发表了三篇论文,奠定了云计算的基石
谷歌云为何“放弃”中国市场?有人为它算了账,投入产出比太低
4 annotations
mbd.baidu.com
489
find optimal settings for memory.low
a few different memory controller configurations
minimum amount of memory the cgroup must always retain
best-effort memory protection
memory.high
memory usage hard limit
OOM killer is invoked on the cgroup
system OOM killer will be invoked
Shows the total amount of memory currently being
page cache
in-kernel data structures
pressure thresholds
Memory Controller · cgroup2
12 annotations
facebookmicrosites.github.io
331
还可以绑定到 DOM 结构
不仅可以把数据绑定到 DOM 文本或 attribute
v-bind attribute 被称为指令
Vue.component
介绍 — Vue.js
4 annotations
cn.vuejs.org
546
平说春秋145.伍子胥之死_平说平论_新浪博客
blog.sina.com.cn
659
go-callvis/examples at master · ofabry/go-callvis
github.com
492
镜像Pod的检查
CGroup配置
网络运行时检查
更新状态
准入检查
Pod的状态
每个Pod都创建一个对应的goroutine和事件管道
运行Pod之前在kubelet上进行Pod运行条件的检查
Pod的创建流程
Kubernetes中的Pod创建流程
9 annotations
www.toutiao.com
532
Web-hosted static pod manifest
Filesystem-hosted static Pod manifest
Create static Pods | Kubernetes
2 annotations
kubernetes.io
540
kube-reserved设置的cpu其实最终是写到kube-reserved-cgroup
eviction-threshold是kubelet eviction的阈值设定
从一次集群雪崩看Kubelet资源预留的正确姿势 - WaltonWang's Blog - OSCHINA - 中文开源技术交流社区
2 annotations
my.oschina.net
557
Streaming API。CRI shim中对Streaming API的实现,依赖于一套独立的Streaming Server机制
CRI shim就会直接创建出一个轻量级的虚拟机来充当Pod
SyncLoop都会开启单独的goroutine
Kubernetes(6) SIG-Node与CRI - 简书
3 annotations
www.jianshu.com
459
one instance of metrics server running in each cluster
3rd party monitoring solution
in-memory store
cluster level component which periodically scrapes metrics from all Kubernetes nodes
introduce a new one - metrics server
community/metrics-server.md at master · kubernetes/community
5 annotations
github.com
563
Infrastore will expose one or more APIs (possibly just SQL-like queries
resource estimates
resource estimator
third-party monitoring solutions
out-of-the-box solution that can serve historical data
produced by user applications
produced by Kubernetes infrastructure components
non-core metrics, which are not interpreted by Kubernetes
core metrics
community/monitoring_architecture.md at master · kubernetes/community
9 annotations
github.com
530
需要已经存在的连接,去预测未来的连接
快速、准确地定位到自己需要的内容
聊聊推荐系统
2 annotations
www.toutiao.com
464
网络事件处理器
事件驱动
select、poll和epoll
单进程、单线程的
官方提供的数据为:读的速度是110000次/s,写的速度是81000次/s 。
面试官:Redis 为什么这么快?除了基于内存操作还有其他原因吗? - 知乎
5 annotations
zhuanlan.zhihu.com
476
降级
保证缓存层服务高可用性
缓存层宕掉后,流量会像奔逃的野牛一样,打向后端存储。
Redis架构之防雪崩设计:网站不宕机背后的兵法
3 annotations
mp.weixin.qq.com
510
本地部署环境即服务
公有云端的部署
分析、数据湖和数据仓库
数据分析工具
先进的架构平台
没有分析和提炼的数据毫无价值
云-边-端的解决方案将驱动基础架构的创新
数据量和数据流的新变化正在重塑IT基础架构
数据增长呈井喷态势
数字经济时代,数据已成为最新和最重要的生产要素
大数据、云计算、物联网、边缘计算、人工智能等领域的技术突破与发展,工业大数据与这些新技术领域的联系将更加紧密,使工业大数据的数据获取量更大,存储管理更便捷,分析产出更智能,由此实现最大化的商业价值
20%的业务将利用它实现实时结果
到2024年,由人工智能自动化、物联网和智能设备需求驱动的数据量将超过30ZB
“新基建”重新定义未来大数据基础架构
13 annotations
mbd.baidu.com
359
Docker的build API和Dockerfile仍然是构建容器镜像的主要方法
无root权限“构建
Docker in Docker
我们不得不将守护进程的套接字安装到“客户端”容器中,以使其可用于构建
Docker Daemon要求客户端具有root访问权限或作为Docker组成员
没有一个方案可以将其与API结合。
镜像构建过程中如何处理密钥已经很多方案
内容临时挂载在构建过程中所需的位置
不希望最终产品中包含内容
构建容器镜像的过程依赖临时提供的内容或从中受益
缓存的内容而不是重新创建它
创建容器镜像不需要Docker Daemon
这些功能需要root权限才能运行,
容器镜像构建的最新技术
应用构建成自给自足且不变的软件包——容器镜像
容器抽象的普及
未来我们如何构建容器镜像? - DockOne.io
16 annotations
dockone.io
683
Gradle解包后的本地存储路径
设置Gradle属性文件的distributionUrl属性
Wrapper Task
指定版本的Gradle没有被下载关联,会先从Gradle官方仓库下载该版本Gradle到用户本地
Gradle Wrapper,它是一个脚本,可以在计算机没有安装Gradle的情况下运行Gradle构建,并且能够指定Gradle的版本
Gradle之Gradle Wrapper(四) - 简书
5 annotations
www.jianshu.com
448
event-based architecture
Extend Kubernetes via a Shared Informer
1 annotation
gianarb.it
514
controller 的POP 方法
Kubernetes Client-go Informer 源码分析-阿里云开发者社区
1 annotation
developer.aliyun.com
548
snapshot and content.
a local socket file which the containerd process has access to
Implementing a proxy plugin
containerd/PLUGINS.md at master · containerd/containerd
3 annotations
github.com
614
稳定是基础设施的生命线。所谓皮之不存,毛将焉附
20~150%的机器。
加20~30%的机器。
需要25~50%的额外机器。
稳定性能驱动的定制
需求进行归类、整理和分析
水土不服
每一个Kubernetes集群会管理三个物理Pod,大概是一万台的规模
每个数据中心部署若干套Kubernetes集群
它并不能解决数据中心资源使用率的问题,它其实仅仅解决了发布或者是管理资源的容器这方面的一些东西
api的请求数缩减了98%
api各请求资源类型中configmap占比可以到90%以
通过对于apiserver日志的分析,进而统计出每个请求的请求方法、请求的资源类型、namespace、资源名称、请求时间、来源ip等等信息,使用TSDB,在多个维度上进行聚合分析。
京东大规模Kubernetes集群的精细化运营 - 架构 - dbaplus社群:围绕Data、Blockchain、AiOps的企业级专业社群。技术大咖、原创干货,每天精品原创文章推送,每周线上技术分享,每月线下技术沙龙。
13 annotations
dbaplus.cn
425
创造知识的知识,叫做元知识
大道至简
颠覆式创新
学知识背后的底层知识
演绎推理,发展出基础学科,推动世界的创新革命
总在用过去的经验指导现在和未来
演绎法是一种逻辑推理过程,通过“大前提+小前提”推出结论
第一性原理:如何一秒钟看清事物的本质
7 annotations
mp.weixin.qq.com
682
RateLimitingQueue
一个 Informer 实例只能监听一种 resource
Shared指的是多个 lister 共享同一个cache
减少了 apiserver 的压力
workqueue 里面
最新的 resourceVersion
k8s REST API
kubectl
client-go
kubernetes 中 informer 的使用 - 简书
9 annotations
www.jianshu.com
517
config channel, pleg channel, sync channel, housekeeping channel中获取信息
syncLoopIteration会从pleg channel中获取PodLifecycleEvent进行消费
syncLoopIteration进行每次迭代修复
发送到PLE Channel
container runtime中查询属于kubelet管理的containers/sandboxes的信息
Kubelet PLEG源码分析 - WaltonWang's Blog - OSCHINA - 中文开源技术交流社区
5 annotations
my.oschina.net
563
traffic shaping
add the bandwidth plugin to your CNI configuration file
Network Plugins | Kubernetes
2 annotations
kubernetes.io
445
Listener
net - The Go Programming Language
1 annotation
golang.org
682
阐述论文的目的及其主要结论
学术论文的摘要与引言区别在哪? - 知乎
1 annotation
zhuanlan.zhihu.com
685
k8s的OSB API实现
PaaS平台的服务目录(二): Service Catalog in K8S/OpenShift Origin - 简书
1 annotation
www.jianshu.com
690
Allocations can't be over-committed
Non-root cgroups can distribute domain resources to their children only when they don't have any processes of their own
Only one process can be migrated on a single write(2) call
use cases where multiple cgroups write to a single inode simultaneously are not supported well
cgroup writeback is implemented on ext2, ext4, btrfs, f2fs, and xfs
per-cgroup dirty memory states
dirty memory ratio
how much the workload is being impacted due to lack of memory
memory.pressure
memory.stat
memory.events
Memory usage hard limit
Memory usage throttle limit
Best-effort memory protection
Protections can be hard guarantees or best effort soft boundaries
Memory is stateful and implements both limit and protection models
cgroup is a mechanism to organize processes hierarchically and distribute system resources along the hierarchy in a controlled and configurable manner
"min" and "max"
weight"
Limits can be over-committed
[0, max] and defaults to "max"
[1, 10000] with the default at 100
absolute resource guarantee
weight based resource distribution
The root cgroup should be exempt from resource control and thus shouldn't have resource control interface files
Consider cgroup namespaces as delegation boundaries
namespace root
all non-root "cgroup.subtree_control" files can only contain controllers which are enabled in the parent's "cgroup.subtree_control" file.
not subject to the no internal process constraint
threaded domain or thread root
The io controller, in conjunction with the memory controller, implements control of page cache writeback IOs
CPU
Memory
IO
PID
Cpuset
Device
RDMA
HugeTLB
Misc
A read-only flat-keyed file
allows to limit the HugeTLB usage per control group
controller limit during page fault
anon_thp
cgroup-v2.rst « admin-guide « Documentation - kernel/git/tj/cgroup.git - cgroup export tree
44 annotations
git.kernel.org
573
a load balancer in front of API servers
all API servers in the cluster will be available
only one instance of each of them will be active in the cluster
Set up High-Availability Kubernetes Masters | Kubernetes
3 annotations
kubernetes.io
617
敏捷本身不是项目管理框架,也不是“方法论”。它是一套与产品开发相关的原则和价值,特别是互联网产品经常会采用敏捷的方法来进行开发
敏捷开发和瀑布开发的区别
1 annotation
baijiahao.baidu.com
477
块设备的请求队列是非常有限的
CFQ不支持多队列块层特性
(译) io.latency I/O控制器 | 阿里云智能基础软件部-技术博客
2 annotations
kernel.taobao.org
474
maintain continue working well for their users
ensure the services they run
resource utilization
isolate, measure, and control the distribution of resources for a collection of processes on a serve
tools and strategies
Isolating a core workload from background system resource needs
isolate a web server from background system processes
separate time-critical or latency-sensitive work from long-term asynchronous jobs
pseudo-filesystem cgroupfs
cgroup core
subsystem controllers
hierarchy
isolate and protect a system's main workload from widely distributed system binaries and other system services that run on many Facebook hosts
Maximizing Resource Utilization with cgroup2 · cgroup2
13 annotations
facebookmicrosites.github.io
634
多篇并行的过程
记录所找的文章和阅读进度的工具,做好编录工作
保持节奏稳定的持续学习比短期集中精力的高强度更重要
阅读整篇文章
论文主体部分
图片
结论
介绍
作者对于一张可视化图片或者表格花的精力有时甚至超过全篇文字叙述,论文中的图片无疑会成为我们理解文章的钥匙
大致的理解
读标题,摘要,图片
(5 封私信 / 29 条消息) 科研大牛们怎么读文献? - 知乎
11 annotations
www.zhihu.com
584
先像领导者那样去行动,再像领导者那样去思考
如果你仔细观察不难发现,那些模仿能力强的人一般在事业上比较成功
恰到好处的领导力
领导者转变过程就是考验你能否在权威和亲和之间找到一个平衡点
行动力才有影响力
《能力陷阱》:从单干到带团队如何过渡?三招教你摆脱管理混沌期
5 annotations
www.toutiao.com
464
Raw devices
O_SYNC (and related O_DSYNC), and O_DIRECT
using these functions may not result in system calls
fsync
flushed
fflush(outfp)
Library Buffers
application buffer
non-volatile storage
one or more blocks of memory, or buffers, in the application itself
a volatile write-back cache
own version of a write-back cache called the page cache
data integrity
the path data takes from the application down to the storage
Ensuring data reaches disk [LWN.net]
14 annotations
lwn.net
332
Note that soft limits take effect over a long period of time, since they involve reclaiming memory for balancing between memory cgroups
3.7. memory Red Hat Enterprise Linux 6 | Red Hat Customer Portal
1 annotation
access.redhat.com
638
GTAGS、GRTAGS、GPATH三个tag数据库文件
vscode搭建linux内核开发环境 - 孟诗远
1 annotation
blog.mxslly.com
424
a resource management runtime
resource contention
A Case for Adaptive Resource Management in Alibaba Datacenter Using Neural Networks | SpringerLink
2 annotations
link.springer.com
612
template:'app/src/page/index.html'
filename:'app/index.html',
html-webpack-plugin
webpack入门之打包html,css,js,img(一) - 甜玉米莱莱 - 博客园
3 annotations
www.cnblogs.com
461
网页版
sci_hub数据库
1. 1 大部分学术类的书籍,一个网站就够了
英文文献(期刊/书籍)搜索及下载方法汇总 - 知乎
3 annotations
zhuanlan.zhihu.com
659
runc 必须使用 root 权限启动
config.json的配置文件
rootfs
容器标准包
--add-runtime参数来选择其他的 runC 现
runC 是从 Docker 的 libcontainer 中迁移而来的,实现了容器启停、资源隔离等功能
docker-containerd-shim 子进程,已经是实际在容器中运行的进程
docker-containerd-shim 进程
docker-containerd
Docker daemon
containerd-shim 结合 runC
理论上,即使不运行 dockerd,也能够直接通过 containerd 来管理容器
dockerd
守护进程
Docker、Containerd、RunC...:你应该知道的所有 - InfoQ
14 annotations
www.infoq.cn
438
颜色或纹理填充对象
颜色取样
PixelStyle功能介绍-Mac苹果图片编辑软件
2 annotations
www.effectmatrix.com
564
native GPU support
ative GPU support
NVIDIA GPUs are now natively supported as devices in the Docker runtime.
Docker 19.03
NVIDIA driver
utilities
a container runtime library
NVIDIA Container Toolkit
NVIDIA/nvidia-docker: Build and run Docker containers leveraging NVIDIA GPUs
8 annotations
github.com
630
a group of machine-sets
VM
template that contains cloud provider specific details
a group of machines
machine-controller-manager/README.md at master · gardener/machine-controller-manager
4 annotations
github.com
684
居住登记满6个月之后,可以申请办理居住证
居住地所属的社区事物受理中心
居住登记
2020上海居住证办理具体流程- 上海本地宝
3 annotations
sh.bendibao.com
607
VDE (Virtual Distributed Ethernet) networking
UDP Tunnel
Generic networking
Host-only networking
Internal networking
Bridged networking
NAT Network
eight virtual PCI Ethernet cards
Chapter 6. Virtual Networking
8 annotations
www.virtualbox.org
634
服务抽象一直是k8s需要增强的特性,然而这也正是CF所提出的OSB API解决的问题
k8s在设计之初没有考虑过外部服务接入的问题
应用的打包,依赖管理,迁移以及升级都由Docker解决
主流的PaaS平台那样是面向Container
CF在设计之初是面向Application的PaaS
Service Broker处于整个系统的服务抽象层
OSB API可以将任意软件快速集成到CF环境中
开放服务代理协议
开发者以服务的方式按需消费应用所依赖的基础设施软件
PaaS平台以服务的形式来提供
应用托管和迁移的成本
service broker所代理的外部服务
PaaS平台的服务目录(一):Service Broker的前世今生 - 简书
12 annotations
www.jianshu.com
696
133MB/s的带宽
8MB/s的传输率
扩展接口,它主要用于外围设备的连接和扩展,而外围设备吞吐速度的提高,往往会倒推接口速度的提升
深入PCI与PCIe之一:硬件篇 - 知乎
3 annotations
zhuanlan.zhihu.com
436
CPU亲和的内存分配策略
访问其他CPU所关联的内存(下文称Remote Access)的速度相较慢三倍左右
优先尝试在请求线程当前所处的CPU的Local内存上分配空间。如果local内存不足,优先淘汰local内存中无用的Page(Inactive,Unmapped)
NUMA(Non-Uniform Memory Access)
当CPU访问自身直接attach内存对应的物理地址时,才会有较短的响应时间(后称Local Access)
CPU Core都是通过共享一个北桥来读取内存
NUMA架构的CPU -- 你真的用好了么? • cenalulu's Tech Blog
6 annotations
cenalulu.github.io
421
学习的关键在于稳定和坚持,而不是暴饮暴食
阅读全文,但跳过数学
读什么?怎么找?怎么读
引言,结论,更仔细地阅读图表
标题,摘要,图表
更有效地阅读论文 | 吴恩达 - 知乎
5 annotations
zhuanlan.zhihu.com
494
10255 端口的只读 API
10248 端口的健康检查 API
10250 端口的认证 AP
集群内部可以直接访问 kubelet 的 10255 端口
10250 端口
kubelet · Kubernetes指南
5 annotations
feisky.gitbooks.io
409
解决程序在进行大量I/O操作(如网络通信)时的阻塞问题
linux中的select和epoll模型 - 重复啦 - 博客园
1 annotation
www.cnblogs.com
402
镜像解压缩为一个snapshotter作为即将运行的容器的rootfs
Containerd到底是干啥的? - Go语言中文网 - Golang中文社区
1 annotation
studygolang.com
369
extract-text-webpack-plugin
style-loader css-loader
webpack入门之打包html,css,js,img(二) - 甜玉米莱莱 - 博客园
2 annotations
www.cnblogs.com
453
Install etcd
To build everything:
make WHAT=cmd/kubectl
up-to-date GNU tools environment
community/development.md at master · kubernetes/community
4 annotations
github.com
330
pa = (pte_val(*pte) & PAGE_MASK | (address & ~PAGE_MASK);即得到物理地址
kernelnote
1 annotation
www.kernelnote.com
442
AAS serves as an excellent safety net for us
Amazon Auto Scaling (AAS)
each step minimized to achieve best performance
predict our capacity needs
clearly spikes and troughs
relatively predictable traffic patterns
scale up — scale down oscillations.
Variable traffic patterns
Rapid spike in demand:
reactive auto scaling model
outages
Scryer: Netflix’s Predictive Auto Scaling Engine | by Netflix Technology Blog | Netflix TechBlog
11 annotations
netflixtechblog.com
419
prevent instances of ads overdelivery
Using Kafka Streams API for predictive budgeting | by Pinterest Engineering | Pinterest Engineering Blog | Medium
1 annotation
medium.com
443
进程间高速的共享数据(如mmap)
数据段和堆栈空间,以及通过mmap分配的共享内存,它们在磁盘上找不到对应的文件,所以这部分内存页被叫做anonymous page
后端映射到了磁盘的物理地址
物理资源存放在磁盘上的文件中
标记,用来表示所关联的物理资源类型
延时分配/按需分配
关联的资源
虚拟地址的起始位置,长度,权限
共享内存
只有虚拟地址被分配给进程后,也即进程调用类似malloc函数之后,系统才会为相应的虚拟地址在Page Table中添加记录
page table里面的数据由操作系统维护
CPU需要将虚拟地址转换成物理地址
交换空间只是虚拟内存这张大蓝图中的一部分
(...) Linux内存管理 - Linux程序员 - SegmentFault 思否
13 annotations
segmentfault.com
392
内核负责轮询所有socket
从操作系统层面理解Linux下的网络IO模型 - 宜信技术学院的个人空间 - OSCHINA
1 annotation
my.oschina.net
457
mmap加速内核与用户空间的消息传递
fd上面的callback函数实现的
遍历所有的文件描述符(fd)
linux select/epoll - 简书
3 annotations
www.jianshu.com
375