container-as-a-service-000 -- 基于Docker的私有云&混合云搭建需求

container-as-a-service-0x00 -- 基于Docker的私有云&混合云搭建需求

preface

使用docker对node以及php等程序进行打包以实现快速分发部署上线后,随之而来的需求是:

统一更大规模的服务器集群为资源池,即不再区分具体的服务器,而是将所有的服务器资源归为一个资源池,根据需要,随时创建移除资源,以应对更大数量的资源请求以及,减少资源浪费。故而,我们使用n(>=1)的负载均衡器来统一资源的入口。

examples

请求资源

  1. GET: http://domain.name/get/images/png/{imageId}

  2. PROXY:

http://192.168.1.80:80/static/images/png/{imageId}

  1. http://192.168.1.80:90/static/images/png/{imageId}

  2. http://192.168.1.81:80/static/images/png/{imageId}

更新记录

  1. POST: http://domain.name/put/record/{recordId}

  2. PROXY:

http://192.168.1.80:80/dynamic/record/{recordId}

  1. http://192.168.1.80:90/dynamic/record/{recordId}

  2. http://192.168.1.81:80/dynamic/record/{recordId}

explanation

这里有几个也许没看清的内容:

  1. 资源入口:http://domain.name/

  2. 前端代理:转发请求到不同的内网服务器如:http://192.168.1.80:80

  3. 后端服务:同一服务器可能包含静态或者动态资源

extension

由此带来的便利:

  1. 资源的上线仅需要更新代理地址即可

  2. 可以使用同一环境进行开发、测试、生产

  3. 可以根据请求资源的数量,动态扩容(如视频请求资源压力过大,可迅速增加静态资源服务数量)

但是我们需要实现一个key-value的存储,来更新资源的状态,简单示例如下:

{    "web_node_cn_0x00" :{        "ip":"192.168.1.80",        "port":"80",        "status":"living",        "ext":{            "store_db_refer":"store_mongo_cn_0x00",            "store_fs_refer":"store_oss_cn_0x00",            ...        }    } }

(未完待续。)

关键字:docker

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部