这一系列文章, 旨在描述面对一个从零开始的 B(C)/S 应用的时候, 如何去搭建一个业务无关的平台, 承载上层应用流量. 这里要强调这个平台的几个特点:
业务根据不同的指标, 可以分为若干类, 这里期望通过两种指标来描述这一系列文章想要覆盖的场景, 以说明 业务无关性
:
无状态
服务和 有状态
服务 异步
与 实时
应用
这两个指标可以任意组合, 但是最常用的组合应该是属于 无状态-异步
及 有状态-实时
应用了, 但是通常也会有 无状态-实时
应用存在, 比如对于一个博客系统, 可以认为其是一个 无状态-异步
应用, 而一个一对一的聊天应用, 则可以看作是 无状态-实时
应用, 而大多数在线游戏, 则是 有状态-实时
应用, 需要注意的是, 业务场景不会严格按照上述概念进行区分, 最终大多都会形成一个 无状态
与 有状态
, 异步
与 实时
共存的状态.
微服务化是满足扩展性的基石, 这也是文章会首先描述的一个整体性架构, 单机应用会在后期引发若干难以解决的问题, 所以这是一开始就需要考虑到的事情.
文章会主要描述以下几个部分:
微服务的存在, 致使应用分散在若干服务器集群中, 如何有效管理集群是一个比较庞大的话题, 但是目前业界已经有了比较一致的具有完备性的技术方案, 如k8s, rancher等, 特别是云服务商的出现, 掩盖了硬件管理这个最复杂的环节, 所以这里不会去讨论关于容器编排相关的话题.