SlideShare ist ein Scribd-Unternehmen logo
1 von 40
KDDIが考える
顧客へ”本当の価値”を届けるための開発手法
Copyright © 2017 KDDI Corporation. All Rights Reserved
自己紹介
Copyright © 2017 KDDI Corporation. All Rights Reserved
技術統括本部
プラットフォーム開発本部
アジャイル開発センター
au系、法人系サービスの開発を担当
1
運用グループ
課長補佐
運用グループ
廣田 翼
Hirota Tsubasa
ネットワークスペシャリスト
Agenda
Copyright © 2017 KDDI Corporation. All Rights Reserved
1. KDDIについて
2. アジャイルとDevOpsの採用
3. 強いアーキテクチャと運用を目指す
4. 取り組みの振り返り
5. まとめ
2
KDDIについて
事業内容
Copyright © 2017 KDDI Corporation. All Rights Reserved
パーソナル
バリュー
ビジネス
グローバル
個人向け通信サービスの提供
個人向けコンテンツ・決済サービス
などの提供
企業向け通信・ソリューション/
クラウド型サービスの提供
海外での企業・個人向け通信、
ソリューション/クラウド型サービスの提供
セグメント
4
KDDI 事業戦略
Copyright © 2017 KDDI Corporation. All Rights Reserved
5
au経済圏の最大化
Copyright © 2017 KDDI Corporation. All Rights Reserved
6
アジャイルとDevOpsの採用
変革を実現するための取り組み
Copyright © 2017 KDDI Corporation. All Rights Reserved
 高速な 企画〜開発〜価値提供サイクル
 変更しやすい柔軟なサービス開発
 短い周期で新機能をリリース
 シンプルな復旧オペレーション
8
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 高速な 企画〜開発〜価値提供サイクル
9
企画 設計 開発 試験 提供
企画
設計
開発
試験
提供 企画
設計
開発
試験
提供 企画
設計
開発
試験
提供
以前の手法
採用した手法
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 高速な 企画〜開発〜価値提供サイクル
10
auでんきプロジェクトの場合
プロジェクト期間
パートナー様▲
へのお声がけ
(5ヶ月前)
開発期間
新規事業の場合8ヶ月以上
(チームビルドからローンチまで)
6ヶ月
4ヶ月
(実質3ヶ月)
事業計画から業務準備
他の新規事業の場合1年以上
● ア プ リ で 電 気 を も っ と 身 近 に
● ア プ リ で 便 利 に 省 エ ネ
● 節 電 グ ッ ズ を 簡 単 に ご 購 入
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 変更しやすい柔軟なサービス開発
11
新技術採用で効率化!
新機能追加!
ちょっとだけ設定変更!
枯れた技術を採用しよう!
サービス断リスクは排除!
作業連絡しなさい!
開発者 運用者
引き継ぎ
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 変更しやすい柔軟なサービス開発
12
ビジネス要件
アプリケーション
品質確保
開
発
テ
ス
ト
リ
リ
|
ス
開発者
SLA
問合せ対応
インフラ
運用開始
運用者
基本設計書
障害対応手順
アラート対応表
詳細設計書
運用引き継ぎ負荷によってシステムは硬直する
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 変更しやすい柔軟なサービス開発
13
開
発
テ
ス
ト
リ
リ
|
ス
DevもOpsも同じチームで
改善策
運
用
開
始
開発者 運用者
アラート対応表各設計書 障害対応手順
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 短い周期で新機能をリリース
14
リリース手順は複雑になりがち
仰々しく緊張が張り詰める
誰でも簡単にリリース可能にしたい
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
15
 短い周期で新機能をリリース
とあるリリース手順書
①
②
③ Webサーバを停止
④
⑤
⑥ Webアプリを差替え
⑦
⑧
⑨
⑩ Webサーバを起動
人間の代わりにプログラム
に行わせる
自動化プログラムをツール
から呼び出す
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
16
 短い周期で新機能をリリース
drone.io
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
17
①押すだけでリリース
 短い周期で新機能をリリース
とあるジョブ管理ツールのWeb画面
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
18
Build
格納先
検知
格納
アプリ
構築
サーバ群
プログラム配備
コントローラ
インフラの構築と
アプリの配備(ジョブ②)
アプリの展開
Release!!
マスタープログラム
を更新
ジョブ②を実行
プログラムのビルドと
テストと格納(ジョブ①)
 短い周期で新機能をリリース
ジョブ管理ツール ジョブ管理ツール
ソースコード
管理ツール
テスト
成功
アプリ
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
19
app app
サーバ群
Blue(Current)
サーバ群
アプリ
Blue Green Deployment
簡単に切り戻し可能
インフラのコード化
 短い周期で新機能をリリース
ロードバランサ
①インフラの構築
Terraform
②プログラム
の配備
アプリ アプリ
Codedeploy
Green(New)
③切り替え
アプリ
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 シンプルな復旧オペレーション
20
複雑なコマンド操作はしない
SSHログインなしで復旧させる
クラウド管理コンソールやジョブ
管理ツールから実行
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 シンプルな復旧オペレーション
21
ペットではなく家畜のように扱う
Auto Scaling group
Availability Zone #1 Availability Zone #2
web app
server
EC2 instance
RDS instance RDS instance standby
CloudWatchLogs
EC2 instance
web app
server
ログ転送
AWS Management
Console
削除
EC2 instance
web app
server
変革を実現するための取り組み
Copyright © 2017 KDDI Corporation. All Rights Reserved
 高速な 企画〜開発〜価値提供サイクル
 変更を許す柔軟なサービス開発
 短い周期で新機能をリリース
 シンプルな復旧オペレーション
