Submit Search
Using docker infrastructure
6 likes
2,026 views
Junya Niwa
An example of using Docker infrastructure in BigData analysis SaaS.
Internet
Read more
1 of 28
Download now
Downloaded 13 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
More Related Content
PDF
ROMA のアーキテクチャと社内事例
Rakuten Group, Inc.
PDF
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
PDF
MySQL負荷分散の方法
佐久本正太
PDF
OpenStack 101
Rongze Zhu
PPTX
Mod lua
do_aki
PDF
WALをバックアップとレプリケーションに使う方法
Takashi Hoshino
PDF
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
Ryosuke MATSUMOTO
PDF
HBase at LINE
Shun Nakamura
ROMA のアーキテクチャと社内事例
Rakuten Group, Inc.
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
MySQL負荷分散の方法
佐久本正太
OpenStack 101
Rongze Zhu
Mod lua
do_aki
WALをバックアップとレプリケーションに使う方法
Takashi Hoshino
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
Ryosuke MATSUMOTO
HBase at LINE
Shun Nakamura
What's hot
(20)
KEY
1台から500台までのMySQL運用(YAPC::Asia編)
Masahiro Nagano
PDF
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
PPT
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
dcubeio
PDF
WalBの紹介
Takashi Hoshino
PDF
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
Insight Technology, Inc.
PDF
QCon北京2015 sina jpool-微博平台自动化运维实践
Weibo Corporation
PDF
MySQL Casual な生活
Hisashi HATAKEYAMA
PDF
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
PPTX
MySQL 冗長化モデル
Zaki_XL
PPTX
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
真乙 九龍
PPTX
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
PDF
Introducing MySQL MHA (JP/LT)
Yoshinori Matsunobu
PDF
Mod mrubyについて
Ryosuke MATSUMOTO
PDF
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
PDF
Sql server 2016 always on 可用性グループ new features
Masayuki Ozawa
PDF
Always on 可用性グループ 構築時のポイント
Masayuki Ozawa
PPTX
20140518 JJUG MySQL Clsuter as NoSQL
Ryusuke Kajiyama
PDF
MaxScaleを触ってみた
Fujishiro Takuya
PDF
MySQL カジュアル 福岡 03
Aya Komuro
PDF
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
BrainPad Inc.
1台から500台までのMySQL運用(YAPC::Asia編)
Masahiro Nagano
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
dcubeio
WalBの紹介
Takashi Hoshino
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
Insight Technology, Inc.
QCon北京2015 sina jpool-微博平台自动化运维实践
Weibo Corporation
MySQL Casual な生活
Hisashi HATAKEYAMA
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
MySQL 冗長化モデル
Zaki_XL
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
真乙 九龍
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
Introducing MySQL MHA (JP/LT)
Yoshinori Matsunobu
Mod mrubyについて
Ryosuke MATSUMOTO
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
Sql server 2016 always on 可用性グループ new features
Masayuki Ozawa
Always on 可用性グループ 構築時のポイント
Masayuki Ozawa
20140518 JJUG MySQL Clsuter as NoSQL
Ryusuke Kajiyama
MaxScaleを触ってみた
Fujishiro Takuya
MySQL カジュアル 福岡 03
Aya Komuro
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
BrainPad Inc.
Ad
Viewers also liked
(12)
PPTX
日本におけるSaasの現状
tarosuzuki
PDF
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Yuuki Namikawa
PDF
MongoDB インサイド SaaS型業務アプリケーション
Yuki Ishikawa
PDF
おにいぽんでもわかるContainer
Takahiro Morimoto
PDF
20160916 ビッグデータシンポジウム オラクル公開資料
オラクルエンジニア通信
PDF
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Terui Masashi
PPTX
Rancher select
cyberblack28 Ichikawa
PDF
Amazon EC2を使った実践SaaS運用事例
Yuuki Namikawa
PPTX
CI/CD with Rancher CLI + Jenkins
Go Chiba
PDF
Rancher で Docker 利用!
Tetsurou Yano
PPTX
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
Nobuyuki Matsui
PDF
インフラエンジニアのためのRancherを使ったDocker運用入門
Masahito Zembutsu
日本におけるSaasの現状
tarosuzuki
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Yuuki Namikawa
MongoDB インサイド SaaS型業務アプリケーション
Yuki Ishikawa
おにいぽんでもわかるContainer
Takahiro Morimoto
20160916 ビッグデータシンポジウム オラクル公開資料
オラクルエンジニア通信
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Terui Masashi
Rancher select
cyberblack28 Ichikawa
Amazon EC2を使った実践SaaS運用事例
Yuuki Namikawa
CI/CD with Rancher CLI + Jenkins
Go Chiba
Rancher で Docker 利用!
Tetsurou Yano
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
Nobuyuki Matsui
インフラエンジニアのためのRancherを使ったDocker運用入門
Masahito Zembutsu
Ad
Similar to Using docker infrastructure
(20)
PDF
コンテナ時代にインフラエンジニアは何をするのか
gree_tech
PDF
Dockerの利用事例
maebashi
PDF
DOO-013_Docker 最新動向と Azure Container Service 入門
decode2016
PDF
捕鯨!詳解docker
雄哉 吉田
PDF
VMware が考えるコンテナと Kubernetes の世界
Yuichi Tamagawa
PDF
Acm2.1 short public
Yuhki Hanada
PPTX
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
PPTX
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
cloudconductor
PDF
Tech Dojo 02/09 IBM Japan CSM
勇 黒沢
PDF
Dockerの仕組みとIIJ社内での利用例
maebashi
PDF
運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
PDF
クラウド運用のためのストリームマイニング
Shin Matsumoto
PDF
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
PPTX
作られては消えていく泡のように儚いクラスタの運用話
Tsuyoshi Torii
PPTX
Let's Use OKE
Neo Xrea
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
PDF
Architecting on Alibaba Cloud - Fundamentals - 2018
真吾 吉田
PDF
Docker Swarm モード にゅうもん
Masahito Zembutsu
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
PDF
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
コンテナ時代にインフラエンジニアは何をするのか
gree_tech
Dockerの利用事例
maebashi
DOO-013_Docker 最新動向と Azure Container Service 入門
decode2016
捕鯨!詳解docker
雄哉 吉田
VMware が考えるコンテナと Kubernetes の世界
Yuichi Tamagawa
Acm2.1 short public
Yuhki Hanada
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
cloudconductor
Tech Dojo 02/09 IBM Japan CSM
勇 黒沢
Dockerの仕組みとIIJ社内での利用例
maebashi
運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
クラウド運用のためのストリームマイニング
Shin Matsumoto
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
作られては消えていく泡のように儚いクラスタの運用話
Tsuyoshi Torii
Let's Use OKE
Neo Xrea
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
Architecting on Alibaba Cloud - Fundamentals - 2018
真吾 吉田
Docker Swarm モード にゅうもん
Masahito Zembutsu
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
Using docker infrastructure
1.
SaaS開発における Dockerインフラ活用と課題 IIJ 丹羽
絢也
2.
自己紹介 • 丹羽 絢也(にわ じゅんや) – 3年目
• 業務 – IIJ GIO ストレージ&アナリシスサービス – アナリシス部分の開発・運用 • APIサーバ • クラスタ管理サーバ • コンテナ内で動作するアプリケーション – Hive + Hadoop • DB(MySQL + MHA)
3.
Dockerインフラの活用 • Dockerって何? •
Linux Container • Linux Namespace • Cgroup • オーケストレーション
4.
Dockerインフラの活用 • Dockerって何? •
Linux Container • Linux Namespace • Cgroup • オーケストレーション Dockerインフラを使った サービス開発のお話 Dockerインフラの事は hFp://www.slideshare.net/maebashi/dockeriij
5.
目次 • IIJ GIO
ストレージ&アナリシスサービス • Dockerインフラ • Dockerインフラ活用における課題 – ライフサイクル管理 – 運用
6.
目次 • IIJ GIO
ストレージ&アナリシスサービス • Dockerインフラ • Dockerインフラ活用における課題 – ライフサイクル管理 – 運用
7.
storage API ストレージ! ノード analysis API ユーザー data query 計算! ノード data data data IIJ GIOストレージ&アナリシスサービス container
8.
IIJ GIOストレージ&アナリシスサービス • 顧客の分離方式
– Hive + Hadoopは複数ホストで分散処理 – 複数ホストを複数のユーザで共有 – 単一クラスタの共有 • セキュリティ – 顧客毎にクラスタ化 • KVM? – オーバースペック – オーバーヘッド • – シンプル – プロセスなので、オーバーヘッドが小さい
9.
目次 • IIJ GIO
ストレージ&アナリシスサービス • Dockerインフラ • Dockerインフラ活用における課題 – ライフサイクル管理 – 運用
10.
Dockerインフラ • HadoopクラスタをDockerで構成したい –
Dockerコンテナオーケストレーション • 複数ホストで多数のコンテナを管理 • 複数ホストをまたいだネットワークの構成 • クラスタに属するコンテナ数の増減を素早く実施 – Docker Swarm – Kubernetes – Nomad(?) • Dockerコンテナオーケストレーションツール – doma(docker manager) – 独自開発
11.
Dockerインフラ • doma –
master/slave型 • HTTP REST API – クラスタリソース確保 – 設定ファイルの投入 – ネットワークの設定(通信の許可) – 起動 – 停止 – 更新(増減) – リソース解放 – 情報取得 slave slave slave master container container container container container container container container クラスタ1 クラスタ2 クラスタ3 空き slave slave slave master container container container container container container container container 物理ホスト
12.
• クラスタ管理 –
作成 – コンテナの増減 – 破棄 – 情報 • ホスト名等 – 監視 • アプリレイヤ 全体の構成(絵) slave slave slave master container container container container container container container container Analysis API 物理ホスト 操 作 空き DB クラスタ1 クラスタ2 クラスタ3 クエリ クラスタ管理 ク エ リ 監 視 DB
13.
目次 • IIJ GIO
ストレージ&アナリシスサービス • Dockerインフラ • Dockerインフラ活用における課題 – ライフサイクル管理 – 運用
14.
Dockerインフラ活用における課題 • ライフサイクル管理 – 設定
• 環境依存の設定やクラスタ毎に変化する設定 – 起動/監視 • コンテナが起動 != アプリから見て利用可能 • 故障検知 • 運用 – アプリケーションの更新
15.
Dockerインフラ活用における課題 • ライフサイクル管理 – 設定
• 環境依存の設定やクラスタ毎に変化する設定 – 起動/監視 • コンテナが起動 != アプリから見て利用可能 • 故障検知 • 運用 – アプリケーションの更新
16.
ライフサイクル管理:設定 • コンテナ内の設定 –
環境毎に変化(APIサーバのURL) – クラスタ毎に変化(コンテナのホスト名/アドレス等) image api.dev.example.com api.prd.example.com 開発環境 本番環境 Container(192.0.2.2) Container(10.0.0.2) Container(192.0.2.1) Container(10.0.0.1)
17.
ライフサイクル管理:設定 • 課題 –
環境やクラスタによって変化する設定をどう反映するか? – 外から全てのアプリ設定ファイルをテンプレートから作成? • コンテナ内の改修によってクラスタ管理サーバのテンプレート編集が必要に • 現在 – 変化する項目のみをJSONでコンテナに設置 – Dockerイメージ内でアプリ固有の設定ファイルを作成 • Ruby製スクリプト(chef-‐soloみたいなやつ) • コンテナ起動時に自動呼出 – JSON例 • アプリ設定の追加/変更はDockerイメージの更新で行う事が可能に • 変化項目が増える場合はJSONに追加していけばOK { "storage": {"endpoint": "storage.dev.example.com"}, "cluster": {"hosts": [ "c1cluster1", "c2cluster1"]}, "instance": { "memory": 8, "logical_cores": 4} }
18.
Dockerインフラ活用における課題 • ライフサイクル管理 – 設定
• 環境依存の設定やクラスタ毎に変化する設定 – 起動/監視 • コンテナが起動 != アプリから見て利用可能 • 故障検知 • 運用 – アプリケーションの更新
19.
ライフサイクル管理:起動/監視 • 起動時間 – コンテナの起動は数秒
– アプリケーション • Hive/Hadoop = Java • JVMの起動に1分 • コンテナの起動 != 利用可能 – 利用可能になったかどうかを監視する必要
20.
ライフサイクル管理:起動/監視 • 監視 – 多数のクラスタ/動的に構成が変わる
– アプリ影響の有るDockerインフラ側の故障 アプリレイヤ Docker インフラレイヤ サービス影響の有る故障の監視 slave故障等 OOM/過負荷等 コンテナの故障等
21.
ライフサイクル管理:起動/監視 • 監視ワーカー(Java) –
Executorフレームワーク • マルチスレッド • 定期実行 – Hive / Hadoopの機能を利用して監視 • クラスタの状態 – 10状態 – 総遷移数 46 – 初期化 -‐> 起動/異常 – 起動 -‐> 正常/異常 – 正常 -‐> 異常/起動/停止 – …
22.
ライフサイクル管理:起動/監視 • 状態一覧 –
初期化 クラスタの情報をDBに保存 – 停止 domaに対する設定が完了 – 起動 アプリの起動中 – 正常 – 異常 アプリの故障 – 一部異常 処理継続可能なアプリの故障 – 再起動 再起動処理の排他用 – 解放中 非同期な解放処理のための状態 – 解放済 – メンテナンス • 複雑化 – APIを介したクラスタ管理を提供すると複雑に • 同時に叩かれた場合への対応 • レスポンス時間の短縮 – 力技
23.
Dockerインフラ活用における課題 • ライフサイクル管理 – 設定
• 環境依存の設定やクラスタ毎に変化する設定 – 起動/監視 • コンテナが起動 != アプリから見て利用可能 • 故障検知 • 運用 – アプリケーションの更新
24.
運用 • コンテナ内アプリケーションの更新 – 必要な作業
1. Dockerfileでイメージを更新 2. イメージの配布 3. コンテナの停止 4. 新イメージを用いた起動 • 現状 – クエリが無い時に手動実行
25.
• 処理の有無を気にせず更新するには? –
同じ性能のクラスタを新イメージで立てる 1. 新規クエリは全て新クラスタに向ける 2. 実行中の処理が終わったら旧クラスタを落とす – Graceful Shutdown / Blue-‐Green Deployment – 安定するなら自動化も可能 • ジレンマ – 状態が増える – リソース消費が2倍 運用 旧イメージ 新イメージ メンテナンス開始 新規クエリ クエリ完了を検知、 旧クラスタ解放 クエリ 時間
26.
まとめ • Dockerインフラを活用してサービスを開発した –
アプリケーション実行環境のコード化 • Githubでのインフラ管理 – 環境が異なっても同じコンテナイメージを利用可能 • 結果として環境依存を排除 • immutable container – データは外部に持たせる – ログはfluentdで外に蓄積 • 使ってみて思った事 – アプリレイヤでの監視運用ベストプラクティス化が必要 • 複雑化 – 専用フレームワークがあっても良いのでは? • Consul、Kubernetes、Nomad • 良い所を取り入れていきたい
27.
サービス開発サイクル • Dockerイメージの作成 –
initスクリプトの作成 • コンテナ起動時に呼び出される • 必要なサービスを起動 – Dockerfile • initスクリプトの設置 • パッケージのインストール • イメージの配布 – 起動を高速化するため予め全ホストに配布 • Dockerインフラに起動を依頼(APIサーバ) – リソースの予約 – 設定ファイルの配布 – 通信の許可(ストレージ API、metastore) – 起動
28.
IIJ GIOストレージ&アナリシスサービス • クラスタ
– 複数(ユーザ指定)のDockerコンテナで構成 – Hiveクエリを発行する事で分散処理を実行 – 増減する事で処理性能を変化 ユーザA クラスタ1 クラスタ2 ユーザB クラスタ3
Download