エンジニアのための cloud 活用

129
#azurej p #azurej p エエエエエエエエエ Cloud エエ エエ エエ エエエエエエエエエエエエエ エエエエエ エエエエエエエエ https://www.facebook.com/ dahatake/ https://twitter.com/ dahatake/ https://github.com/ dahatake/ https:// daiyuhatakeyama.wordpress.com/

Upload: daiyu-hatakeyama

Post on 08-Jan-2017

117 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: エンジニアのための Cloud 活用

#azurejp#azurejp

https://www.facebook.com/dahatake/https://twitter.com/dahatake/https://github.com/dahatake/https://daiyuhatakeyama.wordpress.com/

Page 2: エンジニアのための Cloud 活用

#azurejp

ビジネスのうねり

Page 3: エンジニアのための Cloud 活用

#azurejp

1

2

3

4

5

6

7

8

9

10

11

0 2 4 6 8 10 12 14 16 18 20 2222

33

44

566

820

時間(年)

驚異的に短縮

スマ

ート

フォ

$499$10

2007

2015

単価

ドロ

ーン $100,000

$7002007

2013

単価

3D プ

リン

ター

$40,000$100

2007

2014

同程度の機能を実現する機器の単価

DNA

検査 $2.7BN

$10M$1,000

2000

2007

一回あたりの検査費用

2014

テクノロジーの製造コスト ビジネスが 10 億ドル規模に拡大するまでに要する時間

Source: World Economic Forum

3

Page 4: エンジニアのための Cloud 活用

#azurejpEvery company is a software company

Page 5: エンジニアのための Cloud 活用

#azurejp

Cloud とは ?

Page 6: エンジニアのための Cloud 活用

#azurejp

フロント UI

クエリー解析と処理

スケーラビリティインターネッ

データストア

データ管理

自動化 高可用性

Page 7: エンジニアのための Cloud 活用

#azurejp

社内社外

オンデマンド

スケーラブル

マルチテナント

セルフサービス

場所

ビジネス

技術

インフラ

ビジネス モデル

所有権

システム管理

異種同種

事業運営費 資本的支出額

リース 自社

パートナー 自身

オンプレミス

クラウド

「ホスティング」と何が違うの ?ベストプラクティス

Page 8: エンジニアのための Cloud 活用

#azurejp

社内社外

オンデマンド

スケーラブル

マルチテナント

セルフサービス

場所

ビジネス

技術

インフラ

ビジネス モデル

所有権

システム管理

異種同種

事業運営費 資本的支出額

リース 自社

パートナー 自身

オンプレミス

クラウド

「ホスティング」と何が違うの ?

同じ

ベストプラクティス

新しい !

Page 9: エンジニアのための Cloud 活用

#azurejp

オンプレミス

ストレージ

サーバー

ネットワーク

OS

ミドルウエア

仮想化

データ

アプリケーション

ランタイム

インフラストラクチャー(IaaS)

ストレージ

サーバー

ネットワーク

OS

ミドルウエア

仮想化

データ

アプリケーション

ランタイム

ユー

ザー

管理

プラットフォーム(PaaS)

ストレージ

サーバー

ネットワーク

OS

ミドルウエア

仮想化

アプリケーション

ランタイム

データ

ソフトウエア(SaaS)

ベン

ダー

管理

ストレージ

サーバー

ネットワーク

OS

ミドルウエア

仮想化

アプリケーション

ランタイム

データ

Microsoft Azure 仮想マシンWindows Server Hyper-VWindows Server Microsoft Azure

クラウドサービスOffice 365

Dynamics CRMベ

ンダ

ー管

ベン

ダー

管理

ユー

ザー

管理

ユー

ザー

管理

管理責任の境界線

Page 10: エンジニアのための Cloud 活用

#azurejp

Azure が OS を管理

あなた自身で OS とアプリを管理

すべての言語!

.NET, node, PHP, Python, Java

全て管理されるOffice 365, Salesforce, HDInsight, etc.

Rental Carレンタカー

(PaaS)

Your First Car初めての自家用車

(IaaS)

Taxiタクシー

(SaaS)

Page 11: エンジニアのための Cloud 活用

#azurejpIaaS vs. PaaS• Application にフォーカス。 Infrastructure ではなく。

ビジネス上のメリット

技術的なメリット

市場投入の速さ

既存ツールやプロセスとの統合

低リスクでの採用

小さく始めて成長させやすい

機能ベースでの SLA

オンプレミス、ハイブリット、クラウドの選択肢

ソリューションのカスタム構築もしくはテンプレート化が容易

柔軟なスケール設定

ロードバランサーと広域災害対策

多言語サポート

バージョン管理とロールバック

セキュアなサービス

モニタリングと管理

Page 12: エンジニアのための Cloud 活用

#azurejpMicrosoft Azure PaaS の価値• IaaS から、 PaaS へ移行した顧客へのインタビューをも

とにした金銭的かつビジネス上のメリット

Based on five-year, risk-adjusted figures for a composite organization constructed from aggregated interviews with eight Microsoft Azure IaaS customers.Source: “The Total Economic Impact Of Microsoft Azure PaaS,” a commissioned study conducted by Forrester Consulting, June 2016

466%ROI

$5.91M Net Present

Value( 現在価値 )

80% 時間の削減

50% 市場投入の早さ

Page 13: エンジニアのための Cloud 活用

#azurejp

Datacenter

Page 14: エンジニアのための Cloud 活用

#azurejpMicrosoft Datacenter

サーバーキャパシティ20 年来のテクノロジー

2.0+ PUE

コロケーション

第1世代

高密度化ラック高密度化と展開資源影響最小化

1.4 – 1.6 PUE

第2世代

201220091989-2005 2007

コンテナー

1.2 – 1.5 PUE

コンテナー、 POD拡張性と持続可能性外気と水による経済的な冷却SLA の改善

第3世代

モジュラー

1.12 – 1.20 PUE

ITPAC(組み立て式コンポーネント)CO2 抑制、適正サイズ化早期運用屋外空冷式

第4世代

統合化

1.07 – 1.19 PUE

統合システム 耐障害性の高いソフト共通のインフラシンプルな運用柔軟性と拡張性

