Kubecon NA 2020 — 5 Takeaways

Kubecon is great. Users at all stages can find talks they are interested in, from beginners to advanced users

Image for post
Image for post

Kubecon NA 2020 just ended last week. Although it was held online this year, the content was too rich that it made me feel a bit lost in the CNCF world.

After joining the new company and getting to know Kubernetes and GCP, I found the most challenging part was the lush ecosystem of CNCF, which made me, a former traditional VM application developer, kind of overwhelmed.

However, as I deepened my understanding of Kubernetes, CNCF, and the tools in the ECOsystem, I began to grasp the core. But what still puzzles me is the direction of the next growth and the way to find what I need and improve quickly. Then I came to Kubecon, which my leader highly suggested, to see the industry development, new tools, experience sharing, etc.

TL;DL, Kubecon is for Kubernetes users at all stages, no matter you are a beginner, an intermediate user, or an advanced one, you can find helpful talks. Looking back on the past and looking into the future, Kubecon NA 2020 depicts the future we desire. Kubernetes is the mainstream now!

Key Takeaways

  • How to advance as a beginner — Get your hands dirty as soon as possible
  • Kubernetes Landscape — Unchanging principles, looking for simplicity in the rich ecology
  • How to improve as intermediate and advanced users — Focus on the basics, value the practice
  • Introduction of new tools — Operator is the key
  • The expectant 2021– Service Mesh & Chaos Engineering and?

For beginners, the biggest problem is where to start from, and you will feel helpless in the face of the vast Kubernetes ecosystem. The content below is what I hope I had been informed when I began learning Kubernetes. Unluckily, I had been detouring before I found the real way.

  • Get your hands dirty and don’t focus too much on documentation.

I spent too much time reading the Kubernetes documentation. The Kubernetes documentation is so comprehensive that it covers almost all the information at all stages, but it is still impossible to master it without practice. And the documentation is so detailed sometimes that it may become a burden instead of help if you are in the “know nothing” stage.

You should watch some Kubernetes 101 videos from Kubeacademy, which can help you better understand Kubernetes, from architecture, to components like ApiServer, Master, Kubelet, etc., and also resource types, including Pod, Service, Development, etc.

You should learn to migrate from a VM application to a Kubernetes environment. After I contacted Kubernetes, I have tried, for example, using minikube, kind, kubeadm to convert a Go project to Service + Development + Endpoints + Cronjob. But I solved the problems encountered by following the documentation. How inefficient!

In this Kubecon, there was a talk from HashiCorp: tutorial: Migration 101: From VMs to Kubernetes, which was a very comprehensive step-by-step migration tutorial. Even if you don’t watch the video, you can refer to their GitHub page and implement.

If you have application development experience on VM, you will find the following architecture diagram familiar.

Image for post
Image for post
VM system

Following this tutorial, you can complete the migration of VM applications to Kubernetes with Consul + Envoy + Deployment. The architecture diagram is as follows.

Image for post
Image for post

This tutorial goes with the actual situation and introduces some of the most common knowledge in Kubernetes, including

  • Installation of a set of basic tools
  • The concept and configuration of Pod/Service/Deployment
  • Network related, including service IP features, endpoints, ingress, etc., and finally, be able to access background services on Kubernetes
  • Logging, describing how to move the most classic Elastic + Kibana from VM to Kubernetes
  • Metrics, which introduces how to display monitoring metrics, combining with CNCF’s most popular Prometheus + Grafana
  • Service Mesh, for service governance.

For beginners, it will be very fulfilling to be able to complete such a migration. During the process, you will encounter various problems, and it is a better time to read the official Kubernetes documentation now.

This Kubecon also offers many talks for beginners. Please see the link.

Kubernetes Landscape

Kubernetes Landscape (also CNCF) is a little crazy with 1514 projects, totally 2,455,720 stars on Github currently, while the numbers are multiplying.

The community introduces Kubernetes sandbox projects and with 44 projects currently.

All the projects are required to go through three stages before Graduation.

Image for post
Image for post
from https://github.com/cncf/toc.

The numbers are just some evidence of the Kubernetes ecosystem’s rapid development. For the vast majority of application or Platform developers, it is unimaginable to know everything. A more realistic way is to understand your needs, find the direction of interest, and do research.

My way of understanding the Kubernetes ecosystem requires experience in application development, similar to system design.

  • When we build an all-in-one system from scratch, we need server/frontend + Database.
Image for post
Image for post
All in one
  • The requirement for higher scalability in the next step of system design
  • The need to expand the database.
  • The need for multiple server end nodes, and also service routing, proxy, APIGateway, etc.
  • Probable need to provide cache (KV storage)
  • The need for using RPC framework when there is a call between the servers
Image for post
Image for post
Distributed system
  • We need stability when the system develops further and with more users appear.
  • We add the Circuit Breaker to handle backpressure.
  • We provide Elastic + Kibana instead of logging into the machine to view (with dozens or hundreds of devices, no one checks it manually).
  • We provide monitoring and data to alert in time
  • We increase the message system to decouple further and reduce complexity.
Image for post
Image for post
CI/CD integration
  • In this step, we need CI/CD because human deployment and release are no longer possible with more and more machines.
  • As the system function further develops, we will also integrate big data, ML algorithms, timed tasks, and File storage systems instead of relying entirely on databases and KV storage.
Image for post
Image for post

Guess what? Kubernetes offers all tools for VM application development, with even more options. Let’s categorize the tools by their functions.

