12-Factor 列出了 12 条软件交付原则,涵盖了从架构设计、开发,和部署的全过程,是基于现代云计算时代进行软件开发总结出来的最佳实践。它集合了敏捷开发、持续交付、DevOps、微服务等方法论,对「任何 SaaS 应用的开发人员」和「部署和管理此类应用的运维工程师」很有指导意义。
我一直在寻找一款工作上适合程序员使用的笔记软件。工作的时候,经常需要记录一些代码片段和笔记。这类笔记大部分都不成体系,记录的都是一些工作上的要点和代码片段。有的时候只是临时保存一小段代码。
在线上环境运行的 Docker 的时候,部署之后往往没有清理旧版本的镜像和关闭的容器。如此一来,长时间运行 Docker,尤其是频繁地更新镜像、启动容器,会消耗大量的磁盘空间。
本文汇总几条用来清理 Docker 的命令。
我目前在生活中还不能完全摆脱微信,虽然我仍然在不断地努力尝试中。除了「为什么我不用微信」里提到的诸多原因之外,每当:
都让我坚定了离开微信的决心。
之前曾经写过了一篇 使用 Travis CI 和 Docker 自动构建 LaTeX 简历,介绍了使用 Travis CI 和 Docker 自动构建和发布 LaTeX 简历的方法。
以前每次写了新文章之后,都需要在笔记本上运行一下 Hugo 再将生成的网页上传到 Github。虽然使用脚本也可以做到一键发布,但总觉得不够流畅。昨天,我又使用了同样的方法,将基于 Github Pages 的博客也实现了自动构建和发布。
又快到了求职季,最近一段时间总是频繁更新的简历。之前,我的简历更新流程是先修改简历,使用 MacTeX 编译,再把 PDF 版的简历同步到几个网盘备份。过程倒也不算繁琐。但再做过几个月的运维开放之后,我对自动化有着近乎偏执的热情。这几天经过不断的尝试和摸索,在 Travis-CI 上运行了十几个 Build 之后,终于使用 Docker 实现了一个便捷的自动化发布 LaTeX 简历的方法。
迪士尼,包括皮克斯,非常擅长将现实世界中的美国生活方式和美式流行文化投射到动画中的虚拟世界来赢得观众的共鸣;再利用各种细节、彩蛋博取观众的会心一笑;最后来一个欢乐的大结局把清教徒式的传统价值观传递给观众。
在网上被刷了几天屏之后,我今天去电影院看了电影《疯狂动物城(Zootopia)》。
最近看了一篇文章 The Product Managers’ Guide to Continuous Delivery and DevOps。 文中对「持续集成( Continuous Integration )」、「持续交付( Continuous Delivery )」和「持续部署( Continuous Deployment )」这三个概念有很详细的解释。这里借用文中的插图,说一下我对这三个概念的理解。
Git 可能是每个开发者最常用的工具之一。Git 让开发团队更加方便地进行版本控制和多人协作。但是如果开发团队没有约定如何使用 Git 工作,很可能会导致工作变得一团糟。其中最大的问题是同时存在太多的开发中的分支,每个分支都包含了部分修改。最终开放团队很难弄清楚哪一个分支应该继续开发,或者把它发布成产品。
正如编程过程中变量命名需要一套标准的命名规则(Naming convention)一样,开发团队在使用 Git 的时候,也需要一套标准的工作流,从而确保高效的开发、测试和部署。
关于 Git 的工作流,业界已经有了很多讨论。