第5世代

Future

Page 15: エンジニアのための Cloud 活用

#azurejp

Page 16: エンジニアのための Cloud 活用

#azurejp

Page 17: エンジニアのための Cloud 活用

#azurejp

Page 18: エンジニアのための Cloud 活用

#azurejp

データセンターの面積は1 つのフットボール場に近い

Page 19: エンジニアのための Cloud 活用

#azurejp

それは、 2 機のジャンボジェット機が格納できる広さ

Page 20: エンジニアのための Cloud 活用

#azurejp

1 つの Region にデータセンターが16個

Page 21: エンジニアのための Cloud 活用

#azurejp

それぞれの Azure Region には、

600,000 サーバーが置ける

Page 22: エンジニアのための Cloud 活用

#azurejp

Security

Page 23: エンジニアのための Cloud 活用

#azurejp

「危なくて外部にデータおけないよ…」

Page 24: エンジニアのための Cloud 活用

#azurejp技術に関係なくアタックされる

Page 25: エンジニアのための Cloud 活用

#azurejp

Page 26: エンジニアのための Cloud 活用

#azurejp

コントロール

秘匿性とデータ保護

契約と SLA

標準的なセキュリティ

施策

コントロールできる

Page 27: エンジニアのための Cloud 活用

#azurejp

ID 管理とアクセス制御

データの統制 ホストの保護 Operations

Management Suite

Azure セキュリティ センター

Azure Marketplace

暗号化 安全なネットワーク通信

セキュリティの管理

Key Vault 保存データ暗号化オ

プション 通信データ暗号化オ

プション SQL の暗号化 ディスクの暗号化

パートナー ソリューション

ネットワーク セキュリティ グループ (NSG)

VPN ExpressRoute

自身でコントロールする

Page 28: エンジニアのための Cloud 活用

#azurejp

企業向けの建屋、ソフトウェアやサービスは、業界最高のセキュリティを維持

サイバーセキュリティ

業界標準や、コンプライアンスの準拠をお約束

コンプライアンス

プライバシーの保護のため、お客様のデータは、サービスの遂行のためだけに使用し、広告ビジネスには使用しない

プライバシー

トラストセンターにて、Software Development Lifecycle や 法的情報のレポートなどを公開

透過性

Trustworthy Cloud• Microsoft はお客様に対してオープンで透過的であること

をお約束いたします。プライバシーとセキュリティなどのデータ保護の手順なども公開しています。

Page 29: エンジニアのための Cloud 活用

#azurejpコンプライアンスへの適合状況①

CDSAContent Delivery and Security Association (CDSA) は、デジタル メディアに関わる著作権侵害防止手順のコンプライアンスについての Content Protection and Security (CPS) 標準を提供しています。 Azure はこの CDSA 監査に合格しており、コンテンツ開発と配信に関するワークフローのセキュリティが確保されています。

CJISFBI の刑事司法情報サービス (CJIS) データベースにクラウド ベースのソリューションを介してアクセスする米国連邦機関または地方機関は、 CJIS セキュリティ ポリシーに準拠したクラウド プロバイダーを利用する必要があります。 Azure は、 CJIS に準拠することが契約上明記されている唯一のメジャー クラウド プロバイダーです。

CSA CCMCloud Security Alliance (CSA) Cloud Control Matrix (CCM) には、 CCM バージョン 1.2 で定義されているセキュリティ、プライバシー、コンプライアンス、リスク管理の要件を Azure がどのように満たしているかについて詳細が記されています。

DIA CAP米国国防総省 (DoD) の Information Assurance Certification and Accreditation Process (DIACAP) は、企業と組織の情報システムのリスク管理を支援する米国国防総省のプロセスです。しかし、 2014 年 3 月、 DoD は DIACAP を NIST 800-37 Risk Management Framework と DoD 8510.01 に置き換えました。 Azure は、 FedRAMP 認定を通じてこれらの基準の適合性を実証しています。

ENISA IAFThe European Network and Information Security Agency (ENISA) Information Assurance Framework (IAF) is a set of criteria designed to help organizations assess the risk of adopting cloud services and gain assurance that CSPs are appropriately securing customer information. To evaluate Azure’s compliance with IAF criteria, customers can refer to Azure’s CSA CCM version 3.0.1 where the IAF requirements have been mapped against the CSA CCM’s control framework.DISA レベル 2Azure は、 FedRAMP JAB との互恵協定に基づき、クラウド セキュリティ モデル レベル 2 の DISA Provisional Authorization の認証を取得しました。この認定は、 DoD Instruction 8500.01 および 8510.01 、セキュリティ要件ガイド、 CDSSI 1253 、および NIST 800-37 / 53 で定められた必要な基準に Azure が適合していることを証明するものです。EU モデル契約条項Microsoft は、個人データの転送に関する契約上の保証を行う EU 標準契約条項をお客様に提供します。 Microsoft は、 EU の第 29 条作業部会 (契約上のコミットメントに関する作業部会 ) から認定を受けた最初の企業です。

FDA 21 CFR 第 11 部米国食品医薬品局 (FDA) 連邦規則集 (CFR) 第 21 編第 11 部は、米国内で製造または消費される食物および薬品を販売する企業の電子記録のセキュリティに関するコンプライアンス要件を定めています。規制要件を満たすために Microsoft とお客様の間で共有する責任について記されている Qualification Guideline for Microsoft Azure を用い、企業は Azure サービスと実行がそれらの要件を満たしていることを例証できます。

FedRAMPFederal Risk and Authorization Management Program (FedRAMP) は、米国政府で実施される必須プログラムであり、連邦機関が使用するクラウド サービスに対するセキュリティの評価、承認、および監視について標準化された手法を提供します。 Azure は、FIPS 199 分類に基づく Moderate (部分的な ) 影響レベルにおいて FedRAMP の Joint Authorization Board (JAB) から、 Provisional Authorities to Operate (P-ATO) を付与されています。

FERPAFamily Educational Rights and Privacy Act (FERPA) は、学生の教育記録のプライバシーを保護する米国連邦法です。 Azure は FERPA に準拠しているので、学生データの第三者への転送が制限されています。

