KJFramework.Platform.Deploy高可用性的智能部署平台.

KJFramework 框架中整合了这个部署平台的应用,此平台用于建立以及监控相关的应用程序部署。

 

KJFramework.Platform.Deploy高可用性的智能部署平台整合了KJFramework中的大多数技术,这其中包括了:

 

1. 智能动态服务框架(KJFramework.Dynamic)

2. CONNECT.技术(KJFramework.ServiceModel)

3. 智能二进制消息框架(KJFramework.Message)

4. 基于网络云的思想框架(KJFramework.Net.Cloud)

5. 公共组件库

 

目前高可用性的智能部署平台一共包含如下几个部分:

##################################################################

# (1). KJFramework.Platform.Deploy.SMC 用来做最小化主机的控制单元(Sub Machine Service Controller)

# (2). KJFramework.Platform.Deploy.DSC 用来做服务中心(Dynamic Service Center)

# (3). KJFramework.Platform.Deploy.DSN 最小化部署单元(Deploy Service Node)

# (4). KJFramework.Platform.Deploy.CSN 最小化配置站/数据提供器单元(Configuration Station Node)

# (5). KJFramework.Platform.Deploy.Maintenance 可维护和监控的服务Shell

##################################################################

 

      通过这个部署平台,可以使得开发人员无需关心底层的部署和监控操作,从而将精力集中在业务的开发当中,当然,KJFramework的部署平台

期望开发者能够遵循该平台的部署策略和以组件为最小单元的开发模式。通过一种物理文件单元的方式,部署平台将一个“大泥球”的需求划分为了多个组件(Components).

也就是说,不同的需求,将会对应于不同的组件进行整合,KJFramework的部署平台期望每个组件都是互相独立的,但同时也支持组件与组件之间的互相通讯。

      开发人员可以通过智能动态服务框架(KJFramework.Dynamic)中的组件隧道技术(Component Tunnel)来达到组件与组件之间互相通讯的目的,但是请放心,

使用组件隧道技术进行互通讯,基本上程序所消耗的成本可以忽略不计。

      服务与服务之间通过明确的协议栈(Protocol Stack)声明,在一定程度上解耦合了服务间的通讯协议问题,然后使用协议栈还给这个平台带来了额外好处。

我们正在尝试建立一个统一的服务管理平台,而这个管理平台(Management Client)所持有的就是一份协议栈的定义契约。

      通过将业务逻辑封装到不同的组件中(Component),我们也就达到了高复用性,由于组件是单独运行的一个单元,所以,无论在哪里,只要某个组件有复用的需求,

我们就可以在任意时间将此组件的副本动态安装在其他服务中运行。我们也可以以此高复用的特性来构造和设计一些逻辑上的可复用点。

      为了达到组件的高可用性,我们特地为每个组件(Component)设计了支持动态更新的能力,也就是说,当一个已部署的动态服务正在运行状态时,我们可以在任意时间

对这个正在运行的服务进行单一或者多个组件(Component)的动态更新,然而无论是更新成功还是更新失败,它所导致的影响范围也仅仅是这个组件无法正常工作,并不会

将这个影响波及到整个服务,由于我们的部署平台拥有最小化部署单元(Deploy Service Node),我们也就有能力在任意时间内为组件做动态的物理文件更新和服务的反部署。

      与此同时,最小化部署单元(Deploy Service Node)也能够非常灵活的响应部署需求,通过在每一台机器安装最小化部署单元(Deploy Service Node),我们就有能力

将一份服务的可运行副本在任意时间安装在任意可控部署单元机上。我们特地为最小化部署单元(Deploy Service Node)设计了可扩展的的服务部署协议,用来支持未来的可扩展部署需求。

      我们提倡使用最小化主机的控制单元(Sub Machine Service Controller)来作为每个部署机房的总控制机制,这样一来,每一个机房都将会拥有一个最小化主机的控制单元(Sub Machine Service Controller),

我们会为一个相对高层次稳定的环境配置一个服务中心(Dynamic Service Center),用于掌管不同的机房部署单元总控。

      在未来,我们还会为部署平台加入配置站单元(Configuration Node),我们的动态服务通过一个配置站单元来获取它所期望的配置信息,当然,这些配置信息是可动态分发和更新的。这也就达到了一站式的部署,

从代码的封装、打包、部署、安装、更新、卸载,到应用层面的配置信息动态获取。

Last edited Apr 5, 2011 at 2:55 AM by umbrella_yang, version 14