【ぴくるす】
PKL(設定言語) とは?
公開:
💡 設定ファイルに「型」という鎧を着せる言語
📌 このページのポイント
ペンギン先生、PKLって何?YAMLじゃダメなの?
型チェックってプログラミング言語みたいだね!設定ファイルでもそれが必要なの?
大きなプロジェクトだと設定ファイルが何百個にもなることがあって、ちょっとしたタイポが本番障害につながることもあるんだよ。型があると「このフィールドはint型のはずなのに文字列だよ」ってすぐわかるから安全だね。
たとえば「本番環境」と「開発環境」で共通の設定を親クラスに書いて、差分だけを子クラスで上書きできるんだ。同じ設定を何度もコピーしなくていいから、DRY(繰り返しを避ける)原則が守れるよ。
そうなんだよ。KubernetesはYAMLが必要、DockerはDockerfile形式が必要、みたいに出力先のフォーマットが違っても、PKLで一元管理して変換できるんだ。Terraformや各種CIツールにも対応しているよ。
Appleが作ったのに、Kubernetes設定にも使えるんだね!
Appleは内部のインフラ設定管理に使っていたものを2023年にオープンソース化したんだよ。VSCode拡張機能もあって、補完や型エラーのハイライトがリアルタイムで出る。設定ファイルを「プログラムとして管理する」Infrastructure as Codeの考え方にとても合った言語だね。
まとめ:ざっくりこれだけ覚えればOK!
「PKL」って出てきたら「型チェックができる設定言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「Pkl (Pickle)」 = ピクルス(漬物)
💬 公式には「Pickle」のニックネームで、PickleはPickle configuration languageの略。「設定を漬け込んで保存するイメージ」からきているとも言われているよ。