-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating

MuleSoft Platform Architect's Guide
By :

The MuleSoft Anypoint platform can be used to deliver integration solutions architected on premises, in the cloud, or a combination of on premise and cloud. The latter is referred to as hybrid IPaaS. Note the individual services and capabilities available in the Anypoint platform depend on the subscription purchased.
In this section, we will look at how the Anypoint Platform is organized. We will look at the options available in the platform on where to run integration applications and where to manage the platform. We will take a brief look into some of the reasons why organizations will choose one option over another.
There are two logical “planes”, Control Plane and Runtime Plane, within which the components and services of the MuleSoft Anypoint Platform exist and operate. In the Anypoint Platform high level diagram shown in Figure 1.5 we can see the services included in the Control plane in the top half and the Runtime plane in the lower half.
Figure 1.5 - Anypoint Platform High Level view
The control plane refers to all the components used to:
Essentially the control plane is where the platform itself is managed along with every API or Mule application you developed and are running somewhere. The “running somewhere” is the domain of the runtime plane.
The runtime plane is made of many components or services responsible for running the MuleSoft applications but at its heart is a Java Virtual Machine (JVM). This includes the Mule runtime engine, but it also includes the services where the runtime engine can be hosted including Runtime Fabric and CloudHub. The runtime plane also includes services used by a MuleSoft application while it is running. This includes:
When you open the Design Center in Anypoint, you are operating within the control plane. When you deploy and start your MuleSoft application either through the Runtime Manager interface in Anypoint or using an Anypoint CLI command, you are operating components in the control plane. The running applications and all the services they can use, along with the runtime engine are part of the runtime plane.
The screen shown in Figure 1.6 is running in the control plane and hosts all the services seen here. When you log in to your trial Anypoint platform you may see a few components are missing. Components such as Anypoint MQ and Partner Manager are items requiring additional licensing.
Figure 1.6 - Anypoint Control Plane and available components and services
The figure shows many of the services available in MuleSoft including:
We will learn more about these different services and more about the runtime plane options in the next chapter. But first let’s consider the architectural advantages of having these two planes.
In the next section we will explore where the Control plane can be hosted, where the Runtime plane can be hosted, and the impact the hosting decision on one plane impacts the options of the other plane.
One of the jobs of the architect is to examine and understand the current state of the organization’s systems landscape. Has the organization embraced a cloud managed services approach. Does the organization have critical systems still in their own data center. These next sections will describe the options available for hosting the planes and how they relate to each other.
Currently, there are 2 deployment options available from MuleSoft for running the control plane, the first of which has 3 deployment locations:
Running the Control Plane on the organization’s own infrastructure uses a product called Anypoint Platform Private Cloud Edition (PCE). Installing this product requires working with MuleSoft professional services during the installation.
The runtime plane as described earlier, is where your programs run. This is where the HTTP connector you added to a flow, listens to the port you told it to listen to. It’s where the Dataweave transformation logic sits waiting for a payload to reshape. It is also the domain of Anypoint Object Store V2 and Anypoint MQ.
In order to run these components, we must have compute resources, memory resources, storage and network resources. MuleSoft provides four options where the MuleSoft runtime engine can execute:
Later chapters will take a deeper look a each of these runtime hosting options. In Chapters 9 and 10 we look at the MuleSoft hosted options, CloudHub and CloudHub 2.0. In Chapter 11 we look at the nuances of containerizing the runtime plane with Runtime Fabric. And finally in Chapter 12 we will look at the self-hosted standalone option of deploying the MuleSoft runtime engine on infrastructure obtained and managed by the organization.
But just because each of these can be a host for the runtime engine, does not mean all the other runtime plane components are supported in each of these environments. Table 1.1 is a matrix showing the runtime components available for each hosting option for the runtime plane.
Table 1.1 - Hosting Options for Runtime Plane components
In this table we can see that DataGraph is not available in CloudHub 2.0, Runtime Fabric, or Standalone servers. We can also see that Object Store v2 is not available in Runtime Fabric or Standalone servers. We can also see the most flexible runtime hosting options is CloudHub and CloudHub 2.0.
In the next section we will see what combinations of these runtime hosting options can be used with the different control plane options.
The control plane as we have said is responsible for managing all the things we have running in the runtime plane. Therefore, the deployment choices we make to host the control plane will impact where we can host the runtime plane.
Table 1.2 is a matrix showing the relationship between the Control Plane hosting option and the Runtime hosting option.
Table 1.2 - Control Plane deployments and runtime hosting options matrix
We can see in the table If we are hosting our control plane in the US or EU, we can host the runtime plane in any of the 4 hosting options identified earlier. However, if you are hosting the control plane in the GovCloud the only hosting options are CloudHub and Standalone servers. CloudHub 2.0 and Runtime Fabric are not available in GovCloud. If you must host the control plane on your own servers and infrastructure (PCE) then you can only host the runtime plane on your own servers and infrastructure.
Sometimes an organization has to make difficult choices in deciding where to deploy both the control plane and the runtime plane. Federal and State governments often need to follow regulations and may require software solutions to be FedRAMP compliant. MuleSoft has a solution for this called Government Cloud but it also comes with other limiting factors and can be more expensive. When using Government Cloud the Runtime plane must be CloudHub, standalone MuleSoft Runtimes, or a combination of the two (Hybrid).
Likewise, European organizations may need to keep all software entirely within EU datacenters. MuleSoft provides an option to use an EU hosted control plane. This control plane will also limit CloudHub deployments to be in the EU region and in EU Availability Zones.
For organizations with a mandate to retain all IT infrastructure and systems under their direct control and within their data center, there is the option to install Private Cloud Edition and run both the control plane and runtime plane on your own hardware.
The architect’s job in these situations is to understand how to navigate the differences. If the runtime host does not support Anypoint DataGraph, or Object Store v2, what options do we have instead? Do we even need DataGraph or Object Store v2? Moreover, if an organization is operating from the US or EU control plane and have every option open to them, what business criteria or IT policies or organizational resourcing constraints or any other of a host of environmental variables would prompt an architect to choose CloudHub over Runtime Framework. What would drive the architect to recommend combining CloudHub 2.0 with a standalone instance of the runtime engine.
To answer these questions, we need to understand each of these MuleSoft delivery approaches in a little more detail and see what they can do and what they can not. Where our applications will execute and what runtime plane capabilities are available is important. Part 3 of this book will examine these details so we as architects can be equipped to answer these questions and make our recommendations. In the next section we will take a first look at the specific capabilities and components availabel in the platform.
As we have seen already, the Anypoint platform provides the components to design, deploy, and manage the APIs we build. The platform also provides the components, and in many cases, the infrastructure to run or execute these applications. Let’s review the different components that support each of these phases in the lifecycle of API first development.
Anypoint Exchange can be thought of as a catalog or registry of all the different reusable components, or assets, available to use in your solution. This catalog can be searched for specific phrases or filtered based on pre-defined asset types or asset categories. You can list assets from your own organization or assets developed by MuleSoft. You can even filter based on the lifecycle stage the asset is in.
In Figure 1.7, We can see Exchange searching for all the assets provided by MuleSoft.
Figure 1.7 - Anypoint Exchange assets from MuleSoft
Looking at the different assets in this figure we can see the types of assets that can be registered or published to Anypoint Exchange has grown dramatically over the past 4 years. Initially Exchange was limited to Connectors and APIs. Anypoint Exchange is now home to 11 different types as of the time of this writing:
API design begins with the API Specification. Whether the organization has standardized on the the Open API Specification (OAS, formerly known as Swagger) or RESTful API Modeling Language (RAML), the specification can be created in Anypoint Platform Design Center. Design Center allows you to design specifications, fragments, and AsyncAPI specs as shown in Figure 1.8 Design Center API Specification.
Figure 1.8 - Design Center API specification
In this screen, MuleSoft can provide a guide or “scaffolding”, making the development of the specification “low-code/no-code”. This capability is also on the cloud so designers can get started without needing to install anything on their laptop or desktop.
API design specifications can also be created inside the two primary development tools, Anypoint Studio and ACB. Both tools allow you to synchronize your API specification with Design Center. Likewise, for any API specifications started in Design Center, you can open and work on these in Studio or ACB.
The Anypoint Management Center provides several Anypoint capabilities focused on the operations and administration of the platform as well as the API applications running.
The screen in Figure 1.9 shows the options in the Management Center.
Figure 1.9 - Anypoint Management Center
The list of management capabilities in Figure 1.9 are defined here.
We have now looked at some of the primary capabilities of the Anypoint platform, many of which we will go into more detail later. With a historical backdrop of the different approaches to integration, and now with all these new iPaaS platform capabilities available, let’s take a look at some of the difficulties, new and old, organizations are facing today.
Change the font size
Change margin width
Change background colour