DevOpsとコンテナ管理ソフトウエア ハイパーバイザー型仮想化 コンテナ型仮想化 コンテナ管理ソフトウエア OS ハイパーバイザー

Slides:



Advertisements
Similar presentations
プロジェクト名称 Inception Deck (Project Charter) 201X.XX.XX.
Advertisements

1 アップデート 株式会社アプライド・マーケティング 大越 章司
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
IT ソリューション塾 講義資料 © , all rights reserved by NetCommerce & applied marketing アップデート.
テスト環境の見直しで貴社の開発が劇的に変わる!! 納期や品質の向上の決め手は、テスト環境の最適化にあります。
IIS 4.0で開発をするコツ Webアプリケーション構築.
インターネット ショップを開設するための要件
Virtual Editionのご紹介 2012年12月12日.
システムインフラと仮想化/SDI ITソリューション塾・第22期 2016年6月1日.
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
物理実験 I 情報実験第9回 Modified 2005/12/2 徳永 義哉Original 2003/12/12 中神 雄一
Docker.
Virtual Editionのご紹介 (株)ネットジャパン 法人営業部 2012年7月18日 1.
Windows Azure 仮想マシン 入門.
ここに若林の絵が入る Ⅰ 従来型サービスの課題 Ⅴ Solaris基盤ヘルスチェックサービス ●従来型サービス Ⅱ 新サービスの概要
アジャイル開発とDevOpsの基礎 ITソリューション塾・第22期 2016年6月29日.
SoftLayerへのお引越し方法 お客様環境(或いは他社クラウド)からSoftLayerへの移行は簡単です。
PaaSの起源とxaaSの今後.
ビジネスパターンに基づく クラウドシステムのサービスレベル設計
垂直統合システム / Converged System
会社名: 氏名: 日付:.
SoftLayerメール配信サービス SoftLayer
ミドルウェア 山口 拡.
SOA/PaaS/API/マイクロサービス/サーバーレス
1 2 ワークスタイルを変えるOffice変革 クラウド導入をサポートする Microsoft CSPプログラムのご案内
Androidアプリの作成 07A1069 松永大樹.
SIビジネスの デジタル・トランスフォーメーション
PaaSの起源と発展 株式会社アプライド・マーケティング 大越 章司
システムインフラと仮想化/SDI Infrastructure & Virtualization/Software-Defined Infrastructure ITソリューション塾・第26期 2017年10月10日.
Virtual Editionのご紹介 2012年7月26日.
型付きアセンブリ言語を用いた安全なカーネル拡張
CPUの仕組み 1E16M002-5 阿部知也 1E16M007-3 伊藤達哉 1E16M026-9 小島祥太郎 1E16M069-8 峰晴晃優 1E16M070-0 宮路暁久 1E14M070-5 南元喜.
システムインフラと仮想化/SDI Infrastructure & Virtualization/Software-Defined Infrastructure ITソリューション塾・第23期 2016年10月19日.
DevOpsとこれからのシステム開発 ITソリューション塾・第23期 2016年11月17日.
ソフトウェア化するインフラと仮想化 Software-Defined Infrastructure & Virturization
「OSで儲けない」 Microsoftの新戦略
Microsoftのマルチプラットフォーム戦略
ERPとグローバル展開 © , all rights reserved by NetCommerce & applied marketing.
IaaS型クラウドにおける インスタンス構成の動的最適化手法
ソフトウェア化するインフラと仮想化 Software-Defined Infrastructure & Virturization
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
SOA/PaaS/API/マイクロサービス/サーバーレス
システムインフラと仮想化/SDI Infrastructure & Virtualization/Software-Defined Infrastructure ITソリューション塾・福岡 2016年10月20日.
アップデート 株式会社アプライド・マーケティング 大越 章司
実行時情報に基づく OSカーネルのコンフィグ最小化
$ DaaSの切り札! マネージドサービスと クラウドを使った先進のVDI 今だけ
オペレーティングシステム イントロダクション
DevOpsとこれからのシステム開発 ITソリューション塾・福岡 2016年11月25日.
ゲーム開発モデルの基礎.
OSSAJ 事務局 株式会社ウィズ.アール 古木 良子
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
SaaS/PaaSの起源とこれから 株式会社アプライド・マーケティング 大越 章司
ソフトウェア化するインフラと仮想化 Software-Defined Infrastructure & Virturization
サーバーレスとPaaS 株式会社アプライド・マーケティング 大越 章司
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
Javaの有償化と各社の対応 ITソリューション塾・第29期 2018年11月21日 株式会社アプライド・マーケティング 大越 章司
W3CがHTML5を勧告として公開 ( ).
Intel SGXを用いた仮想マシンの 安全な監視機構
複数ホストにまたがって動作する仮想マシンの障害対策
ネットワークをシンプルにする エンタープライズ NFV
データモデリング エンティティの切り出し.
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
PaaSの起源.
Virtualizing a Multiprocessor Machine on a Network of Computers
システムインフラと仮想化/SDI Infrastructure & Virtualization/Software-Defined Infrastructure ITソリューション塾・福岡 2017年7月27日.
本来の開発・制作業務に集中できる.
PaaSの起源 株式会社アプライド・マーケティング 大越 章司
フィンテック企業が Linux で SQL Server の パフォーマンスと スケーラビリティを取得
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
Presentation transcript:

