Keynote: Next-generation microservices
You adopted microservices architecture to fundamentally change your time-to-market, and your code-to-production time from months to weeks—perhaps even days. The first generation of microservices was primarily shaped by Netflix OSS and leveraged by numerous Spring annotations throughout your business logic. The second generation of microservices architectural style was enabled by the rise of Kubernetes and OpenShift, now the de facto standard cloud-native application infrastructure. The next generation of microservices will leverage sidecars, a service mesh (Istio), serverless principles, and a new insanely fast and light Java runtime—Quarkus.
Coding that sparks joy with Quarkus
Does your heart beat faster when you’re developing your Java application? Does coding spark joy? If not, then it’s time to leave some old ways behind. Join us on this live coding session and get familiar with Quarkus. You’ll learn to love how your old and new favorite APIs will start in a matter of milliseconds and consume tiny amounts of memory. Hot reload capabilities for development will give you instant sparks of joy!
Subatomic reactive streaming, messaging, programming
Quarkus provides a supersonic development experience and a subatomic execution environment thanks to its integration with GraalVM. But that's not all. Quarkus also unifies the imperative and reactive paradigm. Let's dig into this. This talk is about the reactive side of Quarkus and how you can use it to implement reactive and data streaming applications. From WebSockets to Kafka integration and Reactive Streams, this talk shows all you need to know to build a reactive system with Quarkus.
Hands on workshop: The Java microservices tutorial with Quarkus
Cloud-native applications in Java are great, but when compared to Go or Node.js, Java—despite a fantastic ecosystem around it—falls short in containers. The initial memory consumption, the startup time, and the optimizations for long-running processes are killer criteria in the cloud. Quarkus is a Kubernetes-native Java stack tailored for GraalVM and OpenJDK. With Quarkus, you can compile your application into a native executable, reduce the startup time to a few milliseconds, reduce the memory consumption to a few MB, and make applications ideally suited to run in containers.This workshop explores why these improvements matter, and how you can leverage Quarkus and GraalVM to build supersonic, subatomic, cloud-native applications. In this workshop, you will learn how to:
- Build web applications with Quarkus.
- Use Hibernate and Hibernate with Panache.
- Build event-driven microservices with Apache Kafka.
* This is a hands-on, bring your own laptop coding workshop. Space is limited.
Hands-on workshop: Kubernetes, service mesh, and serverless
This is your opportunity to get hands-on with Kubernetes and OpenShift, Istio service mesh, and Knative serverless. A service mesh offers consistent discovery, security, tracing, monitoring, and failure handling, without the need for a shared asset, such as an API gateway or ESB. A typical implementation involves lightweight reverse-proxy processes deployed alongside each service process, perhaps in a separate container. Using serverless architectures has become one of the common approaches in organizations that want to be more effective in DevOps and optimize their IT resources. This adds further flexibility to the next generation of microservices to be more agile (i.e., serve on-demand). Knative helps running your microservices’ serverless workloads on Kubernetes/OpenShift be more agile and effective.
* This is a hands-on, bring your own laptop coding workshop. Space is limited.
9 steps to awesome with Kubernetes/OpenShift
Everybody seems to be rocking with Kubernetes as it has become the de facto standard for hybrid cloud portable application architecture. Even your favorite open source repositories at GitHub are running on top of it. Microservice architecture adoption continues to boom and Kubernetes/OpenShift is the ideal solution for deploying and managing the dozens of microservices that your organization is crafting. This hands-on session is for any developer who is interested in Linux containers and cloud-native application architecture. Our examples will primarily be in Java, as there is some special “care and feeding” related to Java in a container, but the lessons are applicable to any programming language.
Sail into cloud with Istio service mesh
In this session, we will give you a taste of Envoy and Istio, two open source projects that will change the way you write cloud-native Java applications on Kubernetes. Service mesh alleviates most of the common distributed computing pain points, such as smart routing, traffic splitting, canaries, etc. Join us to learn how to download, set up Istio on your local laptop, and deploy Java microservices as part of the Istio service mesh with Istio sidecar proxy. Istio proxy sidecars will spice up cloud-native applications with ability for splitting traffic between various version of services, smart routing using request headers, doing chaos engineering, and much more—all without code redeploys.
Kafka, Knative, and Kubernetes! Oh my!
In this session, we will show you how to run Apache Kafka natively on Kubernetes, leverage Knative Eventing and dynamically auto-scaling your microservices from 0-to-60 when drinking from the streaming Kafka firehose. At the same time, we will explore an open source event-driven serverless programming model and a set of runtime capabilities for Kubernetes called Knative. Knative provides a suite of middleware components and building blocks that enable an event-driven serverless application architectural pattern.
Plumbing Kubernetes CI/CD with Tekton
Kubernetes/OpenShift has become the de facto Linux container orchestration platform, it is missing one critical feature: the ability to build container images inside the cluster. This missing feature made continuous integration and delivery inside a Kubernetes cluster more challenging. The market had various solutions to solve the problem, but 99% of the solutions missed something—being Kubernetes native. In this session, I will introduce you to Tekton, Kubernetes’ native way of defining and running CI/CD. The session explores the characteristics of Tekton: cloud native, decoupled, and declarative. This demo-filled session will show how to stitch various building blocks of Tekton to do in-cluster build and to deploy (Tasks and Pipelines) a cloud-native application.
AWS Lambda with Java
Have you ever tried Java on AWS Lambda but found the cold-start latency and memory usage were far too high? In this session, we will show how we have optimized Java by leveraging GraalVM with Quarkus, to provide supersonic startup speed and subatomic memory footprint Java optimized for serverless applications.
Microservices testing and automation
DevOps has grown in popularity in recent years, particularly in (software) companies that want to reduce lead time to be measured in days/weeks instead of months/years. If you want to make sure your software does the right things and does things right, you need to test it implacably. The big problem is that companies see is the testing phase as the bottleneck—and it is—of the process slowing down product release. To change that, we need a new way of testing our applications, making the release process of an application a testing process as well and involving the QA from the beginning within the team. QAs are not a separate team anymore (DevTestOps). How is the testing pyramid affected? In this session, we will not only describe, but actively demonstrate several techniques that you can use immediately to start testing in production and speed up your release cycle to unimaginable limits.