This blog will explain how to get started with Oracle Container Cloud Service. A comparison of different managed services is started at Managed Container Service.

Before we jump into all the details, let’s try to clarify a couple of things about this offering from Oracle.

First, a bit about the name. “Oracle Cloud Container Service” seems more natural and intuitive since its a Container Service in Oracle Cloud. Wonder why is it called “Oracle Container Cloud Service”? Is it because “Oracle Container” is Oracle’s container orchestration framework and its a Cloud Service? Could that mean other orchestration frameworks be offered as a service as well?

Second, don’t confuse it with Oracle Application Container Cloud Service that allows to build cloud-native 12-factor applications using polyglot platform. Now, that confuses me further. Can the Container Service not be used to build 12-factor apps? Are cloud-native and containers mutually exclusive?

Anyway, this is causing more confusion than clarification Let’s move on!

One last thing before we dig in. Many thanks to Bruno Borges (@brunoborges) for pushing the buttons for cloud service activation. I don’t know the normal time for the free trial to be activated otherwise. And a much bigger thank to Mike Raab (@mikeraab) for helping me understand the details of Container Service.

Once the account is activated, you get an email as shown:The important piece of information is username, temporary password, identity domain and My Services URL. The My Account URL link is only for account administration.

Click on My Service URL, login using the values from email:You get an opportunity to change your password afterwards

Oracle Cloud dashboard shows up after logging in:A default set of services and their status is shown. The dashboard can also be customized by clicking on Customize Dashboard button on the top right.

Getting to Oracle Container Cloud Service Console is a bit non-intuitive but you get it once you know it. Select Container Cloud Service tab, click on top-right corner and select Open Service Console:Or you can directly click on the link for Oracle Container Cloud Service Console in the welcome email. Service console looks like:

Click on Create Service:Oracle Container Container Service Instance Details provide more details about each of the field.What is a worker node? We’ll talk about it a bit later. But essentially this is where the container runs. We are asking for only one worker node.

Its worth noting different capacities for the worker node:

Confirm all the settings:

and click on Create> to start the service creation.

Wait for about 30 minutes for the service to be created. After that the Service Console looks like:Wait, we asked for one worker node and how come two OCPUs are being consumed.Each Oracle Container Cloud Service has at least two nodes – a manager node and one or more worker nodes. Manager node is responsible for administration of all the workers and and orchestrate containers on different worker nodes. Worker nodes can be organized in different resource pools to meet different workflow needs.

And, so ~30 minutes are spent provisioning two nodes and installing container service components on each node. This is also evident in the service logs shown in Service Create and Delete History shown in the main Console page:

One main question that I kept wondering all along is “when am I ready to deploy the containers?“. Apparently, not yet!A couple of more steps so hang in there …

In your service, click on the top-right icon to select another menu:

Select Container Console. So, now you are transitioning from Oracle Container Cloud Service Console to Container Console. Make sure to use the right terminology otherwise it gets confusing fast.

This attempts to open Container Console but prompts the usual warning

Just click on Proceed link. In a typical production setup, this will setup correctly using certificates and so this warning would not happen.

This brings up a login screen:

Use the username and password specified during service creation earlier. Click on Login to see Container Console:

Are we there yet?

Yes, now is the time to deploy containers. But we’ll cover that in a subsequent blog!

Just to recap on what is needed to get started with Oracle Container Cloud Service …

Register for Oracle Cloud trial

Login to main Oracle Cloud Dashboard

Create a Oracle Container Cloud Service Instance

Oracle Container Cloud Service Instance Console

Container Console

All the steps need to be done once but a console inside a console inside a dashboard feels like Inception. The good thing is that the IP address of Container Console is a public IP address served by Oracle Cloud and can be used from anywhere.

Replay of the webinar “WildFly for Innovation and Red Hat JBoss EAP for commercial support” is now available.

If you already registered then click on “Already Registered” in the left navigation bar of registration page otherwise register and watch the replay instantly.

