©2013 Azul Systems, Inc. Zulu: OpenJDK for cloud and enterprise Ivan Krylov Sr. Engineer Azul Systems St.Petersburg
May 13, 2015
©2013 Azul Systems, Inc.
Zulu: OpenJDK for cloud and enterprise
Ivan Krylov Sr. EngineerAzul Systems St.Petersburg
©2013 Azul Systems, Inc.
OpenJDK Timeline (1)May 2006 - Sun announced OpenJDK
November 2006 - HotSpot open-sourced
December 2006 - Java SE 6 released
May 2007 - Java class libraries open-sourced (~96%)* as OpenJDK 7
Later 2007 - OpenJDK 7 b10 forked into OpenJDK 6
February 2008 - Sun released first tar ball with OpenJDK6 that matches Java SE 6 update 4
©2013 Azul Systems, Inc.
OpenJDK Timeline (2)July 2011 - Java 7 GA. OpenJDK7 is the Reference Implementation (RI). This is the only time Oracle released official binaries for OpenJDK
January 2013 - Oracle EOLed (Open)JDK6
March 2013 - RedHat assumed leadership for OpenJDK6
March 2014 - JDK8 is released
Sometime in 2015 - Oracle is expected to EOL (Open)JDK7
©2013 Azul Systems, Inc.
Problem statementImagine a large enterprise running on java
Up until March 2014 they could run only on Java 7
Only 12-18 months are given for transition to Java 8
After that the choices are
migrate to 8
stay on old unsupported unsafe java 7
purchase a support contract for Java SE 7
or use on of the OpenJDK7 based products
or use a closed source competing implementation (SAP,IBM,HP..)
©2013 Azul Systems, Inc.
OpenJDK7 sourcesNow roughly 4 updates per year. In 2013-2014:
Security: u11, u13, u15, u21, u25, u45, u51, u55
Features u17, u40, u60
Features are mostly developed in open.
Sources for features appear in the repository as they are developed.
Bugs are visible
Discussions and code reviews are open
Security fixes are developed in closed repositories. They appear in open repositories at once days after the Oracle’s binary release
Tests are not available at all times
Bug details are not available at all times except for #
©2013 Azul Systems, Inc.
OpenJDK6 sourcesOpenJDK6 was derived for early OpenJDK7 build
OpenJDK6 “build N” is like an “update N” for OpenJDK7
Build N has no relation to Java SE 6 update M.
6b27 (Oct’12) - last one from Oracle
6b28 and 6b29 in 2013, b30 (Jan’14), b31 (Apr’2014) - all driven by Redhat
Fixes in OpenJDK are
security backports from OpenJDK7 update X
forward ports from IcedTea to OpenJDK6
©2013 Azul Systems, Inc.
OpenJDK6 today: issues
Focus on linux
Focus on backports for security fixes
As of build 31 of openjdk6 windows is broken
Azul Systems (along with the community) is working to restore openjdk6 for windows
©2013 Azul Systems, Inc.
IcedTea by Redhat
Goals changed over the time as Sun/Oracle gave more to Open
It is a GPLv2 open-source jdk for linux that is
tested
(self)certified with Java Community TCK
with paid support
Source exists as a set of patches being applied to a recent OpenJDK drop. 1 or 2 drops behind are supported.
Since January 13 lots of patches moved up as fixes to OpenJDK 6
©2013 Azul Systems, Inc.
Closed sources available to paid subscribers - licensees
Different from OpenJDK in terms of license
Security fixes and test cases are delivered as they are developed
JDK 6 updates are available in sources
Does not contain proprietary enhancements like MC and JFR sources (7u40+)
Does provide some non GPL sources: fonts, graphics features, encryption, debug interface, etc…
No JDK/hotspot performance enhancements are known missing in SCSL or OpenJDK sources.
The SCSL sources (Sun Closed Source License)
©2013 Azul Systems, Inc. ©2013 Azul Systems, Inc.
About Azul (who are these guys?)
We make scalable Virtual Machines
Have built “whatever it takes to get job done” since 2002
3 generations of custom SMP Multi-core HW (Vega)
Zing: Pure software for commodity x86
Known for Low Latency, Consistent execution, and Large data set excellence
Vega
C4
©2013 Azul Systems, Inc. ©2013 Azul Systems, Inc.
About Azul We also do other things with JVMs
Zing: A metrically better JVM
Zulu: A commercialized, fully supported version of OpenJDK
Long term, commercial support for Java SE 6, Java SE 7, (and 8 as it comes out)
Zulu: Free & Open Source, changes contributed back to OpenJDK
Windows & Linux, Azure & EC2
C4
©2013 Azul Systems, Inc.
Zulu at a glanceStart: Summer 2013
Windows Server and Linux (Mac is considered as the next platform)
Focus on server deployment
No plugin or webstart
OpenJDK 6, 7 and 8
Eclipse plugin for Azure deployment
In progress: public rpm repositories
Various support options
©2013 Azul Systems, Inc.
Zulu projectStart 2013
From engineering perspective: more than just build and ship existing sources
Windows tooling issues (at least 5 how-to’s on www prove the task isn’t trivial)
Branding issues and versioning
Installers for Windows and Linux
Automated build and test infrastructure
Unit tests
Performace
Automation for compatibility tests
Support of Azure: we test Zulu in the cloud
©2013 Azul Systems, Inc.
Zulu in AzureA tested supported OpenJDK release for Microsoft’s Azure Cloud Tested
we run compatibility suites
certification suites for app servers like JBoss
Supported
Critical for majority of business that rely on Java
Open
Sources are open 100% and available
Azure PaaS component for easy deployment
Eclipse plugin for deployment in Azure
©2013 Azul Systems, Inc.
Install the plugin from within Eclipse
©2013 Azul Systems, Inc.
Azure toolkit components
©2013 Azul Systems, Inc.
New project wizard
©2013 Azul Systems, Inc.
Zulu as PaaS component
©2013 Azul Systems, Inc.
Servlet container selection
©2013 Azul Systems, Inc.
Latest Eclipse plugin from MS Open Tech (Apr/14)
Support for the Azure SDK 2.3 release
Upgrading of applications without complete package deployment.
Tomcat 8 now is a recognized application server.
Azul Zulu OpenJDK package updates: v1.7 update 51 and v1.6 update 47.
Support for A8 and A9 Microsoft Azure Virtual Machine size.
Automatic redirection from HTTP to HTTPS for SSL-enabled roles.
Express Emulator used for local emulation.
Windows Azure has been rebranded as Microsoft Azure