over 5 years ago
New: Middleware resources from Steve at Red Hat
Hey all:
As the Hackathon is moving into full swing - I thought you might like some help in determining which Red Hat Middleware project to use.
This note is for people who may be new to Java development or just looking for something simple to use for a mobile backend.
As a reminder, a GitHub repo has been created with instructions on how to add the Red Hat Middleware projects to your OpenShift Online account for use in your application:
https://github.com/redhat-middleware-hackathon/openshift-files
*Please be sure to read the entire README.md in the GitHub repository before you try to use one of these products listed below.*
In most of these repos, you will find a template that loads both the app server AND a database. When you use these templates, you will spin up the database AND the appserver, with the appserver already having all the connection information it needs to talk to your database. There will be a predefined DB name in the web ui, please be sure to change that if you want a different DB name than what we put in there.
-------------------------------------
1. Let's start with probably the most well know application server in Java Space:
Tomcat
This is the tried and true Java Application Server. This will probably the easiest for people getting started and want to make a simple JSP page or Servlet to do their work. There is a ton of documentation around the web on how to use it.
https://github.com/redhat-middleware-hackathon/openshift-files/tree/master/tomcat
This blog should help you get started (some of the screenshots are out of date but the flow is the same)
https://blog.openshift.com/getting-started-with-jboss-web-server/
2. If you are interested HA clustering, built in Message Queues, or the sweetness of the new and improved Java EE, then look at:
JBoss EAP (Based on Wildfly)
This is the flagship application server intended for more high availability (ha) scenarios or if you want to bring the full power of modern Java EE to your Application.
You can use this in place of Tomcat for normal Java Applications (I do all the time), but it has a bit more of a learning curve.
https://github.com/redhat-middleware-hackathon/openshift-files/tree/master/eap
Here is a great blog post, with a video, to help you get started with EAP on OpenShift
https://developers.redhat.com/blog/2016/07/18/jboss-eap-7-on-openshift/
3. If you want to work with Vert.x, Wildfly Swarm (Microprofile), or Spring Boot then you will be interested in:
JDK
This template allows you to build a Java Project that embeds it's own app server in to what is called a Fat Jar (basically a runnable archive file with the appserver and code in it). The most popular framework out there for this would be Spring Boot but I would also highly recommend Vert.x (think of it as a Super Duper WAY Better Node.JS, it does Java, JS, JRuby, and Kotlin).
https://github.com/redhat-middleware-hackathon/openshift-files/tree/master/openjdk
Here is the documentation
https://access.redhat.com/documentation/en-us/red_hat_jboss_middleware_for_openshift/3/html/red_hat_java_s2i_for_openshift/get_started
and a blog post
https://developers.redhat.com/blog/2017/02/23/getting-started-with-openshift-java-s2i/
to get you started
4. If you want to enable single sign on for your application or to add multiple OAuth providers for your project, take a look at:
Red Hat SSO (based on Keycloak)
SSO is a component that can run stand alone in OpenShift and handle authentication across all the pieces of your application.
You can manage users as well as permissions for your application. Another nice feature is the ability to configure to accept authentication from external popular OAuth providers such as GitHub, Twitter, Google, etc.
https://github.com/redhat-middleware-hackathon/openshift-files/tree/master/sso
Here is some helpful documentation to talk about SSO
https://access.redhat.com/documentation/en-us/red_hat_single_sign-on/7.1/html/getting_started_guide/
http://www.keycloak.org/docs/latest/securing_apps/index.html
------------
As always we appreciate any and all feedback.
Happy coding!
Steve