Cloud Native / Kubernetes / Tools / Contributed

Ruckstack: Containerized Package Management for Kubernetes

11 Aug 2020 9:03am, by

Nathan Voxland
Nathan Voxland has been a software developer for over 20 years, starting several open source projects, including Liquibase and Ruckstack.

For independent software vendors (ISVs), installing and managing your software in someone else’s environment is never easy. You don’t have the luxury of writing software for a well-understood and well-optimized environment, namely your own.

Instead, you need to deal with all the random OS, network, disk, and security configurations that IT departments throw at you. You can’t be losing deals because your software isn’t compatible with a potential customer’s environment.

Cloud technologies help in some ways, but they are also just adding more configuration options to support. Now it’s not just Ubuntu vs. Red Hat but also Amazon Web Services vs. Azure vs. OpenShift. Kubernetes goes a long way toward standardizing cloud installs across vendors, but it doesn’t help your on-prem installs.

Until Ruckstack.

Ruckstack is an open source installation and runtime system designed for ISVs and powered by an application-sized Kubernetes system. Think of it as a modern application server.

What Does Ruckstack Do for You?

1. Easy Install, Easy Management

What good is your software if it is too hard to install? The setup process is often the first impression your new customers have and you need to make it seamless and straightforward.

The primary goal of Ruckstack is to simplify installation and management. To install Ruckstack-based software requires only a single installable file — nothing crazy. We provide a clear and simple CLI-based management interface for maintaining it — nothing that requires a Ph.D. in Kubernetes.

The fact that your application is running in a Kubernetes environment should feel like an implementation detail, not a driving installation and architectural decision.

2. Consistency

The biggest hurdle to a painless install is almost always environmental differences. By bundling your software in containers, Ruckstack ensures your software runs in known-identical file systems from development to every single customer’s production install. Your containerized software has no interaction with whatever system it is installed on, so there are no conflicts to worry about or rouge system administrators accidentally cleaning up files you depend on.

But, it’s not just the installed files that are consistent — the underlying Kubernetes system also abstracts and standardizes network interactions as well. Regardless of the underlying network configuration, your services always see each other with the same hostnames and network topology to further reduce installation and management complexity.

3. Resiliency

Getting the software up and running is just the first step in a successful on-prem install. After that, it has to stay running. Your customers’ system administrators do their best to keep your application running, but when a service crashes it is often your support team that is called to parachute in. And even with the fastest turnarounds, there has usually been significant downtime and a damaged reputation with the customer.

Ruckstack allows you to build health checks into your application that are constantly monitored and acted on. Most of the time, service lock-ups and other problems are automatically taken care of without any customer impact.

4. Clustering

The goal of every ISV is to have your software so vital to your customers that they cannot survive a second without it. Unfortunately, that success comes with a need to deal with scalability and high availability — and that is never easy. There are many moving parts to a successful clustering setup, from load balancing to error detection to failover to synchronization. It is often a brittle mixture of code and configuration and if anything is off you do not know there is a problem until you are in the middle of a crisis.

Ruckstack uses industry-standard cluster management software to give you a way to provide safe and dependable clustering support to your customers. Let the framework do what it knows how to do, so you can stay focused on delivering your unique business value.

5. Future Proofing

The world is moving to the cloud, and you do not want to left behind. You have a growing number of customers who DO want to deploy to the cloud and take advantage of all the configuration and deployment management options available to them.

Unfortunately, if your application is catering to the lowest common denominator of a bare-metal on-prem install, you will not be competitive.

Ruckstack makes your lowest common denominator the same Kubernetes infrastructure available in all the cloud providers. That not only allows you to more easily document and support cloud deployments, it also allows you to architect your application to take advantage of all the modern design practices.

How Does Ruckstack Work?

Ruckstack starts with the lightweight K3s Kubernetes distribution. K3s is a production-ready, highly available Kubernetes system that is designed for simplicity and performance. It may be lightweight, but it is still 100% standard Kubernetes.

Kubernetes has its roots as a data center management tool, and even the lightweight K3s defaults to expectations built into that mindset. With the goal of only needing to support a single application running on as little as one machine, we install and configure K3s to act much more like a virtual machine than data center manager. We make sure the installation is isolated to a single directory. We keep memory and disk usage in check. We choose defaults that work on one or three machines, not ones that require fifty. We are conscious of what requires root access and what should not.

Around that K3s core, we provide a “system-control” CLI to be the single, standard interface that you and your customers use to manage the system. The system-control interface wraps the lower-level kubectl commands in easier to use and customer-focused commands. Kubectl is always there if you need it, but you rarely do.

As an added bonus, this system-control command is branded and customized to your application.  There is nothing called “Ruckstack” on your customers’ system. It’s your software all the way down.

Getting Started

Looking to get started with Ruckstack? Head to our quick start guide today.

Amazon Web Services and Red Hat are sponsors of The New Stack.

Feature image via Pixabay.

A newsletter digest of the week’s most important stories & analyses.