SlideShare a Scribd company logo
1 of 44
Download to read offline
DevOps でボット
開発を最適化する方法
日本マイクロソフト株式会社
Sr. Software Engineer
中村 憲一郎
本セッションのゴール
> ボット開発におけるDevOps 活用のポイントを学ぶ
> 実際のプロジェクトに反映させる
※本セッションは Microsoft Bot Framework、Azure DevOps、
Visual Studio および C# を使った説明を行います。
中村 憲一郎
Sr. Software Engineer
好きな技術は主に、C#, UWP,
Xamarin, API, PowerShell, DB,
Node.js
https://github.com/kenakamu
https://qiita.com/kenakamu
はじめに
Chat Bot
Chat Bot DevOps
Chat Bot DevOps
Chat Bot DevOps
Chat Bot DevOps
Chat Bot
DevOps
IoT
API
Mobile
DevOps
6
2
54
31
DevOps
6
2
54
3新機能
DevOps
6
タスク
54
3新機能
DevOps
6
タスク
54
開発新機能
DevOps
6
タスク
5テスト
開発新機能
DevOps
6
タスク
リリーステスト
開発新機能
DevOps
フィード
バック
タスク
リリーステスト
開発新機能
DevOps
フィード
バック
タスク
リリーステスト
開発新機能
テストの課題
> 実機
> ユーザー単位
> 会話フロー
> 外部システムに依存
> 結果のレポート
解決策
チャットボットを考慮した
ユニットテストの導入
チャットボットの
ユニットテスト
>ユニットはどの単位か
>テストフレームワーク
>外部サービスのモック化
>テスト範囲
チャットボットのユニットテスト
ユニットはどの単位か
> ダイアログ単位
> バリデーション
> ミドルウェア
名前は?
中村
🐈派?🐕派?
テストフレームワーク
> コンテキストのモック
> システムイベント対応
> 結果の確認方法
名前は?
中村
🐈派?🐕派?
外部サービスとは
外部サービス
ストレージ
コンテキスト DB
blob ストレージ
外部 DB
外部 API
自然言語処理
LINE API
サードパーティー
Web API
LINE
通知
外部システム
外部サービス
ストレージ
インメモリ DB
Mock
外部 API
自然言語処理
LINE API
サードパーティー
Web API
LINE
通知
外部システム
外部サービス
ストレージ
インメモリ DB
Mock
外部 API
Mock
Web API
LINE
通知
外部システム
外部サービス
ストレージ
インメモリ DB
Mock
外部 API
Mock
Web API
テスト範囲検討
>ブートストラップ部分
>Web API コントローラー部分
テスト範囲
ただし、全てを自動化できない
チャットボットの
コンテキスト外のもの
> LIFF
> Web ページ
DevOps
フィード
バック
タスク
リリーステスト
開発新機能
DevOps
フィード
バック
タスク
リリーステスト
開発新機能
リリース管理の課題
> 環境
> 承認フロー
> バージョン管理とロールバック
> 結果のレポート
環境
LINE
Bot 登録
LINE 開発者ポータル
Bot Framework Connector
スロットの構成
承認フロー
>現在リリースされているバージョン
>各バージョンに含まれている内容
>ロールバック対象のバージョン
バージョン管理
Demo
本セッションのゴール
> ボット開発におけるDevOps 活用のポイントを学ぶ
> 実際のプロジェクトに反映させる
※本セッションは Microsoft Bot Framework、Azure DevOps、
Visual Studio および C# を使った説明を行います。
キーポイント
> テストとリリースの構成が DevOps 成功のカギを握る
> チャットボットに適したテストフレームワークを使う
> 是非 Microsoft Bot Framework を検討してください
Thank you

More Related Content

More from Kenichiro Nakamura

EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発Kenichiro Nakamura
 
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Serviceエッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive ServiceKenichiro Nakamura
 
SQL Server 2019 Master Data Service
SQL Server 2019 Master Data ServiceSQL Server 2019 Master Data Service
SQL Server 2019 Master Data ServiceKenichiro Nakamura
 
いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法Kenichiro Nakamura
 
Extended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User GroupExtended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User GroupKenichiro Nakamura
 
Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例Kenichiro Nakamura
 
JSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance TuningJSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance TuningKenichiro Nakamura
 
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャ
LT: 開発者が意識するべきチャットボットの UX とアーキテクチャLT: 開発者が意識するべきチャットボットの UX とアーキテクチャ
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャKenichiro Nakamura
 
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介Kenichiro Nakamura
 
LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?Kenichiro Nakamura
 
What's new for developers in Dynamics 365 v9: Client API enhancement
What's new for developers in Dynamics 365 v9: Client API enhancementWhat's new for developers in Dynamics 365 v9: Client API enhancement
What's new for developers in Dynamics 365 v9: Client API enhancementKenichiro Nakamura
 

More from Kenichiro Nakamura (14)

EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発
 
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Serviceエッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
 
SQL Server 2019 Master Data Service
SQL Server 2019 Master Data ServiceSQL Server 2019 Master Data Service
SQL Server 2019 Master Data Service
 
いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法
 
Azure for hackathon
Azure for hackathonAzure for hackathon
Azure for hackathon
 
Extended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User GroupExtended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User Group
 
Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例
 
JSSUG: SQL Sever Index Tuning
JSSUG: SQL Sever Index TuningJSSUG: SQL Sever Index Tuning
JSSUG: SQL Sever Index Tuning
 
JSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance TuningJSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance Tuning
 
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャ
LT: 開発者が意識するべきチャットボットの UX とアーキテクチャLT: 開発者が意識するべきチャットボットの UX とアーキテクチャ
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャ
 
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
 
LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?
 
Line Bot with C#
Line Bot with C#Line Bot with C#
Line Bot with C#
 
What's new for developers in Dynamics 365 v9: Client API enhancement
What's new for developers in Dynamics 365 v9: Client API enhancementWhat's new for developers in Dynamics 365 v9: Client API enhancement
What's new for developers in Dynamics 365 v9: Client API enhancement
 

Recently uploaded

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Recently uploaded (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

LINE Developer Day 2019 DevOps でボット開発を最適化する方法