持续交付的实践与思考

一直以来都在做团队里的基础性工作,直到最近,成果开始慢慢展现,尤其是上周刚看完《持续交付》这本书后,总结已经做的工作,又有了些新的感悟。

过去一段时间,我都是围绕着 Gitlab 的一些功能来开展的,从最开的代码与应用配置管理,然后到 CI 系统,提升代码质量,到最后完整的持续交付流程提升团队工作效率。

阅读全文

应用配置管理实践

自从 上次 简单提到应用配置管理的几种方式以来,我都在尝试不同的方式,到目前为止,仍觉得 ** 剥离单独管理 ** 加上 ** 动态配置服务器 ** 的方式最好用,接下来谈谈原因以及具体实践。

阅读全文

APM 以及 Node.js 探针原理

关于 APM

APM 能帮企业以及应用开发者提供很多帮助,它的功能集中在监控、分析、优化上面,从应用中部署探针直接采集信息,集中处理,从多维度形成报告,简而言之:** 相当于给了一副看到应用程序不足的眼镜 **。

阅读全文

Git 协作流程

前言

在使用 SVN 的时代,一旦一个文件被锁定,其他人都无法修改的情况时常出现,着实让人头痛。Git 横空出世之后,大家因为它带来的便捷性非常有价值纷纷改为这个:它有一系列非常有意义的功能:回滚与重复修改、强大的分支以及 tag 管理、更清晰的历史修改追踪等等。只是,Git 也是由人来使用的,当单个人使用时,无论怎么折腾都没事,而当多人合作开发的时候,就会有各种各样的问题,比如由于 Git 的灵活性,所带来的分支管理与协作流程的问题。

阅读全文

Node Version Manager

关于

NVM,简单来说,就是管理 node 版本的,自从 Node.js 跟 io.js 合并之后,node 版本迭代就非常快了。然而这时候,我们可能会需要用到多个 node 版本:旧的用来兼容以前的老项目,新的用来应用到新项目;另外线上升级 node 版本的话,也需要很方便去操作。

阅读全文

谈谈如何在创业公司里面工作

年关快过了,大家基本上留的留,走的走,有之前不少朋友去了创业公司,再加上最近接触了不少来面试的新人,他们不少来自于创业公司,我面试了他们之后很有感触。

毕竟我经历过创业公司从生到死,因此,来谈谈如何在创业公司工作。

两个故事

近几年来,互联网行业蓬勃发展,尤其是去年,2014 年开始,各种 O2O 公司站在了风口上,于是你也风风火火得加入了一家 O2O 的公司。原因?很简单,因为觉得行业势头好,而且好多朋友在里面,虽然工资降了,高期权也不错。

阅读全文

谈谈如何当一名合适的面试官

缘起

今天项目负责人跟我一起面试了一个候选人,他说沟通能力不行,直接 pass,而我却不死心,因为没问清楚技术问题,于是直接叫他做个系统设计题,哎…… 直接给我转移话题,麻蛋。
但是,我也浪费了负责人的时间,要是上次我直接说这人沟通能力不行,也就没今天的事了。

阅读全文

如何快速生成 iTerm2 Dynamic Profile

日常服务器运维中,很多情况下,我们得登录到远程,当服务器一旦多了之后,管理还是挺麻烦的。之前一直用的 SSH Shell 这个小工具,一直用的挺顺畅,直到看到它在不断接收文本太多之后一次又一次奔溃,终于打算放弃。

后来仔细回想,似乎 iTerm 2 的 Profile 的就能达到类似的效果:

阅读全文

2016 年总结

在这个跨年的时刻,躺在床上,听着音乐,想着快过去的 2016,以及即将到来的 2017。

2016 回顾

年初经历了加入了一年半的创业公司倒闭,开始到处找工作。然后,发现自己似乎落后这个世界好远(因为差点把自己按 15k 给买了 ==#),毕竟当自己专注于创业这件事的时候,对外界似乎关注太少。

阅读全文

进程管理器 pm2 运维小结

pm2 这个进程管理器是越来越好用了,最新的版本已经开始支持 docker,不过我不看好,docker 镜像内的 node 进程挂掉就应该让集群管理器去处理,简单有效,并且也准守 Fail fast 这个准则。

正文开始,我把最近用到的几个点总结下,(之前的 #4 也有一些总结) 。

阅读全文

关于公共服务的思考

前几日与一同行交流,一一交流下来,发现什么叫『固步自封』,跟外界交流少了,很多东西便会搞不清楚,甚至脱离主流。

比如最近一直在为团队做基础设施方面的工作,但是,会有一种吃力不讨好的感觉,虽然搭建完毕之后自己会很很有成就感,但是随之而来的维护成本却是很让人头疼。

是的,『能花钱的,就不要花时间』

阅读全文

ELK5 升级小记

早就听说 ES5 的版本了,一直没有在意,但是直到最近正式版出来之后,才有了要升级现在的 ES 集群的想法,首先便是日志集群(2.3 版本),之前一直有问题:丢日志现象很严重,尤其是 GC 导致的静止现象,然后所用占用的空间非常大。

看 ES5 的介绍,以及网上其他人的经验,ES5 集成了 Lucene 6,性能提高不少,简单来说:** 磁盘空间少一半 => 索引时间少一半 => 查询性能提升 25%。当然了,其它还包括: 索引 merge 次数更少,用的内存更少了,GC 静止出现的次数也会更少 **。

阅读全文

HTTPS 两三事

为什么我们需要

近来 HTTPS 越来越被大家重视,尤其是在 http2 出来之后。

流量劫持

国内的网络环境很恶劣,运营商各种流量劫持,DNS 劫持,只是为了在你页面上加上几个小广告,或者更严重的,是否还记得 12306 抢票软件拖垮了 github?对于流量劫持,很简单的方案就是用 HTTPS,流量加密之后就可以解决。(说句题外话,DNS 劫持的话,httpDNS 不错)

阅读全文

接口限流

在业务安全性方面,我们常常会用到接口限流,主要是为了防止系统压力过大、保证每个用户请求的资源保持均匀以及屏蔽恶意请求。

几个常见的场景如下:

  • 恶意注册
  • 爬虫的过度抓取

阅读全文

记一次类微博 API 重构

最近看 APM 上面的 API 响应,发现有个 API 在挑事,平均响应时长 4s,已经到了不可忍受的地步。

仔细一看,发现是动态有关的 API,类似于微博,进一步分析发现,这个 API 设计不合理:用了 mongo 的 aggregate,占了响应时长的 90% 以上,这个不适合在 API 使用,因为非常耗数据库的计算性能。

阅读全文