DevOpsとコンテナ管理ソフトウエア ハイパーバイザー型仮想化 コンテナ型仮想化 コンテナ管理ソフトウエア OS ハイパーバイザー アプリ アプリ アプリ アプリ アプリ アプリ ミドルウェア ミドルウェア ミドルウェア ミドルウェア ミドルウェア ミドルウェア ライブラリ 環境変数 ライブラリ 環境変数 ライブラリ 環境変数 OS ライブラリ 環境変数 OS ライブラリ 環境変数 OS ライブラリ 環境変数 コンテナ コンテナ コンテナ カーネル カーネル コンテナ管理ソフトウエア カーネル 仮想サーバー 仮想サーバー 仮想サーバー OS ハイパーバイザー カーネル ハードウェア ハードウェア 隔離されたアプリケーション実行環境を提供する 【図解】コレ1枚で分かる仮想マシンとコンテナの違い ハードウェアに搭載されているプロセッサーやメモリの使用時間を細かく分割し、それぞれをひとまとめにして複数の個別独立したサーバーのように機能させるのが「サーバー仮想化」です。こうして作られた見かけ上のサーバーを「仮想サーバー」または、「仮想マシン」と言います。この仮想マシンを実現するソフトウェアがハイパーバイザで、VMwareのESXi、LinuxのKVM、MicrosoftのHyper-Vなどがあります。 一方、ひとつのOSに「コンテナ」と呼ばれる「他のユーザーからは隔離されたアプリケーション実行環境」を作り、あたかも個別独立したサーバーのように使おうというのが「コンテナ仮想化」です。これを実現するソフトウェアがコンテナ管理ソフトウェアで、Dockerと呼ばれるオープンソースのソフトウェアが圧倒的なシェアを占めています。 両者は、「隔離されたアプリケーション実行環境」を提供するということでは同様ですが、仮想マシンではそれぞれにOSを動かさなくてはなりません。そのために仮想マシン毎にプロセッサーやメモリを消費し、ストレージも必要です。一方のコンテナは、ひとつのOSで稼働しますので、プロセッサーやメモリの消費は少なく、ストレージの使用もわずかです。そのため、仮想マシンに比べ起動時間が短く、同じ性能のハードウェアであれば、より多くのコンテナを同時に動かすことができます。 また、コンテナ管理ソフトウェアが、ハードウェアやOS毎の違いを吸収してくれるため、既にアプリケーションやミドルウェアの稼働が確認されているコンテナであれば、他のサーバーに移して動かしても確実に動くことが保証されます。一方、仮想マシンでは実行環境が変われば、ハードウェアやOSの設定を確認しなければなりませんので、コンテナよりも手間がかかります。ただ、仮想マシンはひとつの独立したサーバーとして機能しますので、仮想マシンごとに異なるOSを動かすことができます。一方コンテナは1つのOSから作られているため、OSは同じでなくてはなりません。 システム資源の負担は大きく可搬性は低いが自由度が高い仮想マシン、システム資源の負担は小さく可搬性は高いがOSは限られるコンテナ。用途に応じて使い分ける必要があります。   各仮想マシンに1つのゲストOSが必要 1つのOS上で複数のコンテナを稼働 テストにおいて実行環境の差異を考慮する必要がない 開発環境下ではOSやDBのバリエ―ションが多くツールもさまざまなものが混在 テスト対象は多岐にわたり、それぞれに対応したテスト環境の準備に手間 各環境を準備するための知識を学ぶことが必要 Dockerによってそうした負担から解放され、テスト環境を簡便に構築できるようになり、時間とコストを削減できる 処理のオーバーヘッドが少なくリソース効率が良い 起動・停止が早い デプロイサイズが小さく軽量