22
強いアーキテクチャと運用を目指す
強いアーキテクチャと運用を目指す
Copyright © 2017 KDDI Corporation. All Rights Reserved
24
障害パターンを想定する
design for failure
未知の障害に対処するための訓練
強いアーキテクチャと運用を目指す
Copyright © 2017 KDDI Corporation. All Rights Reserved
25
障害パターンの洗い出しと障害試験
コンポーネント名 冗長方式 障害内容 復旧方法 復旧時間 ユーザ影響
App Multi-AZ +
AutoScaling
仮想マシンOS
ダウン・ハングアップ
インスタンス再構築
(AutoScaling)
5分未満 一部ユーザは
利用不可
javaプロセス
ダウン・ハングアップ
インスタンス再構築
(AutoScaling)
5分未満 一部ユーザは
利用不可
ディスク領域(/)の
使用率が100%
インスタンス再構築
(AutoScaling)
5分未満 一部ユーザは
利用不可
Bastion シングル構成 sshプロセス
ダウン・ハングアップ
インスタンス再起動
(AWSコンソール)
5分未満 影響なし
RDS(MySQL) Multi-AZ RDS系切替
(MySQL障害による
系切替)
Standbyが昇格する
(フェールオーバ)
5分未満 系切替中は
利用不可
強いアーキテクチャと運用を目指す
Copyright © 2017 KDDI Corporation. All Rights Reserved
26
障害パターンの洗い出しと障害試験
どうしても複雑箇所は残る
弱点に対策を打てる
サービスに関わるところと
そうでないところ
強いアーキテクチャと運用を目指す
Copyright © 2017 KDDI Corporation. All Rights Reserved
27
障害発生を前提として設計する
Auto Scaling
group
Availability
Zone
EC2 instances
web app
server
RDS instance
Master/Slave
Amazon
S3
Amazon
CloudFront
クラウドサービスを積極的に利用する
強いアーキテクチャと運用を目指す
Copyright © 2017 KDDI Corporation. All Rights Reserved
28
想定できない障害にどう備えるか
実際の障害を想定した訓練
ランダムに障害を起こす
障害時フローの確認と訓練
よりリアリティを持った障害試験
取り組みの振り返り
アジャイルとDevOpsの採用
Copyright © 2017 KDDI Corporation. All Rights Reserved
 高速な 企画〜開発〜価値提供サイクル
30
auでんきプロジェクトの場合
プロジェクト期間
パートナー様▲
へのお声がけ
(5ヶ月前)
開発期間
新規事業の場合8ヶ月以上
(チームビルドからローンチまで)
6ヶ月
4ヶ月
(実質3ヶ月)
事業計画から業務準備
他の新規事業の場合1年以上
● ア プ リ で 電 気 を も っ と 身 近 に
● ア プ リ で 便 利 に 省 エ ネ
● 節 電 グ ッ ズ を 簡 単 に ご 購 入
課題もまだまだあります
取り組みの振り返り
Copyright © 2017 KDDI Corporation. All Rights Reserved
31
チームのペースと会社のペース
他システムとの連携
非機能要件の扱い
取り組みの振り返り
Copyright © 2017 KDDI Corporation. All Rights Reserved
32
チームのペースと会社のペース
企画 設計 開発 試験 提供
企画
設計
開発
試験
提供 企画
設計
開発
試験
提供 企画
設計
開発
試験
提供
以前の手法
採用した手法
取り組みの振り返り
Copyright © 2017 KDDI Corporation. All Rights Reserved
33
チームのペースと会社のペース
会社のペースが優先
そして文化を浸透させる
取り組みの振り返り
Copyright © 2017 KDDI Corporation. All Rights Reserved
34
他システムとの連携
 システム開発全般の課題
 必要な連携を早期に洗い出しておく
 できるだけ早く結合試験を
取り組みの振り返り
Copyright © 2017 KDDI Corporation. All Rights Reserved
35
非機能要件の扱い
要求項目 内容 要求仕様
可用性 サービスを継続的に提供
できる能力
最低でもサービスに関わるコンポー
ネントは冗長化すること
拡張性 機能追加を容易にする 今後の機能追加を見積もり、追加
に対応できる構成であること
性能 サービスへの要求を処理
する能力
ピーク時の要求量を見積もり、全て
処理できること
運用保守 問題発生時にもサービス
影響なく解消できる能力
SLAを定義し、これを満たすこと
セキュリティ システム内のデータの安
全性を確保する
システムアクセスを制限し、監査証
跡可能な施策を行うこと
取り組みの振り返り
Copyright © 2017 KDDI Corporation. All Rights Reserved
36
非機能要件や運用監視の扱い
ビジネスサイドに伝える
どのサービスにも必ず必要
あらかじめタスクとして認識
まとめ
38
Copyright © 2017 KDDI Corporation. All Rights Reserved
 お客様へ本当の価値を届けるためには
☞ アジャイルとDevOpsの採用は必然
 お客様のためのサービス
☞ 開発と運用は同じ方向を向くべきである
 さらなるサービス品質向上のために
☞ システムと人を鍛える
 アジャイル、DevOpsを振り返って
