2014年を振り返る 今年の技術トレンドとdockerについて

60
Masahito Zembutsu @zembutsu Technology Evangelist; Creationline , Inc. Akasaka Tokyo, 4 Dec 2014 2014年を振り返る 今年の技術トレンドとDocker について

Upload: masahito-zembutsu

Post on 07-Jul-2015

44.364 views

Category:

Technology


2 download

DESCRIPTION

2014年12月4日(木) 株式会社リンク(東京都赤坂)18:00 ~ 21:00 ビール片手に!ゆくトレ くるトレ 2014 - 2015 発表資料

TRANSCRIPT

Page 1: 2014年を振り返る 今年の技術トレンドとDockerについて

Masahito Zembutsu @zembutsu Technology Evangelist; Creationline , Inc. Akasaka Tokyo, 4 Dec 2014

2014年を振り返る

今年の技術トレンドとDocker について

Page 2: 2014年を振り返る 今年の技術トレンドとDockerについて

自己紹介

@zembutsu 前佛 雅人 ➡Creationline, Inc.

➡Technology Evangelist • 2000年4月 ~ ホスティング事業者でのサポート・運用業務全般

• 2013年12月~ 現職で サポート・新技術検証・サービス開発

Why am I here?

ぜんぶつ まさひと

2000年からホスティングサービスで運用保守サポートに携わるエンジニア。クラウド・コンピューティング系の技術に興味があり、Eucalyptsuユーザー会の発起や初期のJAWS-UGなどコミュニティ活動に参加。現在はクリエーションライン株式会社に勤務し、サポート業務や新技術検証・サービス開発の傍ら、実家で農作 業のため東京と富山を往復する日々。趣味で監視や自動化に関するOSSの検証や翻訳を行っている。とりわけ監視・運用の省力化・最適化に興味。辛口の日本 酒が大好き。いつかは酒米を作りたい。

Software Design 2012年11月号 “Muninが手放せない理由”

Software Design 2014年9月・10月号 “オーケストレーションツールSerf・Consul入門”

クリエーションライン株式会社

テクノロジー エバンジェリスト

Page 3: 2014年を振り返る 今年の技術トレンドとDockerについて

まとめ

Page 4: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 4 / 60 2014年を振り返る

おさらい

今年の流行は Docker でしょう ➡ Docker というよりアプリケーションのコンテナ化

➡ 仮想化とコンテナ化の違い

➡ 新しい課題も沢山

個人的には ➡ 自動化支援ツール

• Serf, Consul, Terraform

➡ Internet of Things (IoT) • Edision

いきなりですが、結論からスタート! 多分、今年の流行はDockerだと思うのですが、何かしら理由が欲しいね、というのが前半です。後半は、個人的なオーケストレーションやIoTの話題を取り上げています。

Page 5: 2014年を振り返る 今年の技術トレンドとDockerについて

2014年の流行…!!

Page 6: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 6 / 60 2014年を振り返る

流行語のトレンド

流行語といえば ”新語・流行語大賞” ➡ 2014年のトップテン

• ダメよ~ダメダメ • 集団的自衛権 • ありのままで • カープ女子 • 壁ドン • 危険ドラッグ • ごきげんよう • マタハラ • 妖怪ウオッチ • レジェンド

☞ http://singo.jiyu.co.jp/ “「現代用語の基礎知識」選 ユーキャン新語・流行語大賞とは この賞は、1年の間に発生したさまざまな「ことば」のなかで、軽妙に世相を衝いた表現とニュアンスをもって,広く大衆の目・口・耳をにぎわせた新語・流行語を選ぶとともに、その「ことば」に深くかかわった人物・団体を毎年顕彰するもの。”(同サイトより引用)

