Apache ServiceMix is a container tailored for running Camel integrations in. There is much more to it than that, but at the same time conceptually that’s it. We feel that it is a great server to deploy integration code onto, and we know, having worked with the alternatives.
You see, integration projects are not like most other applications you have built. A web application is a single deployment unit (most of the time). Integration projects, on the other hand, are usually made up of different deployment units that handle individual fragments of an overall integration project. One part may be proxying SOAP services, another consuming files from an FTP server and placing JMS messages onto ActiveMQ. Usually, these are worked on by different people on your team.
The OSGi model that ServiceMix builds on allows you to design massively flexible applications, which can be extended at run-time, split up and partially deployed across multiple containers. All while sharing expensive objects such as object caches, data sources and JMS connection factories whenever possible.
You might start with your integrations all running on the one machine, then when you find that a portion of the application is consuming too many resources or needs to be scaled out to handle the load, you simply install just that part onto a number of other servers. All without changing any code.
That is, assuming that your application has been correctly designed. This is where we come in.
Ameliant provides ServiceMix consulting, to help you answer questions such as:
- How do we structure our integrations so that they can be split and partially redeployed?
- What do our integrations need to consider to support high-availability and clustering?
- How do we go about deploying, managing and monitoring integrations in production?
- What needs to be done to set up a developer workflow for ServiceMix? How do we plug in version control, continuous integration, deployment?
- How do we go about securing our ServiceMix instances, and the services that run on them?
- How do we ensure that our integrations will deploy correctly?
- Why is our resource usage so high / swinging widely?
Beyond ServiceMix, we also support its commercial variant, JBoss Fuse (formerly Fuse ESB). We can get your team comfortable with the Fuse Fabric technology that underlies it, and explain how best to make use of it for centralised management of your integration infrastructure.