DevOps


  • Docker 大家应该都听过,不过可能对于我们前端来说用得比较少,后端开发和运维应该是对它很了解了。我从去年开始了解到 Docker 的好处后,对它一直很有兴趣。最近,用了一个比较整块的时间研究了一下,这篇文章记录下来。最近2周的空闲时间,看了一下 Docker ,记录一下,免得以后忘了。本文的代码都在 https://github.com/riskers/docker-demo 可以找到。

    1. 一个 Node 应用
    2. docker化一个应用
    3. 发布一个镜像
    4. docker-compose
    5. 多容器应用

    Docker 存在的意义

    • 加速本地开发和构建,开发人员可以构建、运行并分享Docker容器,

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

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

    那么我就结合《持续交付》这本书的内容,正文开始。

    为什么要有持续交付

    1. 不敢发布新功能:每次发布都会心惊胆战,因为一下子发布了太多功能,测试又没做好,而这时候产品催着要上线。另外按照以往的经验,由发布而出问题的的概率最高;
    2. 线上事故处理时间长:每次出线上事故,不能很快定位问题,如果是由于同事线
  • 没有什么运维问题是一起重启解决不了的,如果有,那就两次。 --- 🙈

    今天又栽在mongodb索引上了,哥们又在我不知情的情况下,加入了新建索引的代码,也怪我,没有review。两亿多数据啊。。。。天。。。。

    于是我们的平均响应时长就跟过山车似的,一波未平,一波又起,甚至一度达到了我入职以来的最高值,6kms。

    没办法,先重启,回滚了刚上线的代码,怀疑是update操作太频繁。等先把响应时长降下去之后,才发现是索引的问题,查看建索引进度,快结束了,那就等等吧,等了10多分钟,建立完毕,长吁一声,以为完事了。

    哎,一度把复制集索引的建立过程给忘了,于是几个从库一起复现刚才的过山车,只不

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

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

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

  • 前言

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

    Git Flow

    这是最常见的协作流程,并且它已经有现成的工具支持:git flow,简单来说,就是把分支分为:

    • master:主分支,用于追踪线上生产环境