老系统架构容器化解决大并发、高负载问题,容器化的:原则、步骤、方法?

我们现在的架构还是老的架构,想容器化解决大并发、高负载的问题。现在架构:负载均衡+web服务(Apache)+中间件(weblogic)+数据库(oracle11G)跪求大神告知:1.要容器化的原则2.要容器化的步骤3.要容器化的方法...显示全部

我们现在的架构还是老的架构,想容器化解决大并发、高负载的问题。
现在架构:负载均衡+web服务(Apache)+中间件(weblogic)+数据库(oracle11G)
跪求大神告知:
1.要容器化的原则
2.要容器化的步骤
3.要容器化的方法

收起
参与17

返回nameless的回答

namelessnameless  技术总监 , 某云计算厂商

针对要容器化的原则,我们总结有以下原则:
1、不要在容器中存储数据
1)由于容器是一次性的,当容器被停止、销毁或替换时,应用在容器中存储的数据同样会被销毁。
2)如果应用需要存储数据,需存储在共享数据存储中。
2、不要发布两份应用
1)每个容器中只能部署运行一个应用,不能部署多个应用到一个容器中。
3、清除不必要的包和文件
1)容器的一个显著特点是秒级启动,一旦制作了一个超大的镜像将难以分发。在镜像中应该确保仅有运行应用/进程的必需的文件和库存在,其他不必要的包、文件等建议应用打包前进行清除。
4、不要在容器中运行多个进程
1)容器能完美地运行单个进程(http守护进程,应用服务器,数据库),但是如果你不止有一个进程,管理、获取日志、独立更新都会遇到麻烦。
5、不要在镜像中存储凭据、使用环境变量
1)不要在应用中写死服务的IP和端口(如数据库IP和端口、服务接口IP和端口),采用域名的方式。
2)环境变量应该以传参的形式传入容器,而不是直接写死在容器中,需要的环境变量可写入系统集成文档中。
6、使用非root用户运行
1)docker容器默认以root运行。
2)随着docker的成熟,越来越多的安全默认选项变得可用。请求root是危险的,可能无法在所有环境中可用。所以镜像应该使用USER命令来指令容器以一个非root用户来运行。
7、不要依赖IP地址
1)每个容器都有自己的内部IP地址,如果你启动并停止它地址可能会变化。
2)如果应用或微服务需要与其他容器通讯,由于容器IP是不固定的,应用依赖IP地址将无法与其他容器通讯,可以选择更合适的方式与其他容器进行通讯。
8、服务间接口调用使用TCP和HTTP协议
1) 问题描述
服务间接口调用使用非标准协议进行交互(如EJB调用使用t3协议),无法通过负载均衡器进行有效负载。
2) 建议方案
建议服务间接口调用通过TCP和HTTP协议进行交互,这样可使用负载均衡器进行有效负载。

软件开发 · 2017-09-22
浏览2507

回答者

nameless
技术总监某云计算厂商
擅长领域: 云计算容器容器云

nameless 最近回答过的问题

回答状态

  • 发布时间:2017-09-22
  • 关注会员:2 人
  • 回答浏览:2507
  • X社区推广