Harrison Ripps

Recent Posts

That app you love, part 10: Long live "that app you love"

That app you love, part 10: Long live "that app you love"

Welcome to the tenth and final 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. You’ll need the docker service and the oc utility to follow along in this post; for instructions check out Part 5: Upping Our (Cloud) Game.

Wow, we’ve come a long way! Back in Part 1, we were struck with this crazy idea – let’s take an app we love, containerize it, and then kick it up to the cloud in a way that is secure, robust, and stateful. Along the way, we explored:

  • The idea of a Config-and-Run container image
  • A mini-cloud that we can run on a single machine, with a single command
  • A cast of objects that turned our app into a fully-fledged cloud citizen

And in this final installment, we’ll hit on a few last items that will really put that minty fresh scent on That App You Love.

Continue reading “That app you love, part 10: Long live "that app you love"”

Share
That app you love, part 9: Storage and statefulness

That app you love, part 9: Storage and statefulness

Welcome to the ninth 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. You’ll need the docker service and the oc utility to follow along in this post; for instructions check out Part 5: Upping Our (Cloud) Game.

In Part 8 we learned how to deploy our app in a way that is repeatable, and also adds some basic security to our application. Now it’s time to create some state for the containerized ZNC app we’ve been playing with – but hey, forget about ZNC! We’re really talking about That App You Love, and we are very close to achieving a cloud-friendly version that is secure, robust, and stateful.

Continue reading “That app you love, part 9: Storage and statefulness”

Share
That app you love, part 8: A blueprint for "that app you love"

That app you love, part 8: A blueprint for "that app you love"

Welcome to the eighth 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. You’ll need the docker service and the oc utility to follow along in this post; for instructions check out Part 5: Upping Our (Cloud) Game.

In Part 7 we learned how to expose container-level environment variables up at the cloud level, and we also got our first taste of Templates and Deployments. Crafting a Template for our ZNC container image that defines those environment variables – and the rules for setting them – is a major step in improving the app’s reusability and basic security. But forget about ZNC because we’re really talking about That App You Love, and what it takes to make it rock the cloud!

Continue reading “That app you love, part 8: A blueprint for "that app you love"”

Share
That app you love, part 7: Wired for sound

That app you love, part 7: Wired for sound

Welcome to the seventh 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. You’ll need the docker service and the oc utility to follow along in this post; for instructions check out Part 5: Upping Our (Cloud) Game.

In Part 6 of our adventure, we learned how to launch a containerized version of ZNC on the OpenShift Container Platform with a single command – “oc new-app”. But forget about ZNC – we’re really talking about That App You Love, and in this post we’re going to learn how to expose the configurable settings that you care about, along with a few other concepts that will make your app’s cloud experience better.

Continue reading “That app you love, part 7: Wired for sound”

Share
That app you love, part 6: Container, meet cloud

That app you love, part 6: Container, meet cloud

Welcome to the sixth 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. You’ll need the docker service and the oc utility to follow along in this post; for instructions check out Part 5: Upping Our (Cloud) Game.

We’ve been on a pretty amazing journey so far! Now that we’ve learned how to identify and expose the flexibility need in our app, and how to create a config-and-run container image that will make our app run with the settings that are important to us, it’s finally time to get this ship sailing! For these examples, we’re going to continue using my containerized ZNC app, but hey – forget about ZNC, because we’re really talking about That App You Love, and what it takes to deploy that rock star app on the OpenShift Container Platform.

Continue reading “That app you love, part 6: Container, meet cloud”

Share
That app you love, part 5: Upping our (cloud) game

That app you love, part 5: Upping our (cloud) game

Welcome to the fifth 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.

The previous posts of this series have focused on how to package ZNC in a way that exposes run-time configurability into the immutable world of containers. But forget about ZNC – we’re really talking about That App You Love, and what it takes to make that app a secure, stateful and robust cloud resident.

By introducing configurability to our app container image, we are priming the pump for security and statefulness. But what about robustness? Well, we really can’t go much further without a cloud to play around in, so…

Continue reading “That app you love, part 5: Upping our (cloud) game”

Share
That app you love, part 4: Designing a config-and-run container

That app you love, part 4: Designing a config-and-run container

Welcome to the fourth 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 Part 3, we looked at how to customize the configuration of ZNC using an expect script and environment variables. But forget ZNC, because we’re really talking about That App You Love, and the way you configure it is up to you – as long as you use environment variables to expose the flexibility that you need. And now it’s time to containerize it by combining three distinct jobs into a single container image:

  • Install the app
  • Configure the app
  • Run the app

Continue reading “That app you love, part 4: Designing a config-and-run container”

Share
That app you love, part 3: Every setting in its place

That app you love, part 3: Every setting in its place

Welcome to the third 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 Part 2 of this series, we looked at ZNC’s configuration options to decide which settings we wanted to expose to the user, and which settings we could hard-code straight into the container. But don’t forget that we’re not just talking about ZNC – we’re really talking about That App You Love, and how to bring it into the cloud.

As a recap, we know that we want to hard-code these ZNC settings:

  • Port number: 6697
  • SSL: yes
  • IPv6: no
  • Set up an IRC network: no

And we want to make these settings configurable:

  • Username
  • Password
  • User display name

We actually didn’t talk about the user display name in the last post; it isn’t a required setting. But if we’re making the username configurable, why not expose the display name setting as well?

Continue reading “That app you love, part 3: Every setting in its place”

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

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?”

Share
That app you love, part 1: Making a connection

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”

Share