SlideShare uma empresa Scribd logo
1 de 71
マイクロサービスの基盤として注目の
「NGINX」最新情報
SIOS Technology, Inc.
Innovative Solution Business Planning Dept.
村田 龍洋
会社概要
2
社名 サイオステクノロジー株式会社
本社 東京都港区南麻布2-12-3 サイオスビル
営業所 関西、中部、九州
設立 1997年5月23日
資本金 1,481百万円
代表 代表取締役社長 喜多 伸夫
持株会社 サイオス株式会社
グループ
会社
SIOS Technology, Corp. (米国)
株式会社グルージェント
赛欧思(北京)科技有限公司(中国)
株式会社関心空間
Glabio, Inc.(米国)
株式会社キーポート・ソリューションズ
Profit Cube Inc.
自己紹介
サイオステクノロジー株式会社
イノベーティブソリューション事業企画部
村田 龍洋
 2002年よりサイオステクノロジー(当時のテンアートニ)に入社、
ハードウェア部門、Linux/OSSサポート部門を経て現在のOSS事業企
画部門に従事
 現在はOSSのサポートサービスである「サイオス OSSよろず相談室」
の企画とNGINXをメインにマーケティング、プリセールス等を担当
また、OSSの裾野を広げる活動の一環として、情報ポータルサイトの
oss.sios.com を立ち上げ
 趣味:サッカー、ラーメン、カレー、日本酒
3
アジェンダ
Webを取り巻く市場環境
NGINXとは
Apacheとの違い
NGINX Plus
NGINXの利用方法
NGINX Plus導入事例
NGINX.conf 2017での最新情報
©SIOS Technology, Inc. 4
マイクロサービス知ってますか?
マイクロサービスアーキテクチャモノリスなアーキテクチャ
5
Webを取り巻く市場環境
©SIOS Technology, Inc. 6
Webサーバーシェア
Apacheのシェアを超えたNGINX
©SIOS Technology, Inc. 7
出典:https://w3techs.com/technologies/comparison/ws-apache,ws-microsoftiis,ws-nginx
Top 1,000,000 site
Apache 40.2%
NGINX 42.9%
Webサーバーシェア
最新のデータでは
©SIOS Technology, Inc. 8
Top 1,000,000 site
Apache 39.2%
NGINX 44.0%
出典:https://w3techs.com/technologies/comparison/ws-apache,ws-microsoftiis,ws-nginx
Webサーバー マーケットポジション
©SIOS Technology, Inc. 9
出典:https://w3techs.com/technologies/comparison/ws-apache,ws-microsoftiis,ws-nginx
NGINXは Used by many sites、
Used by high traffic sitesの
カテゴリに分類
Apacheは Used by many sites、
Used by low traffic sitesの
カテゴリに分類
革新的なWebアプリの台頭
Netflix、eBay、Uber などIT業界で有
名な企業では、これまでのアプリケー
ション開発の概念を破壊し、新しい開発
手法やテクノロジーを積極的に取り入れ
ています。
NGINXはこの新たなアプリケーションの
基盤として多く利用され、シェアの拡大
の要因にもなっています。
©SIOS Technology, Inc. 10
破壊的ソリューション:Venmoにみる例
SIOS Technology, Inc. 11
 米国のP2Pの金融サービス、いわゆる個人間送
金の仕組みで業界全体に混乱を起こした。
デジタル戦略への変更による成長例
©SIOS Technology, Inc. 12
出典:nginx.conf 2017: Keynote with Gus Robertson: https://www.nginx.com/blog/nginx-conf-2017-keynote-with-gus-robertson/
 全店舗の16%を閉鎖し、eコマースとデジタル戦略にリ
ダイレクトすることで成長。
独自サービスの作成による成功例
©SIOS Technology, Inc. 13
出典:nginx.conf 2017: Keynote with Gus Robertson: https://www.nginx.com/blog/nginx-conf-2017-keynote-with-gus-robertson/
 MLBがインターネットを使用して野球の試合の配信を消
