Lessons learned from using IoT devices in the real world

As a consultant, I’ve spent a decent amount of time working on a full stack development project in the realm of IoT. Over the years, our teams have run into a lot of avoidable issues. Here are some lessons I learned from using IoT devices in industry.

I define IoT as “connecting a device to a larger system with the goal of that device providing information to the system that is then leveraged in some way”. This can range from something like a FitBit to a Tesla to a smart fridge — all of which connect and report information to a cloud or back end, making them “internet of things” devices.

Continue reading “Lessons learned from using IoT devices in the real world”

that_app_you_love_img0

That app you love, part 2: Immutable but flexible – What settings matter?

Welcome to the second installment of That App You Love, a blog series in which I show you how to you can make almost any app into a first-class cloud citizen. If you want to start from the beginning, jump back and check out Part 1: Making a connection.

In our last post, we met my ZNC container, good ol’ znc-cluster-app – but don’t fret about ZNC because we’re really talking about That App You Love – whatever it happens to be. You may recall that we got ZNC up and running using two commands – docker pull and docker run. And in a world where your local system happens to be a cloud computing environment, and containers never crash, you are good to go.

But we don’t live in that world, and neither does That App You Love. So we’ve got some work to do. For starters, we need to understand what is safe to “bake into” our image, versus what we should be able to adjust when the container is actually running.

Continue reading “That app you love, part 2: Immutable but flexible – What settings matter?”

Migration of Red Hat Enterprise Linux 5 or 6 to Red Hat Enterprise Linux 7 with the Preupgrade Assistant

This article describes how an administrator can migrate Red Hat Enterprise Linux 5 or Red Hat Enterprise Linux 6 to Red Hat Enterprise Linux 7 with the help of the Preupgrade Assistant. The Preupgrade Assistant is a tool which assesses your running system for anything that might adversely affect the success of your migration.

As Red Hat Enterprise Linux 5 will have only extended update support after March 2017, administrators will find a tool like that useful to help them migrate their systems to Red Hat Enterprise Linux 7. The migration from Red Hat Enterprise Linux 5 to Red Hat Enterprise Linux 6 is not covered by the Preupgrade Assistant, nor is it planned.

Note: The Preupgrade Assistant can also be used for the in-place upgrade from Red Hat Enterprise Linux 6 to Red Hat Enterprise Linux 7 but this is out of scope of this article. The in-place upgrade from Red Hat Enterprise Linux 5 to Red Hat Enterprise Linux 7 is neither supported nor planned.

Continue reading “Migration of Red Hat Enterprise Linux 5 or 6 to Red Hat Enterprise Linux 7 with the Preupgrade Assistant”

Video: Monitoring application events in Thermostat, using Byteman

Thermostat is Red Hat’s Monitoring and management tool for Java Deployments, allowing users to measure and monitor a host of different performance aspects of their Java applications. Available metrics range from raw CPU and memory usage to operation of the Garbage Collector and Compiler through to thread activity and method call/heap profiles. Thermostat provides a GUI view of activity of local and distributed JVMs in real time and it also backs up all the metrics it obtains to a persistent store so they can be reviewed offline.

What Thermostat cannot do on its own is track events and record statistics that are specific to a given Java application, at least not unless the application co-operates with it, for example by publishing JMX statistics that Thermostat can read, persist and display in its GUI. However, that’s about to change thanks to work Red  Hat’s OpenJDK team has been doing to integrate Byteman into Thermostat.

Byteman is a tool which can be used to modify the behaviour of Java programs by injecting extra Java code almost anywhere in the program. You don’t need to recompile your program or even prepare it in advance in order for this to work. You can specify changes to the program on the command line but, what is more amazing, you can actually use Byteman to change the way a program runs after startup while it is still running.

Continue reading “Video: Monitoring application events in Thermostat, using Byteman”

that_app_you_love_img0

That app you love, part 1: Making a connection

I am going to show you how I took an everyday, off-the-shelf application and turned it into a cluster-ready juggernaut of persistent usefulness. Along the way, I’ll share the pitfalls that I hit in getting this all working so that you can chuckle at my misfortune and avoid having to make the same mistakes yourself.

This series will run every Tuesday and Thursday until we’ve accomplished our goals, so stay tuned in, subscribe, and thanks for reading!

Meet “That App You Love”

For this series, the app we’ll be deploying is the popular ZNC IRC bouncer. If your eyes have rolled back into your head at any part of that – “ZNC”, or “IRC” (or maybe “popular” if you are pretty sure IRC is not popular) – don’t let it turn you off to this tutorial. This series is called “That App You Love” because you can take these ideas and apply them to any number of applications to make them available in the cloud. I chose ZNC because:

  • I do, actually, love it (in a strictly platonic way)
  • Configuring it is extremely simple, which makes for a great sample application.
  • A ZNC deployment touches every important concept of containerization and the OpenShift Container Platform in one app.

So every time I say “ZNC”, just mentally switch it to “That App You Love”. As long as that app you love can run from a linux container on a Linux-based host, I think this blog series can be That Blog Series You Love. But hey, one step at a time, right?

Continue reading “That app you love, part 1: Making a connection”

Logging in Open vSwitch

Open vSwitch (OVS) is a virtual switch used in production from small to large scale deployments. It is designed to provide network automation along with support for a number of management interfaces and protocols.

However, the developer or the administrator might need to understand more of what is going on under the hoods and OVS does a good job providing a very good logging facility which is the subject of this article.

Editor’s note: Red Hat Knowledgebase – “What Red Hat products provide support for Open vSwitch?

Continue reading “Logging in Open vSwitch”