微服务改造是要投入的,因此首先要想清楚应用的负载特征是什么,微服务改造的目的是什么,是享受云中动态资源扩缩带来的便利,还是仅仅只是运维的便利?如果只是后者的话,做好单体应用的自动化运维也是可以的。
其次,从一个应用的非关键功能入手剥离,尽量要考虑两套模式能够并行,逐步将流量切换到微服务侧。等团队练熟手后,再逐步剥离关键功能。
最后,没有哪个应用是不能拆分的,除非不是自己写的。
上微服务前要先考虑是否准备好了上微服务:
1 是否有自动化部署能力,手工部署成百上千的实例是不实际的。
2 持续集成工具和文化可以提高开发效率。
3 相对应的组织机构。
应用上云可以分为现有系统迁移和新系统。对于新系统可以通过持续重购的方式,不断拆分和归并服务,达到低偶合高内聚的目标。对于现有系统采用绞杀的方式,化整为零,最终实现微服务。