DevOpsとコンテナ管理ソフトウエア インフラやOSの違いを吸収 そのまま本番で動かしたい(動作保証) 仮想化環境 コンテナ そのまま本番で動かしたい(動作保証) 開発から本番以降への時間を短くしたい 実行に必要な最小のサイズで移行したい アプリケーション アプリケーション 開発・実行環境 ミドルウェア 開発・実行環境 ミドルウェア オペレーティング システム コンテナ管理 動作保証 オペレーティング システム 仮想マシン サーバー (ハードウェア) ハイパーバイザー 動作保証 サーバー (ハードウェア) インフラやOSの違いを吸収

DevOpsとコンテナ管理ソフトウエア 開発しテストが完了したアプリは すぐに本番環境で実行させることができる 本番環境 テスト環境 アプリケーション開発者は、OSやインフラの違いを意識することなくアプリケーションを開発し、どこでも実行できるようになる Build,Ship and Run Any App,Anywhere 開発しテストが完了したアプリは すぐに本番環境で実行させることができる コンテナ コンテナ コンテナ アプリケーション アプリケーション アプリケーション 開発・実行環境 ミドルウェア 開発・実行環境 ミドルウェア 開発・実行環境 ミドルウェア コンテナ管理 【図解】コレ1枚でわかるDocker コンテナ管理ソフトウェアが、ハードウェアやOS毎の違いを吸収してくれるため、既にアプリケーションやミドルウェアの稼働が確認されているコンテナであれば、他のサーバーに移して動かしても確実に動くことが保証されます。 <参照>【図解】コレ1枚で分かる仮想マシンとコンテナの違い http://blogs.itmedia.co.jp/itsolutionjuku/2016/12/post_340.html この特性を利用すれば、アプリケーション開発者は、OSやインフラの違いを意識することなく、アプリケーションを開発することができます。また、運用管理者は、「コンテナ管理ソフトウェア」でOSやインフラの安定稼働を保証しておけばいいわけで、これまでのようにアプリケーション開発者と運用管理者がアプリケーション毎に本番環境への移行を個別に相談し対応しなくてもよくなります。 アプリケーション開発者は迅速にアプリケーションを開発、変更しユーザーに提供する、一方、運用管理者はシステムを安定稼働させるといったそれぞれの責任を独立して果たすことができるようになり、本番環境へのデプロイメント(移行作業)は迅速、頻繁に行えるようになり、アプリケーション開発や変更のメリットをユーザーが直ちに享受できるようになるのです。 このようなコンテナを実現する「コンテナ管理ソフトウェア」のひとつとして、ほぼ業界標準となっているのがDocker社の提供する「Docker」です。 Dockerが注目されるようになったのは、Dockerで動作が保証されているコンテナを生成する設定を「Dockerfile」として公開し、それを他のユーザーと共有できる仕組みを設けた点にあります。これによって、他のユーザーが作ったソフトウェアとそれを動かす手順を他のサーバーでもそのまま再現できるようになったことです。そのためハイブリッド・クラウドやマルチ・クラウドといった異なるOSやインフラでも動作保証される便利さが注目されているのです。 このような機能を持つDockerは、AWSやGoogleなどのクラウド・サービス・プロバイダーをはじめ、VMware、IBM、Dell、Red Hatなどの大手ITベンダーが採用を表明しています。またDockerは、もともとはLinux用に作られたものですが、MicrosoftもWindows Serverや自社のクラウドサービスであるAzure Platformでの採用を表明しており、コンテナ管理ソフトウェアとして広く普及しつつあります。   コンテナ管理 コンテナ管理 動作保証 動作保証 動作保証 オペレーティング システム オペレーティング システム オペレーティング システム サーバー (ハードウェア) サーバー (ハードウェア) サーバー (ハードウェア) 本番環境 テスト環境 開発環境

