WSL2登場でWindowsは有力なWeb開発環境に
はじめに
ここ数年、デジタルトランスフォーメーション(DX)やデジタル化という言葉を聞かない日はなくなりました。とりわけ、政府がデジタル庁を発足し、国を挙げてのデジタル化を推進することを宣言したことで、企業の規模を問わず加速されているように思います。
また、IT分野に限れば、クラウドネイティブという言葉も非常にホットワードになってきています。クラウドネイティブをキーワードにした製品発表やセミナーなどが多数実施されるようになりました。以前、本サイトでクラウドネイティブについて連載しましたが、当時はまだまだ認知度の低い用語でしたが、開始時とは違ってきたと実感しています。
Googleトレンドの傾向をみても、クラウドネイティブの人気度の傾向が増加しているのがわかります。
クラウドネイティブ時代の開発環境
このような時代の変化に合わせて、コンテナ環境でのアプリケーション開発、AIの活用、企業での内製化など開発環境に関する話題も増えてきています。
ここで重要なポイントの1つが、プログラミング環境の標準化、見直しです。今までは、Web開発環境やクラウド開発環境といえば、デバイス環境として、macOSが多く使われてきたことをご存知の方も多いでしょう。もちろんWindows PCの利用も多くありましたが、特にスタートアップやWebサービスを提供している企業で働く人は、macOSを利用していることが多いのではないでしょうか?
この傾向は、最近始まったことではないと思います。筆者が10年以上前に参加したオープンソース関連の最大のエキスポであった米国でのLinux Worldや、JBossビジネスを開始したころのRed Hat Summitに参加したとき、会場の多くのエンジニアが手にしていたのが、アップルのMacBookでした(はっきりとした数字はありませんが、半数以上の人が使っていたと思います)。国内においても、コロナ禍以前に参加したIT関係の勉強会やセミナーでは、かなり多くのエンジニアがMacBook Airなどを使っていたように思えます。
ご存知のようにPCが登場した時代から、長らくWindowsか、Macか? という議論がありましたが、Web開発環境やクラウド利用の点においては、Macの人気が市場シェア以上に高い状況であるといえるでしょう。
これには、macOSは、The Open Groupが認証したUNIXであるため、Web開発環境やクラウド環境で中心となっているOSであるUNIXに似たLinuxとの相性がよかったことなどが理由として挙げられています。
今まで、企業での利用制限からWindows PCを利用するしかない開発者は実際には1つの端末をWindowsとLinuxのデュアルブートで使うか、違うOSが稼働する端末を2台並べて利用する、あるいはLinuxとの親和性が高いUNIX環境を提供するmacOSを利用して、開発、テストするしかなかったともいえるかもしれません。
もちろん、クラウド上のリソースを使いながら開発することも1つの方法です。しかし使用する時間が増えると、クラウドとの通信費や、クラウド上のGPUなどを利用する場合の使用料などのコストが増してきます。その費用は、時にはGPU搭載PCの場合と比較して、高くなるケースもあるでしょう。また現場の近くで、トライアンドエラーで分析を行うケースでは、ネットワーク遅延問題やネットワークが外部とつながっていないために、手元のPCを使う必要がある場合もあります。
このような状況は、2015年に「Microsoft Loves Linux」というスローガンのもとに、オープンソースに力を入れ始めたマイクロソフトの動向により変化が起きました。例えば、Windowsだけでなく、macOS、Linuxもサポートし、MITライセンスで公開されているオープンソースエディタVisual Studio Code(VS Code)のリリースです。VS Code は、Stack Overflow 2021 Developer Surveyにおいて、最も人気のある開発者環境ツールとしてランクインし、約70%の開発者が支持しています。読者の方も、VS Codeを利用している方も多いのではないでしょうか。
Windows Subsystem for Linuxの登場
また、以前はあれほど嫌っていたLinuxをWindows 10上で稼働させることができるWindows Subsystem for Linux(WSL)もリリースされました。ただWSLは、発展途上の製品であったこともあり、まだまだ積極的に利用する人も多くなかったように思えます。しかし、2021年11月にリリースされたWindows 11には、標準でWindows Subsystem for Linux 2(以降、WSL2)が搭載されたことで状況は大きく変化してきました。
この連載でさらに詳しく紹介しますが、WSL2は、簡単にいうなら、Windows上でLinuxがあたかも1つのプロセスであるかのように動くことを可能にしたものです。それによってWindows PC上にLinux開発環境とテスト環境を簡単に構築できることになりました。
そして、2021年にはVisual Studio Code Remote Development(リモート開発拡張パック)が発表されました(現在は、プレビュー中)。
Remote Development - Visual Studio Marketplace
このパッケージには、次の3つの拡張機能が含まれています。
Remote - SSH
SSHを使用してリモートマシン/VM上のフォルダを開くことができます。
Remote - Containers
コンテナにマウントされた、またはコンテナ内の任意のフォルダを開くことができます。
Remote - WSL
Windows Subsystem for Linux の任意のフォルダを開くことができます。
つまり、Windows 11上に、Linux を稼働させ、Windows 11からLinuxへアクセスしたり、Linux上に起動したコンテナ環境にアクセスしたりできるようになったということです。これで、クラウドネイティブを意識したプログラミング環境も構築可能になったといえるかもしれません。
内製化でキーワードに挙がることが多いAIにおいても、開発環境の整備で変化があります。AI活用ではNVIDIA GPUを活用したソリューションが多く存在します。NVVIAは、マイクロソフトと協力して、WSL2でNVIDIA GPUをサポートしました。つまり、GPUを利用した開発プラットフォームとしても、WSL2が使えるということになります。
Enable NVIDIA CUDA on WSL 2 | Microsoft Docs
GPU in Windows Subsystem for Linux (WSL) | NVIDIA Developer
最後に、企業のIT管理の視点から、プログラミング環境を考えましょう。DX推進における課題の1つであるDX人材の育成があります。DX人材で求められる資質は議論がありますが(個人的には、この手の議論の中身には賛成できないことが多いです)、データを分析活用するために、Python などのプログラミングができる人材育成を開始している企業が多数あります。そういった人材向けにプログラム環境作りとして、MacBook を導入することで対応したり、検討したりすることが多かったかも知れません。一方で、今まで厳しいITの運用ポリシーを持っていた企業(特に大企業)は、各種のツールを導入しWindows PCを管理する知識、経験を蓄積しています。そのため、MacBookを導入しても管理するためのノウハウは十分にたまっている状況ではありません。エンジニア視点でなく、デバイス管理という視点からも、Windows PC環境で、クラウドネイティブ開発環境を構築できるならば、Windows PCを管理してきた今までの知見を生かせるため、Windows PCを整備することでDX人材向けの環境を提供できると考えている企業もあるようです。
終わりに
今回は、これまでの開発環境や今後の動向を踏まえて、今後の開発環境の動向を紹介しました。次回からは、Windows 11で、Linux開発環境、コンテナ環境、GPUを利用する方法を紹介したいと思います。
今後の予定
- Windows Subsystem for Linux 2の設定方法
- コンテナ開発環境の設定
- WSL2からNVIDIA GPUを利用する方法
次回からの連載にご期待ください。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Microsoft、ローカルと異なるリモートOS環境下で開発を行える「Remote Development拡張機能パック」を「Visual Studio Code」向けにプレビュー公開
- Microsoft、ローカルと異なるリモートOS環境下で開発を行える「Remote Development拡張機能パック」を「Visual Studio Code」向けにプレビュー公開
- CUDAとGPUコンピューティングの広がり
- de:code 2019開催。自動運転車からMicrosoft 365、Azure、HoloLens 2までの基調講演まとめ
- CloudNative Days Tokyo 2023から、WasmのクラウドネイティブやAI推論での利用を解説
- Docker DesktopのWSL 2 GPU対応版を開発者向けにプレビュー公開
- Windows 11でLinuxを使う:Windows Subsystem for Linux 2の設定
- Windows Subsystem for Linux 2 でDocker を使用する(その1)
- de:code 2018が開催。基調講演はクラウド、開発ツール、MRが語られる
- 「GPU」×「PG-Storm」で爆速PostgreSQLを体験してみよう