[ 杂谈 ] 三年后

三年前,鄙人刚毕业之际写了一个对自己职业发展规划的帖子,如今已经整整三年了,三年真的可以改变很多人,改变很多事情,且来回顾下鄙人这三年的经历、成长以及不足罢。 开发 成长 受益于转岗Tars的经历,鄙人的代码功力上升了一个层面,对Python的理解也不仅仅只是以前的脚本语言,开始理解元类、读懂Django的整个web处理过程,并学会参考像Sentry这样的高星项目实现一些项目需求; 在这个阶段,鄙人也开始调整自己的代码风格,开始学会把握产品需求; 来到B站后,这块也是小有突破,开始编写不仅仅只是运维自动化的工具系统,也涉及到了端对端的错误上报和舆情监控系统,也因此开始尝试使用Go语言来实现一些系统,包括正在实现的一个基于Mesos/K8S的容器混合调度平台 值得高兴的是,鄙人今年在开源社…

Read More

[ 三年后的杂谈 ] 浅谈配置管理 [ 篇一 ]

前言 鄙人从2014年正式转正,参加工作以来已有三年,可以说,这三年,是鄙人在计算机行业最开始的入门阶段的三年,鄙人也由此萌生了总结这三年经验收获的想法,权且产出一些文章,内容上如有不准确之处,欢迎批评指正,邮箱:wjx_colstu@hotmail.com 配置管理 配置管理(Configuration Management),其实可以说是一个工业界的术语,而在IT领域,这一概念可以解释成"为了保证一组服务器上的软件服务都能处在事先约定好的一个配置状态"(例如,nginx服务器上的nginx配置,乃至于系统配置,都是按照运维工程师期望的那样进行配置并且稳定运行)。 究其本质,配置管理,可以说实际上是工程师们在维护承载软件服务运行的基础设施的过程中,提出的一个最佳实践和标准。它也经历了几个时…

Read More

[ 翻译 ] 一个更好的可视化微服务架构的方式

我一直在用draw.io做一些和UML流程图,图表或者曲线图相关的事情。它在丰富的功能和用户的手工控制方面做出了合理的权衡。 但是,接下来我会告诉你如何自动化一些无聊的鼠标点击;) 避免从一开始就犯错 Daniel Woods的 “Microservices: The Right Way” 演讲里其中一张幻灯片 如果它不是这样的话事情也不会变得这么有趣。事实上,这里最好能有一张更清晰地展现组件之间关系和职责的图片。不然的话最终结果就是像上面看到的这样 ;) 诀窍便是在做的时候不断审视它哪个地方不对,这样一来便不太可能做的这么糟了。 在做图的时候 —— 你也在同时给自己一个感官,它们将会怎么交互,问题域是什么,上下文,边界,等等。 "光纸上谈兵是没用的,长期的战略规划才是无价的。" ―…

Read More

Easy your life by using the snmp-exporter generator

Prometheus is a great monitoring system, and our devops engineer team has been using it in production for months. When it came to network monitoring, we choose to use the snmp-exporter to collect the metrics from the network switches. snmp-exporter is also a great tool to do such snmp walk and collect the metrics we need. We could also take this a …

Read More

记一次失败的docker排障经历

掐指头一算,从14年年中GL总介绍Docker这个项目以来,鄙人实际开始玩Docker也有2年多了,说是玩,其实对它本身的一些原理性质的东西还不够清晰,而且也没做到“玩转”的水平(业内其实有很多玩Docker的案例了,比如大浪同学玩转razor with docker,还有谷歌大神 All in Docker)等等。 Okay,闲话不多说,本文即是介绍鄙人最近(2017.06.03)对docker daemon无故hang住问题的一次排障经历。这一问题其实存在已久,因为没有足够的精力,对Docker也不够熟悉(其实还是惰性使然,这种排障投入产出比太低了,所以很多时候倾向于workaround),因此直到这回才真正深入挖掘了一下,当然,见于标题所述,其实这回也是一次失败的尝试 :( 版本信…

Read More

[ 翻译 ] 从头编写一款时间序列数据库

我从事监控方面的工作。尤其是专注在Prometheus,一款内置了自己定制的时间序列数据库的监控系统,以及它和Kubernetes的集成工作。 从很多方面来说,Kubernetes表现出了一切Prometheus专门设计的东西。它使得持续部署,自动扩缩,以及高度动态环境的其他功能更易于实现。它的查询语言和操作模型,还有许多其他概念方面的决策使得Prometheus尤其适合这样的环境。然而,如果被监控的工作负载变得更加显著动态的话,这也会给监控系统本身带来新的压力。基于这一点的考虑,与其再次回顾Prometheus已经很好解决的问题,还不如专注于在这样一个高度动态或短生命周期服务的环境里提高它的性能。 Prometheus的存储层在历史上有着惊人的性能表现,一个单台服务器每秒可以摄取多达100…

Read More