【13-B-4】事例から学ぶdev...
-
Upload
developers-summit -
Category
Technology
-
view
1.337 -
download
0
description
Transcript of 【13-B-4】事例から学ぶdev...
© 2014 IBM Corporation
【13-B-4】
事例から学ぶDevOps実現のためのプラクティス
#devsumiB
黒川 敦
日本アイ・ビー・エム株式会社ソフトウェア事業Rational IT テクニカル・セールス
© 2014 IBM Corporation
2002年日本IBM入社
–WebSphere テクニカル・セールス
–お客様担当SEとしてSOAプロジェクトに参加
–Rational テクニカル・セールス
• Java設計、開発ツール
• メインフレーム開発ツール
• DevOpsとUrbanCodeの立ち上げ
–developerWorks Rational管理者
中小企業診断士
–商店街支援、東北の復興支援
趣味:マラソン
2
自己紹介
https://www.ibm.com/developerworks/jp/rational/
© 2014 IBM Corporation
CEO スタディー 2004–2013
出所: 問E8 – 今後3-5年間で、企業に最も影響を与える外部要因はどれでしょうか; n = 884
経営層が求めるITを活用したアジリティー
2004 2006 2008 2010 2012 20131
2
3
6
4
5
7
8
9
1
2
3
6
4
5
7
8
9
1
2
3
6
4
5
7
8
9
1
2
3
6
4
5
7
8
9
1
2
3
6
4
5
7
8
9
テクノロジー
市場の変化
マクロ経済要因
人材・スキル
法規制
社会経済要因
グローバル化
環境問題
地政学的要因
2
3
6
4
5
7
8
9
1
CEOは自社に影響を及ぼす外部要因のうち、「テクノロジー」と「市場の変化」を最も重要な要因だと考えている
3
© 2014 IBM Corporation
日本でのアジャイルの普及度
ここ5年でアジャイル開発は確実に普及してきている
アジャイル開発の取り組み状況の遷移
引用:Agile Conference 2009, 2011, 2013 IBMセッション4
© 2014 IBM Corporation
DevOps
5
Ops who think like devsDevs who think like ops
【出典】10 deploys per day - Dev & ops cooperation at Flickr, John Allspaw & Paul Hammond, Velocity 2009. http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
© 2014 IBM Corporation
DevOpsをとりまく環境の変化 (SMACS)
6
ビジネス変化に俊敏な対応に対するITテクノロジーへの期待
Social
Mobile
Analytics
Cloud
Security
お客様 事業部門
© 2014 IBM Corporation7
リーン・スタートアップ
最低限の製品やサービス、試作品を作って顧客の反応を見る
仮説の構築と検証を繰りかえす仮説の構築と検証を繰りかえすスピードアップが必要!スピードアップが必要!
【出典】THE LEAN STARTUP, ERIC RIES
© 2014 IBM Corporation8
運用部門事業部門顧客 開発部門
顧客、事業部門を含めたDevOps
リーン・スタートアップをリーン・スタートアップをDevOpsDevOpsが⽀えるが⽀える
【DevOps】
【アジャイル】
© 2014 IBM Corporation
Action!したStory
9
①uTest–世界最大級のソフトウエア・テスト・サービス
–200カ国に約10万人のテスターを抱えるコミュニティー
–特にモバイル・アプリケーションのテストなどで実際の使用環境に近い形で世界中でテスト可能
②PointSource–企業向けのモバイルソリューションを提供
• 銀行向け、小売業向け、医療向け
–クラウド開発環境:JazzHubの活用
© 2014 IBM Corporation
Action!したStory
10
①uTest–世界最大級のソフトウエア・テスト・サービス
–200カ国に約10万人のテスターを抱えるコミュニティー
–特にモバイル・アプリケーションのテストなどで実際の使用環境に近い形で世界中でテスト可能
②PointSource–企業向けのモバイルソリューションを提供
• 銀行向け、小売業向け、医療向け
–クラウド開発環境:JazzHubの活用
© 2014 IBM Corporation
In-HouseManualTesting
Outsourced Manual Testing
In-HouseTest
Automation
OutsourcedTest
Automation
Windows
verizon
AT&T
SONY iOS
Firefox
HTC
SAMSUNG
LG
IE
Windows 8
uTest - 世界中に広がるテスト・サービス
11
© 2014 IBM Corporation
テスト担当者
エンドユーザー
設計者 / 開発者
事業部門/ マーケティング
モバイルアプリ開発に関する課題
迅速なフィードバックが必要迅速なフィードバックが必要そこにそこにDevOpsDevOpsを適⽤してみると・・・を適⽤してみると・・・
“モバイル・アプリケーションを顧客に効果的に使ってもらう
にはどうすればよいか?”(ビジネスにつなげるためには)
“顧客の実際の操作を受け、機能追加や障害対応を迅速
に行いたい”
“操作の不満や障害をカスタマー・センターに伝えてもすぐに直してもらえない”
“どうやったらデバイス情報や画面ショット付きの障害レポートを
すぐに起票できるのか?手間がかかって仕方ない”
12
© 2014 IBM Corporation
テスト担当者エンドユーザー
クラッシュログの自動レポート
3
事業部門/ マーケティング
ユーザーのフィードバック
クラッシュログ
障害報告障害の傾向分析
DevOpsサイクルを加速化する仕組み
端末からの障害報告1 端末からのフィードバック2フィードバックの分析4
設計者/開発者
13
© 2014 IBM Corporation
エンドユーザー
デモの流れ
端末からの障害報告
障害報告データ
設計者/開発者
14
© 2014 IBM Corporation
uTestにおけるDevOpsプラクティス
運用品質をモニターおよび検証する
–頻繁で正確なビルドの配布
–障害の報告は容易かつシンプルに
–品質メトリクスの収集
ループバックを拡大する
–ユーザーからの直接フィードバック
• ニーズ
• 障害の収集
–センチメント分析(感情分析)
継続的なモニタリング継続的なモニタリング15
© 2014 IBM Corporation
頻繁で正確なビルドの配布
テスト担当者開発者 構成管理ツール/ CIツール16
インストールするビルドを継続的にリリースする– 継続的インテグレーションとの連携
対象のテストデバイスに自動通知
変更をコミット
ビルド
© 2014 IBM Corporation
障害の報告は容易かつシンプルに
システム情報に含まれるもの
-デバイスメーカー、モデル
-OS、バージョン
-キャリア、接続スピード
-バッテリー消費量
-再現手順、画面ショット など
17
障害報告を素早く正確に報告してもらうための工夫– 「デバイスを振ると報告画面に」、「操作が直観的」
– 「システム情報の自動収集」、「チケット管理システムとの連携」
© 2014 IBM Corporation
品質のメトリクスを収集して分析
18
実績の品質データを可視化し、予測可能性を向上する
–本番だけでなく、テスト段階のデータも収集し早期に警告
–(例) バージョン毎のバグとクラッシュの傾向
© 2014 IBM Corporation
直接のユーザー・フィードバック
19
顧客フィードバックの
継続的な収集
–顧客の声(顕在的)
• ニーズ
• 不満
–クラッシュ(潜在的)
目的に応じたフィードバック先の柔軟性
–事業部門
–マーケティング
–設計者 / 開発者
© 2014 IBM Corporation
センチメント分析(感情分析)
20
ユーザーのアプリや特定のトピックに対する感情・心情を分析する
–肯定的、中立、否定的
品質メトリクスと組み合わせることで、次のモバイル戦略、製品に活用
© 2014 IBM Corporation
(参考)コーディング例
21
import com.apphance.android.Apphance;import com.apphance.android.Apphance.Mode;import com.apphance.android.common.Configuration;
public class MainActivity extends Activity { public static final String APP_KEY = "Your-Application-Key-Goes-Here";
@Overridepublic void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
Configuration configuration = new Configuration.Builder(this).withAPIKey(APP_KEY).build();
Apphance.startNewSession(MainActivity.this, configuration);}
}
Androidの本番デバイス用のコーディング
ライブラリのインポート
セッションの開始(直接のユーザー・フィードバックなど)
© 2014 IBM Corporation
Mobile Quality Assurance (Open Beta)
是⾮お試しください是⾮お試しください (Try it)(Try it)!!https://www.ibm.com/developerworks/community/blogs/mobilequalityhttps://www.ibm.com/developerworks/community/blogs/mobilequalitybetamobilesite/entry/homebetamobilesite/entry/home
22
© 2014 IBM Corporation
Action!したStory
23
①uTest–世界最大級のソフトウエア・テスト・サービス
–200カ国に約10万人のテスターを抱えるコミュニティー
–特にモバイル・アプリケーションのテストなどで実際の使用環境に近い形で世界中でテスト可能
②PointSource–企業向けのモバイルソリューションを提供
• 銀行向け、小売業向け、医療向け
–クラウド開発環境:JazzHubの活用
© 2014 IBM Corporation
PointSource -企業向けのモバイル・ソリューション・プロバイダー
24
© 2014 IBM Corporation
モバイル市場では time to market の速さが最重要
– プロジェクトは数週間ではなく、数時間の単位で実行
お客様からの要求の変化に柔軟に対応しなくてはいけない– IT部門だけでなく、事業部門 やCMOオフィスも対象
– IT予算がオーバーしがちで、初期投資を増やすことができない
– プロジェクト管理手法の検討 (アジャイル開発)
PointSourceとお客様との摩擦
– 地理的分散
– コミュニケーション・ミス
– 成果物の散在 など
25
早期のプロジェクト⽴ち上げとコラボレーション環境が必要早期のプロジェクト⽴ち上げとコラボレーション環境が必要そこで開発クラウドを検討・・・そこで開発クラウドを検討・・・
PointSourceにおける課題
© 2014 IBM Corporation26
DevOpsサイクルを加速化する仕組み
ソース管理
ワークアイテム(タスク、障害)
計画
JazzHub (SaaS)
ミドルウェア(サービス)
アプリケーション
BlueMix (PaaS)
Web IDE
EclipseOrion
EclipseIDE
開発者
お客様
管理者
アプリケーション・ランタイム
フレームワーク
デプロイ
© 2014 IBM Corporation
デモの流れ
ソース管理
ワークアイテム(タスク、障害)
計画
JazzHub (SaaS)
ミドルウェア(サービス)
アプリケーション
BlueMix (PaaS)
Web IDE
EclipseOrion
アプリケーション・ランタイム
フレームワーク
デプロイ
①JazzHubにログイン
②プロジェクトの選択
③ソースコードの確認(Eclipse Orion)
④BlueMixへのデプロイ
27
⑤アプリケーション確認
© 2014 IBM Corporation
PointSourceにおけるDevOpsプラクティス
フィードバックはできる限り早く受け取る
–早期にアクセスできるコードで価値を示す
–実績あるプログラムを利用する
共有のためのコラボレーション環境を即時に整備する
–ライフサイクルでのトレーサビリティー確保
–コンテキストに応じたコラボレーション
コラボレーティブ開発コラボレーティブ開発 on Developer Cloudon Developer Cloud28
© 2014 IBM Corporation29
早期にアクセスできるコードで価値を示す
組織を超えたコラボレーションを支援する仕組みの採用
–(例) ブラウザでのコード開発、計画、ワークアイテムの作成
JavaScriptのコード・アシスト機能
JazzHubに含まれる Eclipse Orion エディター
© 2014 IBM Corporation30
早期にアクセスできるコードで価値を示す
プラットフォームのクラウド化 (PaaSの活用)早期の継続的な顧客フィードバックの収集と対応
Launch(デプロイ)
デプロイ済みアプリケーション
利用サービス (この例ではMongo DB)
JazzHub
BlueMix
© 2014 IBM Corporation31
実績あるプログラムを利用する
JazzHubの別のプロジェクト
GitHub–JazzHubと連携可能
Web API
function getKloutInfluence(kloutId, callback) {url = "http://api.klout.com/v2/user.json/" + kloutId + "/influence?"url += "key=" + Key
httpRequest(url, callback)}
Web APIのコーディング例 : Kloutサービスの呼び出し
JazzHubのプロジェクト検索
© 2014 IBM Corporation32
ライフサイクルでのトレーサビリティー確保
計画(要求、タスク)を含む開発ライフサイクル全体の成果物を紐付けて管理
関連する情報へのアクセス性が向上
関連する人へもリンクされているため、コラボレーションの基点となる
リンク付けの敷居を下げるユーザビリティ上の工夫も必要
ワークアイテム(タスク)
ソースコードの変更履歴 ビルド結果 テスト結果
ワークアイテム(タスク)
依存関係など作成者、担当者、承認者、…
(お客様も含まれる)
ファイル
開発者
設計者
管理者
要求
テスト担当
© 2014 IBM Corporation33
コンテキストに応じたコラボレーション
開発者向けに太字で表⽰された未読のワークアイテム
スレッド化されたディスカッション
コメント、メール通知
要求に関する最近のディスカッション (ハイライト箇所)
メンバーが各アクティビティの「誰が、何を、いつ、なぜ」をすばやく把握可能
© 2014 IBM Corporation34
まとめ:DevOpsにおけるプラクティス
運用部門事業部門顧客 開発部門
コラボレーティブ開発
継続的インテグレーション
継続的デリバリー
継続的テスト
継続的なモニタリング、継続的な改善
継続的なビジネス計画
© 2014 IBM Corporation
JazzHub
是⾮お試しください是⾮お試しください (Try it)(Try it)!!https://hub.jazz.net/https://hub.jazz.net/
35
パブリック、プライベートのプロジェクト作成が可能
© 2014 IBM Corporation
BlueMix (Codename)
是⾮お試しください是⾮お試しください (Try it)(Try it)!!https://ace.ng.bluemix.net/https://ace.ng.bluemix.net/
36
Cloud FoundryベースのIBM Public PaaS
© 2014 IBM Corporation37
© 2014 IBM Corporation38
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM、IBM ロゴ、ibm.com、およびRational は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。IT Infrastructure Libraryは英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標です。インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium は Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。ITILは英国The Minister for the Cabinet Officeの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。UNIXはThe Open Groupの米国およびその他の国における登録商標です。Cell Broadband Engineは、Sony Computer Entertainment, Inc.の米国およびその他の国における商標であり、同社の許諾を受けて使用しています。JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。Linear Tape-Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの米国およびその他の国における商標です。