What are they?
Have you seen all those photos of shipping containers? That’s a good metaphor because shipping containers have a standard size. For the purpose of this blog, a container is a standardized package of software with everything required to run that piece of software included in the container – code, runtime, system tools, and libraries.
Who’s using them?
Containers are popular with application developers, including microservices. Applications using containers are agile and portable. Legacy applications can also be transformed into portable, and more secure applications, with containers.
Did you know that Netflix has been using containers to deliver microservices for ten years?
Secure? Tell me more!
Security isn’t just a buzzword. Containers create an additional layer of isolation for applications in addition to the ability to establish secure application zones for applications in a multi-tenant environment. The lightweight framework of Containers can be easily upgraded and patched too.
Multi-Tenant? That sounds like Cloud talk. >: ^(
Slow your roll, Larry Legacy. Check out the benefits of Edge Computing before you judge.
But you are right, containers are referenced heavily during discussions of cloud-native development.
What are the general benefits of Containers?
- Freedom to choose platform – packaged applications can be run on any public or private cloud.
- Efficiency – Diverse applications can be managed with container infrastructure
- Infrastructure Savings – Better utilization of resources with containers
- Deployment Speed – Container fans claim they are deploying their containerized applications 60% faster.
- Faster Development and Better Agility – Those same container fans claim that developing new applications and services with containers is 300% faster
This sounds like VM.
There’s similarities such as VM allowing you to run multiple virtual machines on a single physical host computer. A VM, or Virtual Machine, emulates a computer system, right down to the individual operating system choice. A VM allows you to create a virtual environment where you can run different types of software.
Containers do not require a virtual machine to be spun up to run them because the container contains everything needed to run the small piece of software. That means containerized code could be run almost anywhere, free from environmental constrictions.
In addition to software vendors that are container-specific, such as Docker and Kubernetes, there’s familiar names operating in the Container realm such as Red Hat and SUSE.
Traditional vendors are also aligning their software to be forward-looking and container-ready. Oracle introduced the Multitenant option to Database Enterprise Edition starting with Release 12c (12.1), and in 2015 updated their Standard Edition Database to Oracle Database SE2 which included new features including a container database architecture.
What about software licensing?
Good question – since that’s why Miro investigates these technology changes.
In addition to licensing or subscribing to the container software or support, depending on the vendor involved, the software that is deployed may not be your traditional on-premise software such as Oracle Database. But you need to consider what the containerized microservices or application touches on the back-end. Is this an API that can access your database? Since so many types of software count users or access at the front end, this would be the likeliest cause for concern. Please refer to Miro’s previous blog on APIs to learn more about this potential licensing issue.