Devoxx US 2017: From Developers For Developers
This blog post will be fully related to Devoxx US — a community conference from developers for developers which took place for the first time in the U.S. Details:
- When: March 21–23, 2017
- Where: San Jose, California at the San Jose Convention Center
- Who: Produced by the Eclipse Foundation in partnership with Devoxx
Among the speakers, as usual, there were stars and internationally recognized experts, e.g. Venkat Subramaniam (Founder at Agile Developer, Inc., USA), Jérôme Petazzoni (senior engineer at Docker), Trisha Gee (Developer Advocate for JetBrains), Daniel Bryant (change leader within organizations and technology with OpenCredo), Ray Tsang (Developer Advocate for the Google Cloud Platform), Stuart Marks (Principal Member of Technical Staff in the Java Platform Group at Oracle) and many many others. This conference was quite special to me, too, as I was proud to be a speaker on it.
In this blog post, I’d like to share my very subjective impressions about the conference, traditionally dividing them into 3 parts: the bright side, the dark side and the outcomes/the most interesting presentations that might be useful for my readers.
The Bright Side
First, the speakers. The Devoxx US was a great mixture of famous speakers that are frequent guests at many conferences worldwide, e.g.: Josh Long, Venkat Subramaniam, Baruch Sadogursky, Arun Gupta, Hadi Hariri, etc., core contributors to the popular open source solutions and tools, e.g.: Adam Gibson, the founder of Skymind.io and creator of Deeplearning4j, the most popular open-source deep-learning framework on the JVM, Szczepan Faber, the founder of Mockito framework and core engineer of Gradle 1.x and 2.x., etc. and speakers from different communities around the world.
Second, the talks that represented all latest trends in Java world: JDK 9, JEE roadmap updates, Spring, microservices and distributed systems, Docker ecosystem, machine learning, etc. As a result, there were 10 stages that were dedicated to the server side Java, big data, methodology and architecture, cloud, containers and infrastructure and many other viable topics for modern engineers.
Third, the unusual keynotes. Chet Haase’s “The Business of Technology Business Technology” was just the awesome mixture of intelligent humor and irony. Rama Akkiraju’s “From Science Fiction to Science Fact: How AI Will Change Our Approach to Building Apps and Leveraging Data” discussed where AI currently is and where the technology is going, showed how pioneering apps and developers around the world are already using it. Her talk was mostly built on IBM Bluemix services. Olivier Gevaert’s “Deep Learning in Biomedicine: Challenges and Opportunities” explained how deep learning has revolutionized such fields as image recognition, natural language processing and, more broadly, machine learning and AI. This talk introduced the types of data in biomedicine, including images, text to numeric data, and the potential opportunities and challenges for modeling this data using deep learning.
The Dark Side
First of all, a number of participants was lower than expected (~700 instead of 1000). There are many reasons for that, e.g. existence of JavaOne, QCon and other more popular conferences in CA, that dragged some of the attendees, frequent free technical meet-ups in Silicon Valley based companies, the fact that Devoxx brand is more popular in Europe than in the U.S. and this was the first time when Devoxx brand crossed Atlantic Ocean, etc. Anyway, it was a pity since the organizers put an enormous effort to make this conference quite special.
Second, an unbalanced schedule. There were time slots when a lot of great talks overlapped (up to 10 in parallel) as well as time frames with less interesting talks and some blank slots. As a result sometimes you sacrificed some nice talk taking into account great variety of alternatives, but sometimes you had fewer great options to choose from.
I am very subjective as to the presentations since I know a lot of great speakers personally, plus I was a speaker at the conference too :) So, keeping this in mind, here is my list of talks that I visited and can confidently recommend. Some of the great talks are not mentioned here just because I had visited them at other conferences, among them:
- all talks by Venkat Subramaniam
- all talks by Josh Long
- all talks by Arun Gupta
- all talks by Matt Raible
The Verification of a Distributed System
Caitie discussed the strategies for proving a system is correct, like formal methods that were used for instance to verify Amazon Web Services:
Key message: it is a good idea to write a formal specification of a system before implementing it.
Also, she touched the topic of testing for distributed systems. I was surprised by the fact that 77% of production failures can be reproduced by a unit test, and testing with 3 nodes or less can reproduce 98% of failures.
Property-based testing is getting more and more popular, Caitie recommended to have a look at ScalaCheck for Scala and Java.
Github repository of the talk: https://speakerdeck.com/caitiem20/qcon-newyork-2016-the-verification-of-a-distributed-system
Three years of breaking things to make them better
Donny shared an experience report about a PagerDuty’s “Failure Friday” — a weekly exercise that used simple failures like killing a process or adding network latency (in their production environment!) to expose problems in their systems and alerting.
- stop/start a process
- suspend/resume a process
- reboot a machine
- network isolation
- add latency & packet loss
More game days:
- team / office is unavailable
- Github is down
- Slack / hangouts is down
- CI server is down
As usual, Josh with his unique speed, humor and style, live coded a demo application based on Pivotal Reactor project to show Spring 5 support of message-driven, elastic, resilient and responsive services. First part was based on MVC-like component model adapted to support reactive processing and the second one was using a new type of web endpoint, functional reactive endpoints.
I’d like to highlight that Spring 5 introduced a new web runtime, which works on a net-new Netty-based runtime or existing Servlet containers.
Points to remember:
- new types: Mono, Flux, etc.
- RouterFunction used to declare reactive endpoints
- reactive repositories, for instance for Mongo
- reactive WebClient
Source code of the demo application is here: https://github.com/joshlong/flux-flix-service
Modular Development with JDK 9
Alex explained the Java 9 module system that’s been used to structure the JDK as dozens of reusable modules which strongly protect their internals. Then, he explained how you can create modules to enforce the structure inherent in your application. Finally, he looked at how tools are being prepared for modules.
For me, this talk was quite useful, so I’d like to enumerate a few interesting slides.
JDK9 introduces opening of packages to other modules to be used, for instance, by reflection:
jdk.unsupported will export sun.misc:
Summary of summaries:
gRPC 101 for Java Developers — building fast and efficient microservices
Ray talked about gRPC — a high performance, open source, general RPC framework that puts mobile and HTTP/2 first. gRPC is based on many years of Google’s experience in building distributed systems — it is designed to be low latency, bandwidth and CPU efficient, it’s also interoperable between multiple languages.
His talk was mostly live coding during which he defined service using Protobuf3, created synchronous and asynchronous services, with streaming, etc. gRPC’s supports streaming API, where you can establish server-side streaming, client-side streaming, and bidirectional streaming. This allows developers to build sophisticated real-time applications with ease.
Slides not from DevoxxUS, but still relevant: https://speakerdeck.com/saturnism/2016-springone-grpc-101
Deconstructing REST Security
David focused on a few areas:
I personally liked his statement that specifications promise infinite flexibility, habitually give old concepts new names, are riddled with extensions, and almost seem designed to deliberately confuse.
David delved into OAuth 2.0 as it pertains to REST and showed how it falls into two camps: stateful and stateless. His presentation also detailed a competing Amazon-style approach called HTTP Signatures.
Slides, speaker’s skills, delivery of a talk were just awesome.
Slides from Java One 2016, but still relevant: https://www.slideshare.net/dblevins1/2016-javaone-deconstructing-rest-security
What can I say as a summary? Devoxx is an umbrella for great conferences with exceptional organization, speakers and talks, but capturing new markets from the first time is not an easy task. I was happy to be a part of it this year and hope to see more and more participants there next year.