What you should know before Mule 4 migration
Why do I need to migrate, and start working with Mule 4 EE?
Mule 4 beta version was released in July 2017 – and the first early access release was published in November 2017. Since then, there have already been a few minor versions, with the most current 4.1.5 released on December 2018. After a year and a half of market presence, we now have stable versions of Mule 4 and a growing community around it. According to Mulesoft Product Versioning Policy, 9th October this year will be the last day of Mule 3.9 standard support provided by the platform vendor (two years later, extended support will no longer be provided either). Time is running out – we only have 10 months to switch to Mule 4, and Mule 3.9 implementations do not work on Mule 4 Servers (including Cloudhub instances!). This is because Mule 4 code is significantly different than Mule 3.x versions – from different graphic representation in the new Anypoint Platform 7, through different XML structure for basic elements, to different error handling configurations and changed connectors.
But, enough with bad deadline-related news – Mule 4 EE is a more mature platform, very focused on cloud implementations, allowing you to write more complex ‘out-of-the-box’ logic using Anypoint Platform 7. And what is more important, Mule 4 supports new DataWeave 2.0 structures, replacing the previous Mule Expression Language – which simplifies custom codes and mappings, resulting in speeding up the development processes.
Mule 4 has more connectors, easy try-catch error handling (more familiar for Java Developers than the previous Error Strategies), new Anypoint Studio 7 (with simple design palette and already-built Maven integration) and efficient runtime engine. The sooner you migrate, the faster you will benefit from new features, improving the delivery processes in your organization.
Example: A better way of managing payload and writing code, using DataWeave instead of MELEx
Do not underestimate changes!
Till now, Mulesoft has not released a Mule 3 to Mule 4 migration tool. Mule 3.x flows do not work on Mule 4 EE Server because of different XML structure of the flows. In practice, an experienced Mule Developer needs to re-write each flow written using Anypoint Studio 6. For people experienced in Mule 3, the firsts steps in Mule 4 can be difficult. For example, the commonly used block, Set Property element is no longer available in the new Anypoint Studio 7 palette (DataWeave 2.0 transformation can cover its functionality); or the Property Placeholder global element changed its name (now it is called Configuration Properties). The Mule 3 platform has been present on the market for more than 7 years, which was enough time to build a strong community and write dozens of articles – Mule 4 is only 1.5 years old, and has a limited number of production implementations, so solutions to problems like the ones above are not easy to find on forums, causing a lot of trouble for beginners in the new Mule 4 platform.
Example: Salesforce Query Builder not yet available in new Mule 4
Without deep knowledge and experience in new (and changed) Mule features, migration projects can generate risk in budget and delivery time expectations. It is crucial to remember that code in Anypoint Studio 7 for Mule 4 Servers is different than in Anypoint Studio 6 for Mule 3 Servers.
New is better
Fortunately, BlueSoft is already done with these first steps. Having experience in Mule 4 implementations, we find that platform actually better to implement on than the previous version. There are a lot of simplifications – for example, error handling (using try-catch) or managing queue messages, which is way more intuitive than previously – an example is presented below.
But the most important advantage of the new Mule version is DataWeave 2.0, which makes it possible to write very complex transformations, unlike in Mule 3 (using MEL and DataWeave 1.0). This results with a more standardized code and reduction of custom libraries, difficult to maintain and develop.
We are also positively surprised with a large number of ready-to-use connectors, available to download from the Anypoint Platform and simply use in our implementations.
Ready-to-use connectors and components in Anypoint Platform
I have Mule 3 Community Edition. What should I do?
Mulesoft released Mule 4 Kernel to be used for free. Unfortunately, till now there is no Anypoint Studio 7 plugin to write Community Edition-compatible code. There is a plugin for IntelliJ – but without the graphical palette known from Anypoint Studio, which makes the development process much more complicated. There is also no way to implement such code on Cloudhub (with built-in HA and monitoring mechanisms), or use many connectors.
You can still run the Mule Community version, and migrate to Mule 4 Kernel, using code implemented in IntelliJ – but Mule 4 EE brings new quality, new features, and a community that grows day by day. After Mulesoft was acquired by Salesforce, the new Mule platform gained support and acknowledgement of one of the largest providers of IT systems worldwide, with their expertise and development plans for the integration platform. Mule 4 EE is mature and can compete with most commonly used enterprise platforms – so our recommendation is to join its satisfied license owners. With BlueSoft’s help and expertise in Mule 4, your services will be built faster, be more stable, scalable and better implemented.
Mule 4 migration – how can I prepare for migration?
First of all, you need to check how many flows you have to migrate, and how complicated they are. Based on that insight, you will have the big picture of how much work you will spend on migration. Secondly, migration can be used for ESB platform audit. Verify how many consumers use each of your services. It will help you reduce work on unnecessary services, and clean up your service repository. The number of consumers and service usage will also provide you with information which services to migrate first – because you don’t need to move your whole ESB platform at once, you can divide the initiative to smaller, agile-driven projects, with Mule 3 and Mule 4 working in parallel at the beginning. You can start with small, no-risk services, and then incrementally move services one by one to your new Mule 4 EE Platform.
If you are running your applications on premises, Mule 4 migration can be a good trigger to go cloud with some services, especially ones which require high availability and scalability. Mulesoft provides its own Anypoint Platform, where you can deploy and manage your Mule applications easily. It takes care of providing servers and making clusters, and also helps you to build proper DevOps pipeline, using REST API for delivery processes.
BlueSoft, with our experience in multiple Mule migrations and implementations, is willing to help you with your migration project.
Here are most important areas for Migration Projects where we can support you:
- ESB Services Audit and Feasibility study – we will help you with auditing your ESB platform, and estimating the migration project. Together we will plan projects, select the services to migrate at first, set up the deployment pipeline, Mule 4 platform and Cloudhub.
- Flow dependency and gap analysis – for each service we will help you find consumers and providers, and analyse its importance and impact on your architecture. Migration is a good time for changes in current services – and we will help you adjust their scope in order to minimize migration risk. Based on such an analysis, we will prepare a migration roadmap.
- Migration – Having deep, practical knowledge of the Mule 4 platform, we will re-write services from Mule 3 (or other integration platforms), using the best SOA practices and Continuous Delivery approach.
Regression tests – We will help you automate your tests, and assume the Continuous Testing approach. Incoming changes will have a lower delivery risk and will be deployed faster for your business to use thanks to CI/CD processes.
- Gossip around Mule 3 to Mule 4 migration tools: https://forums.mulesoft.com/questions/92281/mule-migration-from-390-to-41x.html
- Mule 4 Kernel and IntelliJ Plugin: https://forums.mulesoft.com/questions/96427/status-of-community-edition.html
- Mule 4 EE and Anypoint Studio 6 trials: https://www.mulesoft.com/lp/dl/studio
- Mule subscription plans: https://www.mulesoft.com/prod-subscription-plans
Mule support policies and dates: https://www.mulesoft.com/legal/versioning-back-support-policy
What Can We Do For Your Business?