はじめまして
このたび、コラムページに連載させていただけることになりました。タイトルは、「新しいはオモシロイ?」です。
日頃から新しいものを探しては、いじってみたり、調べてみたりしています。まずは、そんな自分のご紹介。
誰ですか?
ふだんは、日本IBMでPower Systemsのプリセールス活動をしています。IBM iを知ってから、まだ3、4年ほど。なので、このコラムを読んでくださる皆さまのほうが、IBM iについてはよくご存じかと思います。
これから書いていくコラムでは、IBM i以外のトピックに焦点をあてていく予定です。ふだんから“新しいコトやモノ”が好きで、日々“オモシロイ”を探して、いろんなものに手を出しがちな自分。せっかくこのような機会をいただいたので、ふだんアウトプットできていないコトやモノを共有できればと思います。
新しく出てきた技術は、どんな使い方がされるのか、ほんとに使えるのか? そんなワクワクがあります。そのワクワクを、少しでも文章にのせられたらなーとぼんやり考えています。
このコラムでは、自分が見知ったテクノロジーをのらりくらりとシェアしていきます。少しでも皆さまの知的好奇心をくすぐるきっかけになれば幸いです。
こちらで記載する内容は、あくまでも個人として見解です。間違っていることもあるかもしれません。その時は、どこかでこっそり教えてください。
Qiitaでも少し記事を書いています (更新できていませんが…もっと書きたい!!) https://qiita.com/tom_m_m
今回のメイン
概要ぐらいの内容ですが、さっそく本日の“新しい”について。
最近のIT界隈で話題なのは、やはりコンテナでしょうか。テクノロジーとしては古くから存在していて、近頃周辺のエコシステムが整いはじめている印象です。そのためか、IBMをはじめとして多くの企業が自社の製品やサービスに取り入れ始めています。
そこで疑問なのが、IBM iと何かつながりがあるのか・・・?
個人的には直接的には関係ないと思っています(IBM iの上でコンテナが動くなど)。そもそも、IBM iはその必要がないOS設計がなされていると考えています。それでも、IBM iの周りで動くシステムがコンテナで作られることもあるかもしれません。
ということで、コンテナについて何回かにわたって書かせていただきます。
コンテナって?
正直、ぱっと話を聞いてもよくわからない。仮想マシンと何が違うのか? 最初はそんな印象を持たれがちです。
大雑把に表現すると、OS環境内でとても軽いOSをプロセスとして動かすこと だと理解しています。IBM iとは概念が異なり、LinuxやUNIX系のファイルシステムの考え方がベースとなります。
特定のディレクトリに、OSを動かすためのファイル群を置いて、そこをルートとする。そうすることで、OSの中に小さな実行環境ができあがります。その環境に個別のリソースを割り当てて実行環境を別にすると、アプリケーションが動く箱みたいなモノができあがる。
絵に書くとこんな様子。
自分で書いていても難しいですね。大きな特徴として、従来のハイパーバイザーのようにハードウェア自体を仮想的に作っているわけではない点。こちらは、よく見かける図。
ハイパーバイザーでは、ネットワークのアダプタを仮想的に作って、OSに接続します。そのため、物理的なアダプタが接続されている状態を再現しています。
コンテナの場合、OSのファイルシステム上で実行環境を仮想的に作るようになっています。なので、起動が早い! とよく言われるわけです。OSの起動プロセス自体がないので当然です。
コンテナについて、少しは伝わればと思い書きましたがいかがでしょうか。
最後に、よくある誤解? について書いて締めたいと思います。
コンテナ ≠ Docker
コンテナ周りの会話をしていて、よくわからなくなるのがDockerという単語。実は、Dockerとはコンテナを動かすためのソフトウェアを指しています。
Docker以外にもコンテナを動かすためのソフトウェアは存在するため、コンテナ ≠ Docker なのです。ただ、Dockerと共に利用が広がったため、コンテナの話になるとDockerがよく出てきます。
ちなみに、Dockerなどのコンテナを動かすための仕組みを「コンテナランタイム」と言うそうです。
最後に
実際にさわってみると、おぉー となるかもしれないので、興味があれば一度お試しください。
次回以降で、こんなふうに動くのだ! というような内容も書いていきます。
まったくつぶやいていませんが、Twitterもあります。質問はこちらに投げていただければ幸いです!
@mtom_m_m [https://twitter.com/mtom_m_m]