Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 13 Current »

The Domain

A domain is a realm of control and administration. Specifically, a domain is a set of Fabric3 runtimes that are coordinated and managed together. A domain may be large, comprising multiple runtime instances on separate physical machines, or small, consisting of a single runtime. In a domain, components may be wired and connected to channels and contribution artifacts may be shared. 



Zones

It is often convenient to partition large domains into a set of smaller regions, or zones. For example, an organization may decide to deploy one application to a set of runtimes and another application to a different set of runtimes. If the organization assigned the applications to different domains, they would not be able to manage them as a whole.

Zones partition a domain into smaller managed units.  A zone is a set of one or more runtimes where applications (contibutions) are deployed. A domain always has at least one zone and may contain more. A zone is homogenous. In other words, all runtimes in a zone have the same configuration and host replicas of the same applications. 

Clustering

Clustering is provided through zones. When components in a contribution are deployed to a zone, they are replicated to all runtimes configured as part of the zone. 

The Controller and Participants

A distributed domain is composed of a controller runtime and participant runtimes. 

The controller manages the domain, including maintaining a contribution repository and deploying applications to zones. A participant is a member of a single zone and hosts application components for the zone it is a member of. Only participants host components and process requests. The controller acts as a simple manager and may be shut down without affecting the ability of the domain to service requests.

Scaling Down

Using this architecture, it is possible to construct domain topologies that are easy to manage and scale. A domain consist of multiple zones, each containing clustered participant runtime. However, it is also important to note this architecture scales down. A domain can be comprised of a single runtime instance, in which case the runtime acts both as the controller and participant. 

Zero Configuration

In keeping with the goal of simplicity, the only thing required to configure a domain is to assign each runtime a unique name. Based on the name, Fabric3 will automatically converge a domain consisting of multiple runtimes and create the necessary zones.