30
2016/2/18 Yahoo! JAPANが実践するOpenStackと 大規模環境でのコンテナ利用 伊藤 拓矢 システム統括本部サイトオペレーション本部 OpenStack 黒帯

Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

  • Upload
    yahoo

  • View
    6.393

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

2016/2/18

Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用

伊藤 拓矢 システム統括本部サイトオペレーション本部

OpenStack 黒帯

Page 2: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

自己紹介

名前: 伊藤 拓矢

所属: システム統括本部サイトオペレーション本部

インフラ技術1部

担当領域

・ OpenStackをベースとしたプライベートクラウドの

設計、開発、検証、構築、運用

・ アプライアンスベンダーとの調整、協力

・ サーバ、OSの検証、導入など

Page 3: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Agenda

• データセンタを支えるOpenStack事例紹介• ハードウェアライフサイクルについて

• アプリケーションレイヤでのライフサイクル• ソフトウェアライフサイクルについて

• ライフサイクルを実現する上でのコンテナ

• まとめ

Page 4: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

データセンタを支えるOpenStack事例紹介

Page 5: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

OpenStackとは?

• クラウド基盤を構築するソフトウェアのひとつ

• NASAとRackSpaceからコードがOpenStackプロジェクトに寄贈され、初回のリリースは2010年でした。現在も活発に開発が進んでいます。

Page 6: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

OpenStackとは?

様々なプロジェクトがある• インフラ基盤として動作するプロジェクト

- Cinder, Ironic, Manila, Neutron, Nova

- Barbican, Designate, Glance, Heat, Horizon, Keystone, Telemetry

• プラットホーム、ミドルウェア系プロジェクト

- Murano, Sahara, Swift, Trove

• コンテナ技術にフォーカスしたプロジェクト

- Kolla(OpenStackコントローラ側をコンテナ化)

- Magnum(COEのライフサイクル管理)

- Kuryr(Calico, Midonetなどコンテナネットワーク接続)

Page 7: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Yahoo! JAPANにおけるOpenStack

昨年10月27日にYahoo! JAPANは国内企業で初めてOpenStack SummitのKeynoteで発表しました

Page 8: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Yahoo! JAPANにおけるOpenStack

話したこと

• APIのフォーマットが変わらないことが重要

KVM

Nova

API

VM

wareCinder

API

Neutron

API

Contai

ner

Bare

metal

Apps

Platforms

Infrastructures

APIAPI

API API API API

Page 9: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Yahoo! JAPANにおけるOpenStack

話したこと

• 異なる環境であっても同じAPIで動作することが重要

KVM

Nova

API

VM

wareCinder

API

Neutron

API

Contai

ner

Bare

metal

Apps

Platforms

Infrastructures

APIAPI

API API API API

Page 10: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Yahoo! JAPANにおけるOpenStack

話したこと

• インフラのAPIはアプリに近づくことが前提

KVM

Nova

API

VM

wareCinder

API

Neutron

API

Contai

ner

Bare

metal

Apps

Platforms

Infrastructures

APIAPI

API API API API

Page 11: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Yahoo! JAPANにおけるOpenStack

話したこと

• Yahoo! JAPANではデータセンタ抽象化のコア技術としてOpenStackを採用した

KVMVM

ware

Bare

metal KVMVM

ware

Bare

metal

Page 12: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Yahoo! JAPANにおけるOpenStack

話したこと

• インフラ部門側からハードウェアライフサイクルを実施することが可能になった

KVMVM

ware

Bare

metal KVMVM

ware

Bare

metal

Page 13: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

データセンタ抽象化の一例

オープンハードウェアの採用

• 最初にOpenStack基盤へOCPの採用 後に大規模Hadoop基盤へ繋げる

• 利用者は意識しない部分での改革 従来型のサーバとOpenStack上の

操作性は変らない

Page 14: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

データセンタ抽象化の一例

オープンハードウェアの採用

• 技術向上とコスト貢献 海外にて直接交渉によるスキル向上

コスト意識を持たなくてはならない

Page 15: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

データセンタ抽象化

ハードウェア抽象化と継続的なハードウェアライフサイクルが実現

Page 16: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

アプリケーションのライフサイクルについて

アプリケーションのレイヤまで継続的なライフサイクルを実現したい

Page 17: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

アプリケーションのレイヤまで継続的なライフサイクルを実現したい

Page 18: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

アプリケーションのライフサイクルについて

ハードウェア抽象化と継続的なハードウェアライフサイクルが実現

継続的なソフトウェアライフサイクルを行い、実行環境をBaremetal, VM, コンテナに対応する

Page 19: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

アプリケーションの実行環境は人が選ばない

どこでデプロイされるかは関係ない

Page 20: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

どこで実行されるのか

性能 可搬性 簡易性

△ ○ ◎オーバーヘッド大きい完全に隔離された自由な環境OS含めると軽量とは言えずBaremetalからの移行は簡単

○ ◎ ?オーバーヘッド小さい最軽量を目指すと性能対要求リソースが最適化される移行ではなく1から組み上げたい

◎ × ×性能を使い切るアプリケーションも少ない多くの場合において無駄

Page 21: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

今日のフォーカス

コンテナ、Docker

Page 22: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

コンテナ(Docker)の良いところ

• イメージの管理性• 上手く作れば最軽量

• 持ち運びが楽

• レイヤを重ねなくても高いメリット

• コンテナは性能劣化が少ない• エミュレーションしていないのでVMより早い

• 計算資源に対する実性能が高いため高集約

Page 23: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

コンテナ(Docker)での注意点

VMからコンテナへの移行は難しい

1. イメージサイズが大きいとメリット薄- 可搬性が下がっていく、詰め込みすぎない

Page 24: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

コンテナ(Docker)での注意点

2. ネットワーク機能の違い

- 複雑なアプリケーションになるほど難しい

- コンテナ独自のNW機能も多い

- 実環境においてはCalicoなどの純粋なIPネットワークを重視

Page 25: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

コンテナ(Docker)での注意点

3. ストレージ機能の違い

- 永続的にデータを持たせることは考えない

- データはSwift/S3とDocker Volumeを使い分け(Object, File)

Page 26: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

コンテナの向き不向き

• モノリシックは不向きコンテナへ重量級のデプロイはメリットが無いケースが多い

従ってコンテナするなら、軽量化、分割化を行う

• マイクロサービスもコスト高いオーバーヘッドもあり、管理対象が増えてくる

トラブルシュート大変なので、ログとメトリクスの集約が必須

メトリクスも俯瞰できないと意味無し

マイクロサービスを取り入れていない場合は、コンテナ利用の前に、軽量化と分割化に取り組む

Page 27: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

コンテナの向き不向き

• コンテナを手でデプロイするのは大変大量にあるコンテナを組み上げていくのは人では無理

デプロイとオーケストレーションを自動でやる必要がある

• デプロイ自動化には、前段も自動化する必要があるいわゆるCIの実現

アプリケーションの作り方から変えていく

揃えるものは多い

Page 28: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

本日のまとめ

Page 29: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

本日のまとめ

• Yahoo! JAPANがOpenStackを導入した理由

• OCPへの取り組み

• コンテナを利用した継続的なソフトウェアライフサイクルについて

Page 30: Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi

Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止