Loading…
DevConf.cz 2022 has ended
Modern Software Development [clear filter]
Friday, January 28
 

12:30pm CET

New storage for Keycloak
Keycloak (https://www.keycloak.org/) is an open source Identity and Access Management solution aimed at modern applications and services. It makes it easy to secure applications and services with little to no code. To provide identity and metadata about identity of the accessing subject, it processes a significant amount of data about users, groups, requesting applications and many more.

A couple of components are used in this processing, and one of them is (obviously) a storage. Current storage is a combination of relational database and Infinispan. With a greater adoption, it turned out that it has not been designed for a load and extendability that is requested today from a modern project - e.g. it is not possible to freely upgrade Keycloak store without downtime, some use cases hit performance limits, and it is very hard to extend apart from a custom user storage. These drawbacks then led to the decision to spin up a development of completely new store that would address all of the following features:

- No-downtime upgradability
- Fix performance issues of the current storage
- Make it easy to implement and plug in a custom store for selected area (e.g. roles, users)
- Support for text-file configuration
- Support for cloud storages

The newly developed storage is called map storage. It extracts CRUD operations from the existing Keycloak storage layer, and exposes them to the developer. A custom storage can then be developed by implementing this simpler generic interface. This is an improved experience in comparison with the current storage where a number of very specific methods would have to be implemented. This makes it easy to e.g. implement a purely in-memory storage that would read its state from an external YAML file which could be provided e.g. from a Kubernetes configuration.

The other interesting aspect is composition of map storages into a tree. This is needed for example for composing the storages (this is called a federation in the current storage), and adding a caching layer on top of storages. The tree structure allows for creating a flexible structure on the map storage, and brings its own set of problems e.g. with invalidations.

The development of this store has been started already and we are in the middle of getting the new store to a production-ready grade. At this stage, there is an in-memory store available, and there is ongoing development of Postgresql and Infinispan / Hot Rod stores.

In the talks, we will describe the current state of the development as well as methodology on how to create a new custom map storage, and dive into the details of the tree storage and what is needed to build a custom map storage integrable into a tree storage.

Session chairs: Lubomir Terifaj and Michal Ruprich

Speakers
HM

Hynek Mlnařík

Keycloak maintainer, Associate Manager, Red Hat
Hynek leads the development of the new storage layer for Keycloak.
avatar for Michal Hajas

Michal Hajas

Principal Software Engineer, Red Hat
Michal Hajas is an official maintainer of project Keycloak working as a Principal Sofware Engineer at Red Hat.



Friday January 28, 2022 12:30pm - 1:20pm CET
Session Room 3

3:00pm CET

Use sigstore to secure your software supply chain
Sigstore (sigstore.dev) is a collection of young, rapidly growing open source projects in the secure software supply chain space that combine transparency logs, digital identity & attestation technologies, and policy artifacts to enhance the security of software artifacts through the entire development/deployment lifecycle. This talk will include an overview of the projects that make up sigstore, brief demos showing how the different projects interoperate, a survey of current adopters, as well as a review the of project roadmaps for further integration and adoption in the OSS landscape.

Session chairs: Zdenek Dohnal and Lubomir Terifaj

Speakers
avatar for Bob Callaway

Bob Callaway

Tech Lead, Open Source Security Team, Google
Bob Callaway is a Tech Lead / Manager in Google's Open Source Security Team, focused on Secure Software Supply Chain efforts. Prior to joining Google, he worked at Red Hat on emerging technology strategy with strategic partners, at NetApp on OpenStack and storage automation, as well... Read More →



Friday January 28, 2022 3:00pm - 3:50pm CET
Session Room 3

4:30pm CET

OptaPlanner AI on Quarkus for school timetabling
Forget about Machine Learning. Planning optimization is the most profitable AI technology on this planet.

The world is full of planning challenges, such as vehicle routing problems, maintenance scheduling and employee rostering. Find the quickest routes to visit n locations with k vehicles. Or assign shifts to employees, taking into account skills and availability. Few people realize how much AI algorithms improve those solutions. For example, when telco’s started using OptaPlanner to plan their fleet of technicians, many expected a driving time reduction of 1-2%. It was 25%. In some cases, that saves hundreds of millions of dollars and millions of kilograms of CO² emissions, every year.

In this session I’ll show you how to code a highschool timetabling application, with Quarkus and OptaPlanner. It ‘ll generate the perfect lesson schedule, for both students and teachers, taking into account hard and soft constraints.

Session chairs: Zdenek Dohnal and Lubomir Terifaj

Speakers
avatar for Geoffrey De Smet

Geoffrey De Smet

Senior Principal Software Engineer, Red Hat
Geoffrey De Smet is the founder and lead of OptaPlanner (www.optaplanner.org), the open source AI constraint solver in Java that is used across the globe to automatically solve employee rostering, vehicle routing, task assignment, maintenance scheduling and other planning problems... Read More →


Friday January 28, 2022 4:30pm - 5:20pm CET
Session Room 3

5:00pm CET

Coding in Java with Joy - A Quarkus talk
You can deploy your applications to Kubernetes; that's great! You can have pipelines and a breadth of tools to do analysis, etc. But what about how you develop and what you develop, and finally, how you interact with applications deployed in Kubernetes while in the development inner loop. How can that be done easier, simpler, faster? Java has been there for a long time, and all of us have ways to develop applications and tools that we all love. So how does Quarkus do any of this differently?

Live coding, adding functionality, extensions without restarting, spinning up dev services e.g., databases, making coding and testing easier and continuous, enhancing the inner loop, etc. In this talk, I will create an application from scratch with Quarkus, add databases to it, add a front-end, stream etc. And finally, work with it while it's deployed in Kubernetes using my dev machine and effectively live code remotely. Join this talk to learn about the Java developers journey to developer Joy!

#lessslides and #morecode

Session chairs: Marek Haičman and Michal Ruprich

Speakers
avatar for Shaaf Syed

Shaaf Syed

Principal Architect, Red Hat
Shaaf is a Solution Architect at Red Hat. Mostly developing code with Keycloak, Quarkus. For the last 15 years, he has helped customers create and adopt open source solutions for applications, cloud and managed service, continuous integration environments, and frameworks. Shaaf is... Read More →


Friday January 28, 2022 5:00pm - 5:50pm CET
Session Room 4

6:00pm CET

Monitoring Kafka without instrumentation with eBPF
Imagine a world where you can access metrics, events, traces and logs in seconds without changing code. Even more, a world where you can run scripts to debug metrics as code. In this session, you will learn about eBPF, a powerful technology with origins in the Linux kernel that holds the potential to fundamentally change how Networking, Observability and Security are delivered.

In this session, we’ll see eBPF monitoring in action applied to the Kafka world as example of a complex Java application: identify Kafka consumers, producers and brokers, see how they interact with each other and how many resources they consume. We'll even show how to measure consumer lag without external components. If you want to know what’s next in Java and Kafka observability in Kubernetes, this session is for you.

Session chairs: Zdenek Dohnal and Lubomir Terifaj

Speakers
avatar for Anton Rodriguez

Anton Rodriguez

Principal Software Engineer, New Relic
Antón is a Principal Software Engineer focused on Data in motion. He has a passion for building high-throughput streaming systems and solving the challenges that come with them. He’s also a JUG organiser, blogger, podcaster and speaker.
avatar for Ryan Cheng

Ryan Cheng

Software Engineer, Pixie Labs
Ryan is a software engineer at Pixie Labs (now a part of New Relic), and works on Pixie's eBPF-based zero-instrumentation observability platform. Ryan spends his time implementing and supporting robust tracing of different data sources for developers using Kubernetes.Prior to Pixie... Read More →



Friday January 28, 2022 6:00pm - 6:50pm CET
Session Room 3
 
Saturday, January 29
 

12:30pm CET

Building reactive microservices with MicroProfile
Modern microservices applications need to be able to adjust to change. It doesn’t matter whether these changes concern functional requirements, fluctuating load, or more frequently network and service failures. The system should be able to remain responsive in every situation as defined in the Reactive Manifesto. The reactive programming has recently become a popular programming paradigm. In the Java world, there are already a few options the users can choose from when creating reactive applications like Reactive eXtensions or Reactive Streams. In this session, we will introduce a new set of APIs created under Eclipse MicroProfile called the MicroProfile Reactive Streams Operators (the manipulation of Reactive Streams) and the MicroProfile Reactive Messaging (the development model that allows CDI beans to produce, consume, and process messages) together with the rationale why they are needed in the MicroProfile portfolio and a practical live coded demonstration.

Session chairs: Lubomir Terifaj and Pavel Yadlouski

Speakers
avatar for Martin Štefanko

Martin Štefanko

Senior software engineer, Red Hat
a software engineer working mainly on Red Hat middleware runtimes technologies like WildFly / JBoss EAP application servers, Thorntail, Quarkus and individual components that are included in these projects like RESTEasy, Weld or Hibernate. He is also actively participating in MicroProfile... Read More →



Saturday January 29, 2022 12:30pm - 1:20pm CET
Session Room 3

3:00pm CET

Shutting down goroutines gracefully
Go makes it easy for us to do concurrent background tasks - but what happens when the application stops? In this talk, we will have some fun with signals, how to make your Go application listen to those signals and stop gracefully, and how to make sure any background work running in your production containers don't stop abruptly with the help of channels.

This is a real scenario, extracted from a work environment and a real problem to a talk format, and the first few examples will explain the problem and when it'll show up and impact your users and customers before we dive into the solution.

In order to make sure everyone is in the same page, an introduction to how Go routines and channels work will be given, with a brief explanation of what is concurrency and parallelism. Following this introduction, a few important POSIX signals will also be introduced briefly because they'll be important in the next section. Background knowledge on all of this is not necessary, but if the audience knows it previously the following contents will be easier to grasp. If not, they'll probably be a good overview but the contents can be used for further review in the future after the knowledge about concurrency, parallelism and signals are well settled into their brain.

Then we will have a walk-through on how to use channels to listen to interrupt signals and wrap up running work on go routines and how to make this work in real-world scenario, with containers and with a example on how this can be done inside of a Kubernetes cluster to finish running go routines during the termination grace period of pods.

A live demo will be followed and we will live code this solution and see it working (hopefully) on a running Kubernetes cluster.

The base repository for this demo and this talk is this one: [github.com/biancarosa/shutting-down-gracefully](http://github.com/biancarosa/shutting-down-gracefully).

Session chairs: Gaurav Sitlani and Moez Chebbi

Speakers
BR

Bianca Rosa

Senior Software Engineer, Red Hat
Software Engineer that likes open source, linux, containers, Python and Go.


Saturday January 29, 2022 3:00pm - 3:50pm CET
Session Room 3

5:00pm CET

What’s New in Podman?
In this talk, we will give a quick introduction of Podman, a daemonless container engine used for managing OCI containers and pods as well as its companion projects. A lot of new and awesome features have gone into Podman in the last few months that make container development easier and fit more use cases. We will go over features and improvements such as rootless mode, generate and play kube, podman within podman, podman machine, and many more! We will also be giving live demos during the talk! Join us to learn more about Podman and why it is an awesome tool to manage multiple local containers and how it can serve as a stepping stone to container orchestration. We will end the talk with what future features are in the cards for Podman and a live Q&A!

Session chairs: Gaurav Sitlani and Moez Chebbi

Speakers
avatar for Urvashi Mohnani

Urvashi Mohnani

Principal Software Engineer, Red Hat
Urvashi Mohnani is a Principal Software Engineer on the OpenShift Container Tools team at Red Hat. She has spent the last few years contributing to and maintainer open source container tools projects including podman, buidlah, cri-o, and skopeo. She is a co-organizer of DevConf.US... Read More →
AC

Ashley Cui

Software Engineer, Red Hat
Hi! I'm Ashley, a software engineer at Red Hat, working on container tools such as Podman and Buildah!



Saturday January 29, 2022 5:00pm - 5:50pm CET
Session Room 3
 
  • Timezone
  • Filter By Date DevConf.cz 2022 Jan 28 -29, 2022
  • Filter By Venue hopin.to
  • Filter By Type
  • Analysis &Testing & Automation
  • Capture the Flag
  • Cloud & Hyperscale
  • Edge Computing
  • Future Tech & Open Research
  • HPC & Big Data & Data Science
  • Linux distribution
  • Meetup
  • Modern Software Development
  • Open Source Education
  • Open Source UX/Design
  • Workshop

Filter sessions
Apply filters to sessions.