<

Cloud Native Days Tokyo 2019 - Participation Report for July 22-23, 2019

This time, I participated in the Cloud Native Days Tokyo 2019 held in Tokyo for two days, so I thought I would report. Rather than reporting on each session, I think I will talk about my overall impressions.

https://cloudnativedays.jp/cndt2019/

I have summarized the links.

https://qiita.com/zaki-lknr/items/1c26bb713aef9645f5e6

CNCF Usage Rate

This is the impressive content from the first day's Keynote. The presenter is Mr. Hasegawa, the chairman of the OSDT.

There was an introduction about "the phase of utilizing cloud native technology" heard from 1354 visitor surveys. The surprising result was that as many as 46% of people have already applied it to the production environment. Furthermore, it was 63% for the development environment. I think there is a certain filter at the point of participating in this event, but I felt it was a large proportion.

The following figure is a graph of the number of Commits in the 180 days of the CNCF project. Google, the parent, is in 1st place, independent (individual) is in 2nd place, and Japanese company Fujitsu is in 6th place. You can feel the enthusiasm.

https://www.stackalytics.com/cncf?date=180
https://www.stackalytics.com/cncf?date=180

※ As of 2019/07/24

However, it seems that there are only 17 companies as members of CNCF in Japan, so it seems that there is still a long way to go.

https://landscape.cncf.io/members

Furthermore, it seems that there are no Japanese companies certified by Kubernetes yet. It's a shame.

https://kubernetes.io/partners/#kcsp

In the future, it seems that there will be conferences like the following overseas. I would like to participate.

https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2019/

https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2019/

What is CloudNative?

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Examples of this approach include containers, service meshes, microservices, immutable infrastructure, and declarative APIs.

