Hemant Jain

Recent Posts

Red Hat Software Collections: Why They’re Awesome, and How to Use Them

Red Hat Software Collections: Why They’re Awesome, and How to Use Them

Red Hat Software Collections can make your life as a programmer or admin immensely easier.

Like death, taxes and zombies, dealing with different versions of software is something you just can’t avoid. It’s a nasty but necessary fact of life.

Traditionally, when developers and system admins grapple with this issue, they have to sacrifice something. If you want to run the latest and greatest version of a web app, it might not support users with outdated browsers. If you install the newest beta release of Python so you can test development code, it might break Python scripts written for older releases. If you have a system with multiple users, you might want a different version of Ruby over another. And so on.

Software Collections provide a solution to conundrums like these. They let you have your cake and eat it, too.

In other (more technical) words, Software Collections make it possible to have multiple versions of the same software on the same system. You use a simple tool to tell the system which version to activate as needed.

If that sounds awesome, it is. Keep reading for a more detailed explanation of how Software Collections work, and an overview of using them on your Red Hat system.

Continue reading “Red Hat Software Collections: Why They’re Awesome, and How to Use Them”


How to Set Up A Kubernetes Developer Box

Kubernetes is a great tool for container orchestration on a server cluster. It makes it easy to deploy lots of containers in a resource-efficient way using a simple interface.

But one thing that is not easy to do with Kubernetes is to deploy it locally. Kubernetes is designed to run on an actual cluster, which means using it only on a single computer is tough.

I know. You’re probably wondering why you’d want to use Kubernetes locally in the first place. The whole point of Kubernetes is to simplify the management of containers on a cluster, right? So running it on a single server might seem like building a second kitchen inside your garage. You could do it, but would it really be that useful?

Well, yes. There are actually some good reasons why you might want to run Kubernetes on a local test box. Maybe you need to test how your apps behave under Kubernetes before putting them into production. Or perhaps you just want to hone your skills, working with the kubectl CLI interface in a safe, sandboxed environment.

Fortunately, it’s possible to run Kubernetes locally for these purposes. In fact, it’s so possible that there’s more than one way to do it. But in this post I’ll cover the most bare-metal route, which involves running Kubernetes through Docker on your local machine.

(Another way to do this is with Vagrant, but that requires running a virtual machine through a traditional hypervisor. A local Kubernetes installation through Docker is much lighter on system resources.)

(Lastly, the Red Hat recommended way is to use the Red Hat Container Development Kit, available here (free), from Red Hat Developers.)

The only prerequisite — Your development box needs to be running a modern mainstream GNU/Linux distribution such as Red Hat Enterprise Linux, which is available for $0 for development use (you can download it here).

Continue reading “How to Set Up A Kubernetes Developer Box”


How to Install Elastic Stack (ELK) on Red Hat Enterprise Linux (RHEL)

Sometimes, software just goes together. Linux, the Apache Web server, MySQL, and PHP, the four ingredients of the LAMP stack, which revolutionized data centers and made open source a big deal two decades ago, are probably the most famous example. But there are lots of others.

Here’s another open source software stack you should know about in our present age of cloud and big data: the Elastic Stack, or ELK. Based on Elasticsearch, Logstash and Kibana, ELK is a fully open source solution for searching, analyzing and visualizing data in any format, at any scale.

Since ELK has multiple parts, and some of them have other dependencies, setting up ELK is not as simple as installing other stacks, which sometimes require a simple one-line yum installation command. But fear not. ELK is still easy enough to install if you follow the proper steps.

Below, we’ll walk through configuring a Red Hat Enterprise Linux (RHEL) server for ELK, installing each of the requisite components and configuring them to work with one another. (RHEL is now free for development use — download it here.)

Continue reading “How to Install Elastic Stack (ELK) on Red Hat Enterprise Linux (RHEL)”


Installing MongoDB on Red Hat Enterprise Linux


MongoDB has evolved into one of the most popular open source “NoSQL” databases—so-called because they dispense with the tabular storage schema of relational databases like MySQL and Postgres. NoSQL databases offer a variety of advantages in many cases

The biggest advantage is that MongoDB databases don’t require developers to define schemas before adding data to a database. Instead, they use a flexible document-based model, similar to Python dictionaries or Ruby hashes. With MongoDB, you don’t need to spend time creating tables before you can process your data. That makes the NoSQL approach ideal for situations where you don’t know how much data you have to handle, what form it is in, or how quickly it is going to move around.

There’s a lot more to say about what makes MongoDB, and NoSQL in general, a better fit for some situations. (I could also write a great deal about when not to use NoSQL—and that’s  important, because despite NoSQL’s current trendiness, it’s not better in all contexts.)

But that’s all fodder for a separate blog post. For now, let’s move onto the meat of this post, which is how to install MongoDB on Red Hat Enterprise Linux (RHEL) in order to take advantage of NoSQL databases.

Continue reading “Installing MongoDB on Red Hat Enterprise Linux”