Finally we get to the last concept which is critical to understand development of applications on Kubernetes. If you’re a developer, you might have already guessed what I’m talking about, because this is where you spend most of your day. Inner loop is the cycle an application developer goes through before he can share his application with anyone. He will typically code, run, test, debug, code more, run again, test more, maybe debug again, and on and on.
Following the topic in this series, we should talk about the following factor to consider, breaking down Kubernetes applications development workflow into different stages: source code authoring, configuration authoring, packaging and deployment. In kubernetes world, an application (or any component) is structurally composed of 3 different things: the container image(s), the deployment definitions and the configuration applied at every different deployment, as the same application can be deployed as different instances or in different logical environments.
Now that we have all our required concepts clear, it is time to consider how Kubernetes defines an application. Or to be more precise, the lack of a standard for “Kubernetes application”. Kubernetes is a project that exists for more than 5 years now and in all this time, we (application developers) have seen that there’s no support for what we call application, but there are some efforts that are worth talking about.
As discussed in the intro article I’m going to talk about Developing applications that will run on a Kubernetes platform. The first thing we need to do before going deeper into the topic is to go over some basic concepts so that everything I talk about later has the proper context. What is an application? If you ask the question of what is an application to different people you will get different answers, almost one different answer per respondant.
Not too long ago I read a blog and found this quote: “It’s almost become boring to say that Kubernetes has become boring” Maciej Szulik, the author, is a Kubernetes engineer working for Red Hat and SIG CLI lead amongst other things. I’ve seen this quote being said more times than I would think, and all of the times it’s being said by a Kubernetes ecosystem engineer. What do I think they mean when they say Kubernetes has become boring?