CloudHub Architecture | MuleSoft Documentation
# CloudHub Architecture
CloudHub is designed to provide enterprises with a multitenant, secure, elastic, and highly available integration platform as a service (iPaaS). To maximize your use of CloudHub, you should understand how the underlying mechanisms of the CloudHub platform work to achieve these goals.
Manage CloudHub with the Anypoint Runtime Manager console in Anypoint Platform. You can also deploy to it directly from Anypoint Studio, via the CloudHub REST API or via the Anypoint Platform command-line interface.
See Deployment Options for a better understanding of the different possible deployment scenarios, including on-premises and Anypoint Platform Private Cloud Edition (Anypoint PCE).  
---  
To understand CloudHub’s approach to security and availability, it’s important to understand the architecture behind CloudHub. It includes two major components—​Anypoint platform services, and the worker cloud. These two components and the Runtime Manager console through which you access them work together to run your integration applications.
Integration Applications |  Applications that you create and deploy to CloudHub to perform integration logic for your business  
---|---  
Runtime Manager |  User interface that enables you to deploy and monitor integrations, and configure your account  
Platform Services |  Shared CloudHub platform services and APIs, which includes CloudHub Insight, alerting, logging, account management, virtual private cloud/secure data gateway, and load balancing  
Global Worker Clouds |  An elastic cloud of _workers_ , Mule instances that run integration applications  
You can view the live status and detailed service history for the Runtime Manager console, platform services, and the CloudHub worker cloud on `status.mulesoft.com` for the default (US hosted) Control Plane and `eu1-status.mulesoft.com` for the EU Control Plane.   
---  
## Integration Applications
An integration application is any integration that you’ve built using Anypoint Studio. These applications can do everything from synchronizing data from Salesforce to a database, to publishing a SOAP or REST API, to creating complex orchestrations of business processes.
For more about creating and deploying integration applications, see CloudHub and Deploy to CloudHub.
## Runtime Manager
The Runtime Manager console is integrated into the Anypoint Platform. Sign in with your Anypoint Platform credentials to upload and manage your integration applications at runtime. The console surfaces useful monitoring information from the platform services and also works as a comprehensive dashboard for both application-level and account-level management.
Through this same console you can deploy to CloudHub as well as to other registered servers. You can also manage deployed applications.
Administrator account holders can use the Anypoint Platform to add and manage other users in the organization, define user roles, and create and manage sandbox environments.
For more general information about CloudHub, see CloudHub.
## Platform Services
CloudHub platform services are responsible for coordinating all aspects of the platform. They coordinate deployment of applications, monitor integrations, provide analytics data, store application data, run scheduled jobs, and more. Many of these services are also exposed through the CloudHub REST API.
## CloudHub Workers
_Workers_ are dedicated instances of Mule runtime engine that run your integration applications on CloudHub.
Workers have the following characteristics: 

**Capacity**
    
Each worker has a specific amount of capacity to process data. Select the size of your workers when configuring an application. 

**Isolation**
    
Each worker runs in a separate container from every other application. 

**Manageability**
    
Each worker is deployed and monitored independently. 

**Locality**
    
Each worker runs in a specific worker cloud, such as the US, EU, or Asia-Pacific.
The memory capacity and processing power of a worker depends on how you configure it at the application level.
Worker sizes have different compute, memory, and storage capacities. You can scale workers vertically by selecting one of the available worker sizes:
Worker Size | Worker Memory | Heap Memory | Disk Storage Size  
---|---|---|---  
Workers with 0.1 vCores and 0.2 vCores:
  * Provide limited CPU and I/O for apps with smaller workloads
  * Can burst to higher CPU speeds for a short time
This ability helps to improve application startup times and to process infrequent, large workloads. If you need consistent performance, use workers with more vCores.


Workers with 1 or more vCores:
  * Provide performance consistency
  * Are available only for Mule version 3.6.2 or later, or API gateway version 2.0.2 or later


