从数据处理脚本到人际沟通

众所周知,在工作中,我们会有很多的时间与同事去沟通,而沟通效率是一支团队凝聚力的体现以及战斗力的保障。

那么,我们从一个故事说起。

故事

工程师小王刚毕业就进入了一家大公司里面,目前已经开始接受任务,某一天,直属项目领导 A 过来找到小王:

阅读全文

Node.js RabbitMQ 任务队列排错小记

这周五解决了挺有意思的一个 Bug。

背景

由于长期以来,在我们的 Node.js 服务端项目中,离线任务大部分用的是 kue,这是个轻量级的任务队列,之前 也有过介绍。而周五那天我正准备将之前的 kue 队列重构成 RabbitMQ 的队列的相关代码上线。

阅读全文

k8s Ingress 实践

一般来说,我们从外部访问 k8s 里面的应用,有以下种方式:

  1. Ingress:有些云服务商有提供,自己也能安装自己的 ingress controller;
  2. Service NodePort:在 Node 上暴露一个 30000-32767 的端口,可以通过 NodeIp:NodePort 的方式访问;

阅读全文

使用 docker runner 加速 gitlab CI&CD

在之前的 CI&CD 实践中,我们一直使用的是 Shell runner,简单来说,就是在一台机器上配置好所有的环境,然后序列地去执行任务。

很明显,好处是配置非常简单,也很容易 Debug,出了问题,登录到机器上去查找即可;然而坏处就是配置迁移麻烦,也非常容易被破坏环境,而且单台机器上并发比较麻烦,好些的方法是需要配置多个机器,只是这就有些有点浪费资源了。

阅读全文

团队内部推广之我见

一些经验较少的管理者或者项目经理在团队内部推广新技术、新工具的时候,往往,会遇到阻力。

在这里,先讲一个小故事:

小 A,在一个传统互联网公司,刚上任他所在的小团队开发技术经理不久。为了提高公司技术团队的工作效率,最近学习了不少 DevOps 有关的技术与文化,想在团队以及公司内部推广起来,于是他组织了一场分享会,蒙着头花了不少时间去做 PPT,分享的那天,来了不少周围的开发以及运维同事,过程中小 A 激情满满,会后大家也表示应该好好学习与实践。但是,之后发现大家真正落实的情况很少,大部分还是继续着之前的做法,一直不变。小 A 很气愤:明明这是一项非常牛逼的技术 / 工具,为什么这帮人不好好实践呢?于是变得很气愤,抱怨大家的不支持以及不作为。

阅读全文

CentOS 7 使用 ansible 搭建 kubernetes

一直以来,我使用的是 rancher,它提供的 k8s 集群非常棒,基于 docker 镜像安装,免去了很多的安装配置细节,如果对于 k8s 的运行原理不想太深入了解、图方便快捷或者只是想尝试功能,那么它会让你绝对满意:在界面上点击配置下就能搭建起一个集群了。

但是这次我就需要自己真正在机器上搭建起一个原生的集群,折腾下自己。众所周知,k8s 的安装,绝对是个坑,尤其是国内,不翻墙基本上就没戏,对比国外的技术环境,瞬间觉得,国内的技术环境下,能做出好的世界性项目绝对不容易,当然 GFW 除外。

阅读全文

基于 ElasticSearch 的日志统计反爬虫策略

之前在 接口限流 中提到过,用 rate limit 的方式可以起到反爬虫的效果,但是一旦遇到利用代理 IP 来爬你网站的时候,就会遇到问题了

这时候,你可以付钱买服务解决,只是,如果有时间与精力,也可以考虑自己去试试,就当是一次锻炼。

阅读全文

ELK 最近的一些总结

不要执迷于登录服务器敲命令,而是用自动化脚本完成所有的事情

各种博客,包括我自己,一眼望过去,全是教你一步步怎么搭建某个服务,其实这是一个 『反模式 anti-pattern』

阅读全文

《目标》读后感

最近刚看完了《目标》,是《凤凰系统》里面提到的一本书,同样是小说题材,有趣而容易理解。

书的核心点在于 『 TOC 制约法』 ( TOC 即 Theory of Constraints ),简单来说,就是需要发现与改进系统中的 『瓶颈点』

阅读全文

异构数据库之数据同步实践

一般来说,我们的不少业务中,需要用到数据同步,而其中涉及到的本质无非是 『数据一致性』。首先,能想到的数据同步的例子肯定是数据库,由于数据库领域存在的 CAP 理论,一定会有数据同步的过程来达到数据一致性,只是那是属于相同数据库之间的同步,在不同数据库的情况下同步数据的话,叫做 『异构同步』

阅读全文

持续交付的实践与思考

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

过去一段时间,我都是围绕着 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 版本的话,也需要很方便去操作。

阅读全文