MuleSoft’s ESB (Enterprise Service Bus) product suite is offered in three primary forms: licensed On-Premise version, PaaS (Platform as a Service) Anypoint Platform (Cloud Hub), and MuleSoft CE. For the purpose of this post the focus will be a comparative analysis of CloudHub and On-Premise. Pros and cons exist for both products, and each have distinctive features that should be considered during the decision-making process for your organization. In a nutshell, it can be factually stated that some of these features are:
General Pros and Cons of CloudHub versus On-Premise:
Based on the table above, the CloudHub version looks like the no-brainer option, right? However, like anything in this world, really nice features and convenience does not come cheap. The CloudHub option only allows up to 10 applications per vCore and each vCore is expensive. However, from the experience acquired by working with CloudHub over many years, some of the features might be worth paying for (depending on your particular situation). Overall, MuleSoft’s CloudHub, as with many similar cloud-based technologies has tremendously evolved over the last few years, giving customers almost all of the features as if the solutions were implemented in your data center. Among the most useful features implemented on CloudHub are: VPC offering, custom firewall rules, proxy server implementation, and out of the box load balancing (for more details please see these mulesoft runtime manager docs). The only real technical drawbacks are the fact that you would not be able to access local file systems, transfer files among applications, and there are some constraints while using objectstores (in memory DB). There are alternative cloud solutions, like using Amazon queues, S3, and other cloud technologies to mitigate the impact. With that being said, customers usually don’t need a whole lot of extras when facing a particular CloudHub limitation.
As for the On-Premise version of the Mule Runtime, there are some things to consider. In my opinion, the most burdensome is the time and knowledge required to correctly install, maintain, and upgrade the Mule Runtime, in addition to also the version of Java SDK/OpenJDK, operating system and all other components your application stack is going to need. This requirement might not seem like a large burden for the technical or the computer geek types, like most of us in the IT industry, however, from a CIO/executive management and human resources perspective it is a real nightmare and a potential point of failure that should be avoided, especially if all it takes is some dollar bills upfront. Additional to this cost is: the load balancers, firewalls, and all the other network components that might be necessary to make your application compliant with your organizational and departmental standards. Furthermore, as an on-premise installation will take place in your data center you would be responsible to ensure they are done correctly and properly maintained for the entire lifetime of your Enterprise Server Bus (ESB) needs. Having all the needed elements installed and implemented correctly and by qualified individuals is a lot easier said than done for many reasons, but that’s a topic for a later discussion. The point here is that correct installation and best practices will involve a whole lot more than just a couple of clicks and unzipping files.
Have You Ever Seen a Hybrid Unicorn?
With the rise of services such as Amazon EC2 web services platform and Windows Azure, among many others, there are “hybrid options” that some organizations have been able to successfully leverage. In my own, very subjective opinion, the most prominent and common option is to install a Mule Runtime with an on-premise license in a cloud-based Linux server such as those offered by Amazon Web Services. With this “hybrid solution” you avoid some of the limitations by both the CloudHub and the on-premise installations, but not all of them.
With the hybrid solution, you eliminate the constraint of only being able to deploy up to 10 applications per vCore. Additionally, hand installing an on-premise Mule Runtime to a cloud-hosted server can avoid several of the drawbacks mentioned above such as need for load balancing, firewall, proxy servers, API gateways, and all the other disadvantages of a physical hosting server (services like Amazon offer these solutions out of the box at very affordable pricing). However, a hybrid solution still does require qualified resources to install the Mule Runtime, Java, and all other components that your particular solution would need, but in my honest opinion, this is not a bad middle ground solution if you are required to go this route.
Myths and Pitfalls:
CloudHub does not offer the necessary security features our executives and upper management would like.
False. Today, with cybersecurity and data protection being a major concern for most companies, CloudHub has features that enable its customers to implement a Virtual Private Cloud, API proxy layers, Secure Socket Layers, API security protocols using LDAP, Oath2, etc., static IP custom firewall rules, secure properties placeholders, and many more components and features that can keep your application stack and your data very secured. Additionally, CloudHub is widely used in the banking, financial, and healthcare industries successfully where sensitive data is sent back and forth for countless transactions.
We can get all needed on-premise components easily installed by our staff.
Easier said than done. Even though on average most IT teams are fairly competent at ESB installation, testing does require certain levels of expertise that are not all that common. A Mule DevOps Engineer must be really familiar with the intricacies of the Mule server, Linux, HTTP ports, networking, firewall, mule startup properties and sometimes many other technologies like Maven and Artifactory in order to install, maintain, monitor, and upgrade a Mule environment.
An enterprise ESB solution can be done inexpensively.
Regardless of what ESB technology you use, and whether you decide on a cloud-based technology or an on-premise solution, an ESB implementation requires significant labor, materials, and expertise to be successfully implemented.
Network team will be able to implement what is necessary very quickly and inexpensively for an on-premise solution.
Probably one of the most common pitfalls. Network problems like port openings, firewall rules, and load balance testing, among many others, are by their own nature difficult and can be tricky to solve. More often than not, it takes a very proficient and knowledgeable Mule resource, in close communication and coordination with a network resource, to detect and resolve a network issue. Wrong resources aiming to solve issues of this nature may actually cause your entire implementation to fail.
With CloudHub we can ensure that our platform will be up 100% of the time and it will be 100% reliable.
Nothing in life is 100% guaranteed, and neither is CloudHub. Even though it’s a very reliable platform and seldom goes down, the truth is that it has happened in the past and undoubtedly will happen in the future. MuleSoft does have proactive monitoring and alerting as well as outstanding after incident analysis and report to its customers, however, like any other company run by humans, systems are not 100% perfect and things can and do go wrong.
Changes to an application and deployments are a lot easier in CloudHub as compared to On-Premise.
Solid best practices and a release management policy must be implemented in your team regardless of which implementation you choose. Yes, CloudHub does facilitate some aspects of the deployment process, however, bad practices and rogue deployments of apps can easily cause lots of headaches.
Architecture is much simpler in CloudHub compared to On-Premise.
False. The architectural advantages of CloudHub rely mostly on the hands-free maintenance and scalability aspects of an application stack. This allows for your architects to focus and shift more towards the architecture of your actual solution application rather than on the infrastructure architecture of your organization.
About the Author
Rene Lucena is an Integration Solutions Architect with Mountain State Software Solutions (MS3). He graduated from the University of Oklahoma with a Bachelor of Science in Computer Engineering and has since accumulated 14+ years of experience with in IT positions including those in Gaming, Web Development, Research, Hardware Design and Troubleshooting, Analysis, Test Engineering, Sales, Project Coordination, IT Software Procurement, DevOps, SQL Development, IT Governance, SDLC, Test-Driven Development, APIs and Leadership. He also has the honor of being a Mule Certified Developer.
Disclaimer: This article specifically and factually outlines the features of a CloudHub implementation and those features as compared to an On-Premise solution. Despite the definite advantages to using CloudHub, it is important to note that CloudHub is not necessarily the right architecture for every organization. Every organization is different, and the specific needs of your organization will help to determine whether CloudHub or On-Prem is right for you. Consultants at MS3 are fully equipped and trained to assist your organization in choosing the best architecture for your needs and to support you through both CloudHub and On-Prem implementations. For more information about choosing the right solution for you please contact us at firstname.lastname@example.org.