You as an enterprise should feel free to use any form of hosting and deployment model without being restrained by complicated licensing models for your integration platform. In fact, you should be certain that your integration platform will run on AWS, GCC, IBM Bluemix, on-premise Linux/Windows machines or mixture of all the above. Furthermore, you want to be able to auto-scale your platform and develop independent services that “manage” themselves who’s lifecycle run independently of each other. All of this should off course work seamlessly with modern CI/CD platforms using git/Jenkins/Ansible/docker/kubernetes etc. This is not easily done with commercial platforms without thinking of complicated licensing costs.
An open source integration platform has further advantages. Rather than being restricted to a vendor and its features, an open source integration platform utilizes existing tools for automatic compiling, build & deploy, logging and monitoring. There is no need for complicated scripts or setups. An integration platform should provide you with all the essentials from the start. Your main concern should just be to develop and deploy.
The above can now be realized through a packing of several existing components into a complete platform.
Apache Camel is the leading integration framework and is where you develop your integrations
Spring boot/ Apache Karaf is your runtime environment
Docker is used to enable each integration to have its own lifecycle
Kubernetes is used for auto-scaling and auto-healing of each docker container
CI/CD tools are used for automatic build & deploy
Elastic-search is used for logging
Grafana/InfluxDB is used for monitoring and metrics
Off course you as a customer will receive a complete package that is ready to be installed and configure from day one.
Another headache with commercial platforms are related to migration of code and environments. This is no longer the case when you run each integration separate from each other inside docker. This enables migration of each integration on its own without affecting other services. You may choose to use Camel 2.2X on one service and Camel 2.3X on another.
To summarize it, an integration platform should possess all the tools necessary for development, deployment, build & deploy, containerization, logging and monitoring from day one. Furthermore, using a microservices approach, you enable faster time to delivery by deploying each service in an automatic fashion. Check in your code in your repository and your build server will take care of the rest. These are the essentials of a modern platform rather than the exception.
Interested in knowing more or getting started contact me at Enfo.
Souciance Rashti, Integration Architect, Enfo