FIPS 140-2Federal Information Processing Standard (FIPS) Publication 140-2 は米国政府のセキュリティ基準で、機密情報を守る暗号化モジュールのセキュリティ要件を指定します。 Azure は、 NIST によって公開された検証済みリストに掲載されている Microsoft の暗号化モジュールを使用しています。これにより、お客様は、情報の暗号化要件を満たす方法で Azure Virtual Network サービスを構成および使用できます。FISC日本の金融情報システム センター (FISC) とその会員は連携して、金融機関の情報システムにおける一連のセキュリティ対策推進ガイドラインを確立しました。 Azure は、 FISC の要件を満たすために評価を受けました。また、銀行のコンピューター システムのセキュリティ、情報システム監査、緊急時対応策、セキュリティ ポリシーの策定に関する推奨を含むガイダンスを提供しています。

GB18030GB18030 is the Chinese ideographic character set and encoding standard. It applies to the software processing of Chinese characters in the exchange, storage, transmission, display, input, and output of information. The government of China has mandated that all software and services shipped to China must provide the necessary level of support for Chinese character sets in order to ensure interoperability with appropriate Chinese languages. Microsoft Azure is certified as compliant with the mandatory part of this standard by the China Electronics Standardization Institute (CESI).IRS 1075Internal Revenue Service Publication 1075 (IRS 1075) は、関係機関が採用しているポリシー、プラクティス、管理、セーフガードにより、連邦税情報と関連する財務上の納税申告データの機密性が適切に保護されていることを確認するためのガイダンスを提供しています。 Microsoft Azure Government は、お客様が IRS 1075 の要件に準拠するためのセキュリティ機能をサポートします。

FISMA米国連邦情報セキュリティ マネジメント法 (FISMA) は、連邦政府機関内の情報システムをセキュリティ保護するための米国国立標準技術研究所 (NIST) が定義したガイドラインをよりどころとしています。 FedRAMP では、各機関に独自の情報セキュリティ プログラムを定義および実行するよう求めるのではなく、すべての当事者に対して一貫した査定を行います。これにより、クラウド ソリューションの承認プロセスが簡略化されます。

HIPAA / HITECHHealth Insurance Portability and Accountability Act (HIPAA) は、患者の保護された医療情報 (Protected Health Information: PHI) に関して規定した米国連邦法です。 Azure は、 HIPAA のセキュリティとプライバシーの条項への準拠を明記した HIPAA Business Associate Agreement (BAA) をお客様に提供しています。

CCSL (IRAP)Azure は、オーストラリア通信電子局 (ASD) によって認定済みで、未分類 (DLM) データの保存と処理に関して ASD Certified Cloud Services List (CCSL) に含まれています。この認定で、独立登録審査機関が行う包括的な評価の完了、見直し、および承認が正常に行われたことが認められました。

ISO/IEC 27001/27002:2013ISO/IEC 27001/27002:2013 認証は、この規格で定義されている、国際的に認められている情報セキュリティ統制 ( 組織内での情報セキュリティ管理の開始、実装、維持、および向上のガイドラインや一般原則など ) をマイクロソフトが実装していることを認証しています。

ISO/IEC 27018:2014Microsoft は、クラウド サービス プロバイダーによる個人情報の取り扱いについて規定している ISO/IEC 27018 実施基準に準拠する唯一のクラウド プロバイダーです。 ISO/IEC 27018 に含まれている規定では、お客様の同意を得ることなくお客様のデータを宣伝やマーケティングのために使用することを禁じています。

(2015 年 12月現在 )

Page 30: エンジニアのための Cloud 活用

#azurejpコンプライアンスへの適合状況②

MLPSマルチレベル保護スキーム (MLPS) は、中華人民共和国公安部によって発行された中国国家規格に基づきます。 Azure はこの規格に準拠する 21Vianet によって運用され、クラウド システムの管理と技術のセキュリティの両面が保証されています。

MTCS SS Tier 3Azure ( パブリック ) は、 Multi-Tier Cloud Security Standard for Singapore (MTCS SS) でレベル 3 の認定を取得しました。これは、シンガポールの Information Technology Standards Committee (ITSC) によって策定されたデータ保持とデータ主権などの分野を網羅する ISO 27001 ベースの基準です。レベル 3 は、 HBI データの最も厳しいセキュリティ要件で組織を規制するように設計されています。NZ GCIOニュージーランド (NZ) の Government Chief Information Officer (GCIO) は、基本的にデータ主権に関連する、クラウド サービスのセキュリティとプライバシーの面に焦点を当てた 105 の質問で構成される枠組みを公開しました。 Microsoft New Zealand は、 Microsoft Azure がこれらの要件をどのように満たしているかについての情報を積極的に発信しています。

PCI DSS レベル 1Azure は、ペイメント カード業界 (PCI) データ セキュリティ基準 (DSS) レベル 1 バージョン 3.0 に準拠しています。これは、ほとんどのペイメント カードを受け入れ、各種カードの所有者のデータを保存、処理、または送信する組織のための世界的な認証基準です。

Safe HarborMicrosoft abides by the US–EU Safe Harbor Framework and the US–Swiss Safe Harbor Program set forth by the US Department of Commerce regarding the collection, use, and retention of data from the EU as well as the European Economic Area (EEA)—Norway, Iceland, and Liechtenstein—and Switzerland.Shared Assessments ProgramThe Shared Assessments Program is a vendor risk management toolset that customers can use to assess and verify Azure’s IT, privacy and data security controls in support of cloud security. Azure demonstrates alignment with the Shared Assessments Program’s cloud security requirements through the CSA CCM version 3.0.1 where the SIG questionnaire and AUP requirements have been mapped against the CSA CCM’s control framework.SOC 1 Type 2 および   SOC 2 Type 2Service Organization Controls (SOC) は、サービス組織の会計情報に関する制御を測定するための一連の会計基準です。Azure の SOC 1 および SOC 2 Type 2 監査レポートは、セキュリティ制御の設計と運用の効果性を検証します。

