2016-02-01 59 views
1

我很好奇,如果有服務切換定義的規範。例如,如果在PaaS/IaaS上設置了服務,則最終用戶需要散列有關該服務的詳細信息,可以到達端點的位置,發佈的端口以及使用的身份驗證。 (想想HATEOAS ref_的),我有一個可能是什麼樣子一對夫婦的實物模型:是否有服務切換的平臺/服務不可知論定義?

對象存儲例如

name: myobjstor 
family: s3 
about: https://aws.amazon.com/documentation/s3 
zone: public 
protocol: 
    spec: http 
    host: s3.mysite.com 
    port: 443 
    tls: true 
authentication: 
    strategy: oauth2 
    username: someuser 
    password: somepassword 
definition: 
    type: swagger 
    url: 'https://mysite/swagger.json' 

OpenStack的例子

name: myostack 
family: openstack-keystone_v2.1 
about: http://developer.openstack.org/api-ref.html 
zone: public 
protocol: 
    spec: http 
    host: keystone.mysite.com 
    port: 443 
    tls: true 
authentication: 
    strategy: oauth2 
    username: someuser 
    password: somepassword 
definition: 
    type: swagger 
    url: 'https://mysite/swagger.json' 

Redis的例子

name: myredis 
family: redis 
about: http://redis.io/documentation 
zone: public 
protocol: 
    spec: redis 
    host: redis.mysite.com 
    port: 6379 
options: 
    db: 0 

NFS例如

name: mynfs 
family: nfs 
about: http://nfs.sourceforge.net 
zone: public 
protocol: 
    spec: nfsv4 
    host: nfs.mysite.com 
    ports: 
    - 111 
    - 2049 

是否有這樣一個已經存在的標準呢?

+0

誰會「消費」這個天賦?我可以想到客戶希望訪問HTTP服務和具有自定義協議的服務的情況。爲什麼不給他們一切的REST服務?這是我看到的趨勢。 – Charlie

+0

這將成爲其他呼叫提供服務的教員。例如,如果客戶打電話來打開postgres服務,則響應將包括終端消耗的位置(ip,port,protocol,auth等)的信息。我很好奇的是,如果已經有了這種迴應的規格/模式。 – user1777667

+0

有關於此的任何更新? – Charlie

回答

0

我建議你看看「服務發現」pattern

有幾個工具可以很容易地實現,但是其中大多數工具使用鍵/值對來描述服務,例如,看到etcd但它看起來像領事增加了一些領域,可能是使用你看到here

例領事定義

{ 
    "service": { 
    "name": "redis", 
    "tags": ["master"], 
    "address": "127.0.0.1", 
    "port": 8000, 
    "enableTagOverride": false, 
    "checks": [ 
     { 
     "script": "/usr/local/bin/check_redis.py", 
     "interval": "10s" 
     } 
    ] 
    } 
}