Zulu by Azul OpenJDK for Azure surely a tongue-twister in any spoken language A presentation to Azure CEE Open Source in the Cloud November 27, 2013 Matt Schuetze, Director of Product Management Azul Systems
This Talk s Purpose / Goals This talk is focused on Java for Azure This is not a how to write a Java program talk This is a talk about how Java fits into the Azure landscape and why Zulu by Azul plays a big role. Purpose: Once you understand where Java fits, you ll know just enough to be dangerous... The Azul makes the world s greatest JVMs stuff will only come at the end, I promise...
About Azul Systems We deal with Java performance issues on a daily basis Our solutions focus on consistent response time under load We enable practical, full use of hardware resources As a result, we often help characterize problems In many/most cases, it s not the database, app, or network - it s the JVM, or the system under it GC Pauses, OS or Virtualization hiccups, swapping, etc. We use and provide simple tools to help discover what s going on in a JVM and the underlying platform Focus on measuring JVM/Platform behavior with your app
About Azul We make scalable Virtual Machines Vega Have built whatever it takes to get job done since 2002 3 generations of custom SMP Multi-core HW (Vega) Now Pure software for commodity x86 (Zing) C4 Industry firsts in Garbage collection, elastic memory, Java virtualization, memory scale
High level agenda Java history, evolution, and current picture of industry Zoom into the Java Virtual Machine, the architectural heart of Java Zoom out, seeing where the JVM fits in the greater application universe Focus back in on Azure and pick apart why Java on Azure isn t so weird as it initially sounds. Introduce and describe Zulu, a new OpenJDK distribution offered by Azul Systems
Azul s Evolution in Java Context Year Azul Java Milestone 1996 Sun ships Java 1.0. Codename Oak. 1999 Sun builds Java 1.2 w/ Swing and Browser plugin. First use of HotSpot as trade name of JVM. So huge Marketing names it Java 2, split as J2SE, J2EE, and J2ME 2002 Founded J2EE called best platform for web. J2SE 4.x solid for server apps, 1 st 64-bit VM. BEA acquires Appeal, the JRockit VM creators. 2005 Vega J2 Version 5, Codename Tiger, is huge. BEA WebLogic 8.1 hot. IBM J9 VM replaces IBM Classic VM under WebSphere 6.1 2007 Oracle acquires BEA. JRockit VM kept intact over Oracle VM. 2010 Zing VE Oracle acquires Sun. Java and Sparc kept intact. JRockit pushed for specialty workloads only. 2011 Zing LX Oracle ships JSE 7. OpenJDK becomes base codeline for JSE7.0. IBM ships WAS 8.0 on J9 JDK6. Zing 5 released. 2013 Zing PE IBM ships WAS 8.5 and it can be configured to use J9 JDK7. OpenJDK 7 is released. IcedTea 6 is released. JRockit revived. 2013 Zulu on Azure OpenJDK 8 is nearing developer preview now with 2014 Q2 release target. Source will be foundation of Oracle s JSE 8.
Azul s Evolution Explained Founded 2002 First hardware product (Vega): 2005 First virtualized software-only product (Zing): 2010 First fully native-mode software product (Zing 5): 2011 First bundled WebSphere solution (Zing PE): 2013 First free open source Zulu product for Windows Server: 2013
Six Dimension of Java Life Cycle Java Virtual Machine Platforms
Code Transformation Author Source *.java Compile to Bytecode Load Link Initialize JIT Compile *.class Java Virtual Machine Consume APIs Runtime Instance Machine Assembly 01010110 Execute Monitor ReJIT *.jar Code Transformation
Simplified Java Life Cycle Business Requirements As Inputs IDEs: Eclipse, NetBeans, IntelliJ Platforms: Desktop, Laptop Tools: JUnit, Ant, Maven, Profilers, Debuggers, Emulators Dev Tools: JUnit, JMeter, Grinder, Platforms: Servers, Mobile Virtualization QA Tools: Profilers, JMX monitors, Deployers Platforms: Servers, Mobile, Clusters, Cloud, Grids, Virtualization Prod Working Applications As Outputs Business provides team with requirements. Developers author Java source code on laptops, pull in 3rd party frameworks or APIs. Commit code to repository where builds compiled, JAR/WAR, and data components integrated, and QA testers validate full server application. Upon passing all tests, Ops staff push JARs to final server and client targets.
Java Editions Micro Edition Same Language Cutdown API Tailored JVM Runtime Tiny Footprint Standard Edition Java Virtual Machine JVM, JDK, API Language Standard Runtime Standard Enterprise Edition Includes JSE Standard Services: JMS, JDBC, EJB, Servlet, JNDI
Java VM Platforms Bytecode Ensures Architecture Neutrality Chip Architectures Intel x86 Intel/AMD x64 IBM Power HP PA-RISC ARM Sparc Itanium Plus more Java Virtual Machine Platforms Operating Systems Linux Windows Solaris HPUX AIX zos Mac OS/X Android Plus more
Active Java/JVM Vendors Oracle Perm JCP EC member. Retains Brand, Trademarks and many Copyrights Oracle Hotspot Oracle JRockit Azul Systems, IBM, Red Hat EC and JCK Licensees Java Virtual Machine Azul Zing Azul Zulu IBM J9 Red Hat IcedTea Arm Ltd., Eclipse Foundation, HP, Intel, Nokia, SAP, Software AG +8 others on JCP Executive Committee Google Dalvik Key Vendors and their JVMs
Types of JVMs OpenJDK Azul Zulu IcedTea Free, Open Source, GPL Hotspot IBM J9 Java Virtual Machine Semi-Free, Closed Source, Restrictions JRockit Azul Zing Commercial, Closed Source, Licensed
What to do with a Java workload when you are a Microsoft cloud worker? Simple: Deploy Zulu on Azure
Zulu Deployment Targets* Choice of Java 6, 7, and 8, each JSE compatible Choice of 64 and 32 bit JVMs on applicable OS Choice of Deployment Model: Bare OS Windows server Virtualization VMWare HyperV Cloud Azure * 32 bit and Java 8 next up on roadmap
Zulu Release Timeline Sun JDK5 Oracle JDK6 Open JDK 7 Oracle JDK7 Open JDK 8 Oracle JDK 8 Open JDK6 Iced Tea6 Zulu 6 Zulu 7 Zulu 8 Zulu 7.0 Sept 2013 Zulu 7.1 Oct 2013 Zulu 7.2 Nov. 2013 Zulu 8 Spring 2014
Azure Eclipse Workbench Eclipse IDE/ Workbench tailored for Java on Azure
Deploying Zulu Create Azure VM Deploy a JDK Select current Zulu
Zulu Product Comparison Azul Zulu Oracle HotSpot Red Hat Iced Tea Full HotSpot compatibility 4 4 4 Support for Azure 4 4 0 Support for Windows servers & Hyper-V 4 2 0 Browser plugins 0 4 0 Dedicated JVM customer support 4 4 0 Out-of-release-cycle Bug Fix Delivery 4 2 0 Company 100% focused on Java 4 1 0 JVM certification program for ISVs 4 4 1 Upgrade path to additional features (trade-up option) 4 1 0 Community participation (JCP EC) 4 4 4
Homework Assignment Deploy a Windows Server VM on Azure. Select 2012. Configure Azul Zulu as choice of JDK. Select 1.7u40. Download DaCapo Benchmark Suite (jar file) into VM. http://sourceforge.net/projects/dacapobench/files/ Run DaCapo test: java.exe -jar -Xmx1024m./dacapo-9.12-bach.jar -- iterations 20 --no-pre-iteration-gc tradebeans
Conclusion Zulu gives Azure deployers a solid, dependable Java runtime. Zulu gives Java developers a boost on Windows, leveraging OpenJDK, expanding alternatives. Through Zulu and Zing, Azul gives application developers worldwide flexible, robust, and trusted Java server capability. Consider Azul as defactor provider of server JVMs.
Q & A For any follow-up, contact Matt: mschuetze@azulsystems.com Zulu by Azul: http://www.azulsystems.com/products/zulu Microsoft OpenTech: http://msopentech.com search zulu jhiccup: http://www.azulsystems.com/downloads/jhiccup