The webinar was very well attended with hundreds of viewers and there were lot of questions asked. I’ve captured some of those here:

Is it safe (or very bad idea) to develop on WildFly and run in production on EAP?

The recommended model is to use JBoss EAP for development, testing, and production for an application. There are always differences between WildFly and EAP with former offering bleeding-edge technologies and latter providing a lot more stability with bugfixes and patches. WildFly would be appropriate only for development/evaluation/contribution of new innovative features such as Java EE 7 in the upstream project.

If you develop on Wildfly and deploy on EAP is there a risk Wildfly will move ahead too quickly and EAP will fall behind in capabilities supported?

WildFly is focused on innovation and moves at a rapid pace. This allows WildFly to easily implement new technologies and provide a platform for enterprise developers to try them out. New features can be added or older features may be removed to provide a better experience for that particular release. There is no requirement to provide a patch release and any support is only through community.

JBoss EAP is derived from a particular WildFly release and is focused on long term stability and predictability. It is battle tested on a variety of operating systems, JDK, and databases. It goes through rigorous performance testing, regression testing, scalability testing, and other means to ensure that a military-grade product is delivered. API level compatibility is guaranteed across different versions of EAP, this is not a requirement for WildFly. Enterprises that want stability and predictability should look at JBoss EAP. Developers that want bleeding edge technology should look at WildFly.

Isn’t JBoss EAP an open source product as well ?

Yes, JBoss EAP binaries and source code are made available under open source licenses.

When will JBoss EAP provide support for Java EE 7 full platform ?

We’re currently in the planning stages for EAP 7. More details and the roadmap will be presented at Red Hat Summit in San Francisco, April 14-17.

EAP 6 would be supporting JEE7?

EAP 6 will not be fully certified for Java EE 7. Although some selective features, such as WebSocket, may be backported. We’ll have more detail on that at Red Hat Summit in April.

How do you compare Wildfly with alternative open source servers such as VMWare VFabric and wso2 app server ?

Red Hat EWS (Red Hat | JBoss Web Server) is vanilla Tomcat and fully supported by Red Hat. This offering is very comparable to tcServer. VMWare vFabric is optimized for running Spring applications. Spring is one of the technologies supported by WildFly, in addition to many others. WSO 2 supports many Java EE technologies but not a Java EE compliant app sever. WildFly provides full Java EE 7 compliance and EAP 7 will provide commercial support for that in future.

So if I recompile the EAP sources I can do whatever I want with the compiled binary ?

No – you can’t do “whatever”. The open source licenses governing JBoss EAP source code, principally the LGPL, grant you certain permissions subject to conditions that you must comply with. In addition, you may not brand your recompiled EAP sources as “JBoss” or any other Red Hat-owned trademark. This means, for example, that if you distribute or publicly deploy your recompiled binary you must first remove all JBoss and other Red Hat branding, such as logo files. Any recompilation of EAP sources is not JBoss EAP and must not be presented as being a Red Hat or JBoss product.

We are using JBoss 5 EAP. Is there any guide for migrating to WildFly or EAP version?

EAP 5 is based on Java EE 5. WildFly is a Java EE 7 compliant container. Application would need to be manually ported by learning the new Java EE 7 programming capabilities. Migration Guide provides complete details on how to migrate your applications from EAP 5.x to 6.x. JBoss Migration Center offer additional tools that provide configuration migration across different versions of EAP. We strongly encourage you to locate a Red Hat partner and work with them on this.

Do Red Hat Engineers commit new features into WildFly before committing into EAP e.g. WebSockets?

WildFly is the upstream project which JBoss EAP is based on. All features are committed into WildFly first and allow developers to try the cutting-edge technologies in their development cycles. A version of WildFly is the basis for JBoss EAP, where all the features are battle tested for production deployments.

Are no extra ports (random) used for EJB communication and what about hornetQ ports?

Only two ports are exposed: 8080 for application and 9990 for management in the default profile. All other technologies will handshake over these two ports.

