DevNation Live: Prague
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.
Hands-on workshop: Kubernetes, Service Mesh, and serverless
This is your opportunity to get hands-on with Kubernetes & 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.
9 steps to awesome with Kubernetes
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 how to run Apache Kafka natively on Kubernetes, leverage Knative Eventing and dynamically auto-scale your microservices from 0-to-60 when drinking from the streaming firehose.
We also 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.
The way we design, develop, and run applications on cloud-native platforms like Kubernetes differs significantly from the traditional approach. When working with Kubernetes, developers have fewer concerns to think about, but at the same time, there are new patterns and practices for solving everyday challenges.
In this talk, we will look at a collection of common patterns for developing cloud-native applications. These patterns encapsulate proven solutions and help you avoid reinventing the wheel.
We will look at the following pattern categories:
Foundational patterns describe basic patterns supported directly by Kubernetes.
Structural patterns are for structuring your cloud-native applications.
Configuration patterns provide various approaches to application configuration.
Advanced patterns go beyond the basic concepts, such as extension hooks for extending the platform itself.
You will leave with a solid overview of how common problems can be solved when developing cloud-native applications for Kubernetes.
Cloud-native integration patterns: Kubernetes and Camel K
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 (and it is) the testing phase as the bottleneck 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 following the session for starting testing in production and speeding up your release cycle to unimaginable limits.
Burr Sutter is currently Red Hat’s Director of Developer Experience. A Java Champion since 2005 and former president of the Atlanta Java User Group, he founded the DevNexus conference, now the second largest U.S. Java event, with the aim of making access to the world’s leading developers affordable to the developer community. Burr is a featured speaker at technology events around the globe as a lifelong developer advocate, community organizer, and technology evangelist. When not speaking abroad, Burr passionately creates and orchestrates highly interactive live demo keynotes at Red Hat Summit, the company’s premier annual event.
Edson Yanaga, Red Hat’s Director of Developer Experience, is a Java Champion and a Microsoft MVP. He is also a published author and a frequent speaker at international conferences, discussing Java, microservices, cloud computing, DevOps, and software craftsmanship. Yanaga considers himself a software craftsman, and is convinced that we all can create a better world for people with better software. His life’s purpose is to help developers worldwide to deliver better software quickly and safely—and he can even call that a job!
Kamesh is a Principal Software Engineer and a Director of Developer Experience at Red Hat. He actively educates on Kubernetes/OpenShift, service mesh, and serverless technologies. With a career spanning close to two decades, most of Kamesh’s career is with the services industry helping various enterprise customers build Java-based solutions. For more than a decade, Kamesh has contributed to open source projects and he now actively contributes to projects such as Knative, Minishift, Eclipse Che, Fabric8, and more. His developer philosophy is: Learn more, do more, and share more!
Clement had several professional lives, from academic positions to management. Currently, he is mainly working as a Quarkus and Vert.x developer. He has been involved in projects and products touching many domains and technologies, such as OSGi, mobile app development, continuous delivery, and DevOps. His main area of interest is software engineering—processes, methods, and tools that make the development of software more efficient and also more fun. Clement is an active contributor to many open source projects, such as Apache Felix, iPOJO, Wisdom Framework, and Eclipse Vert.x, SmallRye, Eclipse MicroProfile, and Quarkus.
Alex is a Software Engineer at Red Hat in the Developers group. He is passionate about the Java world and software automation, and he believes in the open source software model.
Alex is the creator of NoSQLUnit project, member of JSR 374 (Java API for JSON Processing) Expert Group, the co-author of Testing Java Microservices book for Manning and the Istio RefCard, and contributor to several open source projects. A Java Champion since 2017 and international speaker, he has talked about new testing techniques for microservices, continuous delivery in the 21st century, and Java.
Luca Burgazoli is a Principal Software Engineer at Red Hat working on Apache Apache Camel (for which he is a PMC member), Camel K, and Syndesis.
Dr. Roland Huss is a Principal Software Engineer at Red Hat and tech-lead for Red Hat Fuse Online, an open source hybrid integration platform running on OpenShift. He has been developing mostly in Java for more than 20 years, but never forgot his roots as a system administrator.
Roland is an active open source contributor; developer of the Jolokia JMX-HTTP bridge; and developer of the popular Fabric8 Maven plugins for Docker, Kubernetes, and OpenShift. He is also co-author of a Kubernetes Patterns book. And he loves chili pepper.