費者に提供したいため、自らサービスを作成
Mode2型への変革
破壊的な変化が起こる今、Webアプリケー
ションの重要性は拡大しています。
いかに早く新しいサービスを提供できるか
がビジネスの成功の鍵を握ると言われる中
で、Webサーバー、Webアプリケーション
に求められる要件も変わりつつあります。
このようなアプリケーションをGartnerでは
Mode2型と定義をしています。
©SIOS Technology, Inc. 14
【参考】Mode1、Mode2による分類
2015年にGartnerが顧客の趣向、傾向を
Mode1,Mode2 に定義付けを行い、その動向の
レポートを公開。システムのModeを把握すること
で、どのようなソリューションが最適なのかの判
断材料になる。
15
出典: http://www.gartner.com/it-glossary/bimodal/
Mode1
コスト削減と安全、セキュリティを重視した
従来型のモデル
Mode2
開発者の生産性と事業の敏捷性を重視した、
新しいモデル
【参考】Mode別の傾向
©SIOS Technology, Inc. 16
Mode1 属性 Mode2
SoR(System of Record) 目的、特性 SoE(System of Engagement)
信頼性、費用
重要視される
ポイント
敏捷性、柔軟性
堅牢性、コスト、パフォーマンス 要件 ブランドの収益、ユーザー体験
計画主導型、承認ベース ガバナンス 実証的、継続的、プロセスベース
エンタープライズサプライヤ 供給者
小規模、革新的なベンダ、
一部先進のエンタープライズサプライヤ
従来型のプロセスとプロジェクトを
計画的に実行する人材、
既存の仕組みをよく理解している人材
求められる
タレント
過去に実績がない最新型、チャレンジング
なプロジェクトを推進出来る人材、
最新の技術に明るく吸収力の高い人材
仕様やシステムありき、
大部分をメーカーやSIerに請負契約で依頼
文化
顧客主導型でビジネスやブランドの収益を
追求
数ヶ月~数年 期間 日/週単位
ベアメタル、
仮想化基盤(VMware、KVM)
基盤
Public/Private Cloud、コンテナ型
OpenStack、Docker…等
NGINXとは
©SIOS Technology, Inc. 17
NGINXの始まり
ロシアの大手ポータルサイトを管理して
いた、Igor Sysoev氏
Apacheの拡張モジュールを開発して凌い
でいたが、限界を感じて自らWeb
Serverの開発に着手
2004年 NGINXプロジェクト開始
©SIOS Technology, Inc. 18
NGINXの特徴
A
A
A
1 Process = 1 Client 1 Process = 10000+ Clients
Apache NGINX
高速
軽量
高機能
NGINXは高速処理を実現するイベントループ方式を採用
©SIOS Technology, Inc. 19
NGINX Overview
©SIOS Technology, Inc. 20
NGINXは、Webサーバーの機能以外にも下記の機能を提供
します。
• リバースプロキシ
• キャッシュサーバー
• アプリケーションゲートウェイ
• ロードバランシング
• SSLおよびSPDYターミネーション
2つのソースコードブランチ
©SIOS Technology, Inc. 21
偶数バージョン(1.12):安定版ブランチ
このブランチは、重大な問題やセキュリティの脆弱性を修正する必要があ
るときにのみ更新されます。Red Hat提供パッケージはこちらを採用
奇数バージョン(1.13):メインラインのブランチ
このブランチは積極的に開発されます。新しいマイナーリリースは
(1.13.1、1.13.2等)を定期的に新しい機能や拡張機能を導入し、約4~
6週ごとに作られています。
安定版ブランチは重大な問題で
ないと修正されないため、開発
者はMaillineの利用を推奨し
ています。
NGINX Plusはmainlineより
forkして作成されます。
上位Webサービスで多数の実績
22
採用実績「https://www.nginx.com/」より
NGINXの採用実績は多数
日本でもNTTぷらら、クックパッド、サイボウズ、mixiなど
大手企業で利用されている。
©SIOS Technology, Inc.
Apacheとの違い
©SIOS Technology, Inc. 23
ApacheとNGINXとの違い
Apache NGINX
90年代に開発開始 00年代に開発開始
サーバーごとの数百のユーザーを対応 サーバーごとの1万以上のユーザーに対応
プロセスおよびスレッドベース イベントベース、シングルスレッド
スケールアップおよびスケールアウトが困
難で高価
スケールアップおよびスケールアウトが容
易でコスト効率高
レガシーアーキテクチャー 新しくて軽量な分散アーキテクチャー
©SIOS Technology, Inc. 24
プロセスベースとイベントベース
 1プロセス = 1クライアント
 各プロセスは10-100 MBのメモリ領域を消費
 Memory/CPUへの要求が多い
 同期処理、排他制御
