如果应用不做任何改造迁移到容器,或者说把容器当虚机用,基本和传统区别不大。但如果应用做了微服务化改造,需要面对很多可能的新问题,这里只大致罗列:
- 服务效率问题:解决的选项可以考虑微服务网关做服务聚合、亲和性调度、缓存机制、断路器、异步调用
- 高可用性问题:解决的选项可以考虑实例自动恢复、服务限流、服务降级、弹性扩容、负载均衡
- 数据一致性及事务性问题:跨微服务的事务性和强一致性处理代价非常高,尽量避免把这样的场景切分到不同的微服务,就是说要尽量避免跨微服务处理事务性,对于没有事务性一致性要求的,或者可以接受最终一致性的任务,才考虑微服务划分
- 安全问题:服务间跨网络的API调用,可能要考虑API需要有鉴权、传输加密、API限速、API设计上考虑避免泄露敏感信息等,另外以容器方式运行,还可能要限制特权模式的权限
- 运维复杂度问题:可以考虑多个方面改进监控系统,包括但不限于日志集中收集、选择适合微服务的监控粒度、微服务设计配合监控的接口提供业务指标、滚动升级和回滚等