1. 什么是云原生云原生是一个快速发展的领域。2013 年, Pivotal 提出云原生的概念,并不断对其进行解读。下面是 Pivotal 对云原生架构的特征描述:2015年,12-Factor、面向微服务、抗脆弱2017年,可观测性、模块化、可替代性、可处理性2019年,DevOps、持续交付、微
在 CentOS 下安装包时,通常需要寻找各种源,使用 Homebrew 就没这样的烦恼。本文使用的是 CentOS 7.6,不同的系统版本可能会有差异。1. 创建非 root 用户Homebrew 不允许以 root 身份运行,因此需要创建一个新的用户。新建用户1 adduser shaowenc
1. 安装 zsh1 sudo yum install -y zsh 2. 安装 oh-my-zsh1 sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 建议将 Zsh 设置为默认
1. 以开源为核心的商业模式开源的魅力之一在于其包容性。它能接受怀揣各种意图的人,无论是执着技术的的工程师,还是心怀鬼胎的商人,亦或是热心公益的志愿者,甚至茶余饭后的看客,都能在这里碰撞、交融,形成一股力量。围绕开源做商业,应该被允许和接受。开源和商业是互相成就的关系。最新的开源报告显示,在 Git
本文主要描述在 CentOS 8.2 下,如何使用本地工具编译 https://github.com/istio/istio 项目。另外一种方法是通过 BUILD_WITH_CONTAINER 参数控制,使用容器编译,仅依赖于 make 和 docker。1. 安装并升级 Ruby >= 2.
1. 本文主要讨论什么勿在浮沙筑高台。业务量的增长、业务形态的进化都需要坚实强劲的 IT 系统支撑。业务内容对市场是透明的,但是 IT 系统不是一朝一夕能建设完善的。未来公司之间的竞争主要也会来自于 IT 系统之间的竞争,能不能快速响应业务需求是决胜的关键。IT 系统也在不断进化。建设高效、智能的
大概是十年前,我在笔记本上安装过 macOS。当时最头疼的是只有特定的硬件才能安装成功,而且还缺各种驱动程序。后来自己买了 Mac 笔记本,很长时间没有关注如何在通用机器上安装 macOS 。最近拿到了一台 Dell 台式机,配置还不错,又尝试了一下。本文主要是记录这一过程。1. Dell Opti
计算机基础堆和栈什么时候用堆?什么时候用栈?栈有什么作用?Golang 的变量在栈还是堆?堆、栈有没有上限?有的话和什么有关?数据结构Slice 空间是怎样分配的?双倍扩容,原来数据复制过去。Golang 的 map 是什么结构 Golang 的 map 是什么结构,遍历是否有序, 什么是 Hash
1. 为什么需要物理构建机在文章《如何接入远程 macOS 物理机进行 Jenkins 流水线构建》中,我描述了在 Jenkins 中添加物理构建机的方法。这并不是我拍脑袋想的需求,而是当时真的有 ToB 的商业客户在咨询方案。对于多端开发商来说,构建 Android、IOS、macOS、Arm 、
Docker 的 Mirror 仅能加速 docker.io 的镜像,而不能加速私有仓库的镜像。1. 为什么需要一个私有的镜像仓库 mirror公网限速dockerhub 拉取限制频率减少拉取镜像时间2. 创建一个 Registry 镜像加速服务生成一个配置文件version: 0.1 log:
使用的是 CentOS 7,内核版本 3.10.0-327 。1. 查看当前 Docker 的版本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 docker vers
下面是一个 Jenkins 与 Tekton 对比的列表:功能JenkinsTekton编程语言JavaGolang开发插件语言JavaShell、Yaml流水线描述语言Groovy、ShellYaml、Shell插件生态很多插件,LDAP、GitLab不足插件数量1500+100+插件之间的兼容性
由于众所周知的原因,在国内的网络环境下,访问 Github 时,网络会阻断或者很慢。本文提供了若干访问方法。1. 使用 Github Mirror 下载直接在 GitHub 仓库前面拼接 Proxy 地址,不同的 Mirror 拼接方式可能有所不同。下面以拉取 https://github.com/
1. 我的平台建设经历毕业之后,我加入了腾讯蓝鲸,主要参与 SaaS 的开发。待了近三年之后,回武汉老家,加入青云,负责 DevOps 的研发。待了近两年之后,加入新的公司,参与业务支撑平台建设,思考业务侧对 Kubernetes 的落地实践。我写过很多关于平台的文档,领域输出才是 PaaS 的核心
1. Kubernetes 中的网络隔离Kuberntes 自 1.3 引入了 Network Policy(网络策略) ,通过 ipBlock、podSelector、namespaceSelector 定义实体,控制其 From(Ingress)、To(Egress)的流量行为。但 Kubern
1. 解耦引擎释放流水线能力在设计系统时,我们常面临两难。是内敛复杂度,对外提供单一易用的功能;还是释放复杂度,将灵活归还用户。这非常考验产品能力。设计 CICD 系统时,我们可以直接将 Jenkinsfile、PipelineRun 等概念直接抛给用户,让用户自己学习相关领域的知识,再来使用产品。
1. 配置较大的 -Xms -Xmx 参数Jenkins 是由 Java 编写的编排引擎, 在 Full GC 时会 Stop The World(STW)。在大规模构建时, STW 可能会导致 Jenkins 无法处理新的请求。为了避免频繁的 STW, 同时增大并发量, 建议设置较大的堆, -Xm
1. 如何部署 Jenkins为了方面进行下面的测试,先介绍两种部署 Jenkins 的方式,这里使用的是 shaowenchen/jenkins:2.277.4 镜像。在生产环境中,需要替换为官方 jenkins/jenkins 镜像或自己定制的镜像。1.1 docker-compose 运行do
不能1. 问题背景基于 Kubernetes 构建可靠、稳定的运维系统时,虚拟机 (VM) 的销毁和新建是一种常态。VM 提供的是计算和内存资源,而使用外部存储,通过 StorageClass 提供给集群中的 PVC 消费。在这样的背景下,如何快速初始化 VM 成为新的挑战。常见的思路是制作 Nod
1. 需求背景如上图,业务方需要隔离 namespae 的服务,禁止 bar 空间的负载访问,而允许用户从 Load Balancer (LB) 通过 NodePort 访问服务。可以很容易地写出一个网络策略: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15