Just before the summer, we wrote about the great tech conferences which started (again) after the Covid period. At that time of writing, it was not 100% sure that every conference would actually be held in a physical form. Devoxx was one of them. Things worked out well, the conference was held from October 10th until October 15th in Antwerp – Belgium. Since this is a great tech conference, especially for Java developers, this is an interesting one. Let’s have a look at the highlights from the Deep dive sessions on Monday and Tuesday as well as a sneak peek into some other practical aspects. Devoxx Antwerp 2022 – for developers by developers.
Not much changed this year: the technical deep dive sessions took place on the first days of the week whereas the conference sessions were spread throughout the rest of the week. Especially for senior developers, the deep dives are of great value since they cover a lot of advanced topics which help you push further in your development career.
As in previous years, the sponsors build up their booths on Monday afternoon so they were ready and steady for anyone to visit them from Tuesday onwards. The Kinepolis in the Northern part of Antwerp is a perfect place to host this conference: easy to reach by car and public transport.
It’s impossible to give an outline of every session so it’s worthwhile to mention that the following topics have been presented:
- A lot of talks about Java, Spring Boot & Spring Cloud, Performance tuning, scaling systems, Kotlin, Java build tools, Java best practices & design patterns.
- Talks about the migration of applications towards cloud-native solutions, stateful versus stateless applications, observability, micro-services, and architecture
- Machine Learning, AI, Semantic Search, application testing & test containers, Blockchain, smart contracts
- Java, Kafka, Kotlin, and other programming languages/technology stacks and the Kubernetes ecosystem including security-related challenges from the ground up.
In this article, we’ll explore a couple of talks in more detail. These articles are selected based on popularity, applicability for this new platform as well as topics that are relevant to the software IT industry as a whole and even more useful for Java developers. Since Java is still a popular language both in the world of application development as well as for cloud-native applications, these developers benefit from it.
App modernization strategy
Karina Varela talked about how companies approach and conduct application modernization strategies. Key aspects to remember some of the biggest hurdles why legacy applications can’t be modernized easily:
- The application itself is the blocking factor since legacy services can’t be changed (easily).
- Data that is managed by legacy apps prevent modernization. Applications got extended by modern (cloud) services, but the data which is still controlled through the legacy application needs to be in sync.
She proposes a couple of solutions which include:
- The usage of enterprise integration patterns that use “data capture” solutions to get a grip on the existing data.
- Adding new functionality into existing stacks to use new cloud-native micro-services.
The true power of the talk resides in presenting an example use case. Both the “old architecture” as well as the “new architecture” is shown as how to overcome the above-mentioned issues. This brings the talk to a higher level and also helps IT executives as well as practitioners point towards a practical solution. Ready to apply at their organization.
Functional & Reactive programming + design patterns
Venkat Subramaniam is a very respectful speaker at a lot of conferences. He is a true Java hero which knows the ins and outs of nearly every part of this programming language. His talks are always well-visited so there are “overflow rooms” to accommodate everyone that wants to be inspired by him. During these past Devoxx days, he conducted several talks:
- Java *is* agile
- Design Patterns Revisited in Modern Java
- Exception handling in Functional and Reactive Programming
What we can learn from him
All of his talks are very very informative. He brings in a lot of knowledge and wisdom together with a nice dose of humor.
A number of key values which you’ll encounter in almost every presentation he gives:
- Live coding and debugging sessions as he speaks
- A clear “list of checkboxes” for every task he finishes during his talk
- A well-organized “paper trail” of the scripts he creates
Developers benefit from his talks, for example, the talk about modern design patterns. In this extensive talk (~2.30h), he explains and challenges Java design patterns for modern Java versions. Once design patterns become more common, programming languages might adopt them to incorporate them into the core set of features.
Other talks talk design patterns (for micro-services) are presented by Mark Heckler. He presented common design patterns to configure and deploy your applications for the Azure platform as well as for other platforms that work similarly. Besides this, he also addresses micro-services registration and discovery, system resilience as well as smart routing, and ways to secure your secrets.
To Git or not to Git?
An inspiring view on the past, present, and potential successors of Git has been presented by Hanno Embregts. In this talk “Will Git Be Around Forever? A List of Possible Successors” he highlights two possible successors: Fossil and Pijul.
Compare Git with Fossil and you will see a list of notable differences: Git originated from the Linux kernel project whereas Fossil uses SQLite as the sample project of choice. Fossil is based on trust instead of hierarchy and the engagement is on a personal level. Therefore also the number of contributors varies a bit: 5000+ versus 4 🙂
The main functional difference between Git and Fossil is the storage of (code) changes Fossil stores relations between check-ins whereas Git stores the actually changed code and you have to derive the change yourself through Git.
The other alternative is Pijul. This newcomer is founded in 2017 and focuses on a patch-oriented design. A patch in this case is an intuitive atomic unit of work and it concentrates on changes instead of differences between snapshots. Patches are “stacked” on top of each other, but in the end, it does not matter in which they are applied. The end result is the same (code change). Merging code as well as re-basing does not exist as they do in Git. Therefore, it also claims to have less pain in merging code between different branches.
Try them out
Although both alternatives are not production-ready yet, it’s tempting to try them out for a sample project which is not mission-critical.
Every developer nowadays faces DevOps and the possibility/requirements to understand Kubernetes. Vincent Bodiou held a deep dive session of nearly 3 hours to explain and secure a Kubernetes cluster from scratch. The following topics are needed for every developer which wishes to land his application on a Kubernetes cluster:
- Auditing the technical configuration of your cluster to identify (potential) vulnerabilities and apply patches.
- Focus on the exploitation of the core components of Kubernetes: network policies, RBAC, admission controllers, Security Context, etc.
- Selecting, installing, and configuring tools such as Open Policy Agent to monitor and prevent security-related issues for Kubernetes’ core components. As well as detecting suspicious runtime security-related information.
Contrary to other talks, this session ended with a demonstration of a CI/CD pipeline that was able to detect compromised container images during the build phase.
Make it practical
The previous talk is very well complemented by the 30 min tech talk of Ben Hirschberg. He explains common pitfalls of the Vanilla Kubernetes flavors which are on the market today. This is followed by an explanation of how to secure the Kubelets, the etcd key/value database as well as the Kube API server itself.
With his tips and tricks in mind, you as a developer should feel much more confident running your production workload on Kubernetes.
Both talks focus on the usage of open source tools and techniques which are available for everyone, so this lowers the barrier to implementing them right away.
As of today Helm is THE package manager of choice for Kubernetes workloads. But what if you want to configure your Kubernetes manifests in another way? Meet Kustomize which offers a powerful built-in alternative to this. Kevin Davin presents the core principles of Kustomize: how to write core manifest files, and connect them together as well as ways to debug and troubleshoot them. Just like the alternatives to Git, Kustomize is worth your time to explore.
Other inspiriting talks
Every tech conference should have a proper mix between solid tech talks of proven technologies as well as inspiring talks about new trending topics and technologies that quickly rise on the hype loop. Amongst this last category, Devoxx 2022 includes a number of inspiring talks which sparkle your mind:
- Blockchain, Non-fungible tokens and smart contracts by Hendrik Ebbers & Michael Heinrichs. This talk was particularly interesting since both presenters first explained the history of these technologies, before diving deeper into future areas for Blockchain. Furthermore, the session was all about the (secure) transfer of goods and services using open services based on public ledgers like Ethereum and its potential successor Hedera. Note the explanation and the overview of energy consumption of “trusting a single transaction” for Bitcoin, Ethereum, and Hedera in the Youtube video.
Control your mind
- Sébastien Blanc controlled the Kubernetes API using a set of sensors connected to a Helmet he wore on top of his head. His great sense of humor and the inspiring show kept everyone amused. These kinds of new technologies help people who cannot depend on their hands or eyes to control systems. The helmet communicated with an API that utilizes an SDK as an interface for your programming language. Be sure to check out his talk.
- Every Java developer knows popular and useful classes like HashMap and ArrayList. Both belong to the “Java Collections Framework“. But there are more classes that belong here but are used by fewer developers. Maurice Naftalin And José Paumard explain in detail how the Java Collections Framework works by demonstrating some “seemingly obvious pitfalls” while the outcome might not be so obvious. It’s an inspiring talk that reflects their great knowledge and true understanding of this topic.
In case you want to know more about the other topics presented at Devoxx, please visit the official Youtube channel. This lists all sessions which have been recorded.
The week of 10 – 15 October was packed with great talks and inspiring people. Especially Java developers got to know a lot more about the latest and greatest trends and technologies from their ecosystem. Since cloud and cloud native gains more traction every day, these topics are not forgotten. It’s great to see everyone back in real life after two years. Next year, it will be the 20th edition of Devoxx, so that leaves us curious to guess what it will be.