That is half three in a multi-part collection in regards to the Kubernetes Useful resource Mannequin. See elements 1 and a couple of to study extra.
Within the final publish, we explored how Kubernetes and its declarative useful resource mannequin can present a strong platform basis. However whereas the Kubernetes Useful resource Mannequin is highly effective, it may also be overwhelming to study: there are dozens of core Kubernetes API assets, from Deployments and StatefulSets, to ConfigMaps and Providers. And each has its personal performance, fields, and syntax.
It’s attainable that some groups in your group do must find out about the entire Kubernetes developer floor, such because the groups constructing platform integrations. However different groups, equivalent to utility builders, most probably don’t must study every part about Kubernetes with a purpose to change into productive. With the precise abstractions, builders can work together with a Kubernetes platform extra simply, leading to much less toil and speedier function improvement.
What’s a platform abstraction? It’s a means of hiding particulars, forsaking solely the required performance. By taking sure particulars away, abstractions open up new prospects, permitting you to create ideas and objects that make sense on your group. As an illustration, it’s possible you’ll need to mix all of the Kubernetes assets for one service into one “utility” idea, or mix a number of Kubernetes clusters into one “setting.”
There are many methods to summary a Kubernetes platform, from customized UIs, to command-line instruments, to IDE integrations. Your group’s abstraction wants will rely upon how a lot of Kubernetes you need to expose builders to – it’s usually a tradeoff between ease of use and suppleness. It should additionally rely upon the engineering assets you’ve got accessible to commit to organising (and sustaining) these abstractions; not each group has an in-house platform workforce.
So the place to start out? For those who’re already transport code to a Kubernetes setting, one approach to brainstorm abstractions is by analyzing your current software program improvement lifecycle. Discuss to the app builders in your org: how do they work together with the platform? How do they take a look at and stage their code? How do they work with Kubernetes configuration? What are their ache factors?
From right here, you’ll be able to discover the huge cloud-native panorama with a set of concrete issues in thoughts. This publish demonstrates one end-to-end improvement workflow utilizing a set of pleasant Kubernetes instruments.
Bootstrapping builders with kustomize
Think about you’re a brand new frontend developer at Cymbal Financial institution. Your job is to construct and preserve the general public net utility the place clients can create financial institution accounts and carry out transactions. Most of your day-to-day work entails altering or including options to the Python and HTML frontend, testing these options, and creating pull requests within the supply code repository. You’re not very conversant in Kubernetes, having used a special platform in your earlier position, however you’re informed that you’ve got a improvement GKE cluster to work with. Now what?