Will it support Scala?

WildFly and JBoss are polyglot application server. Scala (just as many other languages Ruby, Clojure, etc.) can easily be incorporated with Java applications, and even standalone Scala applications are possible on JBoss. There is a number of frameworks that could be useful for developers using JBoss and having a need for building applications using Scala. For example, Escalante is a Scala application server based on JBoss AS 7. Spray provides a REST/HTTP-based integration layer over Scala and Akka and supports any Servlet 3.0 compliant container.

Does undertow allow session management using Infinispan ?

Yes, it does.

Where can we see approximate price-list for EAP production deployments in numbers?

We do performance benchmark testing in our regular test suite and really care about it. We are planning to submit SPECjEnterprise 2010 benchmark numbers on a fully open source stack in future.

How CentOS relates to JBoss EAP?

CentOS is not related to JBoss EAP. CentOS is a community project providing a distribution of Linux, while JBoss EAP is an enterprise-class application server product provided by Red Hat. Red Hat is involved in and contributes to a wide range of open source communities including CentOS and JBoss.org. Complete list of JBoss supported configurations can be found here.

When EAP will support websockets as WildFly does

We are investigating back porting WebSocket support to EAP 6.x. EAP 7 is planned to be Java EE 7 compatible and will support WebSocket. Stay tuned for more details at Red Hat Summit.

Is it possible to have a customized JBoss EAP version that addresses a specific need?

You can customize the JBoss EAP by manipulating subsystems in configuration files. But we recommend talking to sales so that they can understand your needs better and offer a comprehensive solution.

Which version of JBoss EAP 6.x.x will be based on Wildfly 8 ?

JBoss EAP 6.x will continue to be derived from JBoss AS 7.x.x. We are considering backporting some features of WildFly to EAP 6.x. JBoss EAP 7 will be derived from a future version of WildFly.

What will be approximate cost for 8 processor single instance deployment? for EAP 6.2?

We are moving some of application servers from WL to JBoss. But i find it hard to do it is there is seamless process which can help in migration ?

Red Hat has recognized the importance of supporting a first-class program around migration that kicked off in 2013. One of the key enablers in our migration story is Windup, which we are working with several customers and partners to enhance in order to have a more effective and streamlined migration process. More details about migration tools is available here.

Does EAP use standard JPA artifacts??

Yes, JBoss EAP is Java EE 6 compliant and so provides support for JPA 2.

The above video and slides are for an older version of WebSphere Liberty profile. Both are being updated with new versions expected to be released in March 2014.

Will Tomcat still be supported in WildFly 8? If not does Undertow support the AJP Connector interface? Or will it have a different connector interface?

Undertow is the new web server for WildFly 8 and Tomcat will not be supported in WildFly 8. AJP Connector is already supported.

Is it easy to migrate from JBoss AS 7.1.1 to JBoss eap 6.2?

As a general rule, we provide seamless migration from upstream projects to corresponding products. Migrating from AS 7.1.x to JBoss EAP 6.2 should be very straight forward. Guides are provided across major versions, for example Migration Guide from EAP 5.x to EAP 6.2 is here. You should also look at JBoss Migration Center for additional tools in this area.

Are Wildfly and EAP different installations? i.e. How to go from Dev evaluation to Production with support?

Yes, you can’t automagically update a WildFly installation to become EAP – they are separate installations. You need to redeploy your applications and recreate your resources from community projects like WildFly to products like JBoss EAP.

Can we pay less for licensing if we don’t want any support only right to deploy and documentation?

Red Hat only charges for subscriptions, there is no licensing cost.

OEM licensing? Can we deploy wildfly & EAP depending on customer paying or not paying for EAP?

paper on JBOSS Clustering vs. Weblogic Clustering. Some module to use on Apache for three tier implementation like we have mod_weblogic similar for jboss ?

mod_cluster is a cluster-aware plugin for Apache HTTPD that can be used to provide software-based load balancing for clustered JBoss EAP deployments.

