株式会社Exciteさんと弊エンジニアコミュニティVolareの共同開催のLTイベントにてお話させていただいた内容です。
https://volare.connpass.com/event/218767/
非常に多くの参加者にお越しいただき、誠にありがとうございました。
CUE言語では、jsonやyamlのようなスキーマセットでありながら、プログラミング言語としてバリデーションや拡張が行える。
特にKubernetesなどの大規模なyamlを扱う際に非常に便利である。
また、Kubernetesの設定ファイルのテンプレートには、HelmとKustomizeがよく使われているが、それらとは一線を画す画期的な仕組みを採用しているのがCUE言語である。
これまでのjsonなどで取られていた値に型をつけるというアプローチとは全く異なる型と値はlatticeを成すというような考え方だ。
latticeとは何かはスライドの方を見て欲しい。
また、latticeがただ一つの値に収束することをCUEでは、resolveと読んでいる。
この設計は極めて秀逸である。
最も秀逸であると感じる点が、宣言的なアプローチが取れること。
これまでの黒魔術や継承といった考え方では、手続き的な処理が必要だったので、処理なくして値は一つに定まらなかったということだ。
Keyword: Cue, Cuelang, Kubernetes, yaml, json
reference