Challenge of Application Deployment
Organizations today have numerous challenges with traditional application
deployment. Let’s explore some of those challenges through a simple example of a
common custom application deployment.
Say that an application developer has completed work on a masterpiece that has taken
six months to write. The application now needs to be deployed to production. The
developer uploads the compiled application to a folder, along with vague instructions
that the application needs Windows Server 2016, Internet Information Services (IIS),
and some other components. The IT administrator gets the request and needs to find
the spare resources to create a new Windows Server 2016 instance. After those
resources are found, the admin creates the VM, which takes about 30 minutes as the
IT shop has a pretty good provisioning system utilizing a well-maintained gold
Windows Server 2012 R2 image. A few hours later, the administrator checks back, logs
on to the OS instance, and reviews the email from the developer about the
requirements for the app. After meeting the requirements by adding the various roles,
features, and extra software (and a few reboots), the admin then installs the custom
application and tries to start it. The application does not start. After rechecking the
vague instructions from the developer, the admin still cannot make the application
start. The administrator contacts the developer for help. The developer logs on to the
server, installs some of the organization’s troubleshooting tools, and gets the
application to start because the application had requirements on items that were
installed on the developer’s machine but these were not understood as requirements
and therefore not previously installed.
This common scenario highlights some of the key challenges of deploying custom
applications and even commercial software. To summarize, here are the common
causes of failed application deployment:
Difficulty modeling application deployments and dependencies
Inconsistent library and sharing for custom and commercial applications
Lack of portability of applications
Low density, as each application runs in its own OS instance to achieve basic levels
of isolation
Slow provisioning of environments
While virtualization helps with many aspects of IT operations, it does not solve this
set of challenges. Instead, another technology that belongs to the virtualization family
saves the day: containers.