TCS CCCPPF21Vianet 社が運用する Azure は、オープン プラットフォームの、高品質なサービス レベル契約、強力なデータ復元機能を提供し、お客様に堅実なメリットをもたらすことで、 China Cloud Computing Promotion and Policy Forum (CCCPPF) が策定した Trusted Cloud Service Certification (信頼されたクラウド サービス認証 ) に最初に合格した中国のクラウド プロバイダーの 1 つに数えられてます。

英国 G-Cloud英国政府の G-Cloud は、英国内の政府機関が使用するサービスに関するクラウド コンピューティング認証です。Azure は、英国政府の Pan Government Accreditor から OFFICIAL 認証評価を受けています。

米国リハビリテーション法第 508 条 / VPATMicrosoft は、 Azure のコア サービスの多くについて詳細な Voluntary Product Accessibility Templates (VPAT) を提供して、米国リハビリテーション法第 508 条への Azure の適合レベルを実証しています。 Azure は多くのサービスで構成されているため、特定のコンポーネントと機能に個別の VPAT が提供されています。

(2015 年 12月現在 )

Page 31: エンジニアのための Cloud 活用

#azurejp共同責任Azure だけで、守れるわけではない。

皆様 Microsoft

On-Premises IaaS PaaS SaaS

StorageServers

Networking

O/SMiddleware

Virtualization

DataApplications

Runtime

Page 32: エンジニアのための Cloud 活用

#azurejp

データセンター側でどんなセーフガードが行われているの

か ?

クラウド上のアプリケーションのセキュリティを

向上させるためには、

自分達は何ができるのか ?

Page 33: エンジニアのための Cloud 活用

#azurejp

DevOps

Page 34: エンジニアのための Cloud 活用

#azurejp典型的な課題 – ユーザーのFeedback

“ フィードバックありがとうございます !頂戴したコメントは、数年後に予定しています次のリリー

スには反映させていただきます。”

The OLD way

ベータ

サービスイン

ベータ

サービスイン

Page 35: エンジニアのための Cloud 活用

#azurejp

Page 36: エンジニアのための Cloud 活用

#azurejp1. 自己組織化とビジネス連携

• 自己組織化• 1 Feature Team = Dev + QA + Ops + PM

• ビジネス連携• ビジョン - シーズン - Plan - 開発のレイヤー• スプリントの成果物はビデオで報告

Page 37: エンジニアのための Cloud 活用

#azurejp2. 技術的負債の管理

• テスト• 可能な限り最も低レベルテストを書く• Write once, run anywhere: 本番でも動く

• リポジトリ• 1 マスターブランチ• こまめに継続的に

マージ

Page 38: エンジニアのための Cloud 活用

#azurejp3. 顧客の価値をプロダクトに反映

• 少数意見にも耳を傾ける• アカウントごとの利用率を測定。悪い場合はアプローチして問題点を把握

• 顧客との会話• ユーザーフィードバックに対して回答

Page 39: エンジニアのための Cloud 活用

#azurejp4. & 5. ユーザーデータの収集と分析

• 仮説検証を繰り返す• アカウント作成率改善例• フィーチャーフラグを使用して検証を実施

• ユーザーデータは Power BI で可視化して分析

作成率 : 36% 作成率 : 54%

Page 40: エンジニアのための Cloud 活用

#azurejp6. プロダクション ファーストマインドセット• アラートを減らす

• アクション可能なアラートだけを通知• ヘルスモデルに基づいて疑わしき根本原因を自動分析

原因が同じコンポーネントこのコンポーネント開発

チームにアラート通知

Page 41: エンジニアのための Cloud 活用

#azurejp7. インフラを柔軟なリソースとして活用

• リリースワークフローを自動化• Visual Studio Team Services

リリース管理機能で実現

• カナリアテストも容易に• Azure Resource Manager テンプレートで

インフラ構築を速く・確実に実現

Page 42: エンジニアのための Cloud 活用

#azurejp典型的な障壁

• パフォーマンスと可用性のトラブルシューティングはいつも難しい

• 運用者は速度についていって、十分早くリリースができない

• アジャイル方法論が開発サイクルをスピードアップした

• 投資の優先順位付けが実際に使われるパターンに即していない

計画 モニタ + 学習

Development

リリース

Operations

開発 + テスト

Page 43: エンジニアのための Cloud 活用

#azurejpリリースサイクル改善の課題

迅速に 頻繁に 確実に

Page 44: エンジニアのための Cloud 活用

#azurejp一般的な開発

要求

分析・設計

開発

テスト

1~2年

OPS

リリース

DEV

Page 45: エンジニアのための Cloud 活用

#azurejpアジャイル

Development Development Development Development

1~2週

DEV

Page 46: エンジニアのための Cloud 活用

#azurejp実際のアジャイル

Development Development Development Development

6ヶ月

エンドゲーム

DEV

QA

Page 47: エンジニアのための Cloud 活用

#azurejp継続的デリバリ

Development Development Development Development

1週間? しかし・・

DEVQA

エンドゲームの自動化・分散

Page 48: エンジニアのための Cloud 活用

#azurejpインフラ構築・運用

Development Development Development Development

3ヶ月

インフラ引き渡し

DEVQA

OPS

Page 49: エンジニアのための Cloud 活用

#azurejpDevOps の誕生

AgileInfrastructure

DevOpsAgile

Agile

インフラ自動化技術

WebOperatio

n

Agile Infrastructu

re

Page 50: エンジニアのための Cloud 活用

#azurejpDevOps プラクティス

• Infrastructure as Code (IaC)• 継続的インテグレーション• 自動テスト• 継続的デプロイ• リリースマネジメント• アプリ パフォーマンスの監視• ロード テストと自動スケーリング

• 可用性監視• 変更 / 構成管理• 機能フラグ(フューチャーフラグ)• 環境へのプロビジョニングの自動解除• セルフサービス環境• 自動回復 ( ロールバックとロールフォ

ワード )• 仮説に基づく開発 • 運用環境でのテスト• フォールトインジェクション• 使用状況監視 / ユーザー テレメトリ

http://www.itproguy.com/devops-practices/

サブプラクティス主要なプラクティス

Page 51: エンジニアのための Cloud 活用

#azurejp

計画1 監視 + 学習

リリース開発 + テスト

2

開発 運用

4

3

DevOps

Page 52: エンジニアのための Cloud 活用

#azurejp