輝く女性 STAP細胞はあります バックビルディング まさ土 トリクルダウン デング熱 ダメよ~ダメダメ 2025年問題 危険ドラッグ アイス・バケツ・チャレンジ 家事ハラ マタハラ ありのままで レリゴー こぴっと ごきげんよう リトル本田 J婚 ゴーストライター タモロス マイルドヤンキー リベンジポルノ JKビジネス 絶景 レジェンド ゆづ 妖怪ウォッチ 塩対応 マウンティング(女子) こじらせ女子 女装子 号泣会見 セクハラやじ 集団的自衛権 限定容認 積極的平和主義 勝てない相手はもういない カープ女子 ワンオペ ハーフハーフ 消滅可能性都市 壁ドン ミドリムシ 壊憲記念日 イスラム国 雨傘革命 昼顔 塩レモン ビットコイン エボラ出血熱

今年も色々ありました。

Page 7: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 7 / 60 2014年を振り返る

流行語のトレンド

過去の業界関係な流行語 ➡ 1984年(第一回)

➡ 1986年 • ファミコン

➡ 1995年 • インターネット

➡ 1999年 • 西暦2000年問題 • iモード

➡ 2000年 • IT革命

☞ http://singo.jiyu.co.jp/ “「現代用語の基礎知識」選 ユーキャン新語・流行語大賞とは この賞は、1年の間に発生したさまざまな「ことば」のなかで、軽妙に世相を衝いた表現とニュアンスをもって,広く大衆の目・口・耳をにぎわせた新語・流行語を選ぶとともに、その「ことば」に深くかかわった人物・団体を毎年顕彰するもの。”(同サイトより引用)

Page 8: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 8 / 60 2014年を振り返る

流行語のトレンド

➡ 2005年 • ブログ

➡ 2006年 • ミクシィ • ググる • YouTube

➡ 2010年 • 3D • 2位じゃダメなんですか

➡ 2011年 • スマホ • ソーシャルメディア • タブレット

➡ 2013年 • ビッグデータ • マイナンバー

➡ 2014年 • ビットコイン

会場でもご指摘いただきましたが、まだ「クラウド」が流行語になったことは無いんですね。ということで、業界用語的な流行は、新語・流行語大賞からは辿りづらいことが分かりました。

Page 9: 2014年を振り返る 今年の技術トレンドとDockerについて

業界の流行を探るには…?

Page 10: 2014年を振り返る 今年の技術トレンドとDockerについて

はてなブックマーク!

Page 11: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 11 / 60 2014年を振り返る

はてなブックマークで傾向を探る?

“はてなブックマーク” ➡ ソーシャルブックマーク・サービス

• URLの共有、コメント機能、スター付与 • 登録会員数:415万人、月間利用者数:2,400万人

➡ 利用者層

☞ http://b.hatena.ne.jp/

☞ 図表引用:はてなメディアガイド 2015年1-3月版 p.5 “ユーザー属性”より http://htn.to/HC64Ez

利用者の業種・職種の傾向を見ると、はてブを辿るのが良さそうに思いました。

Page 12: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 12 / 60 2014年を振り返る

どのように傾向を把握?

目的 ➡ 今年流行した業界用語の把握

施策 ➡ はてなブックマークのホッテントリを集計

• 集計対象は「テクノロジー」のカテゴリー

➡ 対象範囲 • 2014年1月1日~11月28日のホッテントリ

➡ 集計方法 • ホッテントリの「タグ」×「ユーザ数」を集計

– タイトルの形態素解析を行ったがノイズが大きい – ページのタイトルと内容が一致しない事が多い – タグであれば、おおよそ妥当であろう

☞ http://b.hatena.ne.jp/hotentry

ホッテントリ=はてなブックマークの人気エントリー、またはそこに表示されたエントリーのこと。ホットエントリーの略称。Hot entry。

☞ ただし、この集計方法は厳密には正確ではない。8月以降は50件/日のデータを取得しているが、以前は20件/日の場合もあるため。まぁ、大まかな傾向を把握するためということで、ご勘弁いただければ。。。

厳密に考えると、このやりかたは乱暴すぎると思いますし、データも正確ではないのですが、、おおまかな傾向を知りたかったので、これで良しとさせていただければと。。

Page 13: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 13 / 60 2014年を振り返る

タイトルで集計 ← 失敗

wgetで取得 ➡ ホッテントリのURLを取得する

