生产环境运行Docker的关键决策 (云栖征文)
首当其冲的镜像管理 .虽然Docker官方提供了一个私有镜像仓库允许你自己来部署和管理镜像,但如果它发生故障的话会打断你的发布流程。你将需要选择一款方案来加固私有Docker镜像,同时还得保证在构建和部署过程中可以访问到它们。
其次是网络访问和安全补丁,安全是这个时代最重要的话题,无论哪个平台都躲不开,如果你是在本地开发环境,相对没有安全风险,但你在开发环境为了排障,开发环境相对开放,你就需要在网络配置方面多多考虑,针对不同网络采取不同权限,通过对网络流量的监控,防暴力攻击,最后要记得安全补丁及时跟进。
其次是网络访问和安全补丁,安全是这个时代最重要的话题,无论哪个平台都躲不开,如果你是在本地开发环境,相对没有安全风险,但你在开发环境为了排障,开发环境相对开放,你就需要在网络配置方面多多考虑,针对不同网络采取不同权限,通过对网络流量的监控,防暴力攻击,最后要记得安全补丁及时跟进。
处理好容器和宿主机之间的负载均衡,常见的做法是使用像Nginx或HAProxy这样的工具来实现。难点主要在于需要保证当容器创建或销毁时它们的配置能够及时更新,为扩容而添加到生产的新Docker宿主机也是如此。你可以及时通过工具或脚本来满足这类需求。无论你选择的是哪款方案,都得确保你的服务注册和你的容器实例同步,并且在容器扩展到多台Docker宿主机的时候在负载均衡策略方面有所响应。
随着容器数量的不断增长,也就自然带来了额外地管理他们的注册以供应用消费的开销。业界有多种工具可以用来管理这个流程,大多数需要集成和配置到你的Docker生产环境里.
分布式日志策略使得服务器可以从一个或多个的日志服务器上采集和聚合日志记录。生产环境的基础设施也将需要支持跨越容器的日志聚合。你还得考虑该如何规划查询和搜索这些日志来配合排障等因素。
分布式日志策略使得服务器可以从一个或多个的日志服务器上采集和聚合日志记录。生产环境的基础设施也将需要支持跨越容器的日志聚合。你还得考虑该如何规划查询和搜索这些日志来配合排障等因素。
在开发环境,数据库可以托管在容器里而无需担心I/O性能方面的问题。
开发人员需要记住的是Docker是一款工具,而不是一个全面的云原生应用架构的解决方案。