アイデアを生み出し、それをどのように具現化するかを計画する

作業の管理

開発 + テスト

1

計画プロジェクト開始

計画進捗の追跡

Page 53: エンジニアのための Cloud 活用

#azurejp

コードの記述

単体テスト

2

ビルド

バージョン管理

ビルドの検証

リリース

開発者が反復作業を開始して、機能にアイデアを実装する

開発 + テスト

Page 54: エンジニアのための Cloud 活用

#azurejp

クラウド ロード テスト

統合テスト環境

自動化された機能テスト環境

3

運用前環境

ステージング環境

監視 + 学習

すべてのテストに合格したら、ビルドをテスト環境にデプロイし、

リリース プロセスの各ステージでテストを行う

リリース

Page 55: エンジニアのための Cloud 活用

#azurejp

ユーザーがどのようにアプリを使用するか、どのようにアプリが応答するか、

問題やバグの修正にどのくらい時間がかかるかを把握する

監視 + 学習

4

監視

フィードバック

次の反復作業を計画

Page 56: エンジニアのための Cloud 活用

#azurejp

Server

Compute

Storage

Compute

Storage

サーバー から、コンピュート と ストレージ へ

Page 57: エンジニアのための Cloud 活用

#azurejp

Compute

Storage

Authentication

ID Store

Data Processing

Data Store

Query

Search Index

Page 58: エンジニアのための Cloud 活用

#azurejp

Compute

Storage

Page 59: エンジニアのための Cloud 活用

#azurejp

Immutable Infrastructure

Page 60: エンジニアのための Cloud 活用

#azurejp

パッチ適用よりはクリーンインストール

Page 61: エンジニアのための Cloud 活用

#azurejp

Customer #1

仮想マシンのバージョン管理自社で SaaS提供

IaaS 上で動作

Version 1.0

Customer #2

Version 1.0

Customer #3

Version 2.0

Version 1.0

Version 2.0

Page 62: エンジニアのための Cloud 活用

#azurejp“Infrastructure as a code”

Configuration IISWebsite {        Node Server1, Server2        {            WindowsFeature IIS            {                   Ensure    = “Present”                   Name      = “Web-Server”            }

            WindowsFeature ASP            {                   Ensure    = “Present”                   Name      = “Web-Asp-Net45”            }     } }

$Namespace  = 'root/Microsoft/Windows/DesiredStateConfiguration'$ClassName  = 'MSFT_DSCLocalConfigurationManager'$cimClass   = Get-CimClass -Namespace $Namespace -ClassName $ClassName $mofData = Get-Content "$env:SystemDrive\FileResource.mof"$enc = [system.Text.Encoding]::UTF8$totalSize = [System.BitConverter]::GetBytes($mofData.Length + 4)$dataInUint8Format = $totalSize + $enc.GetBytes($mofData) $param = @{    ModuleName       = 'PSDesiredStateConfiguration';    resourceProperty = $dataInUint8Format;    ResourceType     = 'MSFT_FileDirectoryConfiguration';} # Create Cim session$wsmanSession = New-CimSession -ComputerName localhost -SessionOption (New-CimSessionOption -Protocol Wsman) # Invoke DSC Resource Test methodInvoke-CimMethod -CimClass $cimClass -MethodName ResourceTest -Arguments $param -Verbose -CimSession $wsmanSession

Page 63: エンジニアのための Cloud 活用

#azurejp“Immutable Infrastructure”• Micro-services と相性の良い、使い捨ての出来るインフ

ラバージョンは増

える

テスト回数も増える

Infrastructure as a Code

Container / Services Fabric

パッチ適用をしないクリーンな

環境Infrastructure as a Code

継続した

デプロイ

Page 64: エンジニアのための Cloud 活用

#azurejp

Micro-services

Page 65: エンジニアのための Cloud 活用

#azurejp#azurejp

何年間

Page 66: エンジニアのための Cloud 活用

#azurejp

ユーザー資産業務ワークフロー

「ライフサイクルを分けたい」

顧客

商品

受注

EC サイト /App

商品検索

商品管理

配送 /請求

CRM5 年 ? 3ヵ

月 ?

Page 67: エンジニアのための Cloud 活用

#azurejp

サービス

サービス

サービス

従来型 と Microservices機能 1 機能 2 機能 3

Application

機能 1 機能 2 機能 3

Application再設計

自立したライフサイクル管理 バージョニング、デプロイ、スケー

ル 障害時にも整合性、可用性を維持 異なる言語 / フレームワーク

明確に定義されたインターフェース /プロトコルで他と連携 名前解決可能な固有の名前 (URI)

小規模な開発チーム

Page 68: エンジニアのための Cloud 活用

#azurejpいずれでも、 Microservices は実現可能

Service Fabric

Container Service

VM Scale Sets

マイクロサービス フレームワーク

オーケストレーションとコンポジション

柔軟なインフラ

Page 69: エンジニアのための Cloud 活用

#azurejpCompute リソースの使い方の違い仮想マシン Container / Services Fabric

• 各 VM に 1 つのサービス インスタンス

• 均一でないワークロード• コンピューティングの密度が低い• デプロイ /更新が遅い• スケーリング /DR ( 災害復旧 ) が遅い

• 各 VM に多数のマイクロサービス

• コンピューティングの密度が高い

• デプロイ /更新が速い• スケーリングが速い

Page 70: エンジニアのための Cloud 活用

#azurejpDocker イメージコンテナ実行時に必要なファイルシステムイメージ・レイヤ(層)の集合体。実体は tar アーカイブ

読み込み専用で変更できない

イメージはレイヤを共有できるレイヤには親子関係があり、イメージ構築時は差分を記録

無駄なディスク両々の増加を防ぎ、移動しやすく

コンテナ起動時、イメージを使うコンテナ内のファイルを隔離した状態で実行する

読み書き可能なレイヤをイメージの上に追加する

Docker イメージ

(Read Only) image layer image layer image layer image layer image layer image layer image layer image layer

base image (Ubuntu, Debian, etc)

Page 71: エンジニアのための Cloud 活用