• http://b.hatena.ne.jp/hotentry/it/YYMMDD?layout=list – YY … 年 – MM … 月 – DD … 日

集計方法 ➡ タイトルに含まれる文字を「わかちがき」し、かつ

「形態素解析」で品詞毎に分けた後、名詞を抽出する スクリプトを作成

☞ 実際にはウエイトを入ながら、時間をかけて取得するスクリプトを作成しました。

一番初めに考えたのは、はてブされたタイトルを品詞毎に分解して、人気のワードを出そうとしました。しかし・・・この方法は失敗しています。

Page 14: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 14 / 60 2014年を振り返る

タイトルで集計 ← 失敗

分かち書き ➡ 文章において語の句切りに空白を挟んで記述すること

• 欧文は単語と単語に空白 – This■is■a■pen■!

• 日本語は漢字かな交じり文なので、単語・文節で区切る – これ■は■ペン■です■ !

形態素解析 ➡ 計算機を用いた自然言語処理の基礎技術の1つ

➡ 文法の知識や辞書をもとに、品詞を判断する

➡ オープンソースの mecab を仕様

☞ Morphological Analysis

ちなみに、この時使った「わかちがき」と「形態素解析」について。

Page 15: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 15 / 60 2014年を振り返る

mecab

mecab = 日本語の形態素解析エンジン ➡ mecab セットアップ

# wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz # tar xvfz ./mecab-0.996.tar.gz # cd mecab-0.996/ # ./configure --with-charset=utf8 --enable-utf8-only# make # make check # make install

➡ IPA 辞書セットアップ # wget https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz # tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz # cd mecab-ipadic-2.7.0-20070801

☞ http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html MeCab: Yet Another Part-of-Speech and Morphological ANalyzer

mecab (めかぶ) は簡単に使えるので、ちょっとした語句の集計であれば、すぐに使えるのでお勧めです。本体と辞書のセットアップを行います。

Page 16: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 16 / 60 2014年を振り返る

mecab

➡ Perl 用モジュールのセットアップ $ wget https://mecab.googlecode.com/files/mecab-perl-0.996.tar.gz $ tar xvfz mecab-perl-0.996.tar.gz $ cd mecab-perl-0.996 $ perl Makefile.PL $ make $ sudo make install

☞ http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html MeCab: Yet Another Part-of-Speech and Morphological ANalyzer

$ perl test.pl 0.996 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ (略) に 助詞,副詞化,*,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS filename: /usr/local/lib/mecab/dic/ipadic/sys.dic charset: utf-8 size: 392126 type: 0 lsize: 1316 rsize: 1316 version: 102

Perl 用のスクリプトを組みます。

Page 17: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 17 / 60 2014年を振り返る

mecab を Perl で扱うには

#!/usr/bin/perl use MeCab; my $sentenct = "となりの客はよく柿食う客だ"; my $model = new MeCab::Model(); my $c = $model->createTagger(); print $c->parse($sentence); $ perl ./test.pl となり 名詞,一般,*,*,*,*,となり,トナリ,トナリ の 助詞,連体化,*,*,*,*,の,ノ,ノ 客 名詞,一般,*,*,*,*,客,キャク,キャク は 助詞,係助詞,*,*,*,*,は,ハ,ワ よく 副詞,一般,*,*,*,*,よく,ヨク,ヨク 柿 名詞,一般,*,*,*,*,柿,カキ,カキ 食う 動詞,自立,*,*,五段・ワ行促音便,基本形,食う,クウ,クウ 客 名詞,一般,*,*,*,*,客,キャク,キャク だ 助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ EOS

