運用管理者のための「開発者からみたdevops」 - visual studio 2015...

38
運運運運運運運運運 運運運運運運運 DevOps Visual Studio 2015 運運運運運運運運運運運運運運運運 1 運運運運運運 運運運運運運運運運運 運運運運運運運運運運運運 () 運運 運2015 運 7 運 15 運 運運 () Copyright© 2015 Shin-ichi Koga All Rights Reserved.

Upload: -

Post on 08-Aug-2015

131 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

1

運用管理者のための「開発者からみた DevOps 」Visual Studio 2015 新機能から考える開発者の取り組み

ソフトバンク・テクノロジー株式会社(エキスパートエンジニア)古賀 慎一

2015 年 7 月 15 日(水)

Copyright© 2015 Shin-ichi Koga All Rights Reserved.

Page 2: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

2

このセッションのゴール

DevOps (開発・運用)の違い について知る

開発者の取り組み について知る

新しい時代にどのように対応するか?を考える

Visual Studio + Azure の新機能登場に備えよう!

※Visual Studio 2015 RC と de:code 2015 の情報を元にしているため、今後のアップデート・製品版では名称や仕様が異なる可能性があります

Page 3: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

3

自己紹介古賀 慎一

Microsoft MVP for Visual Studio ALM

ソフトバンク・テクノロジー株式会社 Project Management Office (PMO) エキスパートエンジニア

クラウドサービス Online Service Gate® で TFS 導入事

例http://tech.surviveplus.net/archives/1114

前職では 某大手 情報サイトのデータ入稿システム のフレームワークを開発

「仕組み」作りで 如何に高品質・低コストで早い開発を実現できるか?

エンタープライズ向けの実践的な C# サンプルを公開

Page 4: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

4

アジェンダ

DevOps は世界が違う

Visual Studio で開発者は何をおこなっているか?

Visual Studio 新機能にみる開発者の取り組み

DevOps 一緒に今後のサービス対応に取り組みましょう

Page 5: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

5

DevOps は世界が違う

Page 6: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

6

DevOps (開発・運用)って何だろう?

ConstructImplement

MonitorOperate

BACKLOG

RELEASE

PlanBusiness /

Define

Develop

TestPlatform

Release

Operate

Insights

BuildMeasure

Learn

Collaborate

※DevOps の定義はいくつかあります。この図は 2014 年前後の Microsoft の資料よりキーワードを集めて作成したものです。

運用?開発?

ここは?

Page 7: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

7

DevOps はビジネスの話 = 開発サイクルと投資

これまでの投資

これからの投資

大投資 大投資

数年かけて予算取り・企画立案

5 ~ 10 年運用

仕組みを変えられずに複雑化

中投資 中投資

時代の変化とニーズに応じて常にアップデート

運用と開発は連動

数年で基礎から見直せる

プロジェクトのそのものに見直しが必要 = 解散しないプロジェクト

Page 8: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

8

DevOps は参加する人によって見える世界が違う

開発完了後に「最後は運用でカバー」となるのは業界の常?

ツールが違う

ゴールが違う

やる事が違う

言葉が違う

会社が違う

歴史が違う

Page 9: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

9

Visual Studio + System Center が DevOps の主軸

マイクロソフトの DevOps は2つの製品でなりたっている

Visual Studio ( Visual Studio Online / Team Foundation Server 含む)

System Center

開発者は Visual Studio を使用