#azurejpAzure Service Fabric• マイクロサービス フレームワーク• ステートフル / ステートレス / アクター• Windows Server 、 Linux• Docker コンテナー サポート (将来 )• .NET 、 Java API• Azure 、 Azure Stack 、

VMware 、 OpenStack 、 AWS…

Page 72: エンジニアのための Cloud 活用

#azurejp

物理コンピューター 仮想マシン

Process

Container

More isolated More efficient

ハードウェア Not shared Shared Shared Shared

カーネル Not shared Not shared Shared* Shared

システム リソース

(ex: File System)

Not shared Not shared Not shared Shared

* Windows Hyper-V コンテナは、カーネルを共有しません

分離レベルの違い

Page 73: エンジニアのための Cloud 活用

#azurejp

Compute

Storage

Page 74: エンジニアのための Cloud 活用

#azurejp

Internet of Things (IoT) Impact

Page 75: エンジニアのための Cloud 活用

#azurejp現在のデータの流れ

デバイス

データタブレット

スマートフォンウェアラブル

接続 蓄積 活用

Web API クラウド レポート

Page 76: エンジニアのための Cloud 活用

#azurejpInternet of Things (IoT) を実現

デバイス

接続 蓄積 分析 管理・活用・拡張

Web API

Event Hub

1010001

データベース

Blob / Queue /Table

機械学習

HDinsight

Stream Analytics

Power BI

Page 77: エンジニアのための Cloud 活用

#azurejp経験から AI による制御へ

温度センサー 湿度センサー

受動的空調制御

人による環境の安定化(補正)

室内温度

適応型空調制御

室内湿度 人数 空間

容量消費電力

日時室外温度

室外湿度 建材 照度

ソーシャル天気予報

センサー

学習モデル

機械学習

ビジネス ロジック

Big Data

Page 78: エンジニアのための Cloud 活用

#azurejp

New type ofData

Page 79: エンジニアのための Cloud 活用

#azurejp

OLTP

ERP LOB

… ETL Tool(SSIS, etc…)

Extract Transform Load

Original data

Transformed data

EDW BI Tools

Data Marts

Data Lake(s)

Dashboards

Apps

Original data

Ingest

Scale-out storage & compute(HDFS, Blob Storage, etc)

(SQL Server, Teradata, etc)

Streaming data

Transform and Load

データ処理。これまで と 今

Page 80: エンジニアのための Cloud 活用

#azurejp

ETL パイプライン

スキーマの定義Relational

LOB Applications

これまでの分析プロセス : Schema-on-Write• ユーザー の求める レポート と分析内容を事前に特定• 関連する データベース の スキーマ と クエリ を事前に定義

• ETL パイプライン を作成し、必要な データ を抽出• 対象の スキーマ に合わせて変換• レポート を作成し、データ を分析

直ちに必要でないデータは、別の場所に移動されているか、捨てられ

Page 81: エンジニアのための Cloud 活用

#azurejp

無限に保存 分析 結果の参照

あらゆるデータソースからの

データ収集

全てのデータに価値がある : Schema-on-Read

• ネイティブのフォーマットのまま保存• 将来、再利用できるように

• スキーマは必要だが、変換はクエリ実行時 • アプリケーションとユーザーは、自分にフィットする形で

データを解釈

Page 82: エンジニアのための Cloud 活用

#azurejp

“Volume”膨大

“Velocity”スピード

“Variety”多様性

社内の資産

サーチやソーシャル

オープンデータ

コラボ可視化

Big Data の構成要素

Page 83: エンジニアのための Cloud 活用

#azurejp活用したいオープンデータ。その取り込み• 広く活用可能なものとして公開したデータ• 多様性を創造• ただし、スキーマ・鮮度・形式などのコントロールは出来

ない段階 公開の状態 データ形式

1段階 ★ オープンライセンスでデータを公開 PDF 、 JPG2段階 ★★ コンピュータで処理可能なデータを公開 XLS 、 DOC3段階 ★★★ オープンに利用できるフォーマットでデー

タを公開XML 、 CSV

4段階 ★★★★ Web標準( RDF等)のフォーマットでデータを公開

RDF

5段階 ★★★★★ 他へのリンクを入れたデータ( LOD )を公開

Linked-RDF

Page 84: エンジニアのための Cloud 活用

#azurejp無限のはずのクラウドストレージの現実サービス名 データの種

類単位 数値 メモ

Azure Blob ファイル ストレージアカウント

500 TB

Page Blob 1 TBAzure Document DB

JSON データベースアカウント

1 TB

ドキュメント 512 KB

SQL Database 構造化データ

データベース 1 TB “P11”

SQL Data Warehouse

構造化データ

データベース 60 TB Public Preview後に 240TB まで増加予定

ファイルサイズの上限がある以上、何らかの管理は必要

Page 85: エンジニアのための Cloud 活用

#azurejp

無制限 が変えるもの 不要な処理

を減らす

場所を考えなくて

いい

保存期間を考えなくて

いい

外のデータを積極的に取り込む

Page 86: エンジニアのための Cloud 活用

#azurejp

HDInsight Analytics Store

Hadoop as a Services

Big Data Query as a Services

容量無制限Raw Data

アクセスコントロール

Azure Data Lake Services

Page 87: エンジニアのための Cloud 活用

#azurejpLambda Architecture

Inbound Data

BufferedIngest

(message bus)

Event 処理 Logic

Event Decoration

Spooling/ArchivingHot Store

Analytical Store

Curation

取り込み

保存処理

Dashboards/Reports

Exploration

Interactive

Data Movement/ Sync

利用

Page 88: エンジニアのための Cloud 活用

#azurejp

取り込み

Modern Data Lifecycle

処理 保存 利用

キュレーション

Page 89: エンジニアのための Cloud 活用

#azurejp

取り込み

Modern Data Lifecycle

処理 保存 利用

Event HubsIoT Hubs

Service BusKafka

HDInsightADLAStormSpark

Stream Analytics

ADLSAzure StorageAzure SQL DBAzure SQL DW

ADLSAzure DW

Azure SQL DBHbase

CassandraAzure Storage

Power BI

キュレーションAzure Data Factory Azure ML

Page 90: エンジニアのための Cloud 活用

#azurejp

Dashboards

Interactive

Exploration

API も考慮する必要あり

