“One challenge Kubernetes users face is the lack of know-how and tools to manage Kubernetes clusters”
Kubernetes is one of the IT world’s brightest ‘stars’; more and more companies are using this technology for the orchestration of containers in multi-cloud environments. We talked with Matt Chotin about the new challenges it brings and how to optimize the performance of application containers.
JAXenter: A few weeks ago, AppDynamics and Cisco introduced a tool that enables Kubernetes to be used in production environments in multi-cloud environments. Why are such tools necessary at all?
Matt Chotin: Firstly, Kubernetes has become the de facto standard for the orchestration of containers, demonstrated by the fact that two competing approaches, Docker Swarm and Mesophere Marathon, now support Kubernetes. Many of our customers experiment with Kubernetes in development and test scenarios.
However, users often have problems making the performance of Kubernetes and the applications provided by container technologies transparent. With Cisco CloudCenter 4.9, container-based applications can be made available and managed. AppDynamics for Kubernetes adds a monitoring function. It detects dynamic states at the application or cluster level and triggers Cisco CloudCenter at peak loads or other anomalies to optimise the performance.
There is another factor: the trend towards multi-cloud environments. Corporations with several cloud providers are becoming the norm. One reason for this is that each application has an architecture with special requirements that require individual solutions. Over time, such individual solutions develop into a multi-cloud environment in which services on different platforms are linked together. A study by IDC and AppDynamics found that 75 percent of companies want to use two to five clouds within the next two years.
JAXenter: What are the biggest obstacles for the use of Kubernetes in IT environments where cloud services from different service providers are used?
Matt Chotin: One of the challenges that users of Kubernetes face is the lack of know-how and tools to manage Kubernetes clusters. In addition, several developers and IT administrators have concerns regarding the monitoring of Kubernetes in production environments. This applies in particular to complex infrastructures in which cloud services from different providers are used. One of the basic principles of container platforms like Kubernetes is that ‘immutable’ images can be moved from a private cloud to one or more public cloud environments when needed – and vice versa. However, this portability only works if IT specialists receive detailed information about the performance of the containers and applications.
For example, it is helpful if the performance data of different groups of Kubernetes nodes can be compared. This is possible with Tagged Metrics. To do this, all nodes on the same level are combined into a group using server tags. These tags can come from Amazon Web Services, Kubernetes and Docker or be defined by the user. The advantage is that experts can then check the application performance of nodes and node groups at the service level, such as average response times.
JAXenter: Kubernetes has won over Docker Swarm in the ‘container war’. Why is Kubernetes so successful?
Matt Chotin: One reason is that from the developers’ point of view, Kubernetes is an ideal platform for setting up and managing containers. This is reflected in the high acceptance of Kubernetes. On GitHub, Kubernetes is the project around which most discussions revolve by far. In addition, there is a particularly lively community. It contributes significantly to the success of Kubernetes. However, there is still room for improvement at Kubernetes. One point that always comes up in discussions is the complex implementation in data centres. It is also difficult to implement a test environment on a development or test computer.
JAXenter: Serverless computing is currently another concept on everyone’s lips. Do you believe that container technologies will become superfluous by Serverless?
Matt Chotin: This is difficult to estimate at present. Both approaches have their advantages and disadvantages. The advantage of containers is that they give a company greater control over the entire stack, from development to implementation on its own servers or in a public cloud. However, this requires the appropriate know-how and effective application performance management. The advantage of serverless computing is that developers do not have to worry about managing containers and the associated IT infrastructure. Simply put, you can just start coding.
However, serverless is currently harder to both develop for and debug than containers, and the tools are controlled more by the platform providers. Larger serverless applications also require more effort to architect, as each small piece of functionality ends up being a different piece of code that has to be further orchestrated. Containers are suitable for all types of applications, for complex applications as well as for new development projects and existing applications. Serverless Computing, on the other hand, is better suited for select projects, and adapting existing software to Serverless environments may not be worthwhile in many cases. Of course, the two approaches will often be used together, giving you the best of both worlds.
JAXenter: Which trends will shape the further development of container technologies – or in other words: What will be the next big step?
Matt Chotin: One trend is certainly Unikernels in which applications and operating system environments are packed into a container. However, this concept is not yet so mature that it can be used in productive environments. Nevertheless, Unikernels may become competitors of containers and traditional microservices in the foreseeable future.
Unified monitoring of applications and their performance will also play a central role. It will include not only Kubernetes and containers, but IT environments and end devices of all kinds. These can be servers and serverless components, but also smartphones, IoT systems and microservices. Such monitoring is not only important for development and test departments, but also for the business leader and CIO. In the age of digitisation, the performance of applications has a direct impact on business success. This must be taken into account by all employees, from developer to the CEO.