What is next for WildFly?

WildFly 9 feature set and scope is still being discussed. If there are any particular features that you need then please file issues in JIRA. You can also follow the community at @WildFlyAS. We’ll provide more details at JUDCon and Red Hat Summit.

Can JBoss EAP be used for evaluation and development without buying a license ?

JBoss EAP is licensed royalty-free. In particular, JBoss EAP can be downloaded from jboss.org and used for evaluation and development without payment of a license fee. If you download JBoss EAP from jboss.org and use it in production you are obligated to purchase a subscription — otherwise you are in breach of the agreement covering the download.

JBoss EAP 5.x is downstream from JBoss AS 5.x and both are Java EE 5 compliant. JBoss EAP 6.x is downstream of JBoss AS 7.x and both are java EE 6 compliant. JBoss EAP 7 will be based on a future version of WildFly and both will be Java EE 7 compliant. Java EE N+1 compliant application server will support Java EE N applications as well. So make sure to choose your development and deployment environments accordingly.

Does a subscription for JBoss EAP 6 include the ‘JBoss Enterprise SOA Platform’ or similar SOA Platform?

A subscription for any individual JBoss Enterprise Middleware product includes development use for all of the products in the JBoss Enterprise Middleware portfolio. Please refer to the Red Hat JBoss Subscription Guide for details.

Devoxx provides a great opportunity for the key Java EE players to meet and discuss topics of interest. With the recently released Java EE 7 platform this year’s Birds of Feather session goal was to collect feedback on Java EE 7, ideas and wishes for Java EE 8, and any thing else that would encourage wider participation from the community.

David Delabassee (Oracle), David Blevins (Tomitribe), Peter Pilgrim (independent), Johan Vos (Lodgon), several JUG leaders, and other interested community members were present in this meetup. And of course I was there too!

Here are my notes from the discussion:

Feedback on Java EE 7: JCP 2.9 allowed different Java EE 7 JSRs to run transparently. Each project had a xxx-spec.java.net project (e.g. javaee-spec.java.net) and encouraged participation from the wider Java community. Interim spec drafts and API jar files were made available on the project Downloads area (e.g. javaee-spec downloads). Adopt-a-JSR allowed 20+ JUGs around the world to help shape up Java EE 7 platform.

API and Specification source: The source files of the API classes and source of the specification needs to be checked into the workspace. This will enable interested members to play with the API classes and provide alternative proposals. A text-based format (e.g. AsciiDoc) for the specification source is strongly preferred. This will allow community members to provide concrete proposals for specific sections from the specification. This will also help the specification lead to easily merge the submitted proposals in the existing specification. A git-based repository is strongly preferred as it enables and encourages collaboration. For example, source code for CDI API classes is available here and the text-based specification here. If git-based repository cannot be created then a mirror between the existing repository and git must be established.

TCK should be open-sourced: A JSR consists of three components: Specification, Reference Implementation, and TCK. The specification is released under a fairly standard license. However as discussed above the source for API classes and specification needs to be made more publicly available. The Reference Implementations are released under an OSI-approved license. IBM led JSR 352 and the TCK is available under Apache License 2.0. Similarly Red Hat led JSR 346 and 349 and the TCK is available under Apache License 2.0. However TCKs for Oracle-led JSRs are available under this license (similar ones for other specifications). Open sourcing the TCK has been discussed multiple times in the past and Oracle already offers TCK to non-profits like Apache and Eclipse Foundation at no charge. However this still seems a last bit of “closed” piece in the otherwise fairly open and transparent process. TCK tests can also serve as extremely valuable resource for the developers to learn the technology. Adam Bien’s SmokeTests and Java EE 7 samples are turning out valuable resources for the developers and container implementors in lack of an open source TCK.A later discussion with David Blevins (founder of Tomitribe) revealed that it is very important to have TCK from the very beginning in order to implement the container and pass compliance eventually. Otherwise significant parts of the container need to be rewritten, as was done for Apache Geronimo, to get compliance. Open sourcing the TCK would certainly allow Tomitribe to work towards Java EE 7 compliance as well.

