© 2013 IBM Corporation
JJUG  CCC  2015  Fall
タイムマシン採⽤用:
明⽇日のエンタープライズJavaの世界を予想する  
-‐‑‒Java  EE7/クラウド/Docker/etc.-‐‑‒
#ccc...
#ccc_ab4
タイムマシン経営
•  「海外で成功したビジネスモデルは
  数年年遅れで必ず⽇日本にもやってくる」
–  90年年代に孫正義⽒氏が提唱した⼿手法
•    ⽶米国などで成功したビジネスモデルを
  国内でいち早く取り⼊入れる...
#ccc_ab4
リスクの最⼩小化
を優先  
ミッション・クリティカルな
アプリケーションの管理理、運⽤用
マラソンランナー
q  サービスレベル重視
q  ウォーターフォール開発
q  ⻑⾧長期に渡るシステム構築
イノベーションのスピ...
#ccc_ab4
しかし,異異なる技術が使われるわけではない
§ 新しい技術は,
最初にWeb系の企業で採⽤用が進む
– 試⾏行行錯誤による技術適⽤用
– トラブルの発⽣生と解析,対応
– リリース後の効果確認
§ 数年年たち,
⼗十分な実...
#ccc_ab4
例例えば,ソースコードの履履歴管理理
§ かつてのSI系企業は
– 共有ディスクでソースファイルを管理理
– 変更更前のコードはコメントで残す
– 変更更内容は台帳で管理理
§ 現在は,SI系企業でも
VCS(バージョンコ...
#ccc_ab4
タイムマシン採⽤用
§ Web系企業の動向を⾒見見れば
エンタープライズの将来がわかる
– 全ての新技術がSI系企業で
普及するわけではない
– 成功が確認された
技術が採⽤用される
6
#ccc_ab4
いま、まさに採⽤用が進んでいる技術
モバイル
クラウド
ビッグデータ
#ccc_ab4
これから採⽤用されることが確実な技術
§ アプリケーションのモダン化
– HTML5アプリケーション
– マイクロサービスアーキテクチャー
§ Java  EE  7  /  Java  SE  8
§ システム構築の⾃...
#ccc_ab4
9
アプリケーションのモダン化
#ccc_ab4
HTML5環境の新しいアプリケーションスタイル
§ クライアントMVC・サーバーの機能はAPIとして利利⽤用
10
Web Browser
Application Server
Application
HTTP
Reques...
#ccc_ab4
HTML5アプリ・クライアントMVCのメリット
ユーザー・エクスペリエンスの向上
「使いやすいWebアプリケーションが作れる」
§ 従来のフォームベースのWebアプリケーション,
ページ遷移を前提としたアプリケーションは,
...
#ccc_ab4
マイクロサービス・アーキテクチャー
§ 単⼀一の(モノリシックな)アプリとして実装するのではなく,
複数のサービス・APIの統合として実装する
– 変更更の影響範囲を極⼩小化
– 機能の再利利⽤用を促進
12
http://...
#ccc_ab4
なぜサービスへの分離離が必要なのか
§ かつては
「部品化・サービス化・API化による再利利⽤用」
といっても絵に描いた餅状態だったが...
§ これからは
エンタープライズの世界でも必須の考え⽅方になる
13
なぜなら・...
#ccc_ab4
ブラウザ・クライアント環境の急激な変遷
§ MS  IE  6  →  7/8/9/10/11/MS  Edge  ...
§ iOS  4/5/6/7/8/9  ...
§ Firefox/Chrome/Safari/...
#ccc_ab4
ブラウザ上のJavaScriptの群雄割拠
15
#ccc_ab4
Webアプリケーションの短寿命化
§ ⼀一度度作成したアプリケーションを
何年年も使い続けることは不不可能になった
§ 年年に数回の更更新では変化に追いつけなくなった
↓しかし
§ 企業の基幹系システムをそんな頻度度で更...
#ccc_ab4
マイクロサービスも普及期に
§ 事例例やノウハウもたまってきました
17
http://www.atmarkit.co.jp/ait/articles/1507/17/news019.html
#ccc_ab4
18
Java  EE  7  /  Java  SE  8
#ccc_ab4
Java  Enterprise  Edition  7  (Java  EE  7)
19
あれから
2年年半がたちました
#ccc_ab4
JavaOne  2015
20
#ccc_ab4
WAS  Libertyプロファイルは
V8.5.5.6で
Java  EE  7  Full  Platform対応
21
#ccc_ab4
22
WASの新しいランタイム:Libertyプロファイル
WAS V8.5.5 Liberty & WDT
Java EE 7準拠
Java EE 7のFull Platform標準に
準拠したアプリを完全サポート
最新のJ...
#ccc_ab4
軽量量・⾼高速なランタイム
§ 軽量量
– 数⼗十メガバイトのメモリ消費/100メガバイト弱のディスク消費
– コンテナや仮想環境への集約が容易易に
§ ⾼高速起動・動的変更更
– 数秒以内でサーバーが起動
– サーバーの...
#ccc_ab4
Java EE 7の三つのゴール
§ HTML5環境への対応
§ 開発⽣生産性の向上
§ エンタープライズ・ニーズへの対応
24
⼤大幅な機能拡張
#ccc_ab4
フレームワークの世代交代
§ Struts  1.x
– 2013年年  EoL(End  of  Life)の発表
– 2014年年  脆弱性発⾒見見による混乱(CVE-‐‑‒2014-‐‑‒0114)
§ Seaser...
#ccc_ab4
2000年年代前半のWebアプリケーション
§ まだまだ未完成で⼒力力不不⾜足のJ2EE仕様
→多くの「アンチJ2EE技術」の登場
§ コンテナ上にフレームワークを追加し
その上にアプリケーションを構築することが主流流に
...
#ccc_ab4
2015年年のWebアプリケーション事情
§ Java EE提供の各種仕様の機能増強・完成度度の向上
「標準仕様で⼗十分」
– CDI 1.x :依存性注⼊入
•  HibernateやSeaser2の提供していた機能をとり...
#ccc_ab4
JSF
JSP / EL
Java  EE  7の標準的なアプリケーション構成
JAX-RS
WebSocket
CDI                    .
EJB / JTA
JPA Database
•  画⾯面デザ...
#ccc_ab4
Java  EE  7を採⽤用する価値
「標準」である強み
§ 多くのベンダーによるサポート
– 特定のベンダーにロックインされることなく使⽤用できる
§ ⻑⾧長期にわたるサポート
– 寿命の⻑⾧長いバックエンドにも安⼼心...
#ccc_ab4
Libertyプロファイルの「ゼロ・マイグレーション」
§ 新しい仕様のバージョンに対応するフィーチャーが
追加されても,従来のバージョンも提供されます
– 例例)  現在はServlet  3.1フィーチャーが提供されてい...
#ccc_ab4
Java  SE  8:Project  Lambda
31
§   Lambda式
§   型推論論
§   Method  Reference
§   Default  Method
§   Stream  AP...
#ccc_ab4
Lambda式とStreamによるループの内部化
§ 外部イテレータ
– コンテナから順次,要素を取り出して処理理を記述する
§ 内部イテレータ
– 処理理をコンテナにわたして,コンテナが要素ごとに実⾏行行する
32
Li...
#ccc_ab4
エンタープライズといえばロギング
§ ありがちなコード
§ これがLambda式でこうなる
33
if (log.isLoggable(Level.FINE)) {
log.fine("Value = " + getVer...
#ccc_ab4
34
既存コードのJava  8への移⾏行行の負荷はそれなり
過去⼆二回(1.1→1.2および1.4→5.0)に匹敵する
あるいは,それ以上のインパクトのある⼤大変⾰革
§ じつはユーザーコードの変更更は,それほど⼤大変では...
#ccc_ab4
最初は新規アプリケーションで
§ 可能であれば「最初のJava  SE  8アプリケーション」は
新規に開発する案件で採⽤用
§ ⼗十分なスキルが蓄積されたあとで
既存のアプリケーションのマイグレーションを
§ 移⾏行行...
#ccc_ab4
36
システム構築の⾃自動化
#ccc_ab4
基盤技術者は「ソフトウェア開発者」になる
§ クラウドの時代にはInfrastructure  as  Codeや
Immutable  Infrastructureの考え⽅方が必要
§ 実⾏行行環境に問題が⾒見見つかった...
#ccc_ab4
構築⾃自動化の必要性
§ クラウドではサーバー環境も
– 必要なときに素早く作成
– 負荷に応じて数を⾃自由に増減
– 不不要になったら環境を削除
§ 構築の頻度度はあがり
かけられる時間は減少する
38
#ccc_ab4
Infrastructure  as  Codeの効果
§ 構築時間の短縮
§ ⼿手動設定によるミスの防⽌止・属⼈人性の排除
§ 構成のバージョン管理理
39
#ccc_ab4
コンテナ技術:Dockerの普及
§ OSも含んだ「仮想マシン」ですら負荷が⾼高い
– サイズの⼤大きな仮想ディスクイメージ
– OSの起動・停⽌止時間
– メモリリソースの消費
§ 「仮想マシン」から「コンテナ」へ
– ...
#ccc_ab4
WAS  LibertyはDockerイメージも提供
§ Dockerで稼働するWebSphere  Application  Server  
Liberty  プロファイル,  フルプロファイルもサポート対象
§ 開発...
#ccc_ab4
各種OSSツールとの連携
各種CI・Buildツールとの
連携機能をGitHubで公開
https://github.com/wasdev
#ccc_ab4
WAS  Libertyの無償利利⽤用
⼀一つの企業につき2GバイトのJavaヒープメモリに限定し,テストおよび本
番でのLibertyプロファイルを無償で使⽤用が可能(サポートはなし)になる
オプションを提供
ü  ⼩小規...
#ccc_ab4
44
One  more  things...
#ccc_ab4
エンタープライズにも来るかもしれない技術
§ サーバーサイドJavaScript
45
サーバーブラウザ
APIクライアント
モバイル
var  http  =  require("http");
http.createSe...
#ccc_ab4
Node.js
§ サーバーサイドJavaScriptの
デファクトスタンダードの地位を確⽴立立
– 2009年年に開発、2012年年ぐらいから普及
– クライアント側でのJavaScriptの重要性が増すにしたがい台頭
§...
#ccc_ab4
実は、IBMもNode.jsを提供してます
§  IBM  SDK  for  Node.js  V1.2
§  OSSのNode.js  version  0.12.7ベース(2015/7/9リリース)
–  現在の最新...
#ccc_ab4
2015年年9⽉月
IBMはStrongLoop社を買収しました
§ Node.js  向けの
エンタープライズ
ソリューションを
有償/OSSで
提供する企業
48
StrongLoop  Arc
Data  Connec...
#ccc_ab4
49
最後に
#ccc_ab4
みなさんの⼒力力が必要です
§ 新しい技術が,
あなたの会社でいつ採⽤用されるかを決定する
もっとも⼤大きな要因は「現場の⽅方たちの声」です。
§ ⼗十分に検証された新技術の導⼊入は,
利利⽤用者・開発者・経営者のみなにメ...
Upcoming SlideShare
Loading in...5
×

タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-

185
-1

Published on

日本Javaユーザー会 JJUG CCC 2015 Fall AB-4セッションの発表資料です。

Published in: Software
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
185
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-

  1. 1. © 2013 IBM Corporation JJUG  CCC  2015  Fall タイムマシン採⽤用: 明⽇日のエンタープライズJavaの世界を予想する   -‐‑‒Java  EE7/クラウド/Docker/etc.-‐‑‒ #ccc_ab4
  2. 2. #ccc_ab4 タイムマシン経営 •  「海外で成功したビジネスモデルは   数年年遅れで必ず⽇日本にもやってくる」 –  90年年代に孫正義⽒氏が提唱した⼿手法 •   ⽶米国などで成功したビジネスモデルを  国内でいち早く取り⼊入れることにより  ⼤大きな成功を収めた
  3. 3. #ccc_ab4 リスクの最⼩小化 を優先   ミッション・クリティカルな アプリケーションの管理理、運⽤用 マラソンランナー q  サービスレベル重視 q  ウォーターフォール開発 q  ⻑⾧長期に渡るシステム構築 イノベーションのスピード を優先 成⻑⾧長機会のための 探索索、開発、デプロイ スプリンター q  スピード開発重視 q  試⾏行行錯誤、継続的デプロイ q  早期のシステム構築/改修 Web系企業 SI系企業 ⼆二つの⽂文化に分かれる⽇日本のIT企業
  4. 4. #ccc_ab4 しかし,異異なる技術が使われるわけではない § 新しい技術は, 最初にWeb系の企業で採⽤用が進む – 試⾏行行錯誤による技術適⽤用 – トラブルの発⽣生と解析,対応 – リリース後の効果確認 § 数年年たち, ⼗十分な実績が確認された技術がSI系の企業でも採⽤用される – ベストプラクティスの確⽴立立 – 問題判別のノウハウの蓄積 – 適⽤用前のROIの確認 4
  5. 5. #ccc_ab4 例例えば,ソースコードの履履歴管理理 § かつてのSI系企業は – 共有ディスクでソースファイルを管理理 – 変更更前のコードはコメントで残す – 変更更内容は台帳で管理理 § 現在は,SI系企業でも VCS(バージョンコントロールシステム)を使⽤用 – 変更更は「コミット」で管理理 5
  6. 6. #ccc_ab4 タイムマシン採⽤用 § Web系企業の動向を⾒見見れば エンタープライズの将来がわかる – 全ての新技術がSI系企業で 普及するわけではない – 成功が確認された 技術が採⽤用される 6
  7. 7. #ccc_ab4 いま、まさに採⽤用が進んでいる技術 モバイル クラウド ビッグデータ
  8. 8. #ccc_ab4 これから採⽤用されることが確実な技術 § アプリケーションのモダン化 – HTML5アプリケーション – マイクロサービスアーキテクチャー § Java  EE  7  /  Java  SE  8 § システム構築の⾃自動化 – Docker – CHEF 8
  9. 9. #ccc_ab4 9 アプリケーションのモダン化
  10. 10. #ccc_ab4 HTML5環境の新しいアプリケーションスタイル § クライアントMVC・サーバーの機能はAPIとして利利⽤用 10 Web Browser Application Server Application HTTP Request HTML/JS Controller Session Data View Business LogicModel DomainDomain Web Browser Application Server Application View HTML/JS Controller Data Store Model Model DomainDomain RESTful or WebSocket JSON Business Logic 従来のWebアプリケーション Single Page Application (SPA)
  11. 11. #ccc_ab4 HTML5アプリ・クライアントMVCのメリット ユーザー・エクスペリエンスの向上 「使いやすいWebアプリケーションが作れる」 § 従来のフォームベースのWebアプリケーション, ページ遷移を前提としたアプリケーションは, 決してユーザーにとって使いやすいものではない § HTML5アプリケーションは, 多くの「ブラウザ上で動くRichクライアント」が模索索され 試⾏行行錯誤が繰り返された末の最終結論論 11
  12. 12. #ccc_ab4 マイクロサービス・アーキテクチャー § 単⼀一の(モノリシックな)アプリとして実装するのではなく, 複数のサービス・APIの統合として実装する – 変更更の影響範囲を極⼩小化 – 機能の再利利⽤用を促進 12 http://martinfowler.com/articles/microservices.html
  13. 13. #ccc_ab4 なぜサービスへの分離離が必要なのか § かつては 「部品化・サービス化・API化による再利利⽤用」 といっても絵に描いた餅状態だったが... § これからは エンタープライズの世界でも必須の考え⽅方になる 13 なぜなら・・・
  14. 14. #ccc_ab4 ブラウザ・クライアント環境の急激な変遷 § MS  IE  6  →  7/8/9/10/11/MS  Edge  ... § iOS  4/5/6/7/8/9  ... § Firefox/Chrome/Safari/Android... 14
  15. 15. #ccc_ab4 ブラウザ上のJavaScriptの群雄割拠 15
  16. 16. #ccc_ab4 Webアプリケーションの短寿命化 § ⼀一度度作成したアプリケーションを 何年年も使い続けることは不不可能になった § 年年に数回の更更新では変化に追いつけなくなった ↓しかし § 企業の基幹系システムをそんな頻度度で更更新はできない ↓どうするか § フロントエンド/クライアントUIは使い捨てにする § バックエンドを⻑⾧長期間つかっていく 16
  17. 17. #ccc_ab4 マイクロサービスも普及期に § 事例例やノウハウもたまってきました 17 http://www.atmarkit.co.jp/ait/articles/1507/17/news019.html
  18. 18. #ccc_ab4 18 Java  EE  7  /  Java  SE  8
  19. 19. #ccc_ab4 Java  Enterprise  Edition  7  (Java  EE  7) 19 あれから 2年年半がたちました
  20. 20. #ccc_ab4 JavaOne  2015 20
  21. 21. #ccc_ab4 WAS  Libertyプロファイルは V8.5.5.6で Java  EE  7  Full  Platform対応 21
  22. 22. #ccc_ab4 22 WASの新しいランタイム:Libertyプロファイル WAS V8.5.5 Liberty & WDT Java EE 7準拠 Java EE 7のFull Platform標準に 準拠したアプリを完全サポート 最新のJava SE 8もサポート Unzipによる導⼊入とデプロイ パッケージをした サーバー  + アプリ  + 構成情報を Unzipでデプロイ可能 簡単な構成と動的変更更 最低限必要な構成ファイルは server.xmlひとつだけ デフォルトベースで簡単構成 構成変更更は再起動なしに反映 軽量量ランタイム メモリー使⽤用量量が⼩小さい: 60MB程度度〜~ ディスク使⽤用量量も100MB以下 起動が速い 起動時間: 5秒程度度 統合ツール(WDT) ⾼高機能なEclipse⽤用の連携ツールを無償で提供 Eclipseから簡単に使⽤用可能 ⾃自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供
  23. 23. #ccc_ab4 軽量量・⾼高速なランタイム § 軽量量 – 数⼗十メガバイトのメモリ消費/100メガバイト弱のディスク消費 – コンテナや仮想環境への集約が容易易に § ⾼高速起動・動的変更更 – 数秒以内でサーバーが起動 – サーバーの構成変更更や アプリケーションの変更更も 即座に反映 § モジュール構造のランタイム – 提供機能をFeatureとして モジュール化 – 必要なFeatureだけを選択して 導⼊入・起動 <featureManager>        <feature>jsp-‐‑‒2.3</feature>        <feature>jdbc-‐‑‒4.1</feature>        <feature>jaxrs-‐‑‒2.0</feature>        <feature>sessionDatabase-‐‑‒1.0</feature>        <feature>ssl-‐‑‒1.0</feature> </featureManager> 構成ファイル  server.xml ServletJSPJDBCSSL JAX-‐‑‒RS sessionDatabase 依存関係も ⾃自動的に解決 JSON
  24. 24. #ccc_ab4 Java EE 7の三つのゴール § HTML5環境への対応 § 開発⽣生産性の向上 § エンタープライズ・ニーズへの対応 24 ⼤大幅な機能拡張
  25. 25. #ccc_ab4 フレームワークの世代交代 § Struts  1.x – 2013年年  EoL(End  of  Life)の発表 – 2014年年  脆弱性発⾒見見による混乱(CVE-‐‑‒2014-‐‑‒0114) § Seaser2 – 主要開発者のプロジェクト離離脱により新機能追加の停⽌止 – Ajax/HTML5連携やRESTful  Webサービス対応の不不備 – 2016年年でのサポート終了了宣⾔言 25
  26. 26. #ccc_ab4 2000年年代前半のWebアプリケーション § まだまだ未完成で⼒力力不不⾜足のJ2EE仕様 →多くの「アンチJ2EE技術」の登場 § コンテナ上にフレームワークを追加し その上にアプリケーションを構築することが主流流に – Open  Sourceフレームワーク – ベンダー製フレームワーク – 独⾃自フレームワーク 26
  27. 27. #ccc_ab4 2015年年のWebアプリケーション事情 § Java EE提供の各種仕様の機能増強・完成度度の向上 「標準仕様で⼗十分」 – CDI 1.x :依存性注⼊入 •  HibernateやSeaser2の提供していた機能をとりこみ – JSF 2.x :Webアプリケーション・フレームワーク – JPA 2.x :O/Rマッピング •  いずれもVersion 1.xから⼤大幅な機能強化 27 → Java EEへの回帰
  28. 28. #ccc_ab4 JSF JSP / EL Java  EE  7の標準的なアプリケーション構成 JAX-RS WebSocket CDI                    . EJB / JTA JPA Database •  画⾯面デザイン -‐‑‒  JSF  /  JSP  /  EL •  外部連携 -‐‑‒  JAX-‐‑‒RS  /  WebSocket •  依存性注⼊入・ビジネスロジック -‐‑‒  CDI  /  EJB  /  JTA •  DB連携・ORマッピング -‐‑‒  JPA
  29. 29. #ccc_ab4 Java  EE  7を採⽤用する価値 「標準」である強み § 多くのベンダーによるサポート – 特定のベンダーにロックインされることなく使⽤用できる § ⻑⾧長期にわたるサポート – 寿命の⻑⾧長いバックエンドにも安⼼心して採⽤用できる 利利⽤用する「フレームワーク」には, 利利⽤用する「アプリケーションサーバー」より   はるかに強くロックインされる 29
  30. 30. #ccc_ab4 Libertyプロファイルの「ゼロ・マイグレーション」 § 新しい仕様のバージョンに対応するフィーチャーが 追加されても,従来のバージョンも提供されます – 例例)  現在はServlet  3.1フィーチャーが提供されていますが, Servlet  3.0フィーチャーも引き続き利利⽤用できます § アプリケーションで新仕様が必要なければ 従来のフィーチャーをそのまま利利⽤用可能 – ただし, 対応するJDKのバージョンは変更更される可能性があります servlet-‐‑‒3.0 servlet-‐‑‒3.1 servlet-‐‑‒3.0 servlet-‐‑‒3.1 新バージョン 新バージョン ⼀一般的なアプリケーションサーバー WAS  Libertyプロファイル
  31. 31. #ccc_ab4 Java  SE  8:Project  Lambda 31 §   Lambda式 §   型推論論 §   Method  Reference §   Default  Method §   Stream  API ( 引数 ) -> { 処理理 } オブジェクトとして「変数に代⼊入」したり 「メソッドの引数にわたす」ことができる「コード⽚片」
  32. 32. #ccc_ab4 Lambda式とStreamによるループの内部化 § 外部イテレータ – コンテナから順次,要素を取り出して処理理を記述する § 内部イテレータ – 処理理をコンテナにわたして,コンテナが要素ごとに実⾏行行する 32 List<Person> list = ... ; List<String> ret = new ArrayList<String>(); for (Person p : list) { if (p.getGroupId().equals(group)) { String name = p.getName(); ret.add(name); } } return ret; return list.stream() .filter(p -> p.getGroupId().equals(group)) .map(p -> p.getName()) .collect(Collectors.toList()); filter map collect
  33. 33. #ccc_ab4 エンタープライズといえばロギング § ありがちなコード § これがLambda式でこうなる 33 if (log.isLoggable(Level.FINE)) { log.fine("Value = " + getVeryLargeString()); } log.fine(() -> "Value = " + getVeryLargeString()); メリット: ⾼高速化・コードの簡素化
  34. 34. #ccc_ab4 34 既存コードのJava  8への移⾏行行の負荷はそれなり 過去⼆二回(1.1→1.2および1.4→5.0)に匹敵する あるいは,それ以上のインパクトのある⼤大変⾰革 § じつはユーザーコードの変更更は,それほど⼤大変ではない § アプリケーションが使⽤用しているライブラリの Java  SE  8対応がかなり⼤大変になるケースがしばしば § 詳細はCD-‐‑‒2  清⼤大輔さん(株式会社ビズリーチ)のセッション資料料を! Java⾔言語仕様 1st Edition JDK 1.0 1.1 Java⾔言語仕様 2nd Edition J2SE 1.2 1.3 Java⾔言語仕様 3rd (SE 7) Edition J2SE 5.0 Java SE 61.4 7 Java⾔言語仕様  Java SE 8 Edition Java SE 8
  35. 35. #ccc_ab4 最初は新規アプリケーションで § 可能であれば「最初のJava  SE  8アプリケーション」は 新規に開発する案件で採⽤用 § ⼗十分なスキルが蓄積されたあとで 既存のアプリケーションのマイグレーションを § 移⾏行行後は,メンテナンスなどで⼤大きなメリットがあります 35
  36. 36. #ccc_ab4 36 システム構築の⾃自動化
  37. 37. #ccc_ab4 基盤技術者は「ソフトウェア開発者」になる § クラウドの時代にはInfrastructure  as  Codeや Immutable  Infrastructureの考え⽅方が必要 § 実⾏行行環境に問題が⾒見見つかった場合: – 従来は:実⾏行行環境を直接変更更する – これからは:環境を構築する「コード」を修正し,環境を再構築 37 ⼿手作業による 再現性のない作業 (の繰り返し) コード実⾏行行による 均質な作業と実⾏行行結果 ⼤大量量のドキュメント ・作業⼿手順書の整備 短時間で 確実なアウトプット
  38. 38. #ccc_ab4 構築⾃自動化の必要性 § クラウドではサーバー環境も – 必要なときに素早く作成 – 負荷に応じて数を⾃自由に増減 – 不不要になったら環境を削除 § 構築の頻度度はあがり かけられる時間は減少する 38
  39. 39. #ccc_ab4 Infrastructure  as  Codeの効果 § 構築時間の短縮 § ⼿手動設定によるミスの防⽌止・属⼈人性の排除 § 構成のバージョン管理理 39
  40. 40. #ccc_ab4 コンテナ技術:Dockerの普及 § OSも含んだ「仮想マシン」ですら負荷が⾼高い – サイズの⼤大きな仮想ディスクイメージ – OSの起動・停⽌止時間 – メモリリソースの消費 § 「仮想マシン」から「コンテナ」へ – アプリケーションを実⾏行行するのに 必要なリソースだけをイメージに格納 – OS内に隔離離された領領域を作成 – 短時間に配備・起動が可能 § Linuxをベースとしたコンテナ技術Dockerが デファクトスタンダードになりつつある 40
  41. 41. #ccc_ab4 WAS  LibertyはDockerイメージも提供 § Dockerで稼働するWebSphere  Application  Server   Liberty  プロファイル,  フルプロファイルもサポート対象 § 開発⽤用途で利利⽤用可能なWAS  Liberty  イメージは Docker  Hubからpullして使⽤用 – Java  EE  7対応の最新版  WAS  V8.5.5  Liberty  ドライバーを提供 – Liberty  Core,  Base,  NDの商⽤用ライセンスを使⽤用し,   Docker  Hubにあるイメージをアップグレード可能 https://registry.hub.docker.com/_̲/websphere-‐‑‒liberty/
  42. 42. #ccc_ab4 各種OSSツールとの連携 各種CI・Buildツールとの 連携機能をGitHubで公開 https://github.com/wasdev
  43. 43. #ccc_ab4 WAS  Libertyの無償利利⽤用 ⼀一つの企業につき2GバイトのJavaヒープメモリに限定し,テストおよび本 番でのLibertyプロファイルを無償で使⽤用が可能(サポートはなし)になる オプションを提供 ü  ⼩小規模な開発を無償ではじめて, 必要に応じて拡張 ü  現在の無償の開発者オプションに加え 実際の本番環境での利利⽤用を確認できる ü  パフォーマンスや機能拡張に優れた WAS  Liberty  Base  エディションの全機 能を利利⽤用可能 ü  オンプレミスとパブリッククラウドの 開発オプションを柔軟に選択可能 Libertyプロファイル無償提供の意義 無償オプションの利利⽤用⽤用法 §  WASdev.netから開発者版をダウンロード 提供されるライセンスファイルを適⽤用 §  WASdev上の⽂文章やForumを利利⽤用して 問題の解決が可能
  44. 44. #ccc_ab4 44 One  more  things...
  45. 45. #ccc_ab4 エンタープライズにも来るかもしれない技術 § サーバーサイドJavaScript 45 サーバーブラウザ APIクライアント モバイル var  http  =  require("http"); http.createServer(function(request,  response)  {    response.writeHead(200,  {"Content-‐‑‒Type":  "text/plain"});    response.write("Hello  World");    response.end(); }).listen(8888);
  46. 46. #ccc_ab4 Node.js § サーバーサイドJavaScriptの デファクトスタンダードの地位を確⽴立立 – 2009年年に開発、2012年年ぐらいから普及 – クライアント側でのJavaScriptの重要性が増すにしたがい台頭 § 評価された理理由 – Google製V8エンジンによるJavaScriptの⾼高速実⾏行行 – シングルスレッドのイベント・ループ,ノンブロッキングI/O – Node.js⽤用のモジュールが、エコシステムにより⼤大量量に存在 既存のものを組み合わせるだけでそれなりの物ができてしまう 46
  47. 47. #ccc_ab4 実は、IBMもNode.jsを提供してます §  IBM  SDK  for  Node.js  V1.2 §  OSSのNode.js  version  0.12.7ベース(2015/7/9リリース) –  現在の最新のNode.jsは5.0.0  (2015/10/29リリース) §  Intelアーキテクチャーに深く依存したV8エンジンを改良良し IBM  POWER  /  zアーキテクチャーに適合 –  AIX  /  Linux  on  Power  Systems  版 –  Linux  on  z  Systems  版 §  RAS(Reliability,  Availability,   and  Serviceability)機能を追加 §  Linux  x86  /  Windows  /  Mac  OS  X  版も提供 §  有償でサポートを提供
  48. 48. #ccc_ab4 2015年年9⽉月 IBMはStrongLoop社を買収しました § Node.js  向けの エンタープライズ ソリューションを 有償/OSSで 提供する企業 48 StrongLoop  Arc Data  Connectors Mobile  SDKs Enterprise  Connectors Process  Manager Monitoring  &  Tracing LoopBack:  API  Server Express  Framework Enterprise  Support API  Gateway  (beta) Open  Source Commercial License  Model Node.jsの Webアプリ・ フレームワークの デファクト MEAN(MongoDB,  Express,  AngularJS,  Node.js)
  49. 49. #ccc_ab4 49 最後に
  50. 50. #ccc_ab4 みなさんの⼒力力が必要です § 新しい技術が, あなたの会社でいつ採⽤用されるかを決定する もっとも⼤大きな要因は「現場の⽅方たちの声」です。 § ⼗十分に検証された新技術の導⼊入は, 利利⽤用者・開発者・経営者のみなにメリットをもたらします § 変わることを楽しみましょう! 50
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×