A while back, I spent an evening in front of a video camera putting together a four-part series explaining Zulu, the family of Java kits provided by Azul based on OpenJDK. With the video series, we were looking for a reasonable way to encapsulate everything from the Zulu product family into a few quick study lessons. The outgrowth turned into four ultra low-budget movies, where I had fun playing the role of professor in front of a tiny live-audience classroom (one camera operator!) We called this “ZULUNIVERISTY” and pushed the final clips up to Vimeo. Hopefully people have found the clips on Zulu.org and Vimeo and gleaned some of the details why Zulu exists and the evolution of the community around it.
The movies cover four separate but related aspects of the free Zulu JDK made available by Azul. They are:
1. Zulu Technology
2. Zulu Community
3. Zulu Deployment
4. Zulu for DevOps
As a refresher, the origin of Zulu stems from the OpenJDK project, though it involves much more after that initial seed than may be apparent. This blog post provides you a recap of each video tutorial, a short commentary on the significance of that Zulu topic, and the latest developments within each study area. Consider this blog a course of continuing education.
1. Zulu Technology
All community versions of Zulu remain consistent as OpenJDK binary outputs. The JVM remains regular HotSpot. The JRE runtime component is still the engine that runs Java application workloads. The JDK, which is the publicly available download package for Zulu, provides the JRE runtime and all developer tools to hook up your development, build, and test facilities. The Zulu community downloads remain Open Source under the OpenJDK licensing scheme and Azul’s diligence in following OpenJDK’s derivative works rules. Azul remains one of a small handful of vendors able to declare binaries as fully TCK tested, enforcing adherence to the Java SE standard for each major release of Java.
The one new aspect of Zulu technology since the video first aired is the introduction of early access builds of Java 9. Zulu 9 Pre-Release builds have been posted on Zulu.org starting in December 2015 and continually refreshed about every other month. Availability of test targets for over a year before official release provides a long runaway for developers and software authors to test, wring out, and adopt Java SE 9 when it goes live in March 2017.
2. Zulu Community
Watch the Zuluniversity Community movie.
In this tutorial we discuss how the Zulu community is not just a narrowly defined group of “Java Developers.” Instead, it is a Team Sport that includes lots of diverse roles and perspectives. We expanded “Developers working in Java” to include developers on any JVM-based language, like Java, Scala, Groovy, JRuby, and all other expressive application languages that use the Java runtime environment to host the written application. Moreover, we recognized then that “Developers working on Java” included everyone in the OpenJDK project and on the Java Community Process, all fueling the Zulu design and componentry. Lastly, we showed how Zulu assists application operators and IT workers that play hard with the JRE, though they may not touch application code. The resulting Venn Diagram is redrawn here:
It shows the union of those three sets showing every stakeholder in the Zulu universe, and the intersection of those sets, a valid depiction of Zulu release team inside Azul.
The main evolution since the video first aired — which touted the Zulu.org website and its new Forum acting as glue holding together all three sets of community participants — is that the Forum is now “burned in,” the topic content momentum is real and participation is on a steady growth curve. We observed that moving the Zulu forum from its original implementation over to Zulu.org dropped off a handful of early Zulu followers, which is something we’ve tried to fix through a series of outreach emails. The new forum intentionally is brutally Spartan and simple by design, aiming to make it as easy as ever to join, to read, to learn, and to participate in multiple Zulu conversations. We’ve thus recovered our Zulu participation volume, with new messages and threads popping almost every day. Especially hot are the topics surrounding each Zulu 9 Pre-release.
You, too, can join and follow topics of interest in the Zulu Forum. Get a login ID at http://zulu.org/forum/
3. Zulu Deployment
In this tutorial we covered the ease of distributing the Java runtime engine for applications on multiple platforms by using Zulu. We outlined how Zulu community builds always provide both Zip and native installers on key platforms. We also outlined the notion that real Java apps consist of stacks of components. We enumerated the ways to get Zulu put into a workload stack quickly and efficiently, simultaneously including the latest levels of security fixes. For Microsoft Azure, we mentioned that preinstalled Zulu is available as virtual machine templates. For Linux, we covered the Azul Repository, where you can use Yum or Apt-Get to pull Zulu packages regularly, and doing so using the software package managers built into those OS distributions. Finally, we explained how Zulu fits into cloud, microservices, and new orchestration services of the modern data center.
The latest evolution of deployment options includes two new free Zulu community images on Amazon Web Services. The two new Zulu AMIs offer preinstalled Zulu JDKs on Windows server or Red Hat Linux. With zero usage fees for Zulu community JDK, these act as great development and test nodes in the cloud, similar to the existing preinstalled Zulu virtual machines on Azure.
4. Zulu for DevOps
In this movie, we broke the application life cycle into development, test, deployment, and long-term run phases. We also outlined which tools and components may leverage Zulu in each of those phases, even when a devops cycle blurs the phase boundaries and speeds up the release cycle. Special focus is given to the Zulu options on DockerHub.
In the containers and orchestration area, since the video first aired, Azul announced availability of the Zulu Charm on Canonical’s Juju orchestration platform. After the initial prototype Charm got finished, Azul staff then collaborated with Canonical architects to produce a new standard architecture for placing any of the available Java runtime engines into Java applications on the Juju system. This new “layered” approach to the JVM puts flexibility into the application deployment command set, such that dropping the JDK or JRE into Java workload components like Tomcat, Hadoop, Cassandra, or microservice bundles all follow a common reusable approach. Zulu today, and Canonical’s distribution of OpenJDK, and at some point the IBM JDK on Juju, all should allow bolting on Java with one or two Juju command-line statements, allow swap-ability of your choice of JDKs, and give uniformity for other Charm component authors to setup Java components and make them ready for all Juju deployers and their IT orchestration workflows.
More good news for the Zulu product family
At the time we did Zuluniversity, the Zulu Enterprise offering had existed for over a year, and continues as a paid offering providing professional tech support on top of Zulu binary builds, while the then new Zulu Embedded product line had just taken root. Since the tutorials aired, Zulu Embedded added a wider selection of evaluation builds on new platforms. These downloads are all available upon request from Azul. They include JRE and Compact Profile packages for Windows 10 IoT Core, for ARM32, for Intel Edison, for Wind River, and for accessing device APIs from Java-calling code. Azul even donated a few of these builds into the open, including a Compact 3 JRE profile used today in the Alpine Linux docker file on Docker Hub.
As winter term turns into spring break, and spring break rolls into summer, I encourage you to work back through the Zuluniversity mini courses. I might post a final exam, and as a professor, I am known as a very tough grader on homework. So study hard and you too will earn your degree as a Zuluniversity scholar, because we should take to heart this famous epigraph:
“Knowledge is Good” – Faber College
For your extracurricular study:
 Zulu 9 Pre-release (now GA) builds: http://zulu.org/download/
 Zulu Forum: http://zulu.org/forum/
 Zulu dev and prod AMIs on Amazon: https://aws.amazon.com/marketplace/search/results/ref=gtw_navgno_search_box?page=1&searchTerms=zulu
 Azul’s set of Zulu docker files on Docker Hub: https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=azul+&starCount=0
 Zulu Charm on Juju: https://jujucharms.com/u/azulcharmers/zulu8/
 Zulu Embedded evaluation builds: https://www.azul.com/products/zulu-embedded/
 Zulu Compact 3 JRE docker file on Alpine Linux: https://hub.docker.com/r/delitescere/java/