February 6, 2019 | Written by: Rajeev Gandhi and Peter Szmrecsanyi
Categorized: Compute Services
Share this post:
Using containers to address challenges around the deployment of application code
IT continues to be under intense pressure to increase agility and speed up delivery of new functionality to the lines of business. A particular point of pressure is the deployment of new or enhanced application code at the frequency and immediacy demanded by typical digital transformation. Under the covers, this problem is not simple, and it is compounded by infrastructure challenges. Challenges like how long it takes to provide a platform to the development team or how difficult it is to build a test system which emulates the production environment adequately. Cue containers!
The benefits of containerization
Containerization of applications brings many benefits, including the following:
- Portability between different platforms and clouds—it’s truly write once, run anywhere.
- Efficiency through using far fewer resources than VMs and delivering higher utilization of compute resources.
- Agility that allows developers to integrate with their existing DevOps environment.
- Higher speed in the delivery of enhancements. Containerizing monolithic applications using microservices helps development teams create functionality with its own life cycle and scaling policies.
- Improved security by isolating applications from the host system and from each other.
- Faster app start-up and easier scaling.
- Flexibility to on virtualized infrastructures or on bare metal servers
- Easier management since install, upgrade, and rollback processes are built into the Kubernetes platform.
What is a container?
Containers are lightweight software components that bundle the application, its dependencies, and its configuration in a single image, running in isolated user environments on a traditional operating system on a traditional server or in a virtualized environment.
The key word here is “isolated.” Isolation means speed—containers are smaller entities than virtual machines so they can be deployed much faster. Isolation means responsive—start-up times are short. Isolation means versatility—containers are portable between different platforms and different cloud vendors. That is how they deliver the benefits!
Why are containers important?
Containerization is one of the latest developments in the evolution of cloud computing. Many organizations, both large and small, are looking at containers as a means to improve application life-cycle management through capabilities such as continuous integration and continuous delivery. Also, certain implementations of containers conform to the principles of open source, which is appealing to organizations wary of being locked-in to a specific vendor.
Containers are also the foundation of a private cloud and, just like the early days of cloud computing, are becoming a game changer for many organizations. Private cloud becomes the platform of choice to deliver the security and control required while simultaneously enabling the consumption of multiple cloud services. This is typical of situations where organizations are running both existing application workloads and new application workloads in the cloud.
Containers help to satisfy three key use cases that reflect what enterprises require to run their applications in the cloud:
- Modernize your existing applications.
- Create new cloud-native enterprise applications.
- Open your data center to work with cloud services.
A private cloud platform
So what does a private cloud look like? From IBM’s point of view, containers provided by Docker and container orchestration provided by Kubernetes constitute the key components for a private cloud platform. With that in mind, we provide three main flavors of solution based on these components and driven by our clients’ requirements:
- For clients who require application hosting but do not need to manage the infrastructure, we provide the IBM Cloud Kubernetes Service, available on IBM Cloud in shared or dedicated environment.
- For clients who require application hosting on a dedicated cloud and require full control of the infrastructure, we provide IBM Cloud Private (ICP) on IBM Cloud.
- For clients who require application hosting on their premises to satisfy security, data isolation, compliance, and governance, we provide IBM Cloud Private within the client data center.
Solutions for the challenges that lie ahead
Having recognized that containers can bring real benefit to both developers and infrastructure and operations teams, organizations large and small are exploring containerization. That is why we provide the three container solutions outlined above. However the challenges don’t stop there. As the container footprint increases, it introduces new challenges for Enterprise IT. These include the following:
- Designing and maintaining templates for the containers
- Adapting/expanding existing governance models and practices
- Conforming to security policies and standards
- Integrating with the existing DevOps environment
- Selecting the right open source tools from the hundreds available
- New skills or knowledge to manage the new containerized environment
The above challenges are, of course, exacerbated by either a lack of skills or insufficient resources with such skills. To address these, IBM also provides managed container services that allow our clients to focus on building their applications and while letting us integrate with the existing IT infrastructure and manage the stack. Besides support on IBM Cloud, IBM Managed Container Services is also available for other cloud providers, like AWS, Azure, and Google Cloud.
The IBM Services for Private Cloud (ISPC) Adoption Workshop
To help you start this journey, or perhaps to discuss your progress to date, IBM Cloud Advisory Services is introducing the IBM Services for Private Cloud (ISPC) Adoption Workshop. This two-day workshop aims to help you develop your roadmap to migrate and modernize your applications and adopt private cloud based on containers. In the workshop, we will work with you to select two or three applications for containerization and help define a plan to pilot the migration and/or modernization of these applications. We will also help explore the applicability of hosting these containerized applications as a managed service.
For more information on container adoption or the ISPC adoption workshop, please look at our webcast or contact your IBM representative. For more information on IBM Cloud Advisory Services, visit us at https://www.ibm.com/services/cloud/advisory.