One purpose of computing is to accomplish tasks. Applications are a fundamental part of computing, and their use is seemingly ubiquitous today. Users often want them to be faster and cheaper. Containers can help drive agile software development processes such as those described by the Twelve Agile Manifesto Principles. They also help with lean software management and configuration.
Containers can make a lot of sense within development environments. Yet, understanding why folks are using containers at the edge of an IoT network can require a little more thought. Unlike developers who are often looking for quick and frequent updates, operators in the field tend to iterate more slowly. They tend to prefer as little change as possible, given the millions of endpoint devices that could be affected. So, why the interest in containers here?
Let’s talk a little about containers first
A key to today’s agile method of software development is the concept of continuous integration and continuous delivery (CI/CD). Continuous integration enables developers to validate their changes by merging them back into the main branch for testing. Continuous delivery enables them to release new changes to customers more quickly through an automated release process.
Linux containers can aid in this process by giving each application its own isolated environment in which to run, while sharing the host server’s operating system. Containers offer environments in which developers can write, test and iterate more frequently. Changes are constrained within individual services, which can improve protection for the rest of the code, speed up debugging and improve time to market. Containers are enablers for agile software development and delivery. And, depending on how they are configured, can conserve bandwidth to help reduce transmission costs.
Containers are a lot like a slice of pizza
Bear with me while I explain why pizza can be analogous to containers. At a recent lunch with a friend of mine, I suggested we try Hawaiian pizza (yes, the kind with bacon and pineapple toppings), my kids’ favorite.
My friend had never tried Hawaiian pizza and wasn’t sure if she’d like it. So, I suggested we make only half the pizza Hawaiian. And instead of cutting the pie in the traditional way, it could be cut into smaller slices. While she agreed that limiting the Hawaiian to only half seemed like a good idea, she was puzzled as to why we should cut it the entire pie into smaller slices. I explained that if she didn’t like it, she only had to try a small piece. Then I could package up the rest as a surprise for my kids.
When the pizza was put on the table, each slice was like a container. Each included different things, but was based on a common foundation of ingredients. With pieces of pepperoni on some, peppers on others, and pineapple and bacon on still others, each slice also delivered a different number of calories per “bite” based on its components.
The benefit of dealing with slices rather than a whole pie
Now, imagine that there are pizzas at each of your IoT endpoints. You are looking to update each endpoint with a new, tastier pizza. The calories found within the pizza represent all the bandwidth required to deliver the pizza update to the edge of the network. How long is it going to take to make full pizza deliveries to each of those endpoints?
When you deal with application development and delivery from a container perspective, you shouldn’t have to replace the whole pizza. You should just need to deliver a new slice. A slice has fewer calories than a pie. Like a slice, a container can take up less bandwidth to deliver to the edge. That can save money and help streamline the delivery process. There’s another benefit as well: If the consumers at the endpoints don’t like the new taste, it should be easier to roll back to a previous version without scrapping too much of your investment.
More on using containers at the edge
If you’re interested in more detail on the subject, there has been some work done looking at the use of “Containers and Clusters for Edge Cloud Architectures” in a report issued by Claus Pahl on this topic. Take a look. For a deeper dive, I recommend you check out the working group for the IoT edge.
So, you’re probably wondering if my friend liked the new taste of Hawaiian pizza. Actually, she didn’t. It’s a good thing we cut it up into smaller slices; I was able to bring the rest home in a takeout (ugh) container.
All IoT Agenda network contributors are responsible for the content and accuracy of their posts. Opinions are of the writers and do not necessarily convey the thoughts of IoT Agenda.