IBM発のオープンソースCodewindとは何か

榎本陽祐氏:よろしくお願いします。私からは今回VS CodeのExtensionの、Codewindというちょっとマイナーなものなんですけど、これで実現する簡単コンテナ開発というテーマでお話させていただきます。

流れなんですけど、自己紹介と、たぶんCodewind自体をご存じでない方がほとんどだと思いますので、「Codewindとは何ですか?」というところと、実際こういったデモをお見せできればなと考えています。よろしくお願いします。

自己紹介です。千葉県松戸市のWeb系のベンチャー企業のJoolenというところに所属しているエンジニアです。motuoという名前でQiitaを書いていたりしていて、この埼玉西武ライオンズのユニフォームロゴをトレードマークにしています。千葉県民でありながら、埼玉西武ライオンズがすごい好きなので、今年はなかなかリーグが開幕しないのでヤキモキしているんですけど、日々野球のニュースを楽しみにしていたりします。

今の業務で使っているのは主にPHPですね。LaravelとかEC-CUBEといったものを使っています。2020年のIBMChampionということで、IBMさんから公認で外部エバンジェリスト、IBM Cloudを使った技術なんかをいろんな勉強会とかでお話ししています。

今回ご紹介するCodewindも、IBM発のオープンソースになっていまして、これがVS Codeに乗っかっているので、ちょっと紹介できればと考えています。

ちょっとした宣伝なんですけど、VS Codeを使ってLaravelの開発環境を整えるという記事が、実は地味に意外と好評でして。

僕みたいなPHPerですね。とくにLaravelを使う人は1回こいつを見てもらえると、「VS Codeを使ってLaravelをどうやってデバッグするの?」とか、専門のartisanというコマンドがあったりするんですけど、こいつらも全部VS Codeでできたりするので、非常に生産性が高く開発できるかなと思っています。

この記事は後ほどconnpassにアップしますので、もしPHPerでLaravelを使っていて、興味のある方は一度見てもらえるとうれしいです。

クラウドネイティブな開発を加速するExtension

ここからが本題です。Codewindは一言で言ってしまうと、クラウドネイティブな開発を加速するExtensionになっています。開発者はCodewindを使って、テンプレートから新しいプロジェクトを作ったり既存のプロジェクトからテンプレートを生成したりすることができます。DockerまたはKubernetesでアプリケーションを起動したりデプロイしたり、更新、デバッグ、パフォーマンステストをするためにも使うことができます。

今まではDockerとかKubernetesでいろいろ開発するときに、自分自身でDockerファイルを用意したりとか、KubernetesであればYAMLを用意しないといけないということがけっこうあったんですけど、このCodewindを使うと、本当にこれだけ、わずか数分でほしい基本的なテンプレートを組み立てて、Docker上で稼働するNodeのプロジェクト、他にもJavaなどいろいろな言語をサポートしているんですけど、そういったものを動かすことができるものになっています。

文字だけを見てもあまりピンと来ないと思いますので、実際にNode.jsを構築してみるというデモをご用意しています。今画面を切り替えますので少々お待ちください。

簡単にNode.jsのアプリケーションを作るデモ紹介

これで今から、事前に撮ってある動画なんですけど、これを使ってNode.jsの環境を構築していきます。

(ここからデモ動画)

既にCodewindはExtentionでツール化してある状態からのスタートですね。これは普通にExtentionを入手するのと同じ手順でインストールできます。今は何もない状態です。

これで見てみると、GoとかJavaとかNode.js Express、Open Liberty、Python、Spring Boot、Swiftと、こういった言語がけっこうサポートされています。こんなかたちで自分が使いたい言語を選んでいきます。今回はNode.js Expressを選択していきます。それで好きな名前を付けます。今回はdemo-nodejs-applicationです。

そのまま作るフォルダを指定すると、基本的にひな形ファイルを勝手に作っていってくれます。少し時間が掛かるんですけど、さっき何もなかったところにいろんなファイル、基本となるファイルができ上がっていて、これでNode.jsが動くような状態になっています。

ここからもうちょっと待つとここの状態が、Application Endpointとかが変わっていると思うんですけど、ここでもうビルドまで終わって実行できるような状態になっています。ここからクリックしてあげると、そのままテンプレートから構築されたWebサイトが普通に稼働しているような状態になります。もちろん自分自身でソースを修正すればその内容はすぐに反映されていきます。

今回はCongratulationsの後ろに、これはデモですとしてもう一度開いてあげると、ちょっと反映までに若干の時間は掛かるんですけど、再読み込みをしていくと実際のWebサイト上にかなりリアルタイムに近いかたちで反映される。これでもう5分と経たずに簡単にNode.jsのアプリケーションを作ることができました。

Codewindにはこれ以外にも機能があって、単純に作ることもさることながら、いろいろテスト系の機能が備わっています。Metrics DashboardとかPerformance Dashboardとか、パフォーマンスを見たりするものですね。ここでPerformance Dashboardをせっかくなので出していきます。基本的にはrootパスしかないものなので、そのままの設定でいきます。

こいつを走らせていくと……。これで実際にアクセスすると、アクセスした様子が実際のリアルタイムがグラフとして出てきます。これは今更新ボタンを連打したんですけど、連打したらこういったかたちでちゃんとレスポンスを返してますよということで、こういったものがテンプレートとして1セットになっています。

そういった非常に使いやすいExtentionなので、Dockerとかクラウドネイティブのアプリケーションを作ってみたいなという方には、すごいうってつけのExtentionだと思いますので、ぜひ使ってみていただければなと思っています。

(デモ終了)

ほんの少しの紹介でしたが、日本語情報があまりないのでまだまだ物足りないところではあったりするんですけど、公式ページもあります。もし興味がわいた方は私もSlackを登録していますので、お声がけいただければ一緒に研究していくことができますので、よろしくお願いいたします。

私からは以上となります。どうもありがとうございました。