☞ 会社文化に応じた手法の確立
まとめ
ご静聴ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリングMasanori Kaneko
 
【公開版】アジャイル推進組織奮闘記
【公開版】アジャイル推進組織奮闘記【公開版】アジャイル推進組織奮闘記
【公開版】アジャイル推進組織奮闘記seag-t
 
20210510 history ofvlab_and_ourfuture
20210510 history ofvlab_and_ourfuture20210510 history ofvlab_and_ourfuture
20210510 history ofvlab_and_ourfutureKei Nakahara
 
Future Tech Night Agile勉強会 20210709
 Future Tech Night Agile勉強会 20210709 Future Tech Night Agile勉強会 20210709
Future Tech Night Agile勉強会 20210709shotamiyazaki6
 
[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップ
[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップ[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップ
[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップShigeki Morizane
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps 智治 長沢
 
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へkitter11
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかTetsuo Ajima
 
「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005知礼 八子
 
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~Masanori Kaneko
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre正善 大島
 
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~Developers Summit
 
Future tech night #12~goで始めるサーバレスファーストという選択肢~
Future tech night #12~goで始めるサーバレスファーストという選択肢~Future tech night #12~goで始めるサーバレスファーストという選択肢~
Future tech night #12~goで始めるサーバレスファーストという選択肢~masahiko ito
 
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬るDevelopers Summit
 
第14回八子クラウド座談会資料 当日メモ付き 20141005
第14回八子クラウド座談会資料 当日メモ付き 20141005第14回八子クラウド座談会資料 当日メモ付き 20141005
第14回八子クラウド座談会資料 当日メモ付き 20141005知礼 八子
 
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」de:code 2017
 

Was ist angesagt? (20)

新しい契約形態での受託開発サービス
新しい契約形態での受託開発サービス新しい契約形態での受託開発サービス
新しい契約形態での受託開発サービス
 
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
 
【公開版】アジャイル推進組織奮闘記
【公開版】アジャイル推進組織奮闘記【公開版】アジャイル推進組織奮闘記
【公開版】アジャイル推進組織奮闘記
 
開発チームの世代交代への取り組み
開発チームの世代交代への取り組み開発チームの世代交代への取り組み
開発チームの世代交代への取り組み
 
20210510 history ofvlab_and_ourfuture
20210510 history ofvlab_and_ourfuture20210510 history ofvlab_and_ourfuture
20210510 history ofvlab_and_ourfuture
 
Future Tech Night Agile勉強会 20210709
 Future Tech Night Agile勉強会 20210709 Future Tech Night Agile勉強会 20210709
Future Tech Night Agile勉強会 20210709
 
[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップ
[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップ[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップ
[Agile Japan 2019]DXを実現するためにユーザ企業とSI企業が 今すぐとるべき3つのステップ
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps
 
Devsumi summer 2013_b2_share
Devsumi summer 2013_b2_shareDevsumi summer 2013_b2_share
Devsumi summer 2013_b2_share
 
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
 
「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005
 
Atlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augjAtlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augj
 
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
 
Future tech night #12~goで始めるサーバレスファーストという選択肢~
Future tech night #12~goで始めるサーバレスファーストという選択肢~Future tech night #12~goで始めるサーバレスファーストという選択肢~
Future tech night #12~goで始めるサーバレスファーストという選択肢~
 
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
 
第14回八子クラウド座談会資料 当日メモ付き 20141005
第14回八子クラウド座談会資料 当日メモ付き 20141005第14回八子クラウド座談会資料 当日メモ付き 20141005
第14回八子クラウド座談会資料 当日メモ付き 20141005
 
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
 

Ähnlich wie KDDIが考える顧客へ本当の価値を届けるための開発手法

re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」
re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」
re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」Mamoru Ohashi
 
AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」
AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」
AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」KDDI
 
Another works_リードエンジニア向け採用資料.pdf
Another works_リードエンジニア向け採用資料.pdfAnother works_リードエンジニア向け採用資料.pdf
Another works_リードエンジニア向け採用資料.pdfssuseree1665
 
KDDIにおけるAWS×アジャイル開発
KDDIにおけるAWS×アジャイル開発KDDIにおけるAWS×アジャイル開発
KDDIにおけるAWS×アジャイル開発Kazuya Suda
 
SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~
SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~
SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~Kachi Creo
 
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化 Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化 Kaz Aiso
 
Profile
ProfileProfile
ProfileRyuta5
 
Cloud Native and Agile Approach
Cloud Native and Agile ApproachCloud Native and Agile Approach
Cloud Native and Agile ApproachShinya Yanagihara
 
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介20172017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017Tsuyoshi Hirayama
 
研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料
研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料
研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料kojitakahashi
 
Decode2017 dell emc_v1.4-a
Decode2017 dell emc_v1.4-aDecode2017 dell emc_v1.4-a
Decode2017 dell emc_v1.4-aShotaro Suzuki
 
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...日本マイクロソフト株式会社
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAmazon Web Services Japan
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Takeshi Hirosue
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発政雄 金森
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬日本マイクロソフト株式会社
 
Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方BMXUG
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』griddb
 

Ähnlich wie KDDIが考える顧客へ本当の価値を届けるための開発手法 (20)

re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」
re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」
re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」
 
AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」
AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」
AWS Summit 2016 「新規事業 "auでんき”をクラウドスピードでサービスイン」
 
Another works_リードエンジニア向け採用資料.pdf
Another works_リードエンジニア向け採用資料.pdfAnother works_リードエンジニア向け採用資料.pdf
Another works_リードエンジニア向け採用資料.pdf
 
KDDIにおけるAWS×アジャイル開発
KDDIにおけるAWS×アジャイル開発KDDIにおけるAWS×アジャイル開発
KDDIにおけるAWS×アジャイル開発
 
SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~
SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~
SIビジネスを変えよう。~ Ruby+Ruby on RailsによるエンタープライズCloudアプリケーション事業とは~
 
AWSでの金融系システム構築・運用勘所
AWSでの金融系システム構築・運用勘所AWSでの金融系システム構築・運用勘所
AWSでの金融系システム構築・運用勘所
 
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化 Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
 
Profile
ProfileProfile
Profile
 
Cloud Native and Agile Approach
Cloud Native and Agile ApproachCloud Native and Agile Approach
Cloud Native and Agile Approach
 
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介20172017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
 
研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料
研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料
研修内製化を強くする定期購読型研修サービス「ずっとも」説明会資料
 
Decode2017 dell emc_v1.4-a
Decode2017 dell emc_v1.4-aDecode2017 dell emc_v1.4-a
Decode2017 dell emc_v1.4-a
 
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
 
Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
 

KDDIが考える顧客へ本当の価値を届けるための開発手法

  • 2. 自己紹介 Copyright © 2017 KDDI Corporation. All Rights Reserved 技術統括本部 プラットフォーム開発本部 アジャイル開発センター au系、法人系サービスの開発を担当 1 運用グループ 課長補佐 運用グループ 廣田 翼 Hirota Tsubasa ネットワークスペシャリスト
  • 3. Agenda Copyright © 2017 KDDI Corporation. All Rights Reserved 1. KDDIについて 2. アジャイルとDevOpsの採用 3. 強いアーキテクチャと運用を目指す 4. 取り組みの振り返り 5. まとめ 2
  • 5. 事業内容 Copyright © 2017 KDDI Corporation. All Rights Reserved パーソナル バリュー ビジネス グローバル 個人向け通信サービスの提供 個人向けコンテンツ・決済サービス などの提供 企業向け通信・ソリューション/ クラウド型サービスの提供 海外での企業・個人向け通信、 ソリューション/クラウド型サービスの提供 セグメント 4
  • 6. KDDI 事業戦略 Copyright © 2017 KDDI Corporation. All Rights Reserved 5
  • 7. au経済圏の最大化 Copyright © 2017 KDDI Corporation. All Rights Reserved 6
  • 9. 変革を実現するための取り組み Copyright © 2017 KDDI Corporation. All Rights Reserved  高速な 企画〜開発〜価値提供サイクル  変更しやすい柔軟なサービス開発  短い周期で新機能をリリース  シンプルな復旧オペレーション 8
  • 10. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  高速な 企画〜開発〜価値提供サイクル 9 企画 設計 開発 試験 提供 企画 設計 開発 試験 提供 企画 設計 開発 試験 提供 企画 設計 開発 試験 提供 以前の手法 採用した手法
  • 11. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  高速な 企画〜開発〜価値提供サイクル 10 auでんきプロジェクトの場合 プロジェクト期間 パートナー様▲ へのお声がけ (5ヶ月前) 開発期間 新規事業の場合8ヶ月以上 (チームビルドからローンチまで) 6ヶ月 4ヶ月 (実質3ヶ月) 事業計画から業務準備 他の新規事業の場合1年以上 ● ア プ リ で 電 気 を も っ と 身 近 に ● ア プ リ で 便 利 に 省 エ ネ ● 節 電 グ ッ ズ を 簡 単 に ご 購 入
  • 12. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  変更しやすい柔軟なサービス開発 11 新技術採用で効率化! 新機能追加! ちょっとだけ設定変更! 枯れた技術を採用しよう! サービス断リスクは排除! 作業連絡しなさい! 開発者 運用者
  • 13. 引き継ぎ アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  変更しやすい柔軟なサービス開発 12 ビジネス要件 アプリケーション 品質確保 開 発 テ ス ト リ リ | ス 開発者 SLA 問合せ対応 インフラ 運用開始 運用者 基本設計書 障害対応手順 アラート対応表 詳細設計書 運用引き継ぎ負荷によってシステムは硬直する
  • 14. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  変更しやすい柔軟なサービス開発 13 開 発 テ ス ト リ リ | ス DevもOpsも同じチームで 改善策 運 用 開 始 開発者 運用者 アラート対応表各設計書 障害対応手順
  • 15. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  短い周期で新機能をリリース 14 リリース手順は複雑になりがち 仰々しく緊張が張り詰める 誰でも簡単にリリース可能にしたい
  • 16. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved 15  短い周期で新機能をリリース とあるリリース手順書 ① ② ③ Webサーバを停止 ④ ⑤ ⑥ Webアプリを差替え ⑦ ⑧ ⑨ ⑩ Webサーバを起動
  • 18. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved 17 ①押すだけでリリース  短い周期で新機能をリリース とあるジョブ管理ツールのWeb画面
  • 19. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved 18 Build 格納先 検知 格納 アプリ 構築 サーバ群 プログラム配備 コントローラ インフラの構築と アプリの配備(ジョブ②) アプリの展開 Release!! マスタープログラム を更新 ジョブ②を実行 プログラムのビルドと テストと格納(ジョブ①)  短い周期で新機能をリリース ジョブ管理ツール ジョブ管理ツール ソースコード 管理ツール テスト 成功 アプリ
  • 20. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved 19 app app サーバ群 Blue(Current) サーバ群 アプリ Blue Green Deployment 簡単に切り戻し可能 インフラのコード化  短い周期で新機能をリリース ロードバランサ ①インフラの構築 Terraform ②プログラム の配備 アプリ アプリ Codedeploy Green(New) ③切り替え アプリ
  • 21. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  シンプルな復旧オペレーション 20 複雑なコマンド操作はしない SSHログインなしで復旧させる クラウド管理コンソールやジョブ 管理ツールから実行
  • 22. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  シンプルな復旧オペレーション 21 ペットではなく家畜のように扱う Auto Scaling group Availability Zone #1 Availability Zone #2 web app server EC2 instance RDS instance RDS instance standby CloudWatchLogs EC2 instance web app server ログ転送 AWS Management Console 削除 EC2 instance web app server
  • 23. 変革を実現するための取り組み Copyright © 2017 KDDI Corporation. All Rights Reserved  高速な 企画〜開発〜価値提供サイクル  変更を許す柔軟なサービス開発  短い周期で新機能をリリース  シンプルな復旧オペレーション 22
  • 25. 強いアーキテクチャと運用を目指す Copyright © 2017 KDDI Corporation. All Rights Reserved 24 障害パターンを想定する design for failure 未知の障害に対処するための訓練
  • 26. 強いアーキテクチャと運用を目指す Copyright © 2017 KDDI Corporation. All Rights Reserved 25 障害パターンの洗い出しと障害試験 コンポーネント名 冗長方式 障害内容 復旧方法 復旧時間 ユーザ影響 App Multi-AZ + AutoScaling 仮想マシンOS ダウン・ハングアップ インスタンス再構築 (AutoScaling) 5分未満 一部ユーザは 利用不可 javaプロセス ダウン・ハングアップ インスタンス再構築 (AutoScaling) 5分未満 一部ユーザは 利用不可 ディスク領域(/)の 使用率が100% インスタンス再構築 (AutoScaling) 5分未満 一部ユーザは 利用不可 Bastion シングル構成 sshプロセス ダウン・ハングアップ インスタンス再起動 (AWSコンソール) 5分未満 影響なし RDS(MySQL) Multi-AZ RDS系切替 (MySQL障害による 系切替) Standbyが昇格する (フェールオーバ) 5分未満 系切替中は 利用不可
  • 27. 強いアーキテクチャと運用を目指す Copyright © 2017 KDDI Corporation. All Rights Reserved 26 障害パターンの洗い出しと障害試験 どうしても複雑箇所は残る 弱点に対策を打てる サービスに関わるところと そうでないところ
  • 28. 強いアーキテクチャと運用を目指す Copyright © 2017 KDDI Corporation. All Rights Reserved 27 障害発生を前提として設計する Auto Scaling group Availability Zone EC2 instances web app server RDS instance Master/Slave Amazon S3 Amazon CloudFront クラウドサービスを積極的に利用する
  • 29. 強いアーキテクチャと運用を目指す Copyright © 2017 KDDI Corporation. All Rights Reserved 28 想定できない障害にどう備えるか 実際の障害を想定した訓練 ランダムに障害を起こす 障害時フローの確認と訓練 よりリアリティを持った障害試験
  • 31. アジャイルとDevOpsの採用 Copyright © 2017 KDDI Corporation. All Rights Reserved  高速な 企画〜開発〜価値提供サイクル 30 auでんきプロジェクトの場合 プロジェクト期間 パートナー様▲ へのお声がけ (5ヶ月前) 開発期間 新規事業の場合8ヶ月以上 (チームビルドからローンチまで) 6ヶ月 4ヶ月 (実質3ヶ月) 事業計画から業務準備 他の新規事業の場合1年以上 ● ア プ リ で 電 気 を も っ と 身 近 に ● ア プ リ で 便 利 に 省 エ ネ ● 節 電 グ ッ ズ を 簡 単 に ご 購 入 課題もまだまだあります
  • 32. 取り組みの振り返り Copyright © 2017 KDDI Corporation. All Rights Reserved 31 チームのペースと会社のペース 他システムとの連携 非機能要件の扱い
  • 33. 取り組みの振り返り Copyright © 2017 KDDI Corporation. All Rights Reserved 32 チームのペースと会社のペース 企画 設計 開発 試験 提供 企画 設計 開発 試験 提供 企画 設計 開発 試験 提供 企画 設計 開発 試験 提供 以前の手法 採用した手法
  • 34. 取り組みの振り返り Copyright © 2017 KDDI Corporation. All Rights Reserved 33 チームのペースと会社のペース 会社のペースが優先 そして文化を浸透させる
  • 35. 取り組みの振り返り Copyright © 2017 KDDI Corporation. All Rights Reserved 34 他システムとの連携  システム開発全般の課題  必要な連携を早期に洗い出しておく  できるだけ早く結合試験を
  • 36. 取り組みの振り返り Copyright © 2017 KDDI Corporation. All Rights Reserved 35 非機能要件の扱い 要求項目 内容 要求仕様 可用性 サービスを継続的に提供 できる能力 最低でもサービスに関わるコンポー ネントは冗長化すること 拡張性 機能追加を容易にする 今後の機能追加を見積もり、追加 に対応できる構成であること 性能 サービスへの要求を処理 する能力 ピーク時の要求量を見積もり、全て 処理できること 運用保守 問題発生時にもサービス 影響なく解消できる能力 SLAを定義し、これを満たすこと セキュリティ システム内のデータの安 全性を確保する システムアクセスを制限し、監査証 跡可能な施策を行うこと
  • 37. 取り組みの振り返り Copyright © 2017 KDDI Corporation. All Rights Reserved 36 非機能要件や運用監視の扱い ビジネスサイドに伝える どのサービスにも必ず必要 あらかじめタスクとして認識
  • 39. 38 Copyright © 2017 KDDI Corporation. All Rights Reserved  お客様へ本当の価値を届けるためには ☞ アジャイルとDevOpsの採用は必然  お客様のためのサービス ☞ 開発と運用は同じ方向を向くべきである  さらなるサービス品質向上のために ☞ システムと人を鍛える  アジャイル、DevOpsを振り返って ☞ 会社文化に応じた手法の確立 まとめ

Hinweis der Redaktion

  1. KDDI 技術統括本部の廣田と申します。複数のセッションの中、こちらのセッションに来て頂きましてありがとうございます。 私は、Auのお客様向け、法人のお客様向けのサービス開発や運用設計を担当しています。 サービス開発は主にスクラムを採用しており、私はその中で開発者として参画しています。 その中でもクラウドで作られたインフラ部分やサービスイン後の運用方法のための設計と実装を主に行なっております。 本日は私からKDDIで実践しているアジャイル開発や運用の手法をご紹介したいと思います。
  2. アジェンダはこちらになります。まずKDDIがアジャイルを採用する背景も含めてKDDIについてご紹介いたします。 そしてKDDIで実践するアジャイルとDevOpsへの取り組みの話 サービスイン後のサービス品質を高めるために必要と考える取り組み そしてアジャイルやDevOpsといった取り組みを振り返ってみて現時点で思う良くハマっているところと上手くいかないところ、うまくいかないところはどのようにアプローチしているかをお話いたします。 最後にまとめ、といった流れで進めさせていただきます。
  3. KDDIの事業セグメントはこちらの4つとなります。 パーソナルは個人のお客様向けの通信サービス、au事業となります。 バリューはauのお客様向けのコンテンツや決済などの付加価値を提供する事業。Au経済圏の最大化を進めている箇所になります。 ビジネスは法人のお客様向けのモバイル端末やNWソリューションやクラウド型サービスなど多様なソリューションをご提供いたします。 グローバルでは海外において法人様向けにDCを核としたICTソリューションやミャンマーやモンゴルでは個人のお客様向け通信サービスにも積極的に取り組んでいます。
  4. KDDIの事業戦略として 国内通信事業の成長、au経済圏の最大化、そしてグローバル事業拡大の3つの軸に注力しております。 特に(2)のau経済圏を拡大を達成するためにはお客様体験価値を向上させることが必要で全社で取り組んでいます。
  5. KDDIは、お客さまのライフステージに応じた、さまざまな商品・サービスを提供することで、通信企業から「ライフデザイン企業」への変革を推進しているところです。 通信サービスだけではなく、食品・日用品の販売、生命保険・損害保険・住宅ローンといった金融商品、さらに、電気サービスや決済などの領域において成長・拡大を目指しております。 そのため、お客様に届けるサービスの領域は拡大しますし、他社サービスとも戦う必要もあります。 お客様へ届ける価値をお客様のニーズに合致させなければなりません。また、その提供はスピード感を持つ必要もあると考えております。
  6. KDDIが実践するアジャイル、DevOpsの取り組みです。 お客様へサービスを通した価値提供を行うサイクルを早めるための取り組み サービス開始後も変更を柔軟に行うための開発そして運用体制の構築 お客様の変化するニーズに素早く対応するための新機能リリースの手法 システム障害時の復旧対応を迅速に行うための手法 これらをこれから順にご紹介していきます。
  7. ウォーターフォールに代表されるサイクルではお客様に価値を届けるまで時間掛かり、企画した時点で見積もった価値が届く頃にはより低いものになっている恐れがある。 競合他社と差別化を行うためには短い周期で機能を追加、変更してMinimum viable Productで早く提供して市場変化に追随する必要がある
  8. Auのお客様向けに提供する電気料金の見える化サービスを展開しておりますが、 こちらのauでんきではアジャイルを採用することでチーム構築から3ヶ月の期間でリリースすることができました。
  9. サービス開始後も変更を柔軟に行うための開発運用体制についてです。 KDDIでは開発と運用は部門が分かれています。以前にはこのような光景を頻繁に見かけておりました。 開発者は 運用者は このように同じサービスを開発、運用していく者が全く異なる方向に注力しているとお客様が必要とする価値を提供することは難しいです。
  10. 開発部門が開発、テスト、そしてリリースを行い、リリース後は運用部門が運用していく流れですが、 運用部門への運用引き継ぎというタスクが開発と運用の間にはあります。この運用引き継ぎのためのタスクは開発者が運用のために行います。 引き継ぎ作成するのも引き継ぐのも大変、引き継ぎフェーズに設計書、〜といった大量のインプットが発生する。 そして運用者とビジネスとの距離が遠いのも問題
  11. DevとOpsの担当者を1つのチームにすることで引き継ぎ時の大量インプットを防ぎます。 運用者も同じチームとして開発に参加し、システムの知見を得ておく。また、同じチームであることでビジネス要件にも密接になれます。 サービスの変更はビジネス要件から降りてくることも多く、これを抑えることでお客様に変更が必要であることを周知することができます。 これまでの引き継ぎタスクはチームで各フェーズで随時行い、引き継ぎタスクの溜め込みを防ぎます。
  12. お客様の変化するニーズに素早く対応するための機能リリースの手法について システムに新しいソフトウェアをインストールする手順は複雑でリリース専門担当者だけしかリリースできなくなっていないでしょうか? サービスに新機能を追加する作業で事故が発生してしまい、サービス断となることを恐れていないでしょうか? ここではこのような問題を解消して誰でもカジュアルに新機能をリリースできることを目指します。
  13. こちらはリリース手順書の一例です。 この手順書を完了させるのにどれくらいコマンド実行が必要かを見ていきます。 まずサーバを停止させるために3コマンドを実行します。次に新機能を含んだアプリケーションを差し替えるために4コマンド、 そして最後にサーバを起動するのに3コマンドの合計で10コマンドが必要になります。 作業対象のサーバが複数台になると10かけるサーバ台数分のコマンド手順が必要になるわけです。 このように大量コマンドで複雑な手順だとリリースが億劫になると思います。またコマンド実行するのは人間なので コマンド実行の数だけサービスに悪い影響を与えてしまうリスクがあるとも考えられます。
  14. そこで自動化です。 このような複雑な操作を行うプログラムを用意します。そしてプログラムの実行もサーバ上でコマンドを打つのではなく Web画面を持ったジョブ管理ツールにプログラムをジョブとして実行します。 ジョブ管理ツールはJenkinsであったりdrone.ioといったOSSがあらゆるところで使われています。
  15. ジョブ管理ツールを用いればリリース作業もそのジョブをWeb画面から実行するだけで作成したリリース用プログラムが 稼働して自動リリースしてくれます。 こうすることでリリース専門担当ではなく、開発、運用に携わる人全てが簡単にリリースすることを実現しています。
  16. ジョブ管理ツールに登録した自動リリースジョブがどのようにして自動リリースを実現しているかですが、 ジョブはプログラムのビルドとテストと格納を行うジョブとインフラの構築とアプリを配備するジョブとの2つに分かれます。 プログラムのビルドとテストと格納のジョブですが、 まず最初にマスタープログラムを更新します。これを検知してジョブ管理ツールはそのソースコードをコピーします。 コピーしたプログラムをビルドしてテストします。テストが成功すると生成されたアプリを格納先に格納します。これはマスタープログラムの更新のたびに行われます。 次にアプリをリリースするためのジョブ②を実行します。 サーバ群を構築し、構築したサーバ群は格納されるアプリを取得、展開しリリースを完了します。 このようにしてリリースを自動化、簡易化していますが、ソースコード管理ツールやジョブ管理ツール、そしてクラウドサービスを利用することが 必須です。
  17. インフラの構築とアプリの配備のジョブについてBlue Green Deploymentという手法を使っています。 現在サービスとして稼働しているサーバ群をBlueと呼びます。Blueはお客様に後悔するロードバランサ配下で稼働します。 新しいアプリをリリースするためにジョブを実行します。 まずサーバ群を構築します。次にアプリをそのサーバ群に配備します。この新しいサーバ群をGreenと呼びます。 Green上でアプリが正常に稼働されていることを確認したらロードバランサの配下をBlueからGreenに切り替えます。 これで新しいアプリケーションリリースは完了です。この手法の利点は簡単に切り戻しが可能であることです。 もしもGreenに異常があったらすぐにロードバランサの配下をBlueに切り替えます。 このBlueGreenDeplomentを行うためにはインフラをコード化しプログラマブルに運用することが必要です。
  18. 複雑なコマンド操作は属人的で作業者を限定してしまいます。 AWSコンソールといった単純な画面操作を活用したり、 Jenkinsに代表されるジョブ管理ツールを使って復旧操作を自動化しておく。
  19. AWSを例にとります。どのように復旧オペレーションをシンプルにしているか、ですが、 AWSのAutoScalingGroupを活用しています。AutoScalingではAWSの複数のDCに分散してサーバ群を構築でき、 常時稼働しておくべきサーバ台数も設定できます。そのためサーバの異常を検知するとオペレーションとしてそのサーバを削除してしまいます。 削除してしまっても障害原因調査ができるようにログはサーバ上以外にCloudWatchLogsといったログサーバに転送しておきます。 このようにサーバといったインフラに障害が起こった際にはログインして復旧するまでコマンドによる調査は行わず削除して再作成させます。 必要であれば、その後にログを解析したり、商用とは異なる環境で同じサーバを起動して調査します。
  20. 以上がKDDIが変革を実現するための取り組みの紹介でした。
  21. サービスイン後もさらに品質を向上させる必要があります。ここでは障害試験や障害に強いシステムの構築、そして想定できない 問題にどのようにして取り組んでいるかを運用フェーズ前後に行う取り組みとして紹介いたします。 あらかじめ構築したシステムの想定できる障害パターンを洗い出しておきます。 サーバやインフラは障害が起こることを前提にシステムアーキテクチャを設計します。 想定外の障害にどのように備えればいいか について見ていきます。
  22. まずサーバやデータストアといった全てのコンポーネントの冗長構成を洗い出します。中にはシングル構成のものもあるかと思います。 それぞれのコンポーネントごとに障害内容、その復旧方法と復旧時間、そして障害時にお客様はサービスがどのように見えるのかを考えます。 そしてこの障害設計に対して試験を行います。 開発者と運用者や実際に復旧オペレーションを行う方と一緒に試験することが望ましいです。 この試験を行うことで監視アラートや復旧オペレーションを試験します。
  23. 自動復旧しなく、どうしても複雑な手順が必要となる障害パターンは出てきます。 システムの弱点を知っておき、改善する必要があることを残しておきます。 また、複雑さとお客様影響に関わるところとを見極めて許容の判断を行っています。
  24. AWSといったパブリッククラウドサービスを活用して、シングルポイントなく、伸縮性の高いアーキテクチャを作っています。 障害は必ず起きるもの。例えばAWSでは複数のDCをまたいだ構成を推奨し、お客様にその切り替わりを意識させることなく 構成することができます。 止むおえずシングルポイントがある場合もしっかりリカバリプランを用意しておきます。 例えばマシンイメージをバックアップとして取得しておきシングル構成サーバの障害時にはそのイメージから復旧する、などがあります。 これらの方針はAWSに限らずGoogle、Azureにおいても同様でパブリッククラウドサービスの利点を最大限活かしています。
  25. 想定できない障害に備えるため、先ほど紹介した障害試験とは異なる試験も行なっています。 ランダムにサーバを削除させるようにスケジュールを組んでおき、実際に障害が発生したと仮定して対応を行う訓練を行います。 サービスの運用は様々な役割の方で行なっているかと思います。開発者はもちろん、運用者、運用者の中でも アラート検知による一次対応を行う方、一次対応で復旧しない場合の二次対応する方は異なる組織かもしれません。 それらのすべての関係者と共にこの訓練を行います。 この訓練の利点は2つあります。 1つはdesign for failureの確認です。もう1つは障害時の訓練です。
  26. auでんき見える化アプリ開発ではアジャイルを採用することでチーム構築から3,4ヶ月でリリースできました、と紹介しました。 これ自体は本当のことなんですが、アジャイルやDevOpsに取り組んだからといって、どのプロジェクトもウマイ、早い、安いとはいきません。 取り組む中で様々な課題がまだまだあります。課題とその解決へのアプローチを紹介します。
  27. 取り組みを振り返って課題と考える主な例はこちらです。 開発チームと会社のペースが噛み合わないケース 他システムとの連携タスクをアジャイルで行う場合 そして非機能要件をアジャイルで開発する場合に思う課題です。
  28. アジャイル開発の代表的な手法にスクラムといったチーム開発手法があります。 スクラム開発では開発チームがいつまでに何を開発するかを主体的に決めます。しかし、サービスは当然会社に強く結ばれるので 特にスケジュールについては会社の都合を優先する必要があります。そのため、チームのキャパシティを超えたボリュームをどうしても こなさなくてはならないケースがあります。 開発サイクルを早く回してはいますが、本当に必要なものと実現可否をチームで合意が取れずに外部の要求による開発を行うと以前の手法の サイクルが短くなっただけと言うことになり兼ねません。
  29. 私が思う解決策ですが、会社のペースはやはり優先です。 しかし、スクラムチーム合意の上で開発を進捗させることも重要です。組織にアジャイルの文化を浸透させて互いをよく理解して 帳尻を合わせる必要があります。アジャイルでもマイルストーンは存在し、当然マイルストーンは会社組織と合意します。
  30. 特にauサービスといった事業サービスではauのお客様が利用する弊社の別サービスと連携する必要があるサービス開発を行う機会が多いです。 そういった別サービスの開発はアジャイルではなくWF型でプロジェクト成果物が終盤で出てくるような開発スケジュールの場合も多く、他システムとの 連携試験がサービスイン直前までできない問題が起こります。 他システムとの連携のために起こる問題はアジャイルというよりはシステム開発全般の問題と言えるかもしれません。 異なる開発スコープで作られるチーム間で密接に連携していくことが最善と思います。
  31. 非機能要件は可用性、拡張性、性能、運用保守、セキュリティといったサービスの主目的とは異なる機能のことです。 ビジネスサイドではサービスの主目的である機能については積極的に要求できますが、非機能については、あまり関心がないケースが多々あります。非機能要件もユーザ数やピーク時のアクセス料などの要求仕様を定義する必要があります。 この非機能要件もプロジェクトの終盤に必要性が高まり、一気に着手といった例が何度もありました。
  32. ビジネスサイドへ非機能要件の必要性を展開し、要件定義を一緒に行います。 非機能要件は実はどのサービスにも必要で、定義する項目もほぼ同じです。そのためあらかじめスクラムのタスクとして 入れておき、ビジネスサイドに伝えて優先度を上げてもらう働きかけが必要です。
  33. まとめになります。
  34. KDDIはこれまでよりもお客様の多種多様な生活領域に対して価値を提供していきます。 そのためにはアジャイルとDevOpsの採用は必然でした。 開発と運用とがお客様に必要とされるサービスを目指すべきだと考えています。 そしてサービス品質を高めるために様々な取り組みを行っていきます。 これからもアジャイル、DevOpsといった手法と会社文化とを合わせたベストな方法を見つけていきたいと思います。