《微服务运维实战》第一卷推荐序

按照马克思的辩证惟物主义,为了解决某个社会问题而诞生的新生事物,在流行并占据统治地位后,必然会出现它的反面,也就是负面的影响。以后又会出现新生事物来解决它所形成的负面影响。这样循环往复,没有终结,推进人类社会向着更高级的方向发展。

对于软件应用开发来讲,也遵循着辩证惟物主义的规律。早期的软件应用都是单片应用,随着流量的增大,单片应用没法支持,并且复杂的单片应用也难以维护、难以测试,最终开发团队只好将单片应用化整为零,变成分布式应用。可是设计、开发分布式应用很复杂,因此出现了一些开发方法,例如面向服务的架构SOA,以及最新的微服务架构MSA。按照辩证惟物主义,千万别觉得MSA就是软件应用开发最终的理想国。MSA仍然有不少使人头疼的地方,其中最主要的一个方面就是运维了。

在MSA流行以前,一个软件应用即便是分布式的,一般服务数量并很少(不超过10个),运维工程师的工做量不算很大。MSA流行以后,一个分布式应用经常会有二、30个甚至上百个服务。运维工程师的工做量不是简单地按照服务的数量线性增长,而是按照服务数量的平方增长。可想而知,若是不想办法尽可能下降运维工做的成本,建造理想的MSA就是不切实际的空中楼阁。
聪明的运维工程师和聪明的程序员相似,遵循着DRY的原则——Don't Repeat Yourself. 解决方案只写一次,尽可能重用,能自动化完成的工做尽可能都自动化完成。这个思惟和工做方法叫作DevOps,已经在运维领域流行了不少年。近5年来涌现出来大量的DevOps工具,还有以Docker为表明的轻量级容器,这些新生事物极大地提升了运维工做的自动化程度,使得运维工做的效率有了10倍以上的提高。

《微服务运维实战》这本书的内容就是探讨如何把设计开发MSA和DevOps两方面的最佳实践结合在一块儿。这本书的出现能够说是恰逢其时,由于有不少想要尝试MSA的软件开发团队,就是由于不知道如何作好运维工做,而最终无奈放弃。实施好一个MSA项目固然不可能一蹴而就,而是一个长期的演化迭代过程。有了《微服务运维实战》这本书的帮助,开发团队能够少踩不少坑,更加顺利地实施MSA,没必要走回头路。我强烈推荐这本书,这本书很是实用,应该成为正在实施MSA项目的全部技术人员的案头书。程序员