持续交付的实践与思考

一直以来都在做团队里的基础性工作,直到最近,成果开始慢慢展现,尤其是上周刚看完《持续交付》这本书后,总结已经做的工作,又有了些新的感悟。 过去一段时间,我都是围绕着 Gitlab 的一些功能来开展的,从最开的代码与应用配置管理,然后到 CI 系统,提升代码质量,到最后完整的持续交付流程提升团队工作效率。 那么我就结合《持续交付》这本书的内容,正文开始。 为什...

阅读全文

应用配置管理实践

自从 上次 简单提到应用配置管理的几种方式以来,我都在尝试不同的方式,到目前为止,仍觉得 ** 剥离单独管理 ** 加上 ** 动态配置服务器 ** 的方式最好用,接下来谈谈原因以及具体实践。 原因记录变更与审计其实这个涉及到 CD,即持续交付的范畴,为了保证线上应用环境的稳定性,如果配置无法追踪的话,即意味着你不能在出问题的时候,快速定位原因,处理问题。 ...

阅读全文

APM 以及 Node.js 探针原理

关于 APMAPM 能帮企业以及应用开发者提供很多帮助,它的功能集中在监控、分析、优化上面,从应用中部署探针直接采集信息,集中处理,从多维度形成报告,简而言之:** 相当于给了一副看到应用程序不足的眼镜 **。 多余的不再赘述,可以看文末参考链接。 几个选择目前几个好用的,并且支持 Node.js 应用的: NewRelic OneAPM Tingyun ...

阅读全文

Git 协作流程

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

阅读全文

Node Version Manager

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

阅读全文

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

年关快过了,大家基本上留的留,走的走,有之前不少朋友去了创业公司,再加上最近接触了不少来面试的新人,他们不少来自于创业公司,我面试了他们之后很有感触。 毕竟我经历过创业公司从生到死,因此,来谈谈如何在创业公司工作。 两个故事近几年来,互联网行业蓬勃发展,尤其是去年,2014 年开始,各种 O2O 公司站在了风口上,于是你也风风火火得加入了一家 O2O 的公司...

阅读全文

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

缘起今天项目负责人跟我一起面试了一个候选人,他说沟通能力不行,直接 pass,而我却不死心,因为没问清楚技术问题,于是直接叫他做个系统设计题,哎…… 直接给我转移话题,麻蛋。但是,我也浪费了负责人的时间,要是上次我直接说这人沟通能力不行,也就没今天的事了。 另外,今天晚上,跟一同行交流『如何面试』的问题,恩,发现自己这块儿一直没有重视起来。 正文开始人才的重...

阅读全文

如何快速生成 iTerm2 Dynamic Profile

日常服务器运维中,很多情况下,我们得登录到远程,当服务器一旦多了之后,管理还是挺麻烦的。之前一直用的 SSH Shell 这个小工具,一直用的挺顺畅,直到看到它在不断接收文本太多之后一次又一次奔溃,终于打算放弃。 后来仔细回想,似乎 iTerm 2 的 Profile 的就能达到类似的效果: 新建 Profile,在 “Send text at start...

阅读全文

2016 年总结

在这个跨年的时刻,躺在床上,听着音乐,想着快过去的 2016,以及即将到来的 2017。 2016 回顾年初经历了加入了一年半的创业公司倒闭,开始到处找工作。然后,发现自己似乎落后这个世界好远(因为差点把自己按 15k 给买了 ==#),毕竟当自己专注于创业这件事的时候,对外界似乎关注太少。 不过,正是这创业期间不断逼自己成长,让我能很快...

阅读全文

进程管理器 pm2 运维小结

pm2 这个进程管理器是越来越好用了,最新的版本已经开始支持 docker,不过我不看好,docker 镜像内的 node 进程挂掉就应该让集群管理器去处理,简单有效,并且也准守 Fail fast 这个准则。 正文开始,我把最近用到的几个点总结下,(之前的 #4 也有一些总结) 。 使用 yml 配置文件还在使用 json 文件来配置么?放弃吧,yml 更...

阅读全文

关于公共服务的思考

前几日与一同行交流,一一交流下来,发现什么叫『固步自封』,跟外界交流少了,很多东西便会搞不清楚,甚至脱离主流。 比如最近一直在为团队做基础设施方面的工作,但是,会有一种吃力不讨好的感觉,虽然搭建完毕之后自己会很很有成就感,但是随之而来的维护成本却是很让人头疼。 是的,『能花钱的,就不要花时间』。 我也想反驳,但后来仔细回想,没有立即反驳是因为我认同这句话。我...

阅读全文

ELK5 升级小记

早就听说 ES5 的版本了,一直没有在意,但是直到最近正式版出来之后,才有了要升级现在的 ES 集群的想法,首先便是日志集群(2.3 版本),之前一直有问题:丢日志现象很严重,尤其是 GC 导致的静止现象,然后所用占用的空间非常大。 看 ES5 的介绍,以及网上其他人的经验,ES5 集成了 Lucene 6,性能提高不少,简单来说:** 磁盘空间少一半 &#...

阅读全文

HTTPS 两三事

为什么我们需要近来 HTTPS 越来越被大家重视,尤其是在 http2 出来之后。 流量劫持国内的网络环境很恶劣,运营商各种流量劫持,DNS 劫持,只是为了在你页面上加上几个小广告,或者更严重的,是否还记得 12306 抢票软件拖垮了 github?对于流量劫持,很简单的方案就是用 HTTPS,流量加密之后就可以解决。(说句题外话,DNS 劫持的话,http...

阅读全文

接口限流

在业务安全性方面,我们常常会用到接口限流,主要是为了防止系统压力过大、保证每个用户请求的资源保持均匀以及屏蔽恶意请求。 几个常见的场景如下: 恶意注册 爬虫的过度抓取 秒杀场景 目前实现 API 接口限流的方式有几种常见的,简单来说原理很简单,无非是在一个固定的时间段内,限制 API 的请求速率,一般来说是根据 IP,如果是登录用户的话,还可以用用户的 ...

阅读全文

记一次类微博 API 重构

最近看 APM 上面的 API 响应,发现有个 API 在挑事,平均响应时长 4s,已经到了不可忍受的地步。 仔细一看,发现是动态有关的 API,类似于微博,进一步分析发现,这个 API 设计不合理:用了 mongo 的 aggregate,占了响应时长的 90% 以上,这个不适合在 API 使用,因为非常耗数据库的计算性能。 Mongo 数据库结构1234...

阅读全文