- About Anypoint Platform
- Getting Started
- Designing and Developing APIs
- Developing Mule Applications
- Building an Application Network
- Application Deployment Strategies
- Management and Monitoring Strategies
- Engaging Users and Developer Communities
- Make a Contribution to the Documentation
- See Also
Anypoint Platform comprises a complete application and API development suite that you can use to create, integrate, model, build, and deploy services, applications and APIs. Use Anypoint Platform as a vehicle for continuous improvement for your applications and API ecosystem. Become familiar with the platform to build and transform any digital resource to meet your organizational goals quickly.
The best way to learn is to dive in. Create an Anypoint Platform account in order to access various platform tools on your local machine and from within your browser:
To elaborate on what design and development means for business transformation, consider the data you want to provide, govern, transform, and expose at various levels of your organization, both internally and for customers.
After planning your development strategy, you are ready to begin designing APIs to support each piece of the connectivity puzzle for your organization. We recommend using RAML, the API-modeling language, to describe your APIs. RAML allows you to define the methods and resources of a REST-ful API in a syntax similar to that of YAML. The Anypoint Platform even uses RAML to auto-generate interactive API documentation for each API via its own API Portal, and Anypoint Studio uses RAML scaffolded Mule flows.
Use API Designer from within your browser for design tasks, or APIkit from Studio, which is commonly leveraged to implement an API in a Mule application. You can manage APIs defined in any format, by proxy for example. We promote API development following an API model where APIs are segmented into three logical layers of your organization:
System APIs - provide access to backend systems given appropriate permissions
Process APIs - decouple data transformation from backend systems and other processes
Experience APIs - collates data to provide the presentation layer for end user, internal or external to your organization
|See how API architecture goes hand in hand with Building an Application Network|
To ramp up quickly with Mule runtime, a flexible ESB that lets developers connect services or applications together quickly, start reading the Mule Runtime documentation, and familiarize yourself with Anypoint Studio, an IDE for integration applications. Use Studio to add or switch out modular configurable building blocks in your application, then debug and test. Studio is mainly a visual design tool, and does not require in-depth knowledge of Mule runtime, though you can configure many app and runtime attributes from within the IDE.
Mule applications comprise one or more user-defined flows whose building blocks each represent an event in the flow, defining how the Mule message is processed for the next stage in the flow. The building blocks of these flows have configurable fields that define how information is received, transformed and returned, like most software program functions would. However, you don’t have to code these elements yourself - they are accessible from a palette, and you can configure them from the user interface, which offers resources and tooltips to help you design how to route and process data.
|Start setting up your Anypoint Studio Development Environment. You can design and develop your Mule applications using either the:|
Graphical user interface for drag-and-drop of flow elements and easy configuration in properties windows, or
An XML editor where these same elements can be configured
Each building block in a Mule application flow represents a modular part of a process along which Mule messages are transmitted. Thanks to DataSense, you can visualize the metadata structure of a Mule message at any given point in a flow. This data may be accessed and referenced within your app, using the Mule Expression Language (MEL), which is a Mule application-specific syntax. DataWeave is a powerful tool for data transformation accessible from the Transform Message component. Use Dataweave to transform data from one type to another through its intuitive UI. You can also code the desired transformation by hand in the editor.
|See what is inside a Mule message.|
Mule supports very many internet communications protocols out of the box, such as FTP and SMTP. Mule applications support use and re-use of elements called Anypoint Connectors that facilitate connections, normally to web services which handle essential business services: databases, SaaS providers, payment systems, etc. See the whole connector offering here on Anypoint Exchange.
|If you do not see the Anypoint Connector you need in Anypoint Exchange, consider creating your own connector using the Anypoint Connector DevKit. Set up your development environment and follow the DevKit Tutorial.|
You can also use Anypoint MQ to coordinate messaging between applications, Object Store to share content between applications, and more.
After your Mule application has been designed, you can seamlessly add unit testing to your continuous development environment using MUnit, a Mule application testing framework embedded within Studio.
Make sure that your integrations and APIs behave the way you intend by designing and running test suites, a collection of tests using resources such as assertions, verifications, mocks, and spies.
MUnit also allows you to run integration tests in a local environment allowing you to start a local FTP/SFTP, DB, or mail server.
Get quality metrics for your development by running coverage reports.
You can run your application and test suite from within the IDE using the embedded Mule runtime, or deploy your application to production (or a development environment) in the cloud on CloudHub, also without having to leave the IDE.
Developing an application network is a process that involves redefining interactions with existing digital resources by creating APIs at different levels of the enterprise, from the backend systems to the user experience, as explained in Desiging and Developing APIs, allowing you to abstract away complexity at different organizational tiers. These APIs can be recomposed or changed out as business demands change.
MuleSoft provides the tools needed to create the APIs and applications, which are the nodes in this network that mediate between your systems and SaaS applications. Read the Application Network whitepaper.
The Anypoint Platform offers you a rich set of tools to deploy, manage, and operate your integration applications you have developed to run on Mule runtime. The platform enables you to cover many use cases for businesses. You can run your apps on servers in the cloud, on-premises, or some hybridized version. You can manage and monitor legacy or platform APIs and manage API consumption via auto-generated proxy.
After you design and develop an integration application for use with Mule runtime, then what? How and where do you make the application come to life so you can see it in action?
Anypoint Platform offers you the flexibility to deploy an application to a cloud environment, server or group of servers. These servers could be on premises or in the cloud, managed by your instance of Anypoint Platform or a Mule runtime management tool like Runtime Manager. Your applications will work reliably on the version of the Mule runtime they were designed for, no matter the target deployment environment.
The Anypoint Platform offers several deployment options:
Anypoint Studio includes an embedded server for convenient testing and debugging in the IDE. This option is a convenient means to troubleshoot your nascent application. When you specify Run As > Mule Application, Studio automatically builds and deploys your application to an embedded virtual Mule server running on your machine.
Note that this is not intended to be a production server, as certain restrictions on uptime apply.
Deploy to a standalone Mule server – available as an Enterprise or Community product.
The most direct method to launch and interact with a Mule runtime instance is the command line of the server you run Mule on.
Deploying a Studio-built Mule application in production on an Mule Enterprise server involves three steps:
The Runtime Manager console is a powerful alternative to the command line for deploying apps to your Mule runtime instances. The Runtime Manager enables grouping Mule servers into clusters or server groups, to ensure improved stability for your deployments. After you deploy an application, Runtime Manager lets you monitor and manage your running applications and servers.
|To make a server visible to the Runtime Manager, you must first register it.|
When deploying your apps to the cloud, you can select different amounts and sizes of workers to scale up their processing capacity. You can also select the physical location of your virtual machines.
|Virtual machines in the cloud are referred to as workers.|
Applications can be deployed to different environments (such as production or QA) to keep in line with your workflow.
|You can also deploy applications you have developed in Anypoint Studio directly to CloudHub without leaving the Studio IDE.|
Additionally, you can use the Anypoint Platform Command Line Interface to manage your CloudHub infrastructure components such as:
Private networks where your workers are hosted (VPC)
Load balancer for the network
Firewall mapping rules to manage custom domains
Two-way SSL authentication with the option of using your own custom certificates
|This alternative is currently in Limited Access.|
You can host an instance of the entire Anypoint Platform on your own local system, and manage your locally deployed applications through it without ever exposing any of your information outside your datacenter.
For instructions on how to install the necessary infrastructure, contact your sales representative.
The Mule Management Console (MMC) is another tool for deployment and management of Mule runtime instances running on local servers.
Using MMC you can group your Mule servers into clusters or server groups, ensuring greater stability for your deployments.
|MMC is pending full replacement by Runtime Manager, and hence will eventually be deprecated. There is a migration tool for moving your MMC deployments to Runtime Manager.|
After deploying your integration application, you can manage it, depending on how your application is deployed.
Several tools are available for you to monitor your application’s performance, and subsequently debug any issues that arise. These include automated alerts, interactive dashboards with data at the server and application level, and event logs.
Runtime Manager provides multiple tools to Manage and Monitor your applications and, for those running on-prem, the servers they run on. Runtime Manager provides a single "glass pane" through which you can view all activity relevant to your running Mule applications, regardless of deployment scenario (cloud/on-prem).
Built on top of Mule, Runtime Manager allows you to integrate and orchestrate application activity, data sources, and services across on-prem systems and the cloud.
Runtime Manager exposes important information about your live applications and the servers they are deployed to in real time using:
E-mail alerts triggered by customizable events
Monitoring dashboards that display performance metrics of both applications and servers
Transaction-level detail through the Insights page
Event logs for applications deployed to the cloud.
Applications deployed on-premises can send log information to third party software
Additionally, if your application is deployed to the cloud, you can manage many features of CloudHub deployment using Runtime Manager:
|To better understand how options differ between applications deployed to CloudHub and those deployed on-premises, see CloudHub and Mule.|
API Manager, formerly known as Anypoint Platform for APIs, is an API and service registry and governance platform. Built from the ground up to support cloud and hybrid use cases, the platform governs all of your service and API assets, whether internal or external, behind a firewall or in the cloud, all via one platform. Place a proxy in front of your application to apply traffic policies, view usage metrics and more.
You can either register a Mule application by imbuing it with auto-discovery parameters, or taking an existing legacy API and triggering creation of a Mule proxy to govern and monitor the API. Either case results in registration of your API with your API Manager.
Once an API is registered, you can easily apply governance policies to it via the web UI, such as throttling or API whitelisting. Apply such policies after providing parameter values, and then simply by clicking the Activate button. You can also generate your own custom policies if you require something that isn’t covered by the lengthy list of pre-built policies.
With your API registered, Anypoint Platform will start tracking analytics about API usage and performance.
At that point you could create an API Portal, where users of your API can browse interactive API documentation that is automatically generated from your API’s RAML definition file. You can expose other content from this API Portal as well.
|The platform supports maintenance of multiple versions of an API, each with its independent set of policies, analytics and portal.|
Alternatively, you may want to use Anypoint Platform to manage an API that was not developed using MuleSoft software. In that case, you can use the API Manager to deploy an auto-generated proxy. Through this proxy, Anypoint Platform can apply policies and obtain analytics information.
As an administrator of your organization using the Access Management tool, you can manage user access and clearance level for your organization, its business groups, as well as access to the rest of its Anypoint Platform tools.
Create custom roles for users of Runtime Manager and grant custom permissions to control activities among teams that otherwise share the same access privileges. Set up external identities to manage users and clients using your organization’s external federated identity system.
MMC provides robust runtime management capabilities for on-premises deployments, including high-availability clustering, monitoring features, email alerts, logs, etc.
|MMC is pending full replacement by Runtime Manager, and hence will eventually be deprecated. There is a migration tool for migrating your MMC deployments to Runtime Manager.|
After your application or API has been designed, deployed, and managed to guarantee best performance, it is time for you to engage developers and users by making your content available to them, to amplify the utility of your application or API.
Anypoint Exchange lets you create organization-specific repositories called private exchanges where you can share templates, connectors, examples, RAMLs, and WSDLs throughout your organization. You can also find artifacts published by MuleSoft on the public Exchange site. Whether private or public, Exchange lets you create pages for each item with explanation text, videos of how to use the artifact, and links to documentation.
After deploying an API, use API Portals to publicize the API and attract a user community. Create a multi-page portal for users to consume your public APIs and find assets, such as examples and policies, and set up users to access your private APIs. From the portal editing environment, include an API Notebook to convey technical workflows, for example, how to make an authenticated call to your RAML-based API. Include images, attachments, and an API Console for simulating calls to your RAML-based API. Engage the community through interaction with the API to solicit feedback and contributions.
This allows users to explore and test examples for the resources in your API, executing authenticated live calls to an API on a real server or on an empty API interface.
You can make the API Notebook available to everyone and even save it as a "gist" in your GitHub account, making it versionable, forkable, shareable, and embeddable anywhere as markdown text.
MuleSoft welcomes contributions to our documentation from the community. To make a contribution:
For more information about making a contribution, see the README.adoc file. Your positive impact in the community by improving MuleSoft documentation is appreciated and recognized.