g00ceyの技術ブログ

CloudNativeってなに?

目次

記事のポスト及び、サーバーをKubernetesに移行ができなくて、そのままになっておりますが、記事をポストするよ。

結論

あんまり有用なことは書いていないので、下記の技術を押さえられていれば問題ないのではないかという結論

発端

次期案件について調べていると、知らない言葉がちょいちょい出てきた。
これはよくない、案件で受けることはないのだが、知りませんでした。という事で通じるわけではないので、調べてみると

「CloudNative」という言葉に行きつく。
そもそもCloudNativeってなんだよ。 クラウドネイティブとは何のことなのか?なぜそれがIT組織の変革につながると期待されるのか - THINK Blog Japan

Kubernetesの開発をホストするなど、クラウドネイティブなアプリケーションのためのオープンソースソフトウェアの開発を進めている団体「Cloud Native Computing Foundation」(CNCF)は、クラウドネイティブの定義として「CNCF Cloud Native Definition v1.0」という文書を公開しています。前段部分を引用しましょう。
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
クラウドネイティブなテクノロジーは、パブリッククラウドやプライベートクラウド、ハイブリッドクラウドといったモダンかつダイナミックな環境においてスケーラブルなアプリケーションの開発と実行を行う組織の力を強化するものです。

クラウドでアプリケーションを開発するうえで、なうでヤングな技術の集合体ということで間違いなさそう。

GOについても記述があった

後々、GOが何故、マイクロサービスと相性がいいかについても記載されたスライドを見つけた。
なぜ Go はマイクロサービスのための言語なのか - Why Go is a language for microservices - Speaker Deck
CPUをがっつり使い倒せる事が利点なのかと思ったのだけど、そもそも、コンテナ化するときに、実行用のコンテナに配置するファイル数を少なくすることができるので、デプロイ時に、けっこう早いのかもしれない。(とはいえ、Dockerのイメージってそもそもどうなっているのかが分からないと早いとは言い難いが)
ただ、コンテナって基本的に1つの役割事に作成するべきであるから、確かにシングルバイナリにするのは有用だ。
これらの時流を終えていないことに焦りを覚えつつも読み進める。

gRPCについて

いまさらだけどgRPCに入門したので分かりやすくまとめてみた - Qiita

なるほど。マイクロサービス間の通信・アプリ通信についてはgRPC使うのがなうでヤングなんですね。

戻りまして、CloudNativeへの理解度

なうでヤングなのはわかった。
日本語でCloudNative Trail Mapについて訳したものはないだろうか
クラウドネイティブ活動の指針として、CNCFのCloud Native Trail Mapをどう考えるか (1/2):草間一人×青山真也 クラウドネイティブ対談(2) - @IT

下記のCloud Native Trail Mapについてメモしていく

CloudNative trail map

mapに記載されるGraduated, incubatingってなんだろうか?と思って調べてみると成熟度のことらしい。 「CNCFがKubernetesを最初の『卒業』プロジェクトに認定」の意味:CNCFは16のプロジェクトをホスト - @IT

no category product my status
1 CONTAINERRIZATION docker 一応知ってる使ってる。
2 CI/CI UT, ST, CircleCI, Jenkins 知ってるが実践できていない
3 ORCHESTRATION & APPLICATION DEFINITION kubernetes, helm 知ってるけど扱えていない
4 OBSERVABILITY & ANALYSIS Prometheus, fluentd, OPENTRACING, JAEGER 聞いたことがある、これに使うんだよね?位しか知らない
5 SERVICE PROXY, DISCOVERY, & MESH envoy, coreDNS, LINKERD これ以降ほとんど知らぬ。このCloud Native Trail Mapに行きつくことになったきっかけ。
6 NETWORKING & POLICY CNI, Open Policy Agent -
7 DISTRIBUTED DATABASE & STORAGE Vitess, ROOK, etcd, kv 見たことがあるレベル
8 STREAMING & MESSAGING gRPC, NATS, cloudevents gRPCだけ聞いたことがある 通信するんだよね()
9 CONTAINER REGISTRY & RUNTIME containerd, HARBOR, cri-o えぇ!なんでここでcontainerdが出てくるん。
10 SOFTWARE DISTRIBUTION notary, TUF -

列挙して知っているものはどこにあるかということを記載したのだけど、けっこう厳しいな。
今年はここにあるマップの者(誤字ではなく者)を理解・利用可能することに努めて行こうと思います。


Share

comments powered by Disqus