Cloud Foundry has established itself as a PaaS standard over the last year, especially with the formation of Cloud Foundry foundation and more than 40 companies joining.
Cloud Foundry is best suited for web applications (12 factor apps) and currently only supports http traffic to be routed to apps deployed on Cloud Foundry. However, this becomes very limiting in many scenarios. E.g. In enterprise world there are many applications that use non-http protocols, in IoT space most of the applications use non-http protocols. So what this means is many legacy applications as well as new IoT applications will be deprived of using PaaS capabilities offered by Cloud Foundry. Now, Cloud Foundry is great at managing full life cycle of your apps and is best suited for continuous integration/delivery. Why should then enterprise applications and IoT applications not use those capabilities?
In order to address this limitation in Cloud Foundry, we (GE Software) proposed adding TCP routing capability to Cloud Foundry. The main motive behind this move by GE Software was to enable its own cloud offering (Predix) to accept data from myriad of industrial devices that GE manages and is expecting to connect to each other and with applications running on cloud to form the so called "Industrial Internet". Predix is based on Cloud Foundry and hence enabling that capability in Cloud Foundry is the right thing to do. GE Software has joined hands with Pivotal and is now developing this capability in OSS Cloud Foundry.
We announced TCP routing OSS project in this year's (2015) Cloud Foundry summit during the talk I had opportunity to give. As highlighted in that talk we decided to choose layer 4 (TCP) routing because of number of different protocols (MQTT, DDS, XMPP...etc) being used in IoT space as well as due to limitation in terms of the protocol headers to determine the final destination of the connection (due to lack of host headers in many IoT protocols). With layer 4 we remove all that complexity and just decide the final destination of the traffic/connection based on the port.
We have chosen HAProxy as our tcp router implementation. HAProxy provides us with basic TCP routing capability and we are developing bunch of components to make sure applications pushed to Cloud Foundry can claim a port on HAProxy and configure HAProxy to route traffic received on that port to appropriate application.
We have made significant progress towards adding this capability to Cloud Foundry and are pretty close to announcing support for tcp routing in lattice. Below given are some links that you can use to track the progress of this project as well as look at what we are developing:
I would like to encourage all the readers to take a look at what we have developed and give us your feedback.