October 02-04 - Devoxx Morocco 2024 - 🇲🇦 Palm Plaza hotel - Marrakech 🌞🌴
Follow Us On

Speaker details

Oleg Ĺ elajev
Docker

Oleg Ĺ elajev is a developer advocate at Docker working mainly on developer productivity, Testcontainers, improving how we set up local development environments and tests, and building applications with AI parts. Developer. Author. Speaker. Java Champion. Docker captain. 

Loves all languages. 

The AI landscape has grown a ton in the last few years. Inevitably it means that application developers must figure out how to include AI in their end-user and enterprise apps.

But how can we enable standard software development workflows: testing, ensuring data processing correctness, efficiency? How do you configure local development environment and CI setups, and what should you know about security of common AI artifacts.

In this session, we look at how application developers can build and test their applications with AI components; work with local models, augment it with local data with RAG patterns, enable CI and so on. You'll learn how to work with AI-containing apps in the inner development loop, and how your typical software development workflows should change with the addition to AI.

More

Testcontainers libraries are a de-facto standard for integration testing in the Java community. One of the reasons for its popularity is the ecosystem of the modules -- pre-defined abstractions for creating containerized services for your tests in a single line of code.

Testcontainers modules help to integrate with new technologies, hide setup complexity behind a neat abstraction, or use in-house Docker images without using lower-level API all the time.

In this deep dive, we'll go over the architecture of a module, see how one can implement it for various technologies - databases, cloud-native sidecars, command line tools, Gen AI stack you want to have programmatic access too, and make a few small but helpful modules ourselves.

We'll look at aspects like networking, committing images programmatically, working with template databases to avoid startup costs, and learn more interesting details like how WaitStrategies are implemented and the architecture and history behind the Ryuk Resource-Reaper. 

Learning how Testcontainers can encapsulate a technology and integrate it into your Java application lifecycle will be incredibly useful. Whether your want to implement chaos engineering practices, or improve your team's productivity, creating a Testcontainers module is an excellent way to abstract away some of the complexity of your integration tests and contribute to the Java ecosystem.

More

Searching for speaker images...