JAX London is a four-day conference for cutting-edge software engineers and enterprise-level professionals. JAX brings together the world’s leading innovators in the fields of JAVA, microservices, continuous delivery and DevOps.
2016 Conference Tracks
Below, you find the Sessions of the past JAX London of 2016. We are happy to be able to provide a platform for connecting, learning and teaching about Java & Software Innovation. Hopefully, we’ll have you visiting in 2017 too!
The MapReduce paper, published by Google more than 10 years ago (2004!), sparked the parallel processing revolution and gave birth to countless open source and research projects. The MapReduce model is now officially obsolete, so the new data processing model we use is the "Dataflow model" and you can see it in action in the hosted Cloud Dataflow service, or its open source Apache Beam implementation. They allow you to specify both batch and real-time data processing pipelines and have them deployed and maintained automatically - and yes, dataflow can deploy *lots* of machines to handle Google-scale problems.
You want to take that brilliantly containerized crafted application into production. But are your images production-ready? ... and will it scale? This workshop will teach you and your team how to create the RIGHT minimal lovable image and successfully run containers in production.
During this tutorial, we are going to explore the five key ingredients for creating the RIGHT minimal lovable image: small, secure, performant, stable and immutable. We will also dive into solutions and best practices and we will get our hands dirty by creating a lovable image. Together, as a team.
…and why could it help me in my day-to-day programming using Java?
This workshop is meant to give people practical, hands-on examples of what it's like to work with a purely functional language, in this case Frege. Why? Most importantly to give people an idea of how to write their Java in a declarative way. The discipline of writing purely functional programs gives new insight into how to write modern idiomatic Java code. It also helps understand why Scala, Groovy, Kotlin, Ceylon, Clojure, etc. are the way they are, and how to use them idiomatically.
This workshop is basically a series of small introductions with individual or pair programming time and short group reflections, designed to give people a chance to appreciate the role of declarative expression in any and all languages, especially Java.
Java for Cloud Natives – or better said the tale of how people and companies became Java shops. In this session James will talk about how Java’s resurgence was massively helped by the following buzzwords: microservices and big data . Are you curious to find out how a plethora of web companies transformed into Java shops? This is your chance to learn all about it..
Java 8 offers a wealth of new language features, but how should they best be used to design a library? Using Strata, a new Java 8 library for market risk calculations by OpenGamma, I'll discuss each key language change and how they can be used to create a clean, modern library that developers find easy to use. Knowledge of the finance industry or market risk is not required, as any key concepts will be introduced during the talk.
AsciiDoc takes the pain out of writing and keeps your content DRY. As with any solution, you need to learn the tools and best practices to be effective, such as:
* How to organize your documentation
* How to make your documentation approachable to contributors
* How to make your documentation easy to maintain
* What tools to use to simplify collaboration & maximize reuse
I'll address some of the challenges I've encountered while writing documentation in AsciiDoc, offer a set of tips and recommendations that have helped me improve my writing flow, evaluate the tools available in the Asciidoctor ecosystem and provide advice on how to keep presentation from leaking into your content...and why that matters.
Get ready to write once in AsciiDoc and publish everywhere!
The Domain Model pattern is a great way to develop complex business logic. Unfortunately, a typical domain model is a tangled, bird's nest of classes. It can’t be decomposed into microservices. Moreover, business logic often relies on ACID transactions to maintain consistency. Fortunately, there is a solution to this problem: aggregates. An aggregate is an often overlooked modeling concept from the must read book Domain Driven Design. In this talk you will learn how aggregates enable you to develop business logic for the modern world of microservices and NoSQL. We will describe how to use aggregates to design modular business logic that can be partitioned into microservices. You will learn how aggregates enable you to use eventual consistency instead of ACID.
User stories are probably the most popular agile technique to capture product functionality. Working with user stories is easy. But telling effective stories can be hard. This talk shares ten proven tips to help you create great user stories and develop the right software.
So you’ve embraced μServices and Continuous Delivery but as the number of your μServices grow, it has become harder and harder to keep your releases co-ordinated. Many resort to release trains to manage their deployments, where you can only do releases for a given service at a given time or in a specified order, but wouldn’t you like to not have to worry about any of that coordination, no matter how many μServices you need to deploy. Over at Ocado, they have managed to create an environment where they are able to release up to 35+ μServices at any time and in any order you want, asynchronously. Clayton and the Ocado team would like to share with you how we are doing it.
In order to create such an environment, you will need to look at more than just one thing or one area of practice you are doing. You need to take into account almost everything related to your environment and development life cycle. In order to achieve this goal, you will explore the following areas:
Stateless μService Architecture
Continuous delivery practices
Development approach and practices
Adopting this approach has allowed the Ocado E-commerce team to actively allow 20+ developers each able to continuously push changes all the way through to production in under 40min from the moment the change is committed, without needing to worry about the changes other developers are pushing through and no need to worry about each developer having to coordinate their releases and work with each other.
Anaplan is an online platform for building planning and forecasting applications that are used by many of the largest companies in the world. At its core is an engine written in Java that maintains a fully calculated and aggregated in-memory dimensional model of the customers' planning data.
All of the calculations and aggregations are maintained while users of the system continuously enter data such that access time for any value in the system is constant regardless of the complexity of its derivation, and that all calculated values returned from a query are consistent with respect to the calculation model.
This talk will explain in detail the way the data is structured and the means by which full and incremental calculation is done to maintain this consistency and deliver the complex calculation functionality required.
Data Science is becoming more and more popular. It covers a variety of topics and involves different skills. R is a programming language which focuses on working with data. The platform offers numerous libraries and implementations of machine learning algorithms. This makes it a perfect tool for exploratory data analysis and presenting the results of inquiries and data science in general.
In this talk, Barbara will go over the capabilities of R in the data science field. In addition to the language basics session, she will also cover specific data applications. The presentation will be built around typical machine learning problems such as classification, regression and clustering. Barbara will teach her audience how to prepare data, perform learning computations and present the results.
Security is a very important topic for system designers. As our world becomes digital, today's safely-hidden back office system is tomorrow's public API, open to anyone on the Internet with a hacking tool and time on their hands. So the days when he hoped that security is someone else’s problem are over.
The security community has developed a well-understood set of principles used to build secure (or at least securable) systems by design, but this topic is not included in the software developers' training too often, assuming that it’s only relevant to security specialists.
In this talk, we will briefly discuss why secure design matters and introduce a set of proven principles for designing secure systems, explaining each in the context of mainstream system design. Our technical examples will be Java centric, but the principles are equally applicable to other technology stacks.
Failure of Highly Available (HA) enterprise solutions is inevitable. But in today's highly interconnected global economy, uptime is critical. The impact of downtime is magnified when factoring in Service Level Agreement (SLA) penalties and lost revenue. Even more harmful is the damage to an organization's reputation as angry customers vent their frustrations on social media. Resiliency, the neglected stepchild of Availability, is often an afterthought. Yet, an enterprise solution without Resiliency is not truly HA. This talk will cover a number of architectural resiliency techniques and patterns that will increase Mean Time to Failure (MTTF), a.k.a Fault Tolerance and decrease Mean Time to Recovery (MTTR).
Monica Beckwith is a JVM/GC Performance Engineer and has worked with the HotSpot VM for more than a decade. In this presentation, she will talk about GC Performance Engineering while providing GC facts and examples. She will also discuss various OpenJDK HotSpot GC algorithms and will provide advice on this topic.
At LMAX Exchange our team of 20 developers changes 30,000 lines of code every month, half of our codebase is less than 17 months old and new features are delivered to production fortnightly. We handle two trillion dollars worth of trading every year, so bugs or performance regressions in production can prove to be very costly.
In order to support this workflow, we live and breathe Continuous Delivery - the concept was defined at LMAX and we have continued to improve and refine the process.
This session will guide you through our incremental delivery pipeline and the techniques used to minimise bugs that make it to production. We will offer practical advice on how to deliver, deploy, test and measure when you don't have the luxury to display a humorous 404 page.
Multi-tenancy is the classical approach for delivering SaaS applications. However, multi-tenancy at the application level comes with a significant limitation in terms of processing isolation, efficient hardware utilization and advanced per-tenant configuration.
Because the Nuxeo Platform is designed to be deeply configurable and extensible, the classic multi-tenant model was inadequate for Nuxeo and our customers.
In this session, you will see a new application factory infrastructure built to avoid the limitations of multi-tenancy, using customized Docker containers deployed on demand for each tenant, while still being able to manage this as a single application. We will also describe why we chose Docker or Gogeta to build our open source project "Arken" and its architecture choices. We will show how it has evolved alongside the Docker ecosystem by taking advantage of the new volume and network plugins.
This presentation will also show you how this new container-based application factory model optimizes the hosting costs by providing high-density container hosting on top of AWS EC2 and passivation / on-demand activation of containers.
Java Flight Recorder is a low overhead profiling tool built into the Oracle JDK; it can be turned on whenever you wish to investigate the behavior of your Java application.
You will have the chance to discover the features and some design choices for Java Flight Recorder; you will learn to create flight recordings in multiple ways and analyze them using Java Mission Control. Find out how to get the most of Java Flight Recorder.
In the emerging world of DevOps and the Cloud, most developers are trying to learn new technologies and methodologies. The focus tends to be on adding capabilities such as resiliency and scaling to an application. Still, one critical item consistently overlooked is security.
The world of the Cyber Criminal is closer than you realize. Watch a real man-in-the-middle demonstration and learn just how simple it can be for others to steal your secrets. In this talk you'll learn about other practical examples of how you can inadvertently leave the doors open and what you can do to keep your system secure. In the end, security is everyone's concern and this talk will teach you a few of simple actions you can take (and some behaviours you must change) to create a more secure application in the Cloud.
When I ask fellow developers what they think about empathy, the answer is often “not much”. However, I believe that the skill of empathy, being able to place yourself in another’s position, is crucial to designing, building and operating software at any scale. Join me for a whistle-stop tour of the benefits of empathy, which I learned from working on a large variety of software projects over the past ten years. I will share success stories and battle scars, and suggest practical techniques that you can harness in order to help your team develop empathy.
How can a small team with a limited budget enable the analysis of large volumes of data?
Lindsey and Phil will explain how the Guardian has used Apache Spark and PrestoDB on AWS to support simple ingestion and fast querying of a wide range of datasets. Learn why it's important to decouple storage from compute and raw data sources from optimised query formats and why there's still no single perfect solution.
Do you want to have faster releases, increased efficiency, less unplanned work, fewer break-fixes, easier maintenance and better quality software?
Maven Central is the world’s largest open source repository for Java libraries and used by over 100,000 organisations globally. Development teams use open source libraries to develop functionally rich applications at speed in an agile manner, however there is an inherent security and license risk that needs mitigating. Sonatype will demonstrate live, in conjunction with Jenkins and Bamboo, how Nexus Lifecycle can produce a 'Bill of Materials’ report to show you what open source libraries are inside your application, what the security and license risks are and then show you how to remediate this from an Eclipse or IntelliJ IDE.
If anyone would like to bring their own Java application, either in EAR or WAR format, then Sonatype would more than welcome the opportunity to scan the application and produce a Bill of Materials report live at the event.
The session will start with an explanation of introduction to jPDM, my performance diagnostic model designed to help quickly identify the root cause of any performance bottlenecks. After a quick look at how to setup for a performance test, we’ll run a demo filled with performance bottlenecks. We’ll use jPDM together to diagnose and fix the problems together. During the demo I’ll introduce a few tools that can help us dig into the inner-workings of the application.
A long time ago in a galaxy far, far away... Java open source developers managed to the see the secret plans of the Empire's ultimate weapon, the JAVA™ COLLECTIONS FRAMEWORK. Evading the dreaded Imperial Starfleet, a group of freedom fighters investigate the performance of the Empire’s most popular weapons: LinkedList, ArrayList and HashMap. They also investigate common developer errors and bugs to help protect their vital software. With this new-found knowledge they strike back! Pursued by the Empire's sinister agents, JDuchess races home aboard her JVM, investigating proposed future changes to the Java Collections and other options such as Immutable Collections which could save her people and restore freedom to the galaxy....
Using the Microservices Architectural Style to incrementally adopt an Event-driven Architecture (EDA) lowers up-front costs while decreasing time-to-market. EDA extracts value from existing occurrences, limiting invasive refactoring or disrupting existing application development efforts. Implementing Event-driven Microservices yields intelligence, scalable, extensible, reactive endpoints. This session will cover the fundamentals, patterns, techniques and pitfalls of Event-driven Microservices with several demos leveraging Spring Boot, Apache Camel and ActiveMQ.
The MapReduce paper, published by Google more than 10 years ago (2004!), sparked the parallel processing revolution and gave birth to countless open source and research projects. The MapReduce model is now officially obsolete, so the new data processing models we use are called Flume (for the processing pipeline definition) and MillWheel (for the real-time dataflow orchestration). They are known externally as Cloud Dataflow / Apache Beam. They allow you to specify both batch and real-time data processing pipelines in Java and have them deployed and maintained automatically - and yes, dataflow can deploy lots of machines to handle Google-scale problems.
What is the magic behind the scenes ? What is the post-MapReduce dataflow model ? What is a streaming-first model ? What are the flow optimization algorithms ? Read the papers or come for a walk through the algorithms with me.