1.7 何时采用云原生

云原生架构是一个阶段性产物,它符合技术的生命周期,有流行时期,也有淘汰的时间点。是否采用云原生要看各自场景的需求以及是否具有使用云原生的基础条件。另外,云原生架构不是银弹,如果不了解情况就贸然上云原生架构,会带来各种成本极大浪费,也解决不了所有问题。

在选择上云原生之前,读者可以问自己几个问题:

(1)企业的现有基础架构是否敏捷?所谓敏捷是指可以通过API来自动分配、销毁资源,也就是说,现有IaaS层是不是API可控制的。云原生应用需要系统抽象,在应用中不能硬编码系统主机名,也不能捆绑应用到特定机器,从而排除人为操作应用和系统之间的映射。换句话说,当应用不再关注底层系统的情况时,就可以尝试云原生架构。

(2)企业的开发团队、部署团队、运维团队是否独立?技能是否相通?如果多个团队各自独立运作,互相之间技术不了解,这种情况下采用云原生架构,则势必带来磨合成本和高昂的学习成本。如果采用云原生架构,将打破这种独立运作的组织架构,由传统纵向分割团队改为横向分割团队,每个小组可以自己负责纵向的所有事宜,从而更好地协作。

(3)企业的业务是否需要更快地迭代,是慢步速应用还是快步速应用?如果是慢步速应用,则完全可以不采用云原生架构,直接在一台物理服务器或者云服务器上一次性部署会更加节约成本。采用云原生架构的应用,就是为了快速响应业务变化,并快速部署应用,只有业务变化快的业务才能充分发挥云原生架构的作用。

(4)企业是否有云原生应用?是否有满足十二要素的应用?是否有微服务等应用?如果以上都没有,那么企业可能还需要做更多工作才能采用云原生架构。适合云原生架构的应用必须职能单一、与系统无绑定,能够动态扩展实例数量。这就要求能够以无人值守的方式扩展应用实例,也要求状态持久化的存储服务独立于应用所在的服务器。符合十二要素是最好的实践。

如果以上问题的答案都是“是”,那么企业完全可以毫无顾虑地采用云原生架构。如果以上问题的回答有“否”,也不是说企业不能采用云原生架构了。实际上,对于一个非互联网企业或者高校、政府机关来讲,能够部分采用云原生架构,能够部分借鉴云原生应用的理念,也是一种改进的成果,为转向云原生架构做准备工作。