ここに追加されている機能は、 DevOps を上手くやるために必要な機能(なはず ...

Page 10: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

10

開発者は何を考えて開発しているのか?

Visual Studio 2015 の新機能から

開発者の取り組みを

イメージしてください※ 一部に「わかりやすさ」のために、おおざっぱな表現を使用している部分がありますが、ご了承ください

Page 11: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

11

開発者は何をおこなっているか?

Page 12: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

12

Visual Studio で何が出来ますか?

Visual Studio Online のメニューを見るとわかります

HOME  ⇒ ダッシュボード・見える化

CODE  ⇒ ソースバージョン管理

WORK  ⇒ タスク管理・工程管理・進捗管理・バグトラッキングシステム

BUILD  ⇒ 自動ビルド・自動テスト・自動リリース・継続的デリバリー

TEST  ⇒ テストケース管理(バグトラッキングシステム)・他機能はまだプレビュー

Page 13: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

13

Visual Studio を使った開発はだいたいこんな感じ

HOME を見てチーム全体の課題がないか?確認

WORK を見て今日のタスクを確認

Visual Studio でコードを書いて CODE に入れる

もちろん TEST も十分に行う

チームの他の人が壊してないか? BUILD で確認

完成したらリリースを行って引き渡し・・・

環境の構築もリリースも Visual Studio で行えちゃうよ???

Page 14: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

14

Visual Studio からのリリースは本番運用用ではない確かに運用することも出来る(ごく小規模なプロジェクトであれば)

System Center や PowerShell によって提供されている

リリース・監視・運用に着目した機能とは根本的に違う

開発環境や検証環境を凄まじい短期間で用意するための物

本番リリースには綿密な計画と運用体制が必要

VS から Azure 環境の構築も配置もできる、簡単に壊すこともできる

Page 15: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

15

新機能にみる開発者の取り組み

Page 16: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

16

ちゃんと運用を考えた開発が必要

Visual Studio から気軽にデプロイできる ≠ 運用出来る

監視や運用を考慮した設計・開発が必要

開発者がこれを考えていないときは、追加してもらう必要がある

どの機能も「正しい作り方」で作る必要がある

アプリへの機能追加は「接続済みサービス」から! NEW

開発するアプリに、 Azure Application Insights の追加を! NEW

Page 17: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

17

接続済みサービス & Azure AD 認証の構成

Visual Studio からギャラリーを検索

アプリで使用するサービスを選択、設定を入力して構成

Azure Active Directory

Connected Service

アプリを Azure Application Insights, Azure Mobile Services, Azure Storage, Office 365, Salesforce に接続

Page 18: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

18

Application Insights ( プレビュー )

モバイル アプリ& Web アプリ の問題の検出、クラッシュの診断、

利用状況の追跡

Azure, IIS, J2EE サーバー ... ホストに関わらず使用可能

※ 一部の図は MSDN Blog (http://blogs.msdn.com/b/visualstudioalm/archive/2015/01/07/application-insights-and-azure-websites.aspx ) より引用

Page 19: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

19

ちゃんと品質の高いコードを書いてる?

静的コード分析強化

NuGet パッケージとしてプロジェクト毎に追加

自作可能(オープンソース化も進む)

コードレンズ

クイックアクション( Light Bulb )

Page 20: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

20

コードレンズ ( Visual Studio 2013 以降)

ソースコードをいつ?誰が?どう?変更したかをコードの近くに表示

ここから担当者に連絡出来る( IM, メール , 電話)

単体テスト結果確認、テスト実行もコードからできる

※ 一部の図は MSDN Blogs ( http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/code-lens-for-git-quot-team-activity-view-quot.aspx ) より引用

Page 21: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

21

コードレンズ 強化 "Team Activity View“

Visual Studio 2015 ではグラフィカルに「見える化」

メソッド毎: C#, Visual Basic

ファイル毎: JavaScript, C++, SQL  ※ Git のみ、 TFVC 対応も計画あり

開発者が情報収集 ⇒ ツールが情報収集 開発者が開発に集中出来る

※ 図は MSDN Blogs ( http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/code-lens-for-git-quot-team-activity-view-quot.aspx ) より引用

Page 22: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

22

Light Bulb ~リファクタリング&コード分析強化

コードをリアルタイムに分析、提案を表示

電球アイコンクリック( Ctril + . )で候補を表示⇒プレビュー⇒実行

※ 図は Visual Studio 2015 RC リリース ノート ( https://www.visualstudio.com/news/vs2015-vs ) より引用

Page 23: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

23

リファクタリング & コード分析が Light Bulb に統合名前の変更、不要な using の削除、属性の追加 etc...

NuGet からコード分析ルールを取得出来る

Microsoft Code Analysis for Azure 0.4.0-betahttps://www.nuget.org/packages/Microsoft.VisualStudio.Azure.CodeAnalysis/

自分でもルールを作れる!

※ 図は Visual Studio 2015 RC リリース ノート ( https://www.visualstudio.com/news/vs2015-vs ) より引用

開発者がチェック・調査

 ⇒ツールがチェック・提案

 開発者が開発に集中出来る

Page 24: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

24

ちゃんと実際に動かして確認してる?

診断ツール強化

タイムラインと IntelliTrace

メモリー使用率、 CPU 使用率 etc... はグラフで可視化して確認出来る

どこからどこまでに何秒かかっているか?すぐに何度でも確認出来る

お客様環境で IntellTrace ログを収集してもらえば、開発者の PC でデバッグ出来る

Page 25: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

25

タイムラインツール・診断ツールと IntelliTrace

WPF と Windows ストア 8.1 アプリの検査・診断・パフォーマンス向上を

メモリー使用量

CPU 使用率

かかった時間  etc ...

デバッグ時「見える化」

※ 図は MSDN Blog ( http://blogs.msdn.com/b/wpf/archive/2015/01/16/new-ui-performance-analysis-tool-for-wpf-applications.aspx ) より引用

Page 26: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

26

タイムライン+ IntelliTrace で強力に見える化

IntelliTrace ( 2010以降)

問題が起こるまでを録画して再生するイメージ - 変数の変化やイベントを確認出来る

お客様の環境で IntelliTrace ログを収集、自社 PC の Visual Studio で(ほぼ) F5 デバッグが可能

タイムラインで「このとき」から「このとき」何が起きていたか?を確認

※ 図は MSDN Blog ( http://blogs.msdn.com/b/wpf/archive/2015/01/16/new-ui-performance-analysis-tool-for-wpf-applications.aspx ) より引用

開発者が記録・再現(多くは見えなかった)

 ⇒ツールが記録・再現・見える化

 開発者が開発に集中出来る

Page 27: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

27

ちゃんとテストしてる?

以前からある機能

単体テスト・コード化された UI テスト( UI 自動テスト)

自動ビルド・自動テスト

新機能

単体テストを自動で作ってくれる機能「 IntelliTest 」 NEW

Page 28: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

28

IntelliTest ~ 単体テストの自動作成

Create Unit Test - 復活!単体テストコードをメソッドから作成

Run IntelliTest - 新機能!コードカバレッジ 100% テストパターンを作成 (旧称: Smart Unit

Test)

※単体テストサンプルはこちらからダウンロードできます ( https://code.msdn.microsoft.com/TFSVSO-dc7b8c9d )

開発者が網羅 ⇒ ツールが網羅的に作成 開発者が開発に集中出来る

Page 29: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

29

単体テストが作れる開発の方法を解説してます

単体テスト出来るアプリの作り方を

スライドで解説しています

「ちゃんとした C# プログラムを書けるようになる実践的な方法 ~ Visual Studio を使った 高品質・低コスト・保守性の高い開発」 http://www.slideshare.net/shinichikoga355/starting-c-sharp

Page 30: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

30

ちゃんとリリース出来るように作ってる?

Release Management は DevOps が両者で使えるリリース機能

ソフトバンク・テクノロジー株式会社 事例 リリースコストが 1/20 に!

http://tech.surviveplus.net/archives/1114

開発者がリリース方法を「開発」し、検証環境にリリース

運用管理者はリリース方法を納品してもらって、本番環境にリリース

ワークフロー(承認・他のアクション)を構築できる

Page 31: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

31

DevOps 一緒に今後のサービス対応を

Page 32: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

32

今後のクラウドサービス・コンテナへの対応

Azure は Visual Studio で開発するアプリの配置先

PaaS, IaaS, Docker コンテナ ... マクロサービスへ?

Azure は Visual Studio で開発するアプリに接続する機能

Azure AD, Azure Mobile Service, Azure ML, Azure Data Factory, Azure Data Lake ...

Azure + Visual Studio = Microsoft が注目するアーキテクチャを実現

Page 33: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

33

マイクロサービス (MSA : Microservices architecture)

動いているサービスを止めずにアップデートは大変( Amazon.co.jp とか)

全体で巨大1システムだと変更・リリースが難しい

依存関係が複雑

細かいサービスに分かれていれば、部分的にリリースして差し替え可能

アップデートより作り替えの方がリスクが低いはず

※15 年使ったエアコンが壊れたら直すか?買い換えるか?

細かいサービスは、仮想化 OS じゃなくて、コンテナで動くと良いよね

Docker による仮想化が進む ~ Azure / Windows Server も対応していく

Page 34: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

34

Docker はコンテナ型のアプリ仮想化技術Microsoft は Docker に力を入れている ⇒ マイクロサービス対応のた

め?

仮想マシン

コンテナ

PaaS

アプリ

ミドルウェア

OS

ハイパーバイザー

ハードウェア

Docker : コンテナ型

アプリ

Docker エンジン

OS

ハードウェア

IaaS

アプリ

ミドルウェア

OS

ハイパーバイザー

ハードウェア

ライブラリ

Page 35: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

35

ASP.net は コンテナ型のアプリ仮想化技術で動作

配置はアプリと .NET Core を一緒に xcopy

オンプレミス

Azure Web Apps / 仮想マシン

Docker / Windows コンテナー

Docker https://www.docker.com/

Page 36: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

36

データレイク (Data lake) と IoT&ビッグデータ

今まで

業務システムが目的のデータを収集、それを整形加工、分析へ・・

これから

IoT で大量に収集される生のデータ(ビッグデータ)

リアルタイムでストリーム処理する流れ

未整形データを一旦溜めて、整形加工して使用する流れ

Azure ML, Azure Data Factory, Azure Data Lake ...

Page 37: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

37

開発者と一緒に DevOps を考えていきましょう

今後ますます、 Visual Studio から簡単に(数回クリックするだけで)

クラウドサービスの利用やコンテナ対応が出来るようになる

運用方法やリリース方法をこれから確立しなければならない分野が沢山!

本気の DevOps (特に Ops )を Dev に意識させてください!

ちゃんと運用が考えられていない開発は差し戻しを

ホントの「最後は運用でカバー」をお願いするかもしれません、ので・・・

Page 38: 運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み

Copyright© 2015 Shin-ichi Koga All Rights Reserved. 38