Testing: 90% of the attendees were using Arquillian for testing their apps against single/multiple containers. There was no need felt to file a JSR and standardize it as that could possibly stunt the innovation in this area.

Making contributions easier: Steps to contribute a patch to the Reference Implementation should be clearly listed. This is not restricted to but can typically include how to checkout and build workspace, high-level package overview, run smoke tests, steps to add new tests.

@noah_white: Congrats on the new position, good luck and keep on advocating EE!
@jjviana: Wow, this news is sure to rock the Java world. All the best in your new adventures Arun!
@majabali: tremendous loss for us at Oracle but all the best with your new “Hat”
@pbakker: That’s great news for my friends at RedHat. Best of luck with your new position!
@svenpet: You did a great job at Oracle! #RedHat is lucky
@BertErtman: congrats on the new job Arun! Thanks for all you’ve done at Oracle. What a gain for Red Hat!
@Sander_Mak: wow, that’s exciting news. Good luck at Red Hat!
@vsenger: sad *= 100000000000.
@IanSkerrett: Wow congratulations. Red Hat is a great company and definitely lucky to have you.
@yoshioterada: Arun-san Thank You so much!! I’m very glad to work with You.
@stevengharris: Wow, great catch by Red Hat. Enjoy the change!
@jenseckels: You will definitely be missed, friend. Take good care
@johanvos: Good luck, thanks for all your work on Glassfish, and enjoy your miles!
@MKHeck: RH got one of the best on the planet. Congrats to all involved!
@hazems: We had really enjoyed your great contributions in the Java EE space. Have the best of luck in your new journey.
@sjmaple: congratulations man! RedHat are very lucky to have you enjoy your new role and challenges!
@vsenger: I never met someone else more committed with a company than @arungupta. He is a working machine. Big lost for Oracle and us!
@sivalabs: congratulations to RedHat for having such a gr8 man
@sharat_chander: Congrats to @arungupta for joining #RedHat. Wishing you continued success in making the future #Java.
@lucasjellema: I’m a litle sad to see @arungupta leave Oracle. Wishing him all the best at RedHat. I am sure Java EE will continue to benefit from him
@pvdevoor: Have fun @redhat You did a fantastic and inspiring job all these years!
@peppertech: #JavaEE couldn’t have a better ambassador and now #RedHat is better for having you in their employ. Big Congrats!
@rajashridash: While Oracle will miss you, RedHat will be cherished. We still will get your updates

and many more!

I’m just changing companies but the commitment to Java or Java EE is not going to be less in any sense. You’ll hear the latest and greatest about different Red Hat technologies and products.

Please come and meet where ever you see me. I’ve always been very accessible and will continue to keep it that way. Luxmbourg JUG, JAX London, JFall, Transylvania JUG, and Devoxx are coming up soon. Hope to see you there!

After having authored ~1400 blogs at blogs.oracle.com/arungupta (titled “Miles to go” and hence 2.0 in the title here), this blog cannot really start with “Hello Blogsphere” unlike my first blog on Aug 2, 2005. This blog would rather be a continuation of all the entries posted there until now. All the great content that you’ve seen on blogs.oracle.com/arungupta will stay there, but any new content will now be exclusively published on this blog.

I’m starting a new job at Red Hat on Oct 21, 2013 as Director, Developer Advocacy and you’ll definitely hear about their technologies and products as well. I’d love to hear what else would you like me to blog about.

As always, feel free to leave a comment on the blog or ping me on twitter at @arungupta if you want to reach out.

This blog title is inspired by this lovely poem by Robert Frost …

The woods are lovely, dark, and deep,
But I have promises to keep,
And miles to go before I sleep…

And my version …

There are a tons of cities/countries to visit…
Plenty of User Groups to spread the fever …
Lots of conferences to speak at …
And miles to go before I sleep …