コードのサンプルです。あとはHTMLのパーサーと組みあわせて、単純に集計するだけです。 if (open(DAT,"./$file")) {

foreach $dat (<DAT>) { #if ($dat =~ /hb-entry-link-container/) { if ($dat =~ /(target="direct">)(.*)(<¥/a>)/) { print "$2"; } if ($dat =~ /(<span>)(¥d+)(<¥/span>)(¥s)(users)/) { print "¥t$2"; } if ($dat =~ /(class="tag">)(.*)(<¥/a>)/) { print "¥t$2"; } if ($dat =~ /(<li class="follow">)/) { print "¥n"; } } close(DAT); } ↓ foreach my $sentence (<DAT>) { my $users; ($sentence, $users) = split(/¥t/, $sentence); for (my $m = $c->parseToNode($sentence); $m; $m = $m->{next}) { my $line = $m->{feature}; my ($parse, $line) = split(/¥,/, $line, 2); #print "[$parse] "; if ($parse eq '名詞') { printf("%s¥t%s¥n", $m->{surface}, $m->{feature}); $WORD{$m->{surface}}++; print "$users¥n"; $WORD{$m->{surface}}+=$users; # } } }

Page 18: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 18 / 60 2014年を振り返る

タイトルで取得

Chromebook購入後に、究極のPCへ変貌させるWebサービスたちが完璧過ぎ! | シェアしたくなる最新のWebサービス・ITニュース情報を... 【翻訳】それでも独自のCSVを書くつもりですか? | POSTD .NET Core is Open Source - MSDN Blogs Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask) - Programming Log [速報]マイクロソフト、「.NET server framework」のLinuxとMacOS X用オフィシャルディストリ ビューションを発表。.NETアプリケ... 感嘆符・疑問符の後に全角空白(スペース)が必要になる理由と、Webメディアの表記ルールについて | 株式会社LIG デザインのためのデザイン Swiftで遊んでますか? - クックパッド開発者ブログ 名前や用途が似ているLinuxコマンドの整理 - ももいろテクノロジー 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 【裏ワザ】Amazonで9割引き商品を3秒で見つける方法|Ferret [フェレット] Visual Studio Community 2013 A Full-Featured IDE - FREE Start coding the app of your dreams for Windows, Android, and iOS. デザイナーとエンジニアの良い関係 // Speaker Deck Wi-Fiの調子が悪い時に設定した項目4つ+α | ごりゅご.com 「個」から「集」のデザイン 通勤・通学にオススメ!!『iPhone』でガシガシ耳読書する方法。もちろん無料です。 - なわとび1 本で何でもできるのだ FINAL FANTASY Record Keeper の作り方 言葉の壁はアプリで越える。海外行くならマストで入れておきたい翻訳アプリ | ライフハッカー[日本版] 見やすいプレゼン資料の作り方 - リニューアル増量版 ニュースキュレーションアプリ界隈もそろそろ淘汰が始まるのでしょうか(山本 一郎) - 個人 - Yahoo!ニュース Material Design対応の使えるCSS・JSフレームワーク集?|?レンタルサーバーのCPIスタッフブログ クッキーは死んだ:そして Facebook/Google/Apple の広告が激変している | Agile Cat --- in t

そして、このようにタイトルを取得して集計をするのですが・・・

Page 19: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 19 / 60 2014年を振り返る

形態素解析して集計した結果

-=7076 バイラルメディア=2333 BUZZNEWS=2142 悪質=2142 ブログ=1924 対処=1878 Yahoo=1878 フルボッコ=1878 !=1878 スマホガイド=1878 ...=1702 アプリ=1636 |=1609 レビュー=1511 制作=1396 一覧=1391 15=1301

☞ ある月のデータを元に形態素解析し、出現数+ユーザー数を加えたもの

役に立ちません。。。ちょっとデータ量が多いので辿るのが・・・

Page 20: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 20 / 60 2014年を振り返る

集計対象をタグに切り替えた結果

プログラミング=341731 webサービス=265783 programming=213861 デザイン=207194 まとめ=165018 仕事=163495 webデザイン=155831 web=153856 アプリ=136559 セキュリティ=134303 ネタ=126988 開発=123701 security=108389 あとで読む=99649 web制作=95415 iPhone=76273 考え方=72756 ビジネス=70396 javascript=67834 エンジニア=64690

☞ HTML構文からホッテントリ対象のタグを抽出してカウント

タイトルを元に集計するのではなく、エントリにつけれた「タグ」に変更。

Page 21: 2014年を振り返る 今年の技術トレンドとDockerについて

結果

Page 22: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 22 / 60 2014年を振り返る

2014年の傾向

トップには「プログラミングが」入り込みました。ジャンル別に集計すると・・

Page 23: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 23 / 60 2014年を振り返る

開発関連では?

0

1,000

2,000

3,000

4,000

5,000

6,000

1月

2月

3月

4月

5月

6月

7月

8月

9月

10月

11月

hate

bu

docker

gitやgithubは一般的に使われていますので、今年はやはりDockerでしょう!

Page 24: 2014年を振り返る 今年の技術トレンドとDockerについて

Docker 流行の理由とは?

Page 25: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 25 / 60 2014年を振り返る

Dockerとは?

Docker ➡ アプリケーションの構築・運搬・実行システム

➡ オープンソース・ソフトウェア • Apache License 2.0

Docker, Inc ➡ 元々は PaaS の dotCloud を提供 → 売却 (2014年)

➡ 2013年10月 • 社名を dotCloud, Inc から変更 • Dockerに注力

➡ 2014年6月 • Docker 1.0 をリリース

☞ http://www.docker.com/

Page 26: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 26 / 60 2014年を振り返る

何をしてくれるのか?

Docker の構成要素 ➡ Docker エンジン…コンテナ化するためのツール

➡ Docker Hub…アプリケーション共用とワークフローの自動化

Docker の役割 ➡ 構築 (Build)

• 開発者が Docker コンテナを使って開発

➡ 運搬 (Ship) • アプリケーションを Docker 化 (Dockrerize) して、

作成したコンテナをどこにでも展開

➡ 実行 (Run) • データセンターやクラウド環境を問わず、

どこででもコンテナ上のアプリケーションを実行可

☞ 日本では開発担当者向けのツールとして認知されています(書籍で登場件数・ウェブサイト上での下検索)が、Dockerは運用担当者向けのツールでもあります。

» “Docker is the open platform for developers and sysadmins to build, ship, and run distributed applications”

» https://www.docker.com/whatisdocker/

Page 27: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 27 / 60 2014年を振り返る

docker run docker pull docker …

docker hub ( public

repository) アプリケーション

Docker の利用イメージ

Page 28: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 28 / 60 2014年を振り返る

Dockerの良いところ

アプリケーション開発者向け ➡ 様々な言語環境や、開発環境を利用できる ➡ Docker化された環境は、どこでも利用できる

• 開発環境、テスト環境、本番環境

➡ Docker Hub を通して環境の共有 ➡ バージョン管理の容易さ

システム管理者向け ➡ Dockerコンテナ上で動くアプリケーションと、

基盤となるシステム管理を分離できる ➡ 迅速なスケールアップやスケールダウンができる

Page 29: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 29 / 60 2014年を振り返る

開発サイクル

アプリケーション開発

Docker化して運搬

様々な環境で実行

Page 30: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 30 / 60 2014年を振り返る

Dockerの構造

クライアント・サーバ型の設計 ➡ Docker デーモン

• ホストマシン上で動作し、クライアントと通信 • コンテナの構築・実行や、コンテナの配付を行う役割

➡ Docker クライアント • “docker” バイナリを実行することで、デーモンと通信

Docker 内部 ➡ Docker イメージ … Read Only のテンプレート ➡ Docker レジストリ … イメージを置く場所 ➡ Docker コンテナ … アプリケーションが必要な全て

• これが Docker の実行コンポーネント

Page 31: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 31 / 60 2014年を振り返る

仮想サーバ vs Docker

➡ 仮想サーバ • アプリケーションを実行する時、

実行バイナリやライブラリに加え OS 領域データ ( 数GB以上) が必要

➡ Docker • コンテナにはアプリケーションに

依存するバイナリとライブラリのみ • 数百MB程度~のコンテナ • 他のコンテナ間で kernel を共有

利用者視点では、起動時間の違いが大きいです。仮想サーバはOSの起動時間が必要です。コンテナであれば、起動そのものは最小構成で一瞬~数秒程度です。

Page 32: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 32 / 60 2014年を振り返る

動作環境

対応OS ➡ Linux

• Ubuntu Trusty14.04, Precise14.04, Raring 13.04 • Debian 7.5 Wheezy, 8.0 Jessie • Red Hat Enterprise Linux 6, 7 • CentOS 6, 7 • Gentoo, Arch Linux, Fedora, openSUSE, ..etc

➡ Mac OS X • Mac OS X 10.6 > • Boot2Docker • インストーラー Docker for OS X installer

➡ Windows • Windows 7.1 , 8 • Boot2Docker • インストーラー Docker for Windows Installer

☞ 参考

https://docs.docker.com/installation/

LinuxだけでなくMacOSやWindows上でも boot2docker を通して、dockerのコマンドが普通に使えます。

Page 33: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 33 / 60 2014年を振り返る

Linux のセットアップ

Red Hat Enterprise Linux ➡ RHEL7 … 標準パッケージを使用

$ sudo subscription-manager repos --enable=rhel-7-

server-extras-rpms

$ sudo yum install docker

➡ RHEL6 … EPEL リポジトリを使用 $ sudo yum –y install docker-io

$ chkconfig docker on

$ service docker start

CentOS ➡ CentOS7 … 標準パッケージ ➡ CentOS6 … EPELリポジトリを使用

☞ Get Started with Docker Containers

in RHEL7 » https://access.redhat.com/articles

/881893

☞ https://docs.docker.com/installation/centos/

非常に簡単です。オープンソースとして配付されているので、使おうと思えば、すぐに利用出来ます。

Page 34: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 34 / 60 2014年を振り返る

Linux のセットアップ

Ubuntu ➡ Trusty 14.04

$ sudo apt-get update

$ sudo apt-get install docker.io

$ sudo ln -sf /usr/bin/docker.io

/usr/local/bin/docker

$ sudo sed -i '$acomplete -F _docker docker'

/etc/bash_completion.d/docker.io

$ source /etc/bash_completion.d/docker.ioRHEL6 … EPEL リポジトリを使用

$ sudo yum –y install docker-io

$ chkconfig docker-io on

$ service docker-io start

☞ Get Started with Docker Containers in RHEL7

» https://access.redhat.com/articles/881893

Page 35: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 35 / 60 2014年を振り返る

コンテナの基本操作

Docker の実行 ➡ Docker はコンテナの中でアプリケーションを実行

• $ docker run

➡ 実行するには • $ sudo docker run ubuntu:14.04 /bin/echo ‘Hello, world’

Hello, world

» 「docker」 バイナリに対して、実行を意味する「run」を指定

» 「ubuntu:14.04」 というリソース=イメージとなるコンテナ名称を指定

自分自身のホスト上でイメージを検索し、見つからなければ Docker Hub からダウンロードする

» コンテナに対して 「/bin/echo ‘Hello, world’」の実行を伝える

» コンテナは処理が終わると、自動的に停止する

Page 36: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 36 / 60 2014年を振り返る

コンテナの基本操作

➡ 対話型コンテナの実行 • $ sudo docker run –t –i ubuntu:14.04 /bin/bash

root@af8bae53bdd3:/# » 「-t」 … 疑似tty・ターミナルをコンテナに割り当てる » 「-i」 … コンテナの標準入力(STDIN)を双方向に取得する

» 現在のディレクトリは、ルート・ディレクトリ » ディレクトリ内には、一般的な Linux のディレクトリ階層 » 「exit」でコンテナ終了

☞ コンテナを終了するとイメージに対する変更は全て破棄されます

Page 37: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 37 / 60 2014年を振り返る

コンテナの基本操作

➡ デーモン化されたコンテナの操作 • $ docker ps

» 「docker ps」コマンドを実行すると、コンテナの状態を確認できる

» 「CONTAINER ID」コンテナ起動時に表示されたコンテナID

» 「IMAGE」イメージ名称で、ubuntu:14.04

» 「COMMAND」先ほど指定した「/bin/sh –c ~」が実行中

» 「CREATED」作成時間

» 「STATUS」稼働状況

» 「PORT」ポートの設定を行っている場合は表示

» 「NAMES」イメージ名称で、指定しない場合は自動的に付与

• $ docker logs

» コンテナの中の状態を確認する

Page 38: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 38 / 60 2014年を振り返る

その他

データ保存 ➡ ‘docker commit’ しないとデータは保存されない

• パッチあてや検証が楽になる • 検証が終われば、コンテナを破棄するだけ • 間違いがあっても、commit した時点に戻すことができる

➡ 動的データは ‘-v’ で外部(ホスト側)に保存する

Page 39: 2014年を振り返る 今年の技術トレンドとDockerについて

Docker(コンテナ化)と課題

Page 40: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 40 / 60 2014年を振り返る

課題

構成 ➡ 複数台のコンテナ環境を、どのように管理するのか?

運用 ➡ 監視設定

➡ ログ

➡ セキュリティ

開発環境では便利なツールですが、実際に運用するとなると、いくつかの課題がでてきます。

Page 41: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 41 / 60 2014年を振り返る

ログ管理

Dockerはログ管理機能を提供しない ➡ 代替手段

• コンテナ内のアプリケーション自身が、直接コンテナ外に送る • コンテナがホスト側のボリュームをアタッチし、ホストに保存する • ログ収集アプリケーションを使う

– fluentd – logstash – Apache Flume

Page 42: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 42 / 60 2014年を振り返る

監視と運用

コンテナ監視 ➡ 1ホスト・1コンテナ運用

• リソース上限が明確なので、仮想サーバーの監視と同様 • Docker の利点であるインフラ層とアプリ層の分離ができない

➡ 1ホスト・複数コンテナ運用 • コンテナのリソースを直接参照するツールが提供されていない • 現状は、1ホスト・1コンテナ運用が主流だったり、

開発環境での利用が主のため、あまり課題になっていない可能性

➡ 運用シーンを考えると、監視の自動化・省力化は欠かせない • 今後の課題

Page 43: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 43 / 60 2014年を振り返る

kubernates

コンテナ管理ツール ➡ Google が開発

• https://github.com/GoogleCloudPlatform/kubernetes

➡ 構成要素 • Pod • Label • Services

Page 44: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 44 / 60 2014年を振り返る

Chef-container

目的 ➡ コンテナの構成管理を自動化

• https://docs.getchef.com/containers.html

Chef-container ➡ Linux コンテナを管理するための chef クライアント

• chef-init で設定初期化 • chef-client を使えば、SSH を使わずに環境構築 • knife container が docker build や docker init を扱う • 通常のサーバーリソースと同様にコンテナを管理

Page 45: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 45 / 60 2014年を振り返る

クラウド連携サービス

Google Container Engine

Amazon EC2 Container Service

Page 46: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 46 / 60 2014年を振り返る

オープンソースでも同様の動き

rancher.io

Page 47: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 47 / 60 2014年を振り返る

Page 48: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 48 / 60 2014年を振り返る

Rocket

Page 49: 2014年を振り返る 今年の技術トレンドとDockerについて

なぜDockerなのか?

Page 50: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 50 / 60 2014年を振り返る

仮説

どこかで見たような印象 ➡ 仮想化

• Xen , KVM → クラウド • オープンソースのコミュニティが牽引 • ハードウェアとOSが1対1の対応 • API

➡ コンテナ化 • LXC, Docker, Rocket … → ?? • オープンソースのコミュニティが牽引 • ハードウェアとアプリケーションを分離 • API

Page 51: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 51 / 60 2014年を振り返る

Docker流行のまとめ

重要な事 ➡ Docker は コンテナを動かすプラットフォーム

• 1. 「API」があると様々なサービスと連携しやすい • 2. 「コード化」してインフラを管理できること

➡ これらを通して「自分のやりたいことが、すぐできる」 • ???「あんなこといいな、できたらいいな」

Dockerについて詳細 ➡ Software Design 2014年12月号

➡ Docker User Guide 日本語版(仮) • http://qiita.com/zembutsu/items/444396b76e0db2c04c2b

Dockerが注目されているのは、これまでやりたかった事が、より便利になったからではないでしょうか。同じ事は仮想化でも出来るかもしれませんが、速さや簡単さでコンテナ化が勝っていると思います。しかし、その分、人間が管理するには複雑になってきています。このあたりをどう解決していくかが、鍵になりそうです。

Page 52: 2014年を振り返る 今年の技術トレンドとDockerについて

個人的な流行

Page 53: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 53 / 60 2014年を振り返る

自動化運用支援ツール

オーケストレーション・ツール ➡ Serf

• メンバ管理とイベント同時実行 • 非中央集権型のクラスタをゴシップ・プロトコルで構成

➡ Consul • サービスレベルでの監視とイベント実行 • Key Value Storage 、GUI ( HTTP ) 、DNS を持つ

➡ Terraform • クラウド・インフラ基盤のコード化 • AWS,

☞ https://serfdom.io/

☞ http://consul.io/

☞ https://terraform.io/

自分の中では2つあります。1つは、2014年は、Hashicorp社が発表した数々のソフトです。この1年で多くの機能実装が進みました。

Page 54: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 54 / 60 2014年を振り返る

仕事が楽になる、楽しくなるツール

なぜオーケストレーション・ツール? ➡ 複数台のサーバ管理が前提になる時代

• 開発は、構成管理ツール ( Chef, Puppet, Ansible 等 ) • 運用でも、効率的に行う必要性

➡ 人間がボトルネックになっている • 時間が掛かる • 間違える

➡ 監視一次対応(判断不要な手順書)レベルを自動化 • 実際には作り込みが必要だし、パーツも足りない

仮想化やクラウドでは、まだ人間が直接介在する余地がありました。もうそろそろ、機械に任せるところは任せないと、人間が付いていけない領域に近づいています。死人がでるんじゃ・・・

Page 55: 2014年を振り返る 今年の技術トレンドとDockerについて

最後に、もう1つ

Page 56: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 56 / 60 2014年を振り返る

はてなブックマークから辿る新傾向

Page 57: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 57 / 60 2014年を振り返る

Internet of Things (IoT)

IoTとは? ➡ “The Internet of Things (IOT) is the

interconnection of uniquely identifiable embedded computing devices within the existing Internet infrastructure. Typically, IoT is expected to offer advanced connectivity of devices, systems, and services that goes beyond machine-to-machine communication (M2M) and covers a variety of protocols, domains, and applications” http://en.wikipedia.org/wiki/Internet_of_Things

Page 58: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 58 / 60 2014年を振り返る

Intel Edison Module

Edition ➡ インテル社

➡ CPU: Atom 500MHz ( dual core, dual thread )

➡ MCU: 100MHz/32bit

➡ Memory: 1GB LPDDR3

➡ EMMC: 4GB

➡ I/F: Wi-Fi, Bluetooth 4.0, USB2.0, SDcard

☞ http://www.intel.co.jp/content/www/jp/ja/do-it-yourself/edison.html

☞ MCU = Micro Control Unit

☞ EMMC = embedded Multi Media Card

10年前のPCレベルのものが、切手くらいの大きさのボードで動いていて、それが1万円もしないとか・・・ちょっと面白くないですか?

Page 59: 2014年を振り返る 今年の技術トレンドとDockerについて

まとめ

Page 60: 2014年を振り返る 今年の技術トレンドとDockerについて

今年の技術トレンドと Dockerについて 60 / 60 2014年を振り返る

おさらい

今年の流行は Docker でしょう ➡ Docker というよりアプリケーションのコンテナ化

➡ 仮想化とコンテナ化の違い

➡ 新しい課題も沢山

個人的には ➡ 自動化支援ツール

• Serf, Consul, Terraform

➡ Internet of Things (IoT) • Edision

ネットのサービスや端末のプログラムを開発するように、現実世界に存在するデバイスやロボットを動かしたい! そんな開発スタイルの登場を予感される周辺技術や環境が揃ってきた、また未来に一歩進んだかな?そう思える一年でした。来年も楽しみです!