Upload
hori-yuma
View
641
Download
1
Embed Size (px)
Citation preview
P R E S E N T A T I O N :
フロントエンドエンジニア 堀祐磨 (ホリデー)
インフラざっくり会
インフラざっくり会
本日の内容
インフラエンジニアとは何をする人か
インフラが扱う5つの領域
インフラが鍵を握る問題領域
最近のインフラ事情:不変的インフラとは
インフラっぽいことで遊んでみよう
インフラざっくり会
インフラエンジニアとは何をする人か
インフラざっくり会
「インフラ」が指す領域は「フロントエンド」
と同じくらいに広いかも!?
インフラざっくり会
インフラエンジニアとは、アプリケーションが動作する
環境の面倒を見る人
インフラざっくり会
環境とは、アプリケーションの動作に必要な全てのモノ
インフラざっくり会
場所が必要 コンピューターが必要 インターネットが必要
OSが必要 ソフトウェアが必要
インフラざっくり会
インフラエンジニアとは何をする人か:
インフラエンジニアとは
ハードウェア ネットワーク OS ミドルウェア アプリケーション
計画 調達 設定 運用 更新 障害対応
について する人
インフラざっくり会
インフラが扱う5つの領域
インフラざっくり会
ハードウェア
ネットワーク
OS
ミドルウェア
アプリケーション
アプリケーションが動作するためには、これだけのレイヤーが必要!
インフラざっくり会
インフラが扱う5つの領域:
ハードウェア
予算やアプリケーションの用途・目的に適った最適なハードウェアを選定・調達する
ネットワーク機器の選定・調達
サーバマシンのスペック選定・調達
回線スペックの選定・調達
マシンが壊れないように冷房を置く
マシンやパーツが壊れたら新しいのと交換する
インフラざっくり会
インフラが扱う5つの領域:
ネットワーク
予算やアプリケーションの用途・目的に適った最適なネットワークを構築する
IPアドレス・ドメイン・DNSサーバ
各サーバマシンの役割分担と連携
外部ネットワークへのアクセスと隔離の設計
ルータ・ファイヤーウォール・ロードバランサ
インフラざっくり会
インフラが扱う5つの領域:
ネットワークが 大規模になってくると…
負荷分散
サーバが落ちないように、たくさんマシンを用意して均等に処理が分散するように設計する
フェイルセーフ
ある系統のサーバが落ちても、別系統でサービスを継続できるように設計する
データの保全
何らかの障害でデータが消えても、バックアップデータが保全されているように設計する
インフラざっくり会
インフラが扱う5つの領域:
OS予算やアプリケーションの用途・目的に適った最適なOSを選定し、インストール・管理を行う
Windows Server
.NET Frameworkが使える
UNIX/BSD/Linux(混ぜるな危険)
無数の派生版があり、得意とすることが違う
少数派だけどOSX Serverもあるよ
インフラざっくり会
インフラが扱う5つの領域:
ミドルウェア
ミドルウェアとは、あるメインのアプリケーションの動作に必要な、補助的な別のアプリケーションのこと
インフラざっくり会
インフラが扱う5つの領域:
ミドルウェア
データベース
MySQL/SQLite/Oracle/MongoDB/Redis
Webサーバ
Apache/Nginx
インフラざっくり会
インフラが扱う5つの領域:
ミドルウェアアプリケーションの実行環境やフレームワーク
Ruby (Rails等)
JAVA (Play等)
PHP (Cake/Ralabel等)
NodeJS (Meteor等)
.NET Framework
インフラざっくり会
インフラが扱う5つの領域:
ミドルウェア
その他、必要があれば何でも
ffmpeg (動画変換)
ftpd (ファイルサーバ)
imagemagick/graphicmagic (画像変換)
インフラざっくり会
インフラが扱う5つの領域:
アプリケーション全てはこれを動かしたいが為!
既存のパッケージソフト
CMS: Wordpress/MovableType/Drupal等
ITS/BTS: Redmine/Trac
OwnCloud
自前で開発したもの
Poole等
インフラざっくり会
インフラが扱う5つの領域:
アプリケーション
ミドルウェアに接続したり、構成したネットワーク環境の中で正しく動作するようにするには、設定を正しく行う必要がある
Wordpressの様なアプリケーションであれば、それ以外にもユーザーの作成と権限設定も必要
インフラざっくり会
インフラが鍵を握っていること
インフラざっくり会
インフラが鍵を握っていること:
セキュリティ
様々な制限をかけて不正アクセスを防止
OSやミドルウェアを定期的にアップデートする(めんどくさいけど絶対必要)
万一不正アクセスがあっても、被害が及ぶ領域が限定的になるように設計する
インフラざっくり会
インフラが鍵を握っていること:
システムの安定化・高速化安定した環境を作る
落ちにくい・落ちても代わりがある・落ちたら自動的に復旧する…
高速な環境を作る
最適なマシンスペック・負荷分散・キャッシュサーバの導入
負荷や帯域でボトルネックとなっている部分の特定と改善
インフラざっくり会
インフラが鍵を握っていること:
アプリケーションのメンテナンスとスケイラビリティ
アプリケーションの更新が円滑にできる環境づくり
アプリケーションの規模が拡大した時に、対応できるような設計にする(逆もしかり)
インフラざっくり会
インフラが鍵を握っていること:
障害対応力
迅速な問題の切り分け・特定
サービス再開までの手順
原因の分析と再発防止
インフラざっくり会
インフラが鍵を握っていること:
インフラが鍵を握っていること
セキュリティ
システムの安定化・高速化
アプリケーションのメンテナンスとスケイラビリティ
障害対応
どれも大事なことばっかり!
インフラざっくり会
最近のインフラ事情
インフラざっくり会
最近のインフラ事情:
よくあるバッドプラクティス
開発環境で動いたものが、本番環境で動かない
前任者がインフラの手順書を残しておらず、誰も再現できない
手順書通りなのに同じように動かない
あるあるあるwww
インフラざっくり会
最近のインフラ事情:
仮想化ツールの一般化
VirtualBoxとかVMWareとか
マシンやネットワークを仮想的にいくつも立ち上げられるようになった
インフラざっくり会
最近のインフラ事情:
構成の自動化ツールの登場
chefやVagrantの登場
serverSpecによるサーバ環境のテスト
従来手動でやっていた手順を自動化
自動なので、何回やっても同じ結果になる
再現性が高い! 便利!!
インフラざっくり会
最近のインフラ事情:
Iaas/Paasの一般化(特にAWS)実際にサーバを買ったり、ルータを買ったり、回線を調達しなくても、業者が全部用意してくれている
豊富な選択肢から、インストール済のOSやミドルェアを1クリックで立ち上げられるように
管理アプリケーション上で、自由にサーバやネットワーク機器をデザインできる
インフラざっくり会
最近のインフラ事情:
Iaas/Paasの一般化(特にAWS)デザインしたネットワーク設定を、JSON等の形式で保存できる
サーバが足りなくなったら即座に増強できる
状況が変わったら、ネットワーク構成自体を自由に再構成することができる
使った分だけの重量課金モデル
インフラざっくり会
最近のインフラ事情:
これらによって何が起こったか
インフラ構築が超楽に
インフラ構成がソフトウェア上で完結するようになった
全てのインフラ構成が設定ファイル化し、再現性100%に不変的インフラ(Immutable Infrastructure)の誕生
インフラざっくり会
なぜDockerが注目されているのか
インフラざっくり会
なぜDockerが注目されているのか:
なぜDockerが注目されて いるのか環境構築の自動化ツールとしてのメリット以外に…
技術的に動作が軽くて立ち上げが早い
1つのLinuxOS上に、複数の隔離されたLinux環境を立ち上げられるが、技術的には仮想マシンではない
大規模なサービス構築に使える技術を目指している
インフラざっくり会
インフラっぽいことで遊んでみよう!
インフラざっくり会
インフラっぽいことで遊んでみよう!:
Bitnamiで遊ぶ
OSXに直接、ミドルウェアとサーバアプリケーションを簡単にインストールできるインストーラーを提供している
無料
https://bitnami.com/stacks
インフラざっくり会
インフラっぽいことで遊んでみよう!:
Draw AWS Diagramsで遊ぶ
AWSのネットワーク構成を視覚的にデザインできるツール
無料デモ
http://creately.com/draw-amazon-architecture-diagrams
To be continued…
http://media-massage.net/株式会社LIG フロントエンドエンジニア 堀 祐磨 (ほりでー)