可視化だけでは、不足する

Page 91: エンジニアのための Cloud 活用

#azurejp

Machine Learning

Page 92: エンジニアのための Cloud 活用

#azurejpMachine Learning の適用領域数学的・統計学的手法を使い、データの関連性の解析や予測を行うニューラルネットワーク、クラスタリング等のテクニック(Source: IDC2003) 」

レコメンデーション

広告効果分析

ビジネスへの気象情報活用

SNS 分析

IT インフラ ・Web アクセス解析

法的ドキュメントの検証

価格最適化 不正検知

顧客解約分析

機器予防保全

ロジスティクス最適化

カスタマイズ保険

Page 93: エンジニアのための Cloud 活用

#azurejpprocessdata

1

cleantransform

maths

2

model

3

predict

4

Page 94: エンジニアのための Cloud 活用

#azurejpdataClass Outlook Temp. WindyPlay Sunny Low Yes

No Play Sunny High YesNo Play Sunny High No

Play Overcast Low YesPlay Overcast High NoPlay Overcast Low No

No Play Rainy Low YesPlay Rainy Low No

? Sunny Low No

label (y)play / no play

featuresoutlook, temp, windy

values (x)[Sunny, Low, Yes]

Labeled dataset is a collection of (X, Y) pairs.Given a new x, how do we predict y?

Page 95: エンジニアのための Cloud 活用

#azurejpclean / transform / mathsClass Outlook Temp. WindyPlay Sunny Lowest Yes

No Play ? High YesNo Play Sunny High KindOf

Play Overcast Low YesPlay Turtle

CloudHigh No

Play Overcast ? NoNo Play Rainy Low 28%

Play Rainy Low No? Sunny Low No

yak shavingAny apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.

I was doing a bit of yak shaving this morning, and it looks like it might have paid off.

wikipedianeed to clean up dataneed to convert to model-able form (linear algebra)

Page 96: エンジニアのための Cloud 活用

#azurejp

Class Outlook Temp. WindyPlay Sunny Low Yes

No Play Sunny High YesNo Play Sunny High No

Play Overcast Low YesPlay Overcast High NoPlay Overcast Low No

No Play Rainy Low YesPlay Rainy Low No

? Sunny Low No

clean / transform / maths

Page 97: エンジニアのための Cloud 活用

#azurejpmodelClass Outlook Temp. WindyPlay Sunny Low Yes

No Play Sunny High YesNo Play Sunny High No

Play Overcast Low YesPlay Overcast High NoPlay Overcast Low No

No Play Rainy Low YesPlay Rainy Low No

? Sunny Low No

Page 98: エンジニアのための Cloud 活用

#azurejppredict

PLAY!!!

Class Outlook

Temp. Windy

? Sunny Low No

Page 99: エンジニアのための Cloud 活用

#azurejp

ImageNet最大規模のイメージデータセット

– 120万の学習用イメージ、 10 のテスト用イメージ– 1000 クラス

Deep Learning が変える画像認識

http://image-net.org

1

28.2 25.8

16.411.7

7.3 6.7 5.1 3.5

Series1 Series2 Series3 Series4 Series5 Series6 Series7 Series8

Page 100: エンジニアのための Cloud 活用

#azurejp

Page 101: エンジニアのための Cloud 活用

#azurejpDeep Learning Demands New Class of HPC

トレーニング 類推する

Data / Users

ScalablePerformance

Throughput+ Efficiency

1 度のトレーニングで、数十億

TFLOPSXeon CPU だと、 1 年がかり

GPU だと 1日

処理事に数十億 FLOPSXeon CPU だと数秒

GPU だと即座

Page 102: エンジニアのための Cloud 活用

#azurejp機械学習のモデルを 作る <-> 使う

Azure Storage = クラウドストレージ

Azure Data Lake = 大規模分散処理

Azure Machine Learning = 機械学習

Azure Cognitive Service

Azure Media Analytics

Storage

Compute

API

Application

HadoopAzure

VM

CNTK / TensorFlow

/Python / RML

Engine

Spark + MLLib

Page 103: エンジニアのための Cloud 活用

#azurejpMicrosoft Cognitive Services 一覧Vision Speech Languag

e SearchKnowledge

見る+

認知機能

聞く /話す+

認知機能

言語+

認知機能画像 / ビデオの

読解顔識別、感情判

話し手の識別文章の聞き取り & 理解

情報+

認知機能文章読解

文意、文脈の理解Web/学術情報 / ビックデー

タを集約

検索+

認知機能Bing 検索エンジ

ンによる検索

Preview

Page 104: エンジニアのための Cloud 活用

#azurejpCognitive Services のアプリケーション例 CaptionBot

Page 105: エンジニアのための Cloud 活用

#azurejp開発の現場への機械学習のインパクト

Page 106: エンジニアのための Cloud 活用

#azurejpアルゴリズム• 職人による新規性、進歩性を競える職人 (?) の世界

処理

入力 出力

アルゴリズムとして実装

Page 107: エンジニアのための Cloud 活用

#azurejp機械学習• 入力と教師データとしての出力のデータ

モデルの構築はデータ任せ

処理

機械学習によるモデル化

アルゴリズムの実装ではなく、適切なデータの選択とクレンジング、学習アルゴリズムの選択とチューニング、そして試行錯誤

入力 出力

Page 108: エンジニアのための Cloud 活用

#azurejp変わる開発コストのバランス

アルゴリズム プログラム

データ 機械学習

• 高額なコンピューターリソース• 草創期における人材の流入• 限られたデータ• 限られた相互運用

Page 109: エンジニアのための Cloud 活用

#azurejp

無限のコンピューターリソースクラウドサービスにより、コンピュテーションコスト、リソースはもはや問題ではない

アルゴリズム プログラム

データ機械学習

Page 110: エンジニアのための Cloud 活用

#azurejpデータ収集の変化

10~20 のデータソース1日に1回のデータ収集10~20 年前と変わらず

100~200 のデータソース1時間に1回のデータ収集サーバーを使用することで比較的多くのデータ収集

数十万を超えるデータソース1秒以下の間隔でデータ収集クラウドサービスによる制限

の無いデータ容量