A
A
A
 1プロセス = 10000クライアント以上
 要求に応じたメモリ割り当て
 効率よいMemory/CPUの利用
 非同期処理/排他制御なし
1
2
3
4
標準ではプロセスIDは32767までのため、
クライアントが1万台を超えるとプロセス数
の限界やコンテキストスイッチのオーバー
ヘッドが大きくなり、本来の処理ができな
い状態が発生する
1つのプロセスにて、イベント毎に処理を行い、
終了したら次のイベントを実行する。
モダンなWebアーキテクチャへの改変へ
Load Balancer Web tier Application tier Database
Legacy approach
• 異なる機能を連結する
ソリューション
• スケールアウトが困難
• 複数のボトルネック
• 障害耐性の低さ
• 高いレイテンシー
• 運用が複雑
Modern approach
• 柔軟な構成
• 高いスケーラビリティ
• ローレイテンシー
• 簡単な運用
©SIOS Technology, Inc. 26
マイクロサービスアーキテク
チャとして注目を集める
マイクロサービスアーキテクチャ
マイクロサービスアーキテクチャモノリスなアーキテクチャ
27
NGINX Plus
©SIOS Technology, Inc. 28
NGINXとNGINX Plus
アクセス上位1,000,000サイトで
最も利用されているWeb Server
エンタープライズ向け機能拡張
+
企業向けサポート
日本向けの製品サポートは
サイオスが提供
また、Security Updateは
NGINX Inc. より専用
パッケージが提供されます。
©SIOS Technology, Inc. 29
NGINX Plusで拡張される主な機能
HTTPおよびTCPロードバランシング
Liveステータスレポーティング
詳細なヘルスチェック
無停止の設定反映
ストリーミングメディアデリバリ機能
©SIOS Technology, Inc. 30
Live status information from NGINX Plus
31
【参考】製品マトリックス
CORE FEATURES NGINX PLUS NGINX OPEN SOURCE
HTTP origin server ○ ○
Massively-scalable event-driven architecture ○ ○
Reverse proxy for HTTP, TCP, and mail (IMAP, POP3, SMTP) ○ ○
Application acceleration with HTTP keepalive offload,
caching, and compression
○ ○
HTTP/2, SPDY and SSL termination ○ ○
Authentication and bandwidth management ○ ○
LOAD BALANCING AND APPLICATION DELIVERY
Content switching and request routing ○ ○
Advanced HTTP and TCP load balancing ○
Session persistence ○
Advanced cache control ○
Application health checks ○
MEDIA DELIVERY
High-performance streaming for MP4/FLV media ○ ○
HTTP live streaming (HLS/VOD) ○
HTTP dynamic streaming (HDS/VOD) ○
Bandwidth management for MP4 media ○
RTMP media streaming ○
©SIOS Technology, Inc. 32
【参考】製品マトリックス
ADMINISTRATION NGINX PLUS NGINX OPEN SOURCE
Graceful re-configuration and live binary updates ○ ○
Remote logging with syslog ○ ○
Live activity monitoring ○
On-the-fly load-balancing configuration ○
SUPPORT AND SERVICES
Community support ○ ○
NGINX support ○
Access to NGINX engineering for advice and guidance ○
Email and web support ○
Unlimited support incidents ○
Support hours 平日9:00 - 17:00
Pricing per instance
Software availability
Private repository
at nginx.com
Supported Platforms
Linux (RHEL/CentOS, Debian, SLES, Ubuntu), FreeBSD
10
Support (standard) from NGINX, Inc. 400,000円/年
©SIOS Technology, Inc. 33
【参考】 BIG-IPとの比較
©SIOS Technology, Inc. 34
NGINXの利用方法
CentOSの場合
©SIOS Technology, Inc. 35
NGINXのインストール
/etc/yum.repos.d/nginx.repo を作成し、下記
のレポジトリ情報を入力
©SIOS Technology, Inc. 36
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
Baseurlの下記値は環境に応じて設定を行ってください。
OS – ご利用のOS環境、centos または rhel を入力
OSRELEASE – OSのバージョン 6 もしくは 7 を入力
NGINXのインストール
Yum コマンドよりインストールを実施、
インストール完了後、下記コマンドを実施します。
©SIOS Technology, Inc. 37
# yum install nginx
# systemctl enable nginx
# systemctl start nginx
# firewall-cmd --zone=public --add-port=80/tcp –permanent
# firewall-cmd –reload
下記コマンドにて動作確認が行なえます。
$ nginx -v
nginx version: nginx/1.13.3
$ ps -ef | grep nginx
root 1088 1 0 19:59 ? 00:00:00 nginx: master process …
nginx 1092 1088 0 19:59 ? 00:00:00 nginx: worker process
Dockerでの展開
©SIOS Technology, Inc. 38
Official build公開中 https://hub.docker.com/_/nginx/
Dockerの特徴をおさらい
©SIOS Technology, Inc. 39
項目 概要
リソース リソース使用量、オーバーヘッドが非常に少ない
用途 大量にサーバーを並べる必要があるシステムでの利用が
中心
使い捨ての概念でアップデート時にはコンテナごと入れ
替える手法を取る
可搬性 同じDocker Engineが動いている環境であれば、環境は
選ばない、Linux環境をWindows環境に持ち込むことは
基本不可
サービスメッシュ
Google、IBMらがオープンソースの
「Istio」公開。マイクロサービスのため
のネットワーク機能「サービスメッ
シュ」を提供。Kubernetes対応
http://www.publickey1.jp/blog/17/googleibmistiokubernetes.html
SIOS Technology, Inc. 40
Google、IBM、Lyftが開始した新しいオープンソースのプロジェク
ト「Istio」では、マイクロサービスアーキテクチャにて使用される
ネットワークサービス群を「Service Mesh」(サービスメッシュ)
と呼び、Istioはこのサービスメッシュを提供するソフトウェアとし
て開発が進められています。
キーファイル&ディレクトリ
/etc/nginx
すべてのNGINX設定用の親ディレクトリ
/etc/nginx/nginx.conf
頻繁に変更されないトップレベルの
NGINX設定
/etc/nginx/conf.d/default.conf
"welcome to nginx"ページの設定
/etc/nginx/conf.d/*.conf
仮想サーバとアップストリームの設定
たとえば、www.example.com.conf
©SIOS Technology, Inc. 41
NGINXの設定:Webサーバー
 NGINXがlistenするIPアドレス/ポートを指定します。サンプルのよ
うにIPアドレスがない場合、NGINXはシステム上のすべてのIPアド
レスにバインドされます。
 default_serverは、hostnameがわからない場合にこのサーバを使用
するように指定します
©SIOS Technology, Inc. 42
server {
listen 80 default_server;
server_name www.example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
NGINXの設定:SSL設定
©SIOS Technology, Inc. 43
server {
listen 80 default_server;
server_name www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name www.example.com;
ssl_certificate cert.crt
ssl_certificate_key cert.key
ssl_ciphers HIGH;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
 すべてのトラフィックに暗号化を適用することが可能
NGINXの設定:リバースプロキシ設定
©SIOS Technology, Inc. 44
server {
listen 80 default_server;
location ~ [^/].php(/|$) {
fastcgi_split_path_info ^(.+?.php)(/.*)$;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
 PHPアプリケーションのリクエストを振り分けることが可能
 PHP FPMは別途導入が必要です。
NGINXの設定:ロードバランシング
©SIOS Technology, Inc. 45
http {
upstream my_upstream {
server server1.example.com;
server server2.example.com;
least_conn;
}
server {
listen 80;
location / {
proxy_set_header Host $host;
proxy_pass http://my_upstream;
}
}
}
 デフォルトのロードバランシングアルゴリズムはRound Robinです。
•least_connは、アクティブ接続数が最も少ないサーバを選択します。
•デフォルトでは、NGINXは、プロキシされたサーバーの名前とポー
トにホストヘッダーを書き換えます
•proxy_set_headerは、元のクライアントのホストヘッダーをオー
バーライドし、パスします。
NGINXの設定:キャッシュ
©SIOS Technology, Inc. 46
proxy_cache_path /path/to/cache levels=1:2
keys_zone=my_cache:10m max_size=10g
inactive=60m use_temp_path=off;
server {
location / {
proxy_cache my_cache;
#proxy_cache_valid 5m;
proxy_set_header Host $host;
proxy_pass http://my_upstream;
}
}
 proxy_cache_pathは、ディスクのレイアウト、サイズと場所、およ
びキャッシュの他のパラメータを定義します
 proxy_cacheは、このコンテキストのキャッシングを有効にします。
 proxy_cache_validは、上流でCache-Controlヘッダーが返されない
場合に有効です。
Apacheの設定ファイルを比べてみると
Listen 80
ServerRoot "/etc/httpd"
DocumentRoot "/var/www/html/"
User nobody
Group nobody
<IfModule prefork.c>
MaxClients 150
StartServers 5
MinSpareServers 5
MaxSpareServers 15
</IfModule>
©SIOS Technology, Inc. 47
server {
listen 80 default_server;
server_name www.example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
NGINX
Apache
NGINX Plus導入例
©SIOS Technology, Inc. 48
目的:
リプレース時期が迫った専用アプライアンス型ロードバランサーを代替
効果:
HA構成による冗長構成が実現でき、x86サーバーをプラットフォームと
することで大幅なコスト削減を達成
NGINX Plus 事例:株式会社NTTぷらら様
「ひかりTV」サービス基盤を支える「NGINX Plus」
目的:
高価なロードバランサアプ
ライアンス機器からの置き
換え
効果:
導入コスト削減のほか、
サービスの応答速度も改善
し、顧客満足度の向上に貢
献
NGINX Plus 事例:DirectorsGear
 放送局向けWebサービス基盤で利用
実事例: Apacheフロントとして性能向上
既存のApache HTTP Serverの前に配置することで、
リバースプロキシおよびコンテンツキャッシュに利用し、
パフォーマンスを向上
 現状のアプリケーションに手を入れることなしに、スケーラブルな環
境を提供
リーバスプロキシー
キャッシュ
NGINX Apache アプリケーション
サーバー
データベース
Apache/アプリケーションサーバー/データベースには手を入れないNGINXサーバーを配置
©SIOS Technology, Inc. 51
NGINX.conf 2017での最新情報
©SIOS Technology, Inc. 52
NGINX.conf 2017
年に1度のNGINX Inc.とNGINXコミュ
ニティのカンファレンス
今年はアメリカ ポートランドで開催
2日間の開催で1日目がエンタープライズ
向け、2日目はコミュニティ向けの発表
©SIOS Technology, Inc. 53
Day1
基調講演にて NGINX Inc.のCEO
Gus Robertson氏が登壇
エンタープライズ向けNGINXを取り巻く
市場の発表とともに、新たな製品展開を
発表
©SIOS Technology, Inc. 54
Day2
基調講演にて NGINX の開発者 Igor氏が
登壇
新たなオープンソースプロジェクトとな
る NGINX Unit を今後の展開とともにデ
モを実演
©SIOS Technology, Inc. 55
Providing tools that reduce the complexity of
managing distributed apps
 アプリケーション、特にコンテナや仮想マシンに分散し
て実行されているアプリケーションの管理の複雑さを軽
減するツールを提供します。
 これらのレガシーアプリケーションを最新のアプリケー
ションアーキテクチャに移行させるツールを提供します。
 10人のユーザー、1,000万人のユーザー、1億人以上の
ユーザーなど、アプリケーションの規模を拡大するツー
ルを提供します。
 私たちは、拡張可能なアプリケーションを構築するのを
手伝っていきます。私たちはこれらのアプリケーション
にインテリジェンスをもたらすつもりです。
SIOS Technology, Inc. 56
NGINX Application Platformのビジョン
アプリケーションが生きた生物のようにす
べきであるということ。
 アプリケーションは、その環境に基づいて拡大または
縮小できる必要があります。そして、アプリケーショ
ンが壊れている場合、アプリケーションは自己修復で
きる。
 攻撃を受けている場合、アプリケーションは自分自身
を守ることができる。
 そして、アプリケーションは必要に応じてアプリケー
ションの追加インスタンスを生成し、新しい生物を作
り出すことができる。
SIOS Technology, Inc. 57
NGINX Controller
集中監視
 アプリケーションのパ
フォーマンスに重要な洞察
を取得
 秒単位での要求、アクティ
ブな接続、帯域幅の使用量
などの主要指標を表示
 ロードバランサ間のメト
リックを集約するダッシュ
ボードの概要
 アプリケーションごとのメ
トリックのズームイン
SIOS Technology, Inc. 58
NGINX Controller
役割ベースのアクセス制御
 ITのコントロールを維持しな
がら、アプリケーション所有
者が自分のアプリケーション
を展開し、更新を実施可能。
 役割ベースのアクセス制御
(RBAC)、監査証跡を確保
 中央ITを通じてプロビジョニ
ング、独自のロードバランサ
を制御
 アプリケーションの所有者の
自己管理負荷分散とアプリ
ケーションの展開
SIOS Technology, Inc. 59
NGINX Controller
プログラマビリティ
 アプリケーションの整合性
を維持しながら、急速に展
開
 ボタンを押すだけで、青/
緑の展開を実装
 安全カナリアのリリースと
新しいアプリケーションの
バージョンをテスト
 シームレスに新しいバー
ジョンをロールバック
 JSON構成でGraphQLの
APIを使用して自動化
SIOS Technology, Inc. 60
NGINX Controller
©SIOS Technology, Inc. 61
出典:NGINX Product Roadmap 2017: https://www.nginx.com/blog/nginx-product-roadmap-2017/
NGINX Controller:ロードマップ
©SIOS Technology, Inc. 62
出典:NGINX Product Roadmap 2017: https://www.nginx.com/blog/nginx-product-roadmap-2017/
NGINX Unit
©SIOS Technology, Inc. 63
出典:NGINX Product Roadmap 2017: https://www.nginx.com/blog/nginx-product-roadmap-2017/
NGINX Unit
多言語サポート
 すべてのアプリケーションを
共通のバイナリで実行
 Go、PHP、およびPythonの完
全サポート。
今後、JavaとNode.jsをサポー
ト予定
 同じサーバー上で異なる言語
で書かれた複数のアプリケー
ションを実行
 同じサーバ上で複数の言語
バージョンを同時に使用する
(PHP 5とPHP 7、Python
2.7、Python 3)
SIOS Technology, Inc. 64
NGINX Unit
プログラマブル
 アプリケーションの要求にリ
アルタイムで対応:
 総合的なREST APIドリブン構
成
 標準のJSON設定言語
 適切なアプリケーションおよ
び構成の更新により、サービ
スの中断を軽減します。
 シームレスなゼロダウンタイ
ム展開の変更
SIOS Technology, Inc. 65
NGINX Unit
サービスメッシュの基盤として
NGINX Unitを使用
 迅速なサービス間通信のための
統合ネットワークスタック
 アプリケーションコードから
NGINX Unitへネットワーク構
成をオフロードする
 SSL / TLSとHTTP / 2のサ
ポート
SIOS Technology, Inc. 66
NGINX Unit:ロードマップ
©SIOS Technology, Inc. 67
出典:NGINX Product Roadmap 2017: https://www.nginx.com/blog/nginx-product-roadmap-2017/
NGINX Unit Beta
プリコンパイル済みパッケージ
Unitのプリコンパイルされたバイナリは、
CentOS 7.0およびUbuntu 16.04 LTSで
使用できます。
SIOS OSSポータル NGINX Ch.にて公開中
https://oss.sios.com/nginx-ch/NGINX-UNIT
SIOS Technology, Inc. 68
NGINX Amplify
正式リリース
NGINXのための管理ツール
SIOS Technology, Inc. 70
NGINX Amplify
SIOS Technology, Inc. 71
5インスタンスまでは無料
登録して試してみましょう!

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみました
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
 
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 

Semelhante a マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA

第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
第5回iocj情報交換会 info scoop三菱重工業様社内活用事例第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
infoScoop
 

Semelhante a マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA (20)

20171126 nginx conf2017
20171126 nginx conf201720171126 nginx conf2017
20171126 nginx conf2017
 
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
 
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデートIOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
 
red-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deploymentred-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deployment
 
DevOpsを実践し成功に導くための ”はじめの一歩” 20171003
DevOpsを実践し成功に導くための ”はじめの一歩” 20171003DevOpsを実践し成功に導くための ”はじめの一歩” 20171003
DevOpsを実践し成功に導くための ”はじめの一歩” 20171003
 
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
 
Azure IaaS 解説
Azure IaaS 解説Azure IaaS 解説
Azure IaaS 解説
 
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
IBM and Open @201311
IBM and Open @201311IBM and Open @201311
IBM and Open @201311
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
 
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
 
第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
第5回iocj情報交換会 info scoop三菱重工業様社内活用事例第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム
 
サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進
サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進
サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - Delphix
 
Nutanix 概要紹介
Nutanix 概要紹介Nutanix 概要紹介
Nutanix 概要紹介
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
 
OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料
 

Último

物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
Michael Rada
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Yasuyoshi Minehisa
 

Último (8)

物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
 
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
 
事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 

マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA

Notas do Editor

  1. OSSがオープンイノベーションの領域で使われるようになってきている。 ↓ SIOS is Innovative Open Solution→Innovative Solution 事業企画
  2. 2016年3月 Apache 48.1% →83% NGINX 33.2% →129% IISの減少もあり、NGINXの立ち位置は明確になりつつあります。
  3. PayPal傘下として米国で急成長中のサービスで、「P2P」の金融サービス、いわゆる「個人間送金」の仕組みを提供しており、特に若者の間で大人気となっている 結果、彼らは巨額の採用をしており、業界全体を混乱させることができました。 しかし、伝統的な銀行はそれを簡単に取っていません。 そのような中で米国のウェルズ・ファーゴ(英:Wells Fargo & Co.)は、カリフォルニア州サンフランシスコに本社を置き、西部を地盤とする、2017年7月現在アメリカ合衆国で最も支店数が多い金融機関であるWells FargoはZelleと呼ばれる独自のアプリケーションをすでに発表しています。 日本でもKyash、paymo、LINE Payなどの個人間送金アプリが普及してくれたおかげで、今までいろいろと面倒だった飲み会の割り勘がアプリで簡単にできるようになりました。
  4. 素晴らしい例はMacy'sです。あなたがメイシーズを見ると、彼らはすでに過去3年間で全店舗の16%を閉鎖しています。何が行われたのかは、彼らが電子商取引とデジタル戦略にリダイレクトすることができた5億5,000万ドルの現金で解放されています。 彼らは、2億5,000万ドルを追加し、デジタル戦略にリダイレクトするために8億ドルを払い、電子商取引を行い、デジタル体験を店舗に持ち、維持したいと考えています。これはリダイレクトです。あなたのリソースをデジタル変換にリダイレクトします。
  5. ここで使用する例はメジャーリーグです。 MLBは、インターネットを使って、自分の野球のゲームを「トップに」流すことを消費者に直接求めたかったのです。彼らは自分のサービスを作りました。 そして、他の企業も、HBO、ワールドレスリングエンタテインメント、ESPNなどの企業、サービスの構築についての助けを得るために、彼らに近づくほど成功しました。それは彼らが独立した企業として会社をスピンアウトし、新しい投資家を引き付けたことで大成功でした。 もともと、ディズニーが入って33%のシェアを10億ドルで買った。 最近では、75%のシェアを獲得するために15億ドルの追加投資を実施しています。 それを今見れば、その独立した企業は30億ドル以上の価値があります。 そしてMLBの一員である30の野球チームが何を表しているのかを見ると、野球チームごとにMLB内で作成した別の企業から得た収益で野球チーム1チームあたり8500万ドルを超えています。 そして、彼らはBAMTechという会社の15%の所有権を維持しています。
  6. 当時は、ロシアのRamblerというポータルサイト事業者でシステム管理者をしていた。あるとき開発者から、proxyを使っても2台目のApacheがアクセラレートされないと相談を受け、調べてみたらproxyモジュールの機能が弱いことがわかった。そこでproxyやキャッシュを改善してアクセラレータとして正しく動くようにしていった NGINXの由来はエンジンという言葉を使いたかったから。 Nginxという名称は、「エンジン」という言葉の響きの良さに、Linux/Unixなどの「X」を組み合わせて決めたものだという。「名前を決めるまでに1年ほどかかった。"ダイナミック"という言葉も好きで、候補の1つになっていた。製品のなかでもっとも時間をかけたのが命名プロセスかもしれない(笑)」
  7. LinuxなどUNIX系のOSでは、メモリ上で実行中のプログラムに与えられるプロセス番号は符号付き16ビット整数だ。つまり、デーモン(サーバプロ セス)も含め、すべての実行中のプロセスには1~32767までのユニークな番号が与えられていることになる。ところが、HTTPサーバのApacheな どはクライアント1台からのリクエストに対して1つのプロセスを生成するため、必然的に同時接続数は3万クライアント程度が上限となる。
  8. http://www.oracle.co.jp/customers/CustomerCaseStudy_NTTdocomo_WLS_JA.pdf
  9. クラウド時代のアプリケーションは、サービスを提供するコンポーネントのような小さなソフトウェアが多数連係する、いわゆる「マイクロサービス」と呼ばれるアーキテクチャを備えたものになると考えられています。 このマイクロサービスアーキテクチャを備えたアプリケーションの内部では、各サービス間をつなぐためのネットワークがまるで網の目のように張り巡らせられ、そこでさまざまなトラフィックが発生していきます。 そしてこのネットワークを安定的かつ効率的でセキュアに運用することはマイクロサービスの運用に欠かせない基盤であり、そのためにはトラフィックのルーティングルールの設定、トラフィックが偏らないようにロードバランスの実現、セキュリティのための暗号化通信や認証サービス、ポリシーの設定、そして全体のモニタリングなど、さまざまなネットワークのサービス機能が求められます。
  10. server defines the context for a virtual server listen specifies IP address/port that NGINX listens on; if no IP address (as here), NGINX binds to all IP addresses on system default_server specifies to use this server if hostname is not known server_name specifies hostname of virtual server
  11. HPPT2にはいち早く対応 SSLターミネーションとして利用するケースもあり
  12. Requires PHP FPM: apt-get install –y php7.0-fpm Can also use PHP 5 Similar directives available for SCGI and uwsgi Additional PHP FPM configuration may be required
  13. 参考:https://www.nginx.com/products/nginx/load-balancing/ Default load balancing algorithm is Round Robin • least_conn selects server with fewest active connections • By default NGINX rewrites Host header to name and port of proxied server • proxy_set_header overrides and passes through original client Host header • least_time factors in connection count and server response time (available in NGINX Plus only)
  14. 参考:https://www.nginx.com/blog/nginx-caching-guide/ レベルセット / path / to / cache /の下に2レベルのディレクトリ階層を作成します。 1つのディレクトリに多数のファイルを格納すると、ファイルへのアクセスが遅くなる可能性があるため、ほとんどの展開では2つのレベルのディレクトリ階層を推奨します。 levelsパラメータが含まれていない場合、NGINXはすべてのファイルを同じディレクトリに置きます。 keys_zone キャッシュキーと、使用タイマなどのメタデータを格納するための共有メモリゾーンを設定します。キーをメモリにコピーすると、NGINXはディスクに移動することなくリクエストがHITかMISSかを素早く判断し、チェックを大幅に高速化できます。 1 MBのゾーンには約8,000のキーのデータを格納できるため、この例で構成された10 MBのゾーンでは約80,000のキーのデータを格納できます。 max_size キャッシュのサイズの上限を設定します(この例では10ギガバイト)。オプションです。値を指定しないと、キャッシュが使用可能なすべてのディスク領域を使用できるようになります。キャッシュ・サイズが限界に達すると、キャッシュ・マネージャと呼ばれるプロセスは、最も最近使用されなかったファイルを除去して、キャッシュ・サイズを限界まで戻します。 非アクティブは、アイテムがアクセスされずにキャッシュに残る期間を指定します。この例では、60分要求されていないファイルは、期限切れであるかどうかにかかわらず、キャッシュマネージャプロセスによって自動的にキャッシュから削除されます。デフォルト値は10分(10m)です。非アクティブなコンテンツは期限切れのコンテンツとは異なります。 NGINXは、キャッシュコントロールヘッダー(Cache-Control:max-age = 120など)によって定義された期限切れのコンテンツを自動的に削除しません。有効期限が切れた(古い)コンテンツは、非アクティブで指定された時間アクセスされていない場合にのみ削除されます。期限切れのコンテンツにアクセスすると、NGINXはオリジンサーバからコンテンツをリフレッシュし、非アクティブタイマーをリセットします。 NGINXは最初にキャッシュ用のファイルを一時記憶域に書き込み、use_temp_path = offディレクティブはNGINXにキャッシュされるディレクトリと同じディレクトリに書き込むように指示します。ファイルシステム間で不必要にデータをコピーしないようにするには、このパラメータをoffに設定することをお勧めします。 use_temp_pathは、NGINXバージョン1.7.10およびNGINX Plus R6で導入されました。
  15. 分散アプリケーションの管理の複雑さを軽減するツールを提供する