Kubernetes configuration patterns, Part 2: Patterns for Kubernetes controllers

Kubernetes configuration patterns, Part 2: Patterns for Kubernetes controllers

This article is the second in a two-part article series on Kubernetes configuration patterns, which you can use to configure your Kubernetes applications and controllers. The first article introduced patterns and antipatterns that use only Kubernetes primitives. Those simple patterns are applicable to any application. This second article describes more advanced patterns that require coding against the Kubernetes API, which is what a Kubernetes controller should use.

Continue reading Kubernetes configuration patterns, Part 2: Patterns for Kubernetes controllers

Share
Building resilient event-driven architectures with Apache Kafka

Building resilient event-driven architectures with Apache Kafka

Even though cloud-native computing has been around for some time—the Cloud Native Computing Foundation was started in 2015; an eon in computer time—not every developer has experienced the, uh, “joy” of dealing with distributed systems. The old patterns of thinking and architecting systems have given way to new ideas and new problems. For example, it’s not always possible (or advisable) to connect to a database and run transactions. Databases themselves are giving way to events and Command Query Responsibility Segregation (CQRS) and eventual consistency. Two-phase commits are being replaced with queues and database sagas, while monoliths are replaced with microservices, containers, and Kubernetes. “Small and local” thinking rules the day.

Continue reading Building resilient event-driven architectures with Apache Kafka

Share
Memory error checking in C and C++: Comparing Sanitizers and Valgrind

Memory error checking in C and C++: Comparing Sanitizers and Valgrind

This article compares two tools, Sanitizers and Valgrind, that find memory bugs in programs written in memory-unsafe languages. These two tools work in very different ways. Therefore, while Sanitizers (developed by Google engineers) presents several advantages over Valgrind, each has strengths and weaknesses. Note that the Sanitizers project has a plural name because the suite consists of several tools, which we will explore in this article.

Continue reading Memory error checking in C and C++: Comparing Sanitizers and Valgrind

Share
Detecting memory management bugs with GCC 11, Part 2: Deallocation functions

Detecting memory management bugs with GCC 11, Part 2: Deallocation functions

The first half of this article described dynamic memory allocation in C and C++, along with some of the new GNU Compiler Collection (GCC) 11 features that help you detect errors in dynamic allocation. This second half completes the tour of GCC 11 features in this area and explains where the detection mechanism might report false positives or false negatives.

Continue reading Detecting memory management bugs with GCC 11, Part 2: Deallocation functions

Share
Custom policies in Red Hat 3scale API Management, Part 2: Securing the API with rate limit policies

Custom policies in Red Hat 3scale API Management, Part 2: Securing the API with rate limit policies

In Part 1 of this series, we discussed the policy framework in Red Hat 3scale API Management—adding policies to the APIcast gateway to customize API request and response behavior. In this article, we will look at adding rate limiting, backend URL protection, and edge limiting policies to the APIcast gateway. We’ll also review which policies are appropriate to use for different use cases.

Continue reading Custom policies in Red Hat 3scale API Management, Part 2: Securing the API with rate limit policies

Share
Event-driven APIs and schema governance for Apache Kafka: Get ready for Kafka Summit Europe 2021

Event-driven APIs and schema governance for Apache Kafka: Get ready for Kafka Summit Europe 2021

As a developer, I’m always excited to attend the Kafka Summit, happening this year from May 11 to 12. There are so many great sessions addressing critical challenges in the Apache Kafka ecosystem. One example is how changes to event-driven APIs are leading developers to focus on contract-first development for Kafka.

Continue reading Event-driven APIs and schema governance for Apache Kafka: Get ready for Kafka Summit Europe 2021

Share
Red Hat Software Collections 3.7 and Red Hat Developer Toolset 10.1 beta versions now available

Red Hat Software Collections 3.7 and Red Hat Developer Toolset 10.1 beta versions now available

The latest versions of Red Hat Software Collections and Red Hat Developer Toolset are available now in beta. Software Collections 3.7 delivers the latest stable versions of many popular open source runtime languages, web servers, and databases natively to the Red Hat Enterprise Linux platform. These components are supported for up to five years, supporting a more consistent, efficient, and reliable developer experience.

Continue reading Red Hat Software Collections 3.7 and Red Hat Developer Toolset 10.1 beta versions now available

Share