Containers in Enterprise: Basics, DevOps and Orchestration

This is a multi-part blog series with each post covering topic as below.

Part 1: Container basics Part 2: Container DevOps Part 3: Container Orchestration

This is the introductory post of the series.

Let's start.

Modern enterprise environments are full of complexities. Diagram below depicts some of the major areas.

enterprise

There are multiple development teams. .Net, Java and OSS communities being the primary ones. They use wide variety of tools to write even more wide variety of enterprise applications. These applications can be potentially deployed to plethora of deployment targets. Up until few years back, prime target of deployment was on-premise locations and/or private data centers. Recently though, big push is to get these apps running in public clouds (Azure, AWS, Google, etc.) or service provider clouds (Cloud Foundry, SAP Cloud, etc.). Operations teams are bearing a major brunt to deploy, update, patch, monitor and Optimize resources for these applications.

Increasingly, following have started to appear as major bottlenecks.

bottlenecks

Lets discuss them briefly.

Deployment: Many enterprises still use manual installation guides for deployments. These documents will typically have elaborate instructions on how to get an application deployed. Development teams author them and operations teams consume them. Depending upon application type, there are multiple installation media(For Windows: MSI/EXEs, For Java: WAR/JAR).

Updates: Confusion reins supreme during updates. Operations teams are charged to inform users and arrange for downtime. This activity in itself causes a surge in support issues as this information is often ignored/overlooked. Rolling updates provides some relief however any rollback makes matters even more worse.

Patches: Similar to application updates, server/platform patches mostly remains a risky activity. Operations teams spend unreasonable amount of time of readying downtime provisioning and rollback processes.

Optimize: There are very few ways to allocate and manage resources based on application criticality to the enterprise. Insight into over/under resource utilization still remains a wish.

Containers enter against this backdrop. They help solve most of if not all of the bottlenecks we discussed about. In next part, we'll start with container basics.