The Twelve-Factor App

Mon, Jan 8, 2018   authored by Adam Wiggins

12-Factor 列出了 12 条软件交付原则,涵盖了从架构设计、开发,和部署的全过程,是基于现代云计算时代进行软件开发总结出来的最佳实践。它集合了敏捷开发、持续交付、DevOps、微服务等方法论,对「任何 SaaS 应用的开发人员」和「部署和管理此类应用的运维工程师」很有指导意义。


程序员使用的笔记软件

Sun, Dec 31, 2017  in Miscellaneous using tags

我一直在寻找一款工作上适合程序员使用的笔记软件。工作的时候,经常需要记录一些代码片段和笔记。这类笔记大部分都不成体系,记录的都是一些工作上的要点和代码片段。有的时候只是临时保存一小段代码。


Read more

清理 Docker

Fri, Oct 13, 2017  in Miscellaneous using tags Docker

在线上环境运行的 Docker 的时候,部署之后往往没有清理旧版本的镜像和关闭的容器。如此一来,长时间运行 Docker,尤其是频繁地更新镜像、启动容器,会消耗大量的磁盘空间。

本文汇总几条用来清理 Docker 的命令。


Read more

搭建分布式 Gerrit 集群

Sun, Sep 10, 2017  in Miscellaneous using tags Gerrit

Gerrit 是由 Google为了管理 Android 项目而开发的,一款免费、开源的代码审查软件。Gerrit 使用 Git 作为底层版本控制系统,提供了代码审查、权限管理等功能。

本文将会简单介绍如何搭建分布式 Gerrit 集群,即搭建由一个可以读写的 Gerrit Master 和若干个只读的 Gerrit Slave 组成的 Gerrit 集群。Gerrit Slave 可以实时同步 Gerrit Master 的数据,保证代码的一致性。


Read more

为什么我不用微信

Thu, Jul 6, 2017   authored by Kyle

我目前在生活中还不能完全摆脱微信,虽然我仍然在不断地努力尝试中。除了「为什么我不用微信」里提到的诸多原因之外,每当:

  • 一些同事在微信发来一长串凌乱的代码片段或者文件的时候;
  • 刚见面的陌生人提出加微信的时候;
  • 想到在微信里的聊天内容处在政府的监控之中的时候。

都让我坚定了离开微信的决心。


自动构建 Github Pages 博客

Sat, Nov 12, 2016  in Miscellaneous using tags CI , Docker

之前曾经写过了一篇 使用 Travis CI 和 Docker 自动构建 LaTeX 简历,介绍了使用 Travis CI 和 Docker 自动构建和发布 LaTeX 简历的方法。

以前每次写了新文章之后,都需要在笔记本上运行一下 Hugo 再将生成的网页上传到 Github。虽然使用脚本也可以做到一键发布,但总觉得不够流畅。昨天,我又使用了同样的方法,将基于 Github Pages 的博客也实现了自动构建和发布。


Read more


又快到了求职季,最近一段时间总是频繁更新的简历。之前,我的简历更新流程是先修改简历,使用 MacTeX 编译,再把 PDF 版的简历同步到几个网盘备份。过程倒也不算繁琐。但再做过几个月的运维开放之后,我对自动化有着近乎偏执的热情。这几天经过不断的尝试和摸索,在 Travis-CI 上运行了十几个 Build 之后,终于使用 Docker 实现了一个便捷的自动化发布 LaTeX 简历的方法。


Read more

Zootopia 观后感

2016年3月7日  归档 随笔 标签

迪士尼,包括皮克斯,非常擅长将现实世界中的美国生活方式和美式流行文化投射到动画中的虚拟世界来赢得观众的共鸣;再利用各种细节、彩蛋博取观众的会心一笑;最后来一个欢乐的大结局把清教徒式的传统价值观传递给观众。

在网上被刷了几天屏之后,我今天去电影院看了电影《疯狂动物城(Zootopia)》。


阅读更多

持续集成交付部署

Sat, Mar 5, 2016  in DevOps using tags DevOps , CI

最近看了一篇文章 The Product Managers’ Guide to Continuous Delivery and DevOps。 文中对「持续集成( Continuous Integration )」、「持续交付( Continuous Delivery )」和「持续部署( Continuous Deployment )」这三个概念有很详细的解释。这里借用文中的插图,说一下我对这三个概念的理解。


Read more

Git 工作流

Sat, Feb 13, 2016  in DevOps using tags git , CI

Git 可能是每个开发者最常用的工具之一。Git 让开发团队更加方便地进行版本控制和多人协作。但是如果开发团队没有约定如何使用 Git 工作,很可能会导致工作变得一团糟。其中最大的问题是同时存在太多的开发中的分支,每个分支都包含了部分修改。最终开放团队很难弄清楚哪一个分支应该继续开发,或者把它发布成产品。

正如编程过程中变量命名需要一套标准的命名规则(Naming convention)一样,开发团队在使用 Git 的时候,也需要一套标准的工作流,从而确保高效的开发、测试和部署。

关于 Git 的工作流,业界已经有了很多讨论。


Read more