In production
上周六参加了thoughtworks的docker workshop活动, 主要探讨了docker技术在生产环境应用的问题.
前面介绍了一下容器相关技术, 如Linux Container(lxc)
, 也介绍了namespace隔离等等.
还有docker的架构:
然后又有部分常见的docker使用技术, 如docker compose
, 使用compose.yml文件指定容器的创建, 以及整体管理等.
进阶
文件系统的挂载, 包括数据卷挂载(-v), 以及制作+使用数据容器的思路方向.
容器网络模型, host内的bridge, 跨host的overlay, 以及sandbox/endpoint定义.
也扩展了一下安全性问题. (docker真的权限...太高了)
多主机部署于服务发现
Consul服务发现.
Registrator服务注册.
Docker Swarm集群.
日志/监控
docker logs的使用局限.
一点关于实际应用的思考
在docker的助力下,将每个服务,做成一个容器,然后跑在公司所有的主机上,这样的微服务架构想想就知道才是当下最合理的方式。
借助cluster解决方案,可以将公司的多服务器主机的资源合起来利用,并能更好的应对服务故障。
而容器微服务,在开发本地调试,一旦通过测试可以发布,发布的过程也是简单而不会出错。
构建好如上讲述的服务注册+发现,更能动态获取服务地址,自动完成服务之间的连接,才称得上是科学做法。
而服务状态监控,健康检查,日志收集处理,这些服务构建好,才能真的在出错时及时追溯问题,更能通过预警邮件及时知道问题。
一个产品环境,必须是科学专业的环境,而不是单单能运行就行。