Image for post
Image for post
Kubernetes/CNCF ecosystem

Watch some related talks according to your needs, and try specific tools. And take it easy with more and more tools since our learning speed can never exceed the extending speed of the Kubernetes tool library.

Image for post
Image for post
Take it slow, step by step —by author

Wait for six months — CTO of The Linux Foundation Chris Aniszczyk

It is Chris Aniszczyk’s suggestion to Kubernetes users, but sometimes I think we should maybe wait longer.

As is seen in CNCF’s survey with end-users, many are still using the tools previously used in VM development, such as Redis, Postgres, Mysql, etc. For some cloud DB, they are only at a trial stage.

Image for post
Image for post
from CNCF

The development of technology is often a long time ahead of the practice application.

During this Kubecon, I paid more attention to some application-related tools and the introduction to some CI/CD tools as well. Below is a list of talks about Kubernetes Landscape that I have viewed or those I want to view but haven’t viewed.

How to improve as intermediate and advanced users

One thing I like about Kubecon is, the speakers are keen to share. Although through a 17-inch screen, I can still feel the thoughts interaction. For me, who haven’t been involved deeply in the field of Kubernetes, every talk enriches my knowledge.🐳

My biggest motivation for joining this Kubecon is to find the direction or method to break through my capabilities bottleneck. After becoming an Infrastructure developer for about half a year and spending a lot of time reading documentation, I still found many problems in practice.🧗‍♀️

  • Difficulty in integrating knowledge. For example, when having a discussion with my colleagues, recalling in time what I have learned is hard, which indicates I haven’t really understood.
  • The limitation of thinking patterns. I have not totally realized the new thinking patterns brought by the Kubernetes ecosystem. It feels like I haven’t got the cloud-way thinking pattern.

It binpacks it better in a cloud-native performant value add manner — from my colleague

The sentence used to describe the deficiency when adding the health check to the operator.

  • Not enough foundation. You have too much to expand in Kubernetes, such as controller-runtime, Apiserver, Etcd, etc.
  • The range of my Cloud background is limited. For the tools in the community, only a few prevalent ones are understood and used, when most of the others are strangers.

These problems result in low work efficiency and do more with less in real work. No innovative thinking can be triggered without a solid foundation.

In this Kubecon, intermediate and advanced talks, SIG, CI/CD, and Operator-related talks were more appealing to me. There were some cases of problems encountered by other companies in cloud-native practice and their solutions.

Kubernetes intermediate and advanced talk collection:

CI/CD talk collection:

Operator talk collection:

Actual case talk collection:

Newly Imported tools

From the earliest all-in-one to distributed VM, and now to the current Cloud Native era, we are not pursuing fancy technology, but the simple Olympic spirit, faster(faster response), higher (supporting more users), stronger (providing more stability). And to the complexity, difficulty in solving problems, difficulty in operation and maintenance, etc., that follows, CloudNative tools offer solutions.

  • Automation. When system complexity has reached a certain level, tens of thousands of server-side machines are no longer human-maintainable, so we need Kubernetes(Pod/Service) or Clusters to scale automatically, we need to deploy automatically (CI/CD).
  • Stability. More business, traffic, and machines bring higher complexity, and we are in bigger demand in monitoring and log integration to provide a convenient mode to solve problems.

Kubernetes is essentially a container orchestration tool, and the attached autoscale, pod termination, etc., are all reflections of the automation pattern. And Kubernetes defines the specification, brings fresh ideas, and helps more tools provide solutions to various problems on its stage. These are the significance of the Kubernetes ecosystem in my point of view.

More incubation projects are added to the Kubernetes ecosystem in 2020, some of which I will keep an eye on and try.

K3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.

  • Backstage, an open-source project out of my company Spotify. Even though I use it every day, I can not say I really understand it.
  • Kudo, a toolkit to help developers write Operators declaratively.
  • Crossplane, easily provision and manage resources through kubectl.

There are many other tools, and you can follow the CNCF toc, where will be new project applications, reviews, and other documentation.

I paid great attention to operators related topics on Kubecon because most of the tools are implemented through Operators. Simply say, Kubernetes CRD finally implements business logic by customizing types and Controllers, following Kubernetes specifications. Whether it is the Config Connector or Config Sync I introduced in the previous articles or the well-known Prometheus, they are all Kubernetes Operators.

At work, we also use Kubebuilder to implement the required Operator.

Finally, I learned in Kubecon that Kubernetes projects will be archived. For instance, rkt.

The expectant 2021

By attending Kubecon, you can also easily learn about industry trends, such as the recent community hot spots and the technologies leading the next development trends. In this Kubecon, four possible hot spots in 2021 are mentioned.

  • Chaos engineering
  • Kubernetes for the edge
  • Service mesh
  • Web assembly and eBPF

I won’t go into details here, for I am not an expert on these. For more information, please refer to the list of this year’s Kubecon talks.

In the end

Kubecon ended, but I am far from over with it, from which I got some new ideas and saw my shortcomings. Start from here and continue my journey since I am at the start line on the path to the cloud world.

BTW, I left many things out, like ML, Security, and Storage. Because I really don’t have the energy to explore them right now. Maybe after I am done with the above things, I will try to recall some of the talks regarding these areas.

Due to space reasons, I didn’t list all the talks I follow. If you are interested, you can check here.

Live in Stockholm. Love writing, interested in cooking, drawing and reading. Want to travel all around Europe with my cat.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store