Containers, along with containerization technology like Docker and Kubernetes, have become increasingly common components in many developers’ toolkits. The goal of containerization is to offer a better way to create, package, and deploy software across different environments in a predictable, repeatable, and easy-to-manage way. At Zumasys, we have been using containers as part of our own DevOps revolution to super charge our development cycles—from coding to automating builds and tests, through delivering and supporting our products. Recently we also released a series of new jBASE 5.8 images on Docker Hub (https://hub.docker.com/r/zumasys/jbase) and over the next quarter we will be focused on expanding the number of images available to target more Operating System distributions and cover more pre-configured scenarios for jBASE. We will also be using Docker to launch a new tutorial series for PICK MultiValue over at https://github.com/pickmultivalue. Suffice to say, we love containers about as much as we love PICK!
As two great examples, our own Dan Ell and Robert Burke were recently introduced to Docker containers, and they cannot stop talking about them. The more they use them, the more excited they get about them, so we decided to sit down with them both and ask them to put that excitement into words. Here is what they had to say about their experience with containers and why they think the technology is so cool.
How did you get introduced to Containers?
I first heard of containers at a Zoomapalooza presentation, right around the time I was introduced to DevOps. I also saw a presentation on the Zumasys YouTube channel about a year ago. While it made a lot of sense to me, I did not really pursue it at the time.
When I started working for Zumasys, I found myself working with containers on day one. It seemed like just about everything we worked with was in a container. I was spinning up, creating, modifying, enhancing, deploying, and sharing containers right from the get-go. All that takes so little time to do, it blew me away.
I heard about Containers from some of the work Patrick Payne had been doing to show off features of our products. Patrick’s demos were already configured in Docker containers which enabled him to quickly show end users a functional system without having to setup the entire environment each time.
That was when the light bulb went off for me. I had always wanted to do this, and containers provided the mechanism to manifest the idea. When you have a product you want to demo, the last thing you want to do is mess with someone’s existing server(s).
Virtualization is not new, so what makes containers different?
Containers remind me of how people talked about virtual machines when they first came out 10-15 years ago. Of course, that never really came to fruition because virtual machines became way too cumbersome. You could not take your own virtual machine and move it somewhere, let alone give it to someone else, because of size, licensing, or software restrictions.
Containers allow you to spin up and spin down whatever you want. They are lightweight and portable, which makes them perfect for MultiValue. You do not need a server rack or anything like that, you can do it all right from your desktop or laptop. You just spin it up, attach your file save and your database, and you are ready to roll. Most local machines have more than adequate resources for this.
A Docker container includes an operating system inside it and you do not have to create a base image for it. You could take a base Windows or Linux image and install jBASE on it or pull down an image with jBASE pre-installed from the Zumasys Docker Hub, which gives you the latest build. Either way you can quickly move to loading up the database account from any source, it does not matter where it comes from, and then you are good to go. It really is that easy. You can start running the database application right on your desktop or laptop. It takes less than 15 minutes.
How can people get started?
Go to Docker.com to download the free Docker Desktop install for Linux, Mac or Windows or just go to their Docker Playground, which is free sandbox environment to play in from the browser.
I learned 3 commands, and in less than 3 minutes, I was already in my familiar jBASE environment. It does not take a 3-week course with hours and hours of learning all the different configurations to get something up and running.
docker pull zumasys/jbase docker run -it -d –-name server zumasys/jbase docker exec -it server /bin/bash # jsh -a JBASEADM jsh JBASEADM ~ -->
How do you see containers benefiting customers?
The ability for developers to work on a project in a fresh, independent environment is a big-time benefit. You can easily clone a production or development environment, load a file save and begin testing new subsystems without impacting the live systems or shared development environments. You also do not need to wait for a server or virtual machine to be stood up you can just dive right in locally.
I think containers are going to help a lot of people to accept new ideas and try new things because they do not need to alter their existing servers. If the new ideas work, great, and if they do not, they can just consider it a lesson learned.
Upgrades are a perfect use case for containers. For instance, say you are running an older version of jBASE on CentOS 6 and looking to upgrade to jBASE 5.8 on CentOS 8. You do not need to create a whole new machine to do your testing. You can spin up a container running CentOS 8 with jBASE 5.8 installed, add your application, test it, verify it, and voila! It is your own sandbox right at your fingertips in a container that is very flexible.
You can also use AccuTerm to access your containers because they have their own networking. All you must do is forward your container’s ssh or telnet port and you can fire up AccuTerm to work “remotely” just like you are used to connecting to a virtual machine or physical server from your production environment.