We've been pretty busy lately so this is slightly delayed. However, I do want to announce that Red Hat has joined the Google Cloud Platform Partner Program as a Technology Partner. Through this program, Red Hat and Google will collaborate on an open source community project known as JBoss CapeDwarf that increases the portability of Java-based Google App Engine applications and expands the deployment choices beyond Google’s cloud.
The JBoss CapeDwarf community project is an implementation of the Google App Engine Application Programming Interface (API) that enables applications to be deployed on either Red Hat JBoss Enterprise Application Platform (EAP) or its upstream application server project, WildFly, without modification. Red Hat JBoss EAP uses many of its enterprise-grade services such as authorization, transactions, data grid, and messaging to fulfill the Google App Engine API functionality in a way that is transparent to developers, users and the application.
The Google Cloud Platform offers a broad set of APIs for application development, cloud storage, large-scale computing, and big data. CapeDwarf leverages the Google App Engine on top of Red Hat JBoss EAP, regardless of whether it is deployed on premises or in an IaaS environment. Through the Red Hat product portfolio, developers have a path to run Google App Engine applications on a full enterprise-grade stack, using Red Hat JBoss EAP or combining it with Red Hat Enterprise Linux, OpenShift Enterprise, Red Hat CloudForms, or Red Hat Enterprise Virtualization.
CapeDwarf implements all the APIs as defined by Google App Engine for Java. The implementation serves as an integration layer between GAE APIs and services offered by JBoss EAP either out of the box or added by CapeDwarf itself. All data related APIs as well as others (Tasks APIs, Logging API) rely heavily on Infinispan, Hibernate Search, JGroups and Lucene, while the Tasks API also uses the HornetQ messaging system. The User API and the OAuth API rely on the Picket- link library.
Now of course you might ask why? Well ...
- No more lock-in: Move your app from the Google cloud to CapeDwarf and back any time.
- Google AppEngine on-premises: Now you have the option of initially deploying your app in your own CapeDwarf-based private cloud. When your app outgrows it, you’ll be able to simply migrate the app to Google’s Appspot.
- Simple to create cluster: JBoss EAP makes it easy to run a multiple instances in a cluster. CapeDwarf has been implemented to support clustered environments from the start.
- Easy debugging and multi-node testing: While the development server provided by Google App Engine can only be run in a singleserver configuration, CapeDwarf allows you to test your app on multiple nodes prior to uploading it to Google Appspot. Through remote debugging, you can also find those elusive bugs that do not show up when running the application on a single server.
- Pure Java: CapeDwarf is written in pure Java and is universally portable.
- Opensource: The complete CapeDwarf codebase is fully open sourced, which means you can fix any bugs you may find yourself, without waiting for the vendor to fix them.
You can deploy and run your Java App Engine applications on your own private RedHat’s OpenShift cloud: https://www.openshift.com/quickstarts/capedwarf
So go and give it a try. You'll also find that CapeDwarf offers access to many standard EE6 APIs that aren't available in vanilla GAE.