Containers make the development and deployment of software applications in the cloud more flexible and efficient. “Container as a service” (or “Caas”) gives businesses a formidable digitisation booster.
Text: Urs Binder, Image: Unsplash,
Time to market, agility, digitalisation: A company’s business can develop quickly, often in unexpected directions. New business models have to be formulated and implemented rapidly and peaks in business managed in good time. This requires an organisation with overall agility, and, in particular, an IT that can respond directly to the needs of the business. There just is not time to develop software in month-long projects followed by testing and work-intensive installation in the productive IT infrastructure.
Many companies operate their software in a virtualised environment in the cloud. Legacy applications benefit from the scalability of the cloud infrastructure. The importance of cloud-native, web-based applications for internal use and in the client relationship is growing. They are newly developed right from the start and can thus take advantage of all the benefits the cloud has to offer.
There are different aspects to the cloud. Providers of “infrastructure as a service” (IaaS) offer infrastructure services such as processing capacity, storage capacity and network services in a virtualised, scalable environment. Everything else – from the installation of the operating system to middleware and databases and operation of the applications – is taken care of by the IaaS customer directly or is handled by managed services that the IaaS customer also purchases. IaaS is ideally suited for the migration of legacy applications into the cloud and offers a high degree of agility and scalability in the provision of IT resources. For example, resources can be added when requirements demand, or they can be decommissioned when they are no longer needed.
With “platform as a service” (PaaS), the provider makes a complete platform available on which applications are developed, tested and operated and data is maintained. PaaS users only have to take care of their own applications and data. They have no contact with the underlying infrastructure – the PaaS environment provides the resources they need automatically and immediately. PaaS is especially suited for cloud-native software and covers the full life cycle of the applications, in accordance with the principles of DevOps and continuous integration. The Cloud Foundry offers a widely accepted open source standard for PaaS. For instance, the PaaS offering Application Cloud by Swisscom is Cloud Foundry certified:
In the modern development of applications, a gap occurred between the IaaS and PaaS infrastructures. On the one hand, the IaaS model left users wishing for higher productivity of developers and more efficiency in operation. With the PaaS model, on the other hand, users wanted fewer restrictions and less standardisation.
This is where container technology comes into play. It is a further step in virtualisation. Applications are bundled together with all their accessories to form transportable packages that are transferred to the cloud. The whole application, including all the necessary libraries, other components and persistent objects are encapsulated in a “container”. There are no longer any external dependencies; the application runs autonomously within the container. Eliminating these external dependencies gives applications mobility across different systems. This increases the degree of portability and the flexibility of the application.
The software bundled together this way as a total package can be delivered without installation – as long as there is a run-time environment for the container technology on the target platform. Technologies such as Docker, CoreOS rkt and LXC manage the containers and ensure that the individual containers are insulated one from the other. In conjunction with orchestration solutions, applications – in particular, those based on a microservice architecture and distributed across multiple, communicating containers – can be automatically packaged, delivered and managed. In addition to Kubernetes (open source), which has established itself as the industry standard for orchestration, different variants are available, such as Pivotal Container Service and Openshift. Many PaaS platforms, including the Cloud Foundry, offer container support themselves.
In container form, the applications perform as intended by developers and do not have to be adjusted any further. This is true of applications from legacy systems as well as cloud-native apps developed in PaaS environments. Containers are therefore particularly interesting for software vendors (ISV), who can therefore supply the developed applications to their customers as containers, including all the dependencies and persistence requirements.
Container technology has advantages for software developers and user companies alike. Developers deliver new software and updates very quickly as containers. They achieve better time-to-market with their solutions and can rapidly respond to customers’ needs. And there is cost savings, because developers’ productivity is heightened. Moreover, the application is certain to operate as it was designed to, because the container holds all the components that are required. The scalability and interchangeability of the containers are another big advantage.
Users no longer have to install anything – the new container integrates itself into the environment practically on its own. Companies thus save time and costs, enhance their operational efficiency, increase the productivity of developers and further facilitate digitalisation.
More on the topic