どうも、こんばんは。
転職してコンサルタントになったたこやき後輩です。
中途未経験コンサルとして、その一週間で感じたことを自分の反省も含めて記事にしてみようと思います。新たに覚えたワードを一つとりあげて自分の言葉で説明できるようになるのが目的です。
今月からIT系の案件になり、いわゆるモダンな開発環境に身を置き、飛び交う用語についていくのに必死な毎日です。今までに使ったことのないツールやサービスも多々扱うので慣れるのに一苦労してます!ww
それを人に説明できるようになるのが今の目標という感じですね!
参考までに僕の今までの経歴を簡単に書いておきます。
2017/3:大学(農学部)を卒業
2017/4:IT未経験で独立系のSIerに就職
2021/7:独立系のSIerを退職
2021/8:未経験でコンサル会社に就職 ← イマココ
6週目は案件が変わってからの初めの週で、使用技術のキャッチアップなどで必死でしたw
7週目を見ていきましょう!!今回説明できるようになりたいワードはこちら!!
目次
Docker
今回取り上げるワードは「Docker」!!
モダンな開発環境(新しめの開発技術をつかってシステム開発を行うこと)では、もはや当たり前のワードですよね!「コンテナ」という言葉が入ることはわかるんですが…
これもまた全然人に説明ができないです…w
Docker(ドッカー)は、コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンソースソフトウェアあるいはオープンプラットフォームである。
Dockerはコンテナ仮想化を用いたOSレベルの仮想化によりアプリケーションを開発・実行環境から隔離し、アプリケーションの素早い提供を可能にする。かつその環境自体をアプリケーションと同じようにコード(イメージ)として管理可能にする。
Dockerを開発・テスト・デプロイに用いることで「コードを書く」と「コードが製品として実行される」間の時間的ギャップを大きく短縮できる。
「コンテナ仮想化」という言葉らへんで心が折れる…w
コンテナ仮想化という技術を図にすると以下の右の図のようになり、ホストOS(自分が使用しているPCのOS)を間借りして仮想環境を動かすので、従来の仮想化より素早く動作させることができます。
引用サイト:
ハイパーバイザーとの違いは? 「コンテナ技術」を活用する5つのメリット/デメリット (1/2)コンテナ技術は迅速なスケーラビリティ、柔軟性、使いやすさを保証するが、全てのワークロードに適しているわけではない。
少しややこしいかもしれないので、もうすこしふわっとまとめてくと、
コンテナ仮想化という技術がメインのキーワードで、Dockerはコンテナ仮想化技術を取り入れたツールの一つですね!!ざっくり覚えるのであれば、「Dockerは素早く仮想環境をつくるためのツールの一つ」と覚えるのがよいのかなと思います。w
ハイパーバイザー
よくDockerやコンテナ仮想化という言葉と対比されて出てくるのが、この「ハイパーバイザー」という言葉でコンテナ仮想化の前の仮想化技術の主流になります。
コンテナ仮想化の説明で従来より素早くと書きましたが、従来に当たるのがハイパーバイザーです。先ほどの図の左側になります。
引用サイト:
ハイパーバイザーとの違いは? 「コンテナ技術」を活用する5つのメリット/デメリット (1/2)コンテナ技術は迅速なスケーラビリティ、柔軟性、使いやすさを保証するが、全てのワークロードに適しているわけではない。
こちらは仮想環境上で、OSすらも仮想化して起動するので、起動が重いというデメリットがあるのですが、反対にOSのカスタマイズ自由度が高いというメリットがあります。
DockerだとLinuxベースのOSに限定されてしまいますが、ハイパーバイザーだとWindowsを選ぶこともできます!!
どちらにも一長一短はありますが、早さを求められる現代ではコンテナ仮想化を採用したツールの方が主流になりつつあり、コンテナ仮想化のデファクトスタンダード(事実上の標準)がDockerといった状態でしょうか。
DockerHub
DockerHubは、全世界のユーザが作ったコンテナ(Dockerの設定情報)を一元管理するリポジトリサービス(情報を管理する書庫のようなもの)を提供するWebサイトのことです。
DockerHubで公開されているコンテナは自由にダウンロードして自分のサーバーに簡単にデプロイすることができます。Dockerを開発するDocker社が営利目的で開発・運営しているサービスですが、基本的には無料ですべての機能が利用可能となっています。
GitとGitHubの関係に似てる感じがしますね。
Docker技術を使う上では、DockerHubを使わないことはほぼないのではないのでしょうか、サイトにアップロードされているコンテナを取得して自分のローカルPCでアドオン機能をつけるという使い方が主になるとおもいます。
まとめ
- Dockerは素早く仮想環境をつくるためのツールの一つ
- ハイパーバイザーはOSすらも仮想化して起動するのでOSの自由度が高く重い
- 全世界のユーザが作ったコンテナ(Dockerの設定情報)を一元管理するリポジトリサービス
以上が、私が中途未経験コンサルとして7週目に新たに学んだことです。
最近では当たり前の技術であるDockerですが、言葉や自分の解釈として説明しろと言われるとうまくできそうになかったので記事にしてみました!!参考になれば幸いです。
最近の気づきですが、ある技術を覚える上でそれ以前の技術と比較をして覚えると、どういった経緯で生み出された技術なのか理解できるので、呑み込みが早い気がします!
来週もがんばっていきます。
では、今回はこんなところで!!
※本記事では解釈を間違えている場合もありますがそこはご了承ください。
可能であればコメントにてご指摘いただけますと幸いです。
コメント