You’ve probably seen tutorials that use
sudo for running administrative commands as root. However when you try it, you get told your user ID is “not in the sudoers file, this incident will be reported.” For developers,
sudo can be very useful for running steps that require root access in build scripts.
This article covers:
- How to configure
sudo access on Red Hat Enterprise Linux (RHEL) so you won’t need to use
su and keep entering the root password
sudo to not ask for your password
- How to enable
sudo during system installation
sudo seems to work out of the box for some users and not others
Continue reading “How to enable sudo on RHEL”
Rsync is a particularly tough workload for GlusterFS because with its defaults, it exercises some of the worst case operations for GlusterFS. GlusterFS is the core of Red Hat Gluster’s scale-out storage solution. Gluster is an open, software-defined storage (SDS) platform that is designed to scale out to handle data intensive tasks across many servers in physical, virtual, or cloud deployments. Since GlusterFS is a POSIX compatible distributed file system, getting the best performance from rsync requires some tuning/tweaking on both sides.
In this post, I will go through some of the pain points and the different tunables for working around the pain points. Getting rsync to run as fast on GlusterFS as it would on a local file system is not really feasible given its architecture, but below I describe how to get as close as possible.
Continue reading “Improving rsync performance with GlusterFS”
This article shows how to install Python 3,
pipenv on Red Hat Enterprise Linux 7. After following the steps in this article, you should be in a good position to follow many Python guides and tutorials using RHEL.
Using Python virtual environments is a best practice to isolate project-specific dependencies and create reproducible environments. Other tips and FAQs for working with Python and software collections on RHEL 7 are also covered.
There are a number of different ways to get Python 3 installed on RHEL. This article uses Red Hat Software Collections because these give you a current Python installation that is built and supported by Red Hat. During development, support might not seem that important to you. However, support is important to those who have to deploy and operate the applications you write. To understand why this is important, consider what happens when your application is in production and a critical security vulnerability in a core library (for example SSL/TLS) is discovered. This type of scenario is why many enterprises use Red Hat.
Python 3.6 is used in this article. It was the most recent, stable release when this was written. However, you should be able to use these instructions for any of the versions of Python in Red Hat Software Collections including 2.7, 3.4, 3.5, and future collections such as 3.7.
Continue reading “How to install Python 3 on RHEL”
Earlier this year, Red Hat announced the Red Hat Cache Service which is a distributed in-memory caching service that runs on Red Hat OpenShift. Red Hat Data Grid is used as the core of the cache service. The cache service is one of the things you can easily install on OpenShift through the OpenShift Service Catalog. You can find the cache service in the Red Hat OpenShift Online Pro tier. (Alternatively, you can install the Cache Service on your own Red Hat OpenShift Container Platform installation by following the installation manual.)
The Cache Service automatically calculates the amount of user storage based on the container size it’s scheduled on. Typically, it’s 512MB. What’s more interesting is that the Cache Service can operate near the full memory capacity (~97–98 %).
The automatic memory adjustment gives you a nice opportunity to try out the new Horizontal Pod Autoscaler (which now supports memory and custom metrics-based autoscaling). The autoscaler monitors the amount of memory used by the container and adds or removes Cache Service pods based on this measurement.
Continue reading “Autoscaling the Red Hat Cache Service on OpenShift”
One thing that is common in the enterprise world, especially in highly regulated industries, is to have separation of duties. Role-based access controls (RBAC) have built-in support for separation of duties. Roles determine what operations a user can and cannot perform. This post provides an example of how to configure proper RBAC on top of Red Hat AMQ, a flexible, high-performance messaging platform based on the open source Apache ActiveMQ Artemis project.
In most of the cases, separation of duties on Red Hat AMQ can be divided into three primary roles:
- Administrator role, which will have all permissions
- Application role, which will have permission to publish, consume, or produce messages to a specific address, subscribe to topics or queues, or create and delete addresses.
- Operation role, which will have read-only permission via the web console or supported protocols
To implement those roles, Red Hat AMQ has several security features that need be configured, as described in the following sections.
Continue reading “Setting up RBAC on Red Hat AMQ Broker”
Red Hat Decision Manager provides a vast array of decision management functionality. From the Decision Tables feature in the new Decision Model and Notation (DMN) v1.1, which implements the full FEEL Compliance Level 3 of the DMN specification, to Predictive Model Markup Language (PMML).
Another powerful feature is the Complex Event Processing (CEP) engine. This engine provides the ability to detect, correlate, abstract, aggregate or compose and react to events. In other words, the technology provides techniques to infer complex events from simple events, react to the events of interest, and take actions. The main difference between CEP and normal rules execution is the notion of time. Where standard rules execution in Decision Manager deals with facts and reasoning over these facts, the CEP engine focusses on events. An event represents a significant change of state at a particular point in time or interval.
Recently, I was asked to demonstrate how Decision Manager CEP can be used in a real-time credit card fraud detection system. One of the requirements I was presented with ended up in an interesting rule implementation that forms the basis of this article. The requirement was defined as follows:
Continue reading “Detecting credit card fraud with Red Hat Decision Manager 7”
As part of its strategy to re-imagine the business of travel, Sabre Corporation today announced that it will leverage Red Hat OpenShift Container Platform as the foundation for its Next Generation Platform initiative. OpenShift will be the basis of a modern architecture that includes microservices, development and operations (DevOps), and a multi-faceted cloud strategy to lead an industry evolution in the future of retailing, distribution, and fulfillment through innovative technology. OpenShift, built on containers and Kubernetes, is the the industry’s leading enterprise Kubernetes platform for running existing and cloud-native applications in any cloud.
“The Next Generation Platform is the cornerstone of Sabre’s long-term technology strategy,” said Vish Saoji, Sabre CTO. “Red Hat has delivered the enterprise-hardened software environment we need to help drive our technology transformation, and this collaboration allows us to build upon that architecture and execute our plan.”
Continue reading “Sabre chooses Red Hat OpenShift for cloud-native DevOps platform”
[In case you aren’t following the Red Hat JBoss Middleware blog, we are reposting this article on developers.redhat.com.]
Red Hat Application Migration Toolkit (RHAMT) 4.1.0 has been released, and with it a new feature that I’d like to highlight in this article—Technology Reports.
If you’re not familiar with RHAMT, check out my previous article that introduces RHAMT and describes how you can use it to help with migration existing applications to a modern application platform by analyzing your code base.
This new feature in RHAMT provides an aggregate listing of the technologies used, grouped by function, for the analyzed applications. It shows how the technologies are distributed. After analysis has been performed, using this report hundreds of applications can be quickly compared. In addition, the size, number of libraries, and story point totals of each application are displayed, allowing you to quickly determine each application’s type from a single report, for example:
Continue reading “Announcing Red Hat Application Migration Toolkit 4.1.0: Now with technical reports”
ASP.NET Core is the web framework for .NET Core. Performance is a key feature. The stack is heavily optimized and continuously benchmarked. Kestrel is the name of the HTTP server. In this blog post, we’ll replace Kestrel’s networking layer with a Linux-specific implementation and benchmark it against the default out-of-the-box implementations. The TechEmpower web framework benchmarks are used to compare the network layer performance.
Continue reading “Improving .NET Core Kestrel performance using a Linux-specific transport”
SOAP-based services are plentiful in many enterprise solutions and are slowly being replaced by RESTful services to simplify their use. There is a new wizard to help you make the transition with Apache Camel’s Rest DSL added in the latest version of Red Hat Fuse Tooling. This article shows how to use the new wizard to transition from older SOAP-based services to more modern REST-based services.
If you aren’t familiar, Red Hat Fuse is an integration platform based on Camel and a number of other projects. The updating Fuse Tooling is available in Red Hat Developer Studio 12.0.0, the desktop IDE that is based on Eclipse 4.8 Photon. You can also get the new wizard by adding JBoss Tools 4.6 to your existing Eclipse 4.8 Photon installation by downloading it directly, or installing via the Eclipse Marketplace.
Continue reading “How to migrate your SOAP web service to REST with Camel”