ラベル 仮想化 の投稿を表示しています。 すべての投稿を表示
ラベル 仮想化 の投稿を表示しています。 すべての投稿を表示

2016年8月9日火曜日

Macにおける仮想化環境(VirtualBoxとParallels Desktopの簡単な比較)

最近Macを買い換えたので、移行アシスタントを使わずに新しいMacに一からソフトウェアをインストールすることにした。

旧Macでは、ちょこっとした仕事にOfficeを使う為、Parallels Desktopを買ってその仮想環境にWindowsをインストールして使っていた。ソフトウェアの見直しに当たってParallels Desktopを使い続けて課金するのもなあと思い始めた。よってかつて使い慣れたVirtualBoxに戻ることにした。そこでとことん使い倒しているとはいえないものの、両者を簡単に比較してみる。

Parallels Desktopの良いところ。
  1. (おそらく)パフォーマンスが良い。Macbook Airの1.7GHzで32bitWindows7および10がキビキビ動いていた。バリバリ3Dとかでなければ上記スペックでもゲームで遊べていた。Officeももちろん普通に動く。
  2. Guest OS(特にWindows)への対応が早い。
  3. 設定とか全然考えずにファイル共有とかクリップボード共有とかが出来ていた。

Parallels Desktopの良くないところ。
  1. メジャーバージョンアップ(MacOSのメジャーバージョンアップとタイミングはほぼ同じ。)ごとにバージョンアップの費用が五千円くらいいる。(バージョンアップをしないという選択肢もあるが、最新OSにだんだん対応しなくなっていく)
  2. なんか自社製品の広告が時々出てうざったい。(たまにだが)
  3. 設定は至れり尽くせりなのだが不要なエイリアスとか勝手に作ってくれたりする。
  4. クロスプラットフォームじゃない。(これは結構大きいかも)
VirtualBoxの良いところ
  1. ただ(USBまわりの機能拡張を入れると完全OSSではないが無料)
  2. クロスプラットフォーム(作った仮想環境を別のPCに持っていける)
VirtualBoxの良くないところ
  1. 新しいMacbook Proでは試していないが、過去の記憶ではゲームとか描画系が厳しかったのでゲームとか無理(と思う)
  2. 一時期オラクルがサボっていてアップデートが滞っていた気がするので、将来的に不安。
  3. 細かいところまでの設定が厳しい(Xubuntu16.04のインストールでは結局サウンドドライバ周りは切った)。HOSTとの共有フォルダとかは自分で設定が必要(その方が良いケースもあるが)
よって今回は、お金とクロスプラットフォームを取ってVirtualBoxにした。
あとOffice365を使っているので、Mac版の最新Officeをインストールできたのも大きい。
余談だがOffice365マジおすすめ。昔は互換性が悪いという話も聞いたが、今のところ問題ない。


2016年7月26日火曜日

CoreOSを勉強した

遅ればせながらCoreOSを勉強した。

CoreOSとは、Linuxのディストリビューションの一つだが以下の特徴がある。

  1. コンテナ(Dockerなど)を動かすために特化したLinux
  2. そのため一般的な機能(コマンドとか)は最小限にされている。(ツールとか簡単に入れられない)
  3. クラスタ機能を標準でもっている
  4. 分散システムのためのツールを装備

なので、コンテナのためのOSなので、ここに巷に出回っているDockerイメージをぶちこめば、すぐに環境が構築できるはず。

2016年7月13日水曜日

Dockerを勉強した(その2)

昨日書いたことに間違いがあったので、まずは訂正。


3.コンテナには、さまざまな依存関係のあるアプリケーション群を一つにパッケージングしたものである。(例えばWebサーバー、アプリケーションサーバー、データベースを一つにまとめたもの)

→といった使い方は、あまりしないらしい。Webサーバーで1コンテナ、アプリケーションサーバーで1コンテナというふうに分割して運用するのが普通らしい。

そして昨日の疑問、

疑問1:アプリケーション空間、ユーザー空間の仮想化とは、まだちゃんと理解できていない。どのレベルでDockerEngineは仮想化するのか

→独立したプロセス空間、ネットワーク空間を提供する。(アプリケーション側からは一見1つのOSとして見える。OSより下位レベルのシステムコールとかはできないんでしょうね)

疑問2:環境依存する部分は本当にないのかIPアドレス、MACアドレスとか。DockerEngineがそれを吸収するのか?あるいは環境情報は別途デプロイする必要があるのか?

→仮想ブリッジと仮想ネットワークインターフェースによってネットワーク差異を吸収する。(すごいぜ!)

その他
コンテナ自体の冗長化(クラスタリング)技術は、まだ発展途上にあるらしい(ほんのつい最近そういった技術が発表されつつある)
とすれば、大規模サービス(ブラウザゲームとか)は、OSレベルで冗長化して、その上にコンテナをいくつも載せていく構成になっていくのか?
自分は、これまでレガシーシステムの刷新を多く手がけてきたので、これら技術の基幹システムへの導入例は不勉強にして知らない。このような技術によって大企業の多くが悩んでいる迅速なサービスの提供が可能になる気がします。


2016年7月12日火曜日

Dockerを勉強した(その1)

Dockerについて全然わかっていないので、まずガバッと勉強することにした。
有識者の方には何言ってんだこいつと思われることもあるかもしれませんがご容赦を。

まず今日理解したこと。


  1. Dockerとは、コンピューターの仮想環境を構築する仕組みの1種である。
  2. Docker(という仕組み)の環境の一つ一つをコンテナと呼ぶ。
  3. コンテナには、さまざまな依存関係のあるアプリケーション群を一つにパッケージングしたものである。(例えばWebサーバー、アプリケーションサーバー、データベースを一つにまとめたもの)
  4. コンテナとは、OSを仮想化するわけではなく、アプリケーション実行環境の仮想化である。(今日の疑問1:アプリケーション空間、ユーザー空間の仮想化とは、まだちゃんと理解できていない。どのレベルでDockerEngineは仮想化するのか)
  5. コンテナは環境依存しないので、開発環境で作成したアプリケーションをそのままデプロイすればそのまま動く(今日の疑問2:環境依存する部分は本当にないのかIPアドレス、MACアドレスとか。DockerEngineがそれを吸収するのか?あるいは環境情報は別途デプロイする必要があるのか?)
Dockerの利点
  1. 上記と重複する部分があるが、開発環境と本番環境の差異(CPU、メモリ量、ディスク量などは当然差異がある。しかしそれらはスケーラブルであることを前提にした作りにしておけば良い?)がないはずなので、開発環境のアプリケーションを本番環境にそのままおけば動く(はず)
その他(感想とか)
  1. コンテナ技術は、Docker以外にもあるが現在はDockerが主流。
  2. 仮想化技術の進歩は目覚ましい。コンテナ以外にも新しい技術がたくさん生まれては消えていっている。過去に確かSun Microsystemsが夢見ていた、どこでもなんでも同じように動く世界がだんだん実現しようとしてきているのか?