※ [https://github.com/cncf/toc/blob/master/DEFINITION.md#Japanese version](https://github.com/cncf/toc/blob/master/DEFINITION.md#Japanese version)

"Building and running scalable applications" is important. One way to achieve this is Kubernetes. It's not "CloudNative = Kubernetes", but rather "CloudNative ∋ Kubernetes".

However, it seems that recently more people are thinking about Kubernetes from a different perspective. This is in the slide by Mr. Kitayama, which was presented in the keynote on the second day.

https://speakerdeck.com/shkitayama/change-the-game-change-the-world

Kubernetes has come to be called a "platform for platforms". This can be seen in slide No.9 (Kubernetes is a platform), and we can understand the following:

  • Operation administrators
    • Scaling becomes easy with Self-Healing
  • Application developers
    • Can deploy easily

These are indeed "values obtained from the platform", but on the other hand, the following considerations are necessary:

  • Operation administrators
    • How far can Self-Healing guarantee reliability?
  • Application developers
    • What should be done to minimize user impact?

The "cost of using the platform" tends to become larger than the "value obtained from the platform". Therefore, the concept of Operator (CRD) has recently become hot.

Why is CRD hot?

The word CRD was mentioned in various sessions. For CRD and Operator, please refer to the following.

https://silverbirder.github.io/blog/contents/kubernetes_meetup_tokyo_19_osaka_satellite

When operating Kubernetes, it seems that the existing resources are not enough. Such parts increase the "cost of using the platform". Therefore, CRD and Operator were born with the aim of developing and automating the operation of original customized resources. However, it may be more efficient to use from the following site than to create your own from scratch.

https://operatorhub.io/

But, after all, when you are in trouble, you will read the source code, so if you don't have that ability, I feel that you can't operate.

The following slides by Mr. ladicle of zlab were very easy to understand and well organized. This is a valuable document.

https://speakerdeck.com/ladicle/kuberneteswokuo-zhang-siteri-falseoperesiyonwozi-dong-hua-suru

By the way, the case where it was created from scratch is the presentation by Mr. Yamamoto of CyberAgent, and the following slide.

https://speakerdeck.com/mayuyamamoto/kuberneteskuo-zhang-woli-yong-sitazi-zuo-autoscalerdeshi-xian-surusutoresuhurinayun-yong-falseshi-jie

The repository that Mr. Aoyama of CyberAgent was live coding is the following.

https://github.com/cloudnativejp/webserver-operator

Do you need Kubernetes?

There were occasional talks about whether to use Kubernetes in two days. There is also the following discussion.

https://www.atmarkit.co.jp/ait/articles/1907/23/news120.html

When aiming to build a CloudNative application, it tends to go in the direction of using Kubernetes. In many of the sessions I attended, the consideration for adopting Kubernetes was as follows:

  • Plain Kubernetes or Managed Kubernetes
    • Most use Managed Kubernetes.
    • When you reach out to the itchy place, use Plain Kubernetes.
  • How many Kubernetes engineers are there? Is it exclusive?
    • There are few engineers who have knowledge of Kubernetes anywhere.
    • It is often advanced by a few people on a full-time basis.
  • Start small to accumulate know-how

Among the various sessions, there was a company that was following a very orthodox step. That is the following slide by Mr. Suzuki of SoftbankPaymentService.

https://www.slideshare.net/JunyaSuzuki1/springpcf-cndt2019-osdt2019-keynote

I learned that it was a CloudNative transformation suitable for companies.
I particularly like the point that "considering the cost of operation, use PaaS instead of Kubernetes".

Circuit Breaker

I've heard this word so much that I'm sick of it. The following site is a reference.

https://qiita.com/yasuabe2613/items/3bff44e662c922083264#circuit-breaker

If there is a failure in some microservices at the end of a synchronous request, the blocking may spread to the client and the "client's client". This problem is solved by a pattern that intervenes a proxy called Circuit Breaker between the client and the actual service, and if the failure of the actual service call exceeds a certain standard, it immediately rejects requests from the client and eliminates the blocking chain.

When building an application with Kubernetes, in order to benefit from the distributed system, The application will be microserviced. A common pitfall in this microservice is The phenomenon of "if the API in the back dies, other servers will die in a chain".
To avoid this, many companies use the above Circuit Breaker pattern. I really heard it in many sessions....

twelve factor app

The following slide by Wantedly was a topic for me.

https://speakerdeck.com/potsbo/k8s-kubernetes-8-factors

In other words, it feels like "I tried to apply the design thinking of the application (twelve factor app) to the infrastructure part as well". Each one is explained in detail, and I think it will be useful when actually building Kubernetes.

Presentations focused on technology

In this event, there were many presentations focused on one technology. I summarized each one in my own way. Please refer to it.

Chaos Engineering

https://speakerdeck.com/mahito/cndt-osdt-2019-2g1

Docker

https://www.slideshare.net/AkihiroSuda/cndt-docker

Envoy

https://speakerdeck.com/taiki45/cloudnative-days-tokyo-2019-understanding-envoy

Logging

https://speakerdeck.com/yosshi_/kubernetes-loggingru-men

LinuxKernel

https://speakerdeck.com/tenforward/cndt2019

Prometheus

https://speakerdeck.com/tokibi/prometheus-setup-with-long-term-storage

Sandbox

https://docs.google.com/presentation/d/1O9Q9E1hH6mBA5w8oDENnCYObZvij1-Dr_obvsY3X29k/edit

Scheduler

https://speakerdeck.com/ytaka23/cloudnative-days-tokyo-2019

Spinnaker

https://speakerdeck.com/sansanbuildersbox/introduction-to-deployment-patterns-with-spinnaker:embed]9

Istio

https://speakerdeck.com/dangossk/a-deep-dive-into-service-mesh-and-istio-cndt-2019

Others

I received a very happy item for engineers from CyberAgent.

https://twitter.com/ca_adtechstudio/status/1152080444445167616

I immediately attached it to my keyboard. It's awesome!

ergodox with k8s keycap (cyberAgent)
ergodox with k8s keycap (cyberAgent)

It seems to have been made from this service, and I thought I might try to make something myself.

https://www.wasdkeyboards.com/

In conclusion

It was two days fully immersed in CloudNative.
Thanks to the sharing of the "pain" and "value" of introducing CloudNative in any company, it was a meaningful time for those who will introduce it in the future (including me).
I couldn't absorb all the sessions, but I want to deepen my understanding just by the slides mentioned here.

https://cloudnativedays.jp/cndk2019/

Next time it seems to be held in Osaka. I definitely want to participate in this too!

Postscript (The background to participation)

The author is a web-loving engineer and a person with a shallow understanding of Kubernetes. I mainly focus on the front end.
However, after attending a session by Mr. Aoyama of CyberAgent at DeveloperBoost2018 last year, I started to become interested in Kubernetes.

https://codezine.jp/article/detail/11291

Mr. Aoyama is very knowledgeable about Kubernetes, and because we are close in age, I started to feel that I wanted to find something that I could be so passionate about.
I love anything related to the web, including Kubernetes. So, I decided to try out all of Kubernetes Complete Guide written by Mr. Aoyama. Of course, it's on my home Kubernetes. When I actually touched it, I was surprised at how easy it was to scale. I was surprised to see the Pod being replicated with almost a single command.
From there, I gradually got hooked and decided to participate in this event.

If it was helpful, support me with a ☕!

Share

Related tags