Benny (@bmuskalla) has been following his passion of building tools for improving developer productivity. He has been an active committer of the world-class Eclipse IDE (Platform, Java, Git). Over the years, he spent a lot of time building tools, frameworks, and test approaches to help his peers become more effective. TDD and API design are aspects dear to his heart as well as working on open-source software. Benny currently works for Gradle Inc. on the Gradle Build Tool.
Learn how, with a bit of creativity, we were able to utilize off-the-shelf functionality and components to set up lightweight cross-cluster communication for apps in a multitenant environment.
While this solution is applicable to a somewhat narrow use case, it does come with several important advantages, including shared-nothing architecture, low complexity, low operational burden, and high degree of isolation between tenants.
Have you ever been in the situation where you’ve been looking for a specific JDK version of a specific distribution?
Sometimes that was easy… sometimes it was hard… but it never was fun.
After creating the Disco API (“Universal OpenJDK Discovery API”, in full) which serves up JDK distributions as a service, I had the idea to create plugins for IDEs to enable people to download the JDK of their choice more easily.
Welcome to the special mid-year edition for Visual Studio Code Java updates.
As the highlight of this post, we are going to take a look at our product roadmap for the next few months.
We will also showcase some important new features & improvements as we did in previous blog posts.
So let’s get right into it!
A cloud-native database is one that is designed with cloud-native principles in mind, including scalability, elasticity, resiliency, observability, and automation.
As we’ve seen with Cassandra, automation is often the final milestone to be achieved, but running databases in Kubernetes can actually help us progress toward this goal of automation.
What’s next in the maturation of cloud-native databases? We’d love to hear your input as we continue to invent the future of this technology together.
Looking back at the pitfalls of running databases on Kubernetes I encountered several years ago, most of them have been resolved.
All of these problems are hard and require technical finesse and careful thinking. Without choosing the right pieces, we’ll end up resigning both databases and Kubernetes to niche roles in our infrastructure, as well as the innovative engineers who have invested so much effort in building out all of these pieces and runbooks.
Again and again, we read in the IT news about new security gaps that have been identified.
Most of the time, you don’t even hear or read anything about all the security holes found that are not as well known as the SolarWinds Hack, for example.
But what is the typical lifecycle of such a security gap?
Do you really need Kubernetes for your environment? Or is it just another case of the next ‘new and shiny’ object, with people distracted by the novelty and possibility, rather than the facts?
In this article, I’ll take a closer look at why Kubernetes might be a case of the hype outweighing the helpfulness in most cases.
JDKMon is just a little tool that scans your computer for installed OpenJDK distributions and uses the Disco API to check whether there are updates available for one of the distributions.
In case it finds updates it will present you buttons for each package it finds.
When you click on one of these buttons (e.g. tar.gz, zip, pkg etc.) you have to select a folder where the selected package should be downloaded to.
When your application has some problem, the first thing to check is running processes on the machine.
For Linux OS we generally use ps -ef. ps is one of the most used Linux troubleshooting commands. The JDK provides similar functionality for Java processes through jps. The jps command-line utility provides a list of all running Java processes on a machine for which the user has access rights. The access rights are determined by access-control mechanisms specific to the operating system.
Must a database run on Kubernetes to be considered cloud-native?
While Kubernetes was originally designed for stateless workloads, recent improvements in Kubernetes such as StatefulSets and persistent volumes have made it possible to run stateful workloads as well. Even longtime DevOps practitioners skeptical of running databases on Kubernetes are beginning to come around, and best practices are starting to emerge.
PostgreSQL’s protocol is currently at version 3, and there are concerns about improving the protocol in this regard.
The V4 wire protocol changes and the wanted features for V4 documents share concerns about version 4 with pipelining and multiplexing in mind. PostgreSQL also has a proposed feature called Protocol hooks that decouples PostgreSQL from the current protocol. It aims to provide extensibility of the wire protocol. Such a feature could be an enabler for multiplexing.
It took 25 years to deliver HTTP/2 and introduce multiplexing to increase performance drastically. Most database protocols have not followed the same path yet and remain in the stone age of connection pooling (at least databases with an openly documented protocol).
Multiplexed database protocols could improve performance, and make connection pools a thing of the past. It would also provide the foundation for efficient data streaming from databases.