Containers and Kubernetes – part of the answer!
Containers have successfully emerged as one of the most important tools to promote better flexibility between applications and infrastructure. A container can encapsulate applications dependencies within a container image, which helps an application be easily portable between different environments. Due to that, containers are important instruments for enabling the hybrid cloud, although they have several other applications.
The following diagram shows how a container differs from traditional VMs in this matter:
Figure 1.1 – Containers provide flexibility
While containers are beneficial, it is practically impossible to manage a large environment consisting of hundreds or thousands of containers without an orchestration layer. Kubernetes became the norm and it is a great orchestration tool. However, it is not simple to use. According to the CNCF Survey 2020, 41% of respondents see complexity as the top barrier for container adoption. When you decide to go for a vanilla Kubernetes implementation, some of the following will need to be defined (among a large set of options) and managed by you:
- Installation and OS setup, including configuration management
- Upgrades
- Security access and identity
- Monitoring and alerts
- Storage and persistence
- Egress, ingress, and network-related options
- Image scanning and security patches
- Aggregated logging tools
Reference
You can check out the complete CNCF Survey here: https://www.cncf.io/blog/2020/11/17/cloud-native-survey-2020-containers-in-production-jump-300-from-our-first-survey/ [Accessed 1 September 2021].