1 2 3 4 5 6 7 8 9 10 11 12 13 140

10

20

30

40

50

60

Chart Title

より多くのソースからのより粒度の細かいデータ

爆発するデータサイズ 学習精度の大幅な向上

Page 111: エンジニアのための Cloud 活用

#azurejp

Connect to othersAPI world

Page 112: エンジニアのための Cloud 活用

#azurejpAPI アプリのアーキテクチャ例バックエンドは、ギャラリーの API やカスタム コードの API アプリ。 AAD によって保護。

SaaS へのログインには、コンセント サーバー、トークン ストアを活用したサーバー フロー。

リソース グループ

API アプ

リ ゲ

ート

ウェ

他の Azureサービス…

クライアント• Web • モバイル• ロジック

アプリサード

パーティーSaaS

ギャラリーの API アプリ

Salesforceコネクター

Office 365コネクター

カスタム コード

モバイルアプリ

直接デプロイ

ロジック アプリ

オンプレミス

ロジック アプリ

ロジック アプリ定義

トークンストア

Azure AD

Twilioコネクター

コンセントサーバー

SaaS へのログインとトークン リフレッシュ

Azur

e AD

Page 113: エンジニアのための Cloud 活用

#azurejp常時稼働のサーバー費用が無い選択肢

コード イベント + データ

Azure Functions

Server less Compute

Page 114: エンジニアのための Cloud 活用

#azurejp

交通渋滞予測

○○線運行情報

△ △線運行情報

イベント開催情報

TV番組情報

物流

車両情報

道路工事情報

空調負荷予測

販売計画

混雑予測

駅員・警備計画

空調制御計画

故障予知

集荷予測

天候情報

保守計画

売上予測

混雑予測

Page 115: エンジニアのための Cloud 活用

#azurejp

交通渋滞予測

○○線運行情報

イベント開催情報

TV番組情報

物流

車両情報

道路工事情報

空調負荷予測

販売計画

空調制御計画

故障予知

集荷予測

天候情報

保守計画

売上予測

混雑予測

Cloud Platform

Big Data

Machine Learning

Micro-servicesImmutable Infrastructure

API

△ △線運行情報

混雑予測

駅員・警備計画

Page 116: エンジニアのための Cloud 活用

#azurejp

Conversation as a Platform

Page 117: エンジニアのための Cloud 活用

#azurejp

Skype SDK

対人間

Office 365Group

Connector

対人間

ルールベース

自動化

AI

BotFramework Cortana りんな

Connector

Directory SDK

Conversations as a Platform

Page 118: エンジニアのための Cloud 活用

#azurejp感情的な会話と「能力」

長く続く会話と能力で、ユーザの心をつかむ

Page 119: エンジニアのための Cloud 活用

#azurejp

EmotionalProductivity

明日の天気は晴れです。

どこか出かける予定でも

あるの?

明日晴れるかなぁ?

「りんな」のコンセプト – Emotional AI

Page 120: エンジニアのための Cloud 活用

#azurejp会話を補助するシナリオ例• 受付の例

音声⇒テキストデータ

テキストデータ⇒音声

顔認証

担当社員への連絡

こんにちは。○○株式会社の□□と申します。

本日△△さんと 11:00 からお約束しております。

返答テキストの作成

会議室予約との照合

自然言語分析

Intent: MTGEntities  CompanyName:○○株式会社  VisitorName: □□  RequesterName: △△ MeetingDateTime: Today, 11:00

□□様、お待ちしておりました。××番の会議室までお越しください。

Page 121: エンジニアのための Cloud 活用

#azurejp

Bot がビジネスのための新しいチャネルとなる

Microsoft Confidential

様々なサービスやデバイスを横断して顧客へリーチ

より自然な会話型での、エンゲージメント

製品やサービスを、モバイルと相性の良い各種メッセージングサービスへ組み込む

顧客体験を向上させ、人間によるアシスタントを効率化

Page 122: エンジニアのための Cloud 活用

#azurejp会話を補助するダイアログの例• 受付の例

音声⇒テキストデータ

テキストデータ⇒音声

顔認証

担当社員への連絡

こんにちは。○○株式会社の□□と申します。

本日△△さんと 11:00 からお約束しております。

返答テキストの作成

会議室予約との照合

自然言語分析

Intent: MTGEntities  CompanyName:○○株式会社  VisitorName: □□  RequesterName: △△ MeetingDateTime: Today, 11:00

□□様、お待ちしておりました。××番の会議室までお越しください。

Page 123: エンジニアのための Cloud 活用

#azurejp

旅行 BotConversational Agent

宿泊予約 飛行機の予約

ご挨拶 (Hello!) 会員確認Dialogs/Tasks

Parameters ( なし ) チェックイン日

チェックアウト日

人数 (部屋の種類 )

概算見積もり

出発場所

…..到着場所

認証

特別オファー

Page 124: エンジニアのための Cloud 活用

#azurejp

Cortana Intelligence

Conversations as a Platform

Bot Framework

Cortana Your personal

assistant

Cognitive Services

Page 125: エンジニアのための Cloud 活用

#azurejp

まとめ

Page 126: エンジニアのための Cloud 活用

#azurejp

燃料 3.7 リットル -> ¼ トンの荷物を 32 キロ運べる

燃料 3.7 リットル -> 1 トンの荷物を 697 キロ運べる

経済性Low High

コントロール / 責任High Low

でもA から B にしかいけない9:12 AM から 11:14PM までの間しか移動時間がとれない

でも道路があれば、どこにでもいける

維持費 =駐車場 +税金 + 車検 +ガソリン代

維持費 =0円使いたい時に利用しその分料金を払う

Page 127: エンジニアのための Cloud 活用

#azurejp

さあ、始めましょう !azure.com

Page 128: エンジニアのための Cloud 活用

#azurejpCall to ActionAzure を試したい クラウドを始めるなら Azure

aka.ms/startazure

Azure を使ってビジネスをしたい

ISV ビジネス支援プログラム事務局[email protected]

最新技術を意欲的に取り入れた

マイクロソフト先端技術対応支援事務局 aka.ms/ascappform

Page 129: エンジニアのための Cloud 活用

#azurejp

© 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.