Hub DevOpsとコンテナ管理ソフトウエア 同一のプラットフォームでなくても動作保証されるので 第三者が作ったコンテナ(アプリケーションと実行環境) を共有することで、開発のスピードアップを実現できる。

マイクロサービス(Micro Service) モノシリックなアプリケーション マイクロサービス化されたアプリケーション 巨大な1枚岩のような Webブラウザ Webブラウザ Webブラウザ Webブラウザ Webブラウザ Webブラウザ ユーザー・インターフェイス アプリケーション・インスタンス* ユーザー・インターフェイス 顧客管理 個別データ 顧客管理 注文管理 注文管理 在庫管理 在庫管理 個別データ 個別データ 出荷管理 ソフトウェアは様々な機能を組み合わせることで、必要とされる全体の機能を実現します。 例えば、オンライン・ショッピングの業務を処理するソフトウェアは、ユーザー・インタフェースとビジネス・ロジック (顧客管理、注文管理、在庫管理など) という特定の業務を処理する機能を組合せることで実現します。必要なデータは、すべてのロジックで共有するデータベースに格納され、各ロジックはひとつのソフトウェアの一部として組み込まれます。もし、複数の注文があれば、その注文の単位でソフトウェアを並行稼働させることで対応できます。このようなソフトウェアをモノシリック(巨大な一枚岩のような)と呼びます。 ただ、このやり方では、商品出荷の手順や決済の方法が変わる、あるいは顧客管理を別のシステム、例えば外部のクラウド・サービスを利用するなどの変更が生じた場合、変更の規模の大小にかかわらず、ソフトウェア全体を作り直さなければなりません。また、変更を重ねるにつれて、当初きれいに分かれていた各ロジックの役割分担が曖昧かつ複雑になり、処理効率を低下させ、保守管理を難しいものにしてゆきます。さらにビジネスの拡大によって注文が増大した場合、負荷が増大するロジックだけ処理能力を大きくすることはできず、ソフトウェア全体の稼働数を増やさなくてはならず、膨大な処理能力が必要となってしまいます。 このようにビジネス環境が頻繁に変わる世の中にあっては、このやり方での対応は容易なことではありません。 この課題に対応しようというのが、マイクロサービス方式です。このやり方は、ソフトウェアを互いに独立した単一機能の部品に分割し、それらを連結させることで、全体の機能を実現しようとするもので、この「単一機能の部品」をマイクロサービスと呼びます。 個々のマイクロサービスは他とはデータも含めて完全に独立しており、あるマイクロサービスの変更が他に影響を及ぼすことはありません。その実行も、それぞれ単独に実行されます。 この方式を採用することで、機能単位で独立して開発・変更、運用が可能になること、また、マイクロサービス単位で処理を実行させることができるので、処理量の拡大にも容易に対応することができます。 出荷管理 共有データ 個別データ マイクロサービス 一連の注文処理は問題なく処理 注文が増えれば、インスタンスを増やすことで対応 機能変更が生じればアプリケーション全体を再構築 各マイクロサービスはインスタンスもデータも独立処理 各マイクロサービスは個別に変更や置き換えが可能 マイクロサービス毎に異なるチームで対応可能 インスタンス:メモリー上に展開して処理・実行できる状態となっているプログラムやデータ

