16.03.2020 I by Henrik Hasenkamp
Application development is still a complex field. But the approach and the framework conditions have changed massively.
In search of ways to develop software more easily and quickly, the approach has shifted from a monolithic approach to microservices. These bring more flexibility to the development, testing and rollout of new applications or their updates. In order to retain this flexibility, they are packaged in self-sufficient Linux environments, i.e. containers. Since such environments quickly reach a high level of complexity, they must be orchestrated. Orchestration means cluster management, container planning and often the provision of additional hosts. Tools such as Mesos, Swarm and Kubernetes provide developers with the necessary tools.
Kubernetes, the open source system originally developed by Google, follows the master-slave approach. The master is administered by the developer. The nodes are subordinated to this control, and the containers are located on these nodes. Kubernetes is not restricted to in-house Linux development, but can be run on conventional distributions and Windows systems. This opens the solution for countless environments. The application takes care of the automatic scaling, the scheduler and other orchestration tasks.
What comes after on-premises?
In most companies, administrators and developers initially try to work on systems set up in-house to learn how to use the microservices and their containers in a manageable way. The environment grows step by step and usually quite fast. But at the latest with a further scale-out, an expansion, the infrastructure, the first malfunction or further automation via Continuous Delivery and Integration, the responsible persons ask themselves the question whether the on-premises operation is still up-to-date.
The offerings of managed hosting providers and cloud service providers around Kubernetes cover everything - from pure server hosting to an all-round carefree package. Each service provider offers its customers a diverse repertoire of services in various gradations. In order to find the right thing in this oversupply, administrators and developers benefit from the previous learning process. The experience gained there can be used to identify the exact requirements and their dimensions. However, finding your way through the thicket of hosted services is difficult. Kubernetes is not simply activated by the provider and then runs by itself.
Reseller offers or native Managed Services
One possibility is outsourcing to a managed hosting provider. Some of these service providers act as resellers, for example for the American Hyperscaler Amazon, Microsoft and Google. Some providers supplement their repertoire with additional solutions, such as Red Hat's Kubernetes container platform OpenShift, and then make these available on their own cloud resources or those rented from partners. The problem with this is that such broad-based providers are often unable to build in-depth expertise for each tool. This requires cooperation with partners and a lot of competence on the customer side.
Cloud Native Providers, on the other hand, rely on highly automated complete offers. The container-as-a-service offerings here range from simple registrations to potent container orchestration solutions that keep any administrative needs, such as updates or monitoring, away from the customer. Capacity and resources are dynamically adjusted to the demand. The challenge here lies in the right choice of modules such as load balancers, schedulers and persistent storage. In addition, the user is offered countless configuration options. It is not easy to maintain an overview without extended expertise.
This gap is closed by specialized providers, such as the Cologne IaaS and PaaS provider gridscale. A user-friendly interface is designed to help configure and control cloud workloads. In addition, the Managed Kubernetes Services of gridscale is preconfigured: The modules that customers choose most often are preset. This makes the configuration of the environment and a quick start much easier.
The main focus of Kubernetes is on availability, scalability and security, which is mainly reflected in its flexibility and reliability. It plays these points especially as a cloud service. In view of the rapidly increasing hardware requirements for development environments and the growing desire for location-independent working, the importance of cloud-native offerings is growing. So when technical requirements are beyond the realm of what is feasible or economic considerations lead to the conclusion that on-premises installations are no longer easily justified, moving to the cloud is the next logical step.
Which of the many offers is the right one depends on the company structure, the cost-benefit calculation as well as the own competences and available resources. Turnkey, intuitively operated and managed solutions relieve the development teams of numerous administrative tasks and at the same time provide important tools.
The original article in german can be found here.