Each worker has a minimum of 8 GB of storage allocated, which is used for both system and application storage, with about 3.0 GB used for OS and Mule components. If your application requires more storage (for example, verbose logging), use a worker with two or more vCores, enabling the application to access additional storage.
Only running applications count toward worker usage.
If your applications require more vCores than are available, CloudHub allows you to create the application, but you cannot start it until the additional vCores become available. To increase vCore allocation, stop another application or contact your account manager to increase your subscription’s vCore allocation.
The metaspace limit for apps deployed to CloudHub is currently unlimited, regardless of the worker size. The initial metaspace size is 128 MB; metaspace garbage collection begins after the metaspace reaches that threshold.
You can scale your applications horizontally by adding multiple workers and enabling persistent queues to distribute workloads across workers. See Worker Scaleout and Persistent Queues.
CloudHub monitors workers to verify that they are operating correctly. If you enable automatic restarts, CloudHub also automatically restarts applications, if necessary.
The Limit for the **JVM - Heap Used** graph on Runtime Manager and Anypoint Monitoring can sometimes dynamically increase. It technically shows JVM property `maxMemory()` under the hood, which means the max amount of memory that JVM attempts to use for the heap. Due to the nature of Java, it dynamically changes within the JVM runtime heap size available, depending on a number of factors such as memory fragmentation, garbage collection, and other memory management used by JVM.   
---  
## Global Worker Clouds
CloudHub offers worker clouds in different regions of the world: North America, South America, the European Union, and Asia-Pacific. For the complete list of supported regions, see Regional Services.
This global distribution enables you to host your integration in the location closest to your services, thus reducing latency. It can also provide for adherence to local laws, such as the EU Data Protection Directive. For the US and US-Gov control planes, MuleSoft hosts the management console and platform services in the United States. For the EU control plane, MuleSoft hosts these services in Europe.
The region that you deploy your application to determines the domain provided for your application. For example, if you deploy an application named `myapp` to Canada (Central), the domain used to access the application is `myapp.ca-c1.cloudhub.io`. The load balancer used to route requests resides in the same region as your application.
For more information about deploying applications to different regions, refer to Deploy to CloudHub. For more information about CloudHub security and compliance, download the Anypoint Cloud Security & Compliance whitepaper.
## Workers and Multitenancy
Because different levels of security and isolation are needed depending on the service, the platform provides two different levels of multitenancy.
  * First, the worker cloud is a multitenant cloud of virtual machines. These VMs provide the security and isolation needed for your integrations to run custom code without affecting others.
  * Second, the management console and the platform services have a "shared everything" architecture – all tenants share the same web UI, monitoring services, load balancers, etc. These services do not process or transmit your data.
## Availability and Scalability
CloudHub is designed to be highly available and scalable through redundancy, intelligent healing, and zero-downtime updates. It also enables customers to scale and benefit from added reliability through high availability features.
### Redundant Platform
All of CloudHub platform services, from load balancing to the API layer, have at least one, built-in layer of redundancy and are available in at least two data centers at all times. All data centers are at least 60 miles apart. This redundancy ensures that even if there is a data center outage, the platform remains available.
### Intelligent Healing
CloudHub monitors the worker clouds for problems and provides a self-healing mechanism to recover from them. If the underlying hardware suffers a failure, the platform migrates your application to a new worker automatically. In the case of an application crash, whether due to a problem with custom code or a bug in the underlying stack, the platform recognizes the crash and can restart the worker automatically.
For more information about application monitoring and automatic restarts, see Application Monitoring and Automatic Restarts.
### Zero-Downtime Updates
CloudHub supports updating your applications at runtime so end users of your HTTP APIs experience zero downtime. While your application update is deploying, CloudHub keeps the old version of your application running. Your domain points to the old version of your application until the newly uploaded version is fully started. This allows you to keep servicing requests from your old application while the new version of your application is starting.
### High Availability
High Availability features provide scalability, workload distribution, and added reliability to applications on CloudHub. These capabilities are powered by the scalable load-balancing service, worker scaleout, and persistent queueing features.
#### Worker Scale Out and Data Center Redundancy
With high availability, you can add multiple workers to your application to make it horizontally scale. CloudHub automatically distributes multiple workers for the same application across two or more data centers for maximum reliability.
When deploying your application to two or more workers, the HTTP load balancing service distributes requests across these workers, allowing you to scale your services horizontally. Requests are distributed on a round-robin basis.
#### Persistent Queues
Persistent queues ensure zero message loss and allow you to distribute non-HTTP workloads across a set of workers. For example, if your application is deployed to more than one worker, persistent queues allow interworker communication and workload distribution. If a large file is placed in the queue, your workers can divide it up and process it in parallel.
Persistent queues also guarantee delivery of your messages; even if one or more workers or datacenters go down, persistent queues facilitate disaster recovery and provide resilience to hardware or application failures.
For more details about worker scale out and persistent queues, refer to High Availability.
## Security
CloudHub architecture provides a secure platform for your integrations.
Securing your payload data is critically important. To this end, CloudHub does not inspect, store, or otherwise interact directly with payload data. CloudHub workers provide a secure facility for transmitting and processing data by giving each application its own virtual machine. This ensures complete isolation between tenants for payload security, and isolation from other tenants’ code.
CloudHub collects monitoring, analytics, and log data from CloudHub workers and may perform actions on behalf of the user on CloudHub workers. All communication between CloudHub platform services and the worker cloud is secured using SSL with client certificate authentication. This ensures that unauthorized parties cannot read data and that they cannot initiate unauthorized actions.
Secure properties can also be loaded as part of your application bundle. If a property is flagged as secure, it won’t be viewable even through the Runtime Manager console, in fact, it is never propagated anywhere outside the CloudHub worker running the application.
For more information about MuleSoft’s approach to security, please see the Anypoint Cloud Security & Compliance whitepaper.
## See Also
  * CloudHub Networking Guide
  *   *   * Maintenance and Upgrade Policy
  * status.mulesoft.com
  * eu1-status.mulesoft.com
  *   * Application Monitoring and Automatic Restarts
  * Amazon EC2 Instance Types