对于开发来讲,主要是要熟悉容器化和不容器化有哪些不一样: 容器的基本概念和应用在运行时如何通过容器check应用的状态和扩缩容等、具体比如:如何选择基础镜像、如何写Dockerfile、如何构建镜像、拉取镜像部署/升级应用、容器和传统方式部署在网络上会有哪些不同、如何暴露应用服务端口以及如何和负载均衡搭配、如何查看容器内应用状态、日志等
对应运维来讲,除了要熟悉容器技术还有熟悉相应的编排系统和监控系统并做好选型、如何构建基于容器的CICD流程、如何构建相应的管理平台来更好的自动化以上业务、要能做到排除和解决容器相关问题,即要做好主机和网络层面运维对容器集群的支撑和支持,还有做好容器之上服务的监控和治理。此外,运维团队在此过程中也要build团队在容器技术方面的knowledge分享和业界前沿实践跟踪
收起容器化给开发和运维虽然带来了很多的方便,但也带来了很大的挑战:
1、需要有人专门去学习这门新技术。要制定新的标准以及规范。
2、容器运行时的数量非常庞大,开发和运维方式都比传统的架构有很大的不同,对当前的技术架构以及组织架构都带来了很多新的问题,比如研发和运维的工作界面,交付物,网络架构的更改,DevopS流程的制定等等。
3、应用的容器化改造以及迁移过程也是比较复杂的。