オーケストレーション(Orchestration) コレオグラフィ(Choreography) オーケストレーションとコレオグラフィ オーケストレーション(Orchestration) コレオグラフィ(Choreography) 指揮者の指示に従う演奏方式 演劇や踊りなどの振り付け 全体の処理の流れを制御する指揮者にあたるプログラムが存在し、指揮者からのリクエストによってサービスを実行し、実行結果をレスポンスとして指揮者に返して処理を継続させるプログラム実行方式。 全体の処理の流れやサービスの呼び出しを制御する指揮者は存在せず、個々のサービスに予め与えられた動作条件や次にどのサービスを起動させるかといった振り付けに従って自律的に動作させるプログラム実行方式。 オーケストレーション・プログラム リクエスト リプライ サービス (アプリケーション機能) サービス (アプリケーション機能) リクエスト・リプライ方式で実行されるのが一般的 利用する全てのサービスは、指揮者であるプログラムが処理の順序や得られた結果に続く処理を制御。 各サービスは、そのサービスを制御する指揮者が行っている同一の処理のためだけに利用され、他の指揮者が制御する別の処理を引き受けて実行することはない。 サブルーチン・コールやメソッド・インボケーション(呼び出し)と同様の考え方。 イベント・ドリブン方式に向いている イベントの発生によって特定の業務処理サービスが駆動される方式。 イベントの例 新規に注文が入った 倉庫に商品が入庫した 新規顧客が登録された など 発生したイベントを他のサービスに通知することで、必要な処理を継続的に実行させる。 FaaS:Function as a Service イベントドリブン方式でアプリケーションを実行させることができるクラウドサービス AWSのLambda、MicrosoftのAzure Functions、GoogleのCloud Functionsなど

AWS Lambda プログラムを「関数」としてアップロード サーバーやサービスを立ち上げておく/ いちいち立ち上げる必要無し イベント(トリガ)により処理を起動 課金は処理に要した時間のみ メモリ容量や処理能力は自動で設定 毎日数件から毎秒数千件まで自動的にスケール https://www.school.ctc-g.co.jp/amazon/columns/ozawa/ozawa07.html http://www.slideshare.net/keisuke69/aws-lambda-46129981 クラウド処理のためサーバー障害が発生しない AWS以外の様々なWebサービスにも対応 イベントドリブンで最小限の処理を行う = IoTなどで活用

サーバーレスとサーバーレスアーキテクチャ サーバーレス = サーバーのセットアップや管理を行わなくともプログラムを実行できる 独立したWebサービスを 連携させる Webサービスを コンポーネントとして利用 FaaSによるクラウド上の コンポーネント連携 サーバー上でサービスが 稼働/待機 サーバー上でプロセスが 稼働/待機 イベントにより プロセスを起動 ASP/SaaS BaaS/mBaaS AWS Lambda PaaS API連携 Azure Functions Azure Service Fabric https://www.infoq.com/jp/news/2016/06/faas-serverless-architecture http://www.publickey1.jp/blog/16/qcon_tokyo_2016.html FaaS = Function as a Service IFTTT/マッシュアップ 様々なXaaS Google App Engine Google Cloud Functions サーバーレス・アーキテクチャ FaaS:Function as a Service イベントドリブン方式でアプリケーションを実行させることができるクラウドサービス