Roll your Product with Kaizen Culture
Let’s ‘tech’ the initiative
April 15th, 2021
@woosyume (Woohyeok Aaron Kim)
Senior Application Engineer
Rakuten Group, Inc.
2
Woohyeok Kim
# Certified Scrum Master
# Speaker at RSGT2021 etc.
# Favorite Lang : Korean, Java
Engineer of Rakuten Ichiba
Selenium User Community Organizer(Kansai)
ウヒョク キム
Speaker
- Regional Scrum GatheringTokyo 2021
- Developers Summit Kansai 2020
- Scrum Fest Mikawa 2020
- Regional Scrum GatheringTokyo 2020
- SeleniumConf 2019
- AgileJapan 2019
- Etc.
3
Tech, Take
4
Let’s take the initiative
5
Index
DevOps
What we’ve done
What have changed
How to take the initiative
6
Technical, Logical
7
Technical, Logical
Emotional, Practical
8
Technical, Logical
Emotional, Practical
Kaizen from
tomorrow
明日から本気出す
9
DevOps
10
Free image provider, 2021/04/11, https://pexel.com
11
Development
Free image provider, 2021/04/11, https://pexel.com
12
Operation
Free image provider, 2021/04/11, https://pexel.com
13
Time to Market
14
Fast delivery
Free image provider, 2021/04/11, https://pexel.com
15
!?
Free image provider, 2021/04/11, https://pexel.com
16
Quality
17
Assure quality
Free image provider, 2021/04/11, https://pexel.com
18
Satisfy customers
Free image provider, 2021/04/11, https://pexel.com
19
Always Improve
20
Keep pursuing Kaizen : 常に改善を求める
Kaizen is the common sense 3 fathers suggest
Father of Java
Father ofToyota system
Father of Scrum
Wikipedia, 2021/04/11, https://wikipedia.co.jp
21
Stories(物事・出来事)
We should know ourselves first : 僕たち自信の現状から把握しないといけない
22
What happened
at Rakuten?
23
Rakuten Ichiba : 楽天市場そしてランキング
Development ~ Operation
Rakuten, 2021/04/11, https://rakuten.co.jp
woosyume
24
Responsibility of my team : チームの担当領域
Develop new features, Manage web servers etc.
So-called entire ‘DevOps’
Free image provider, 2021/04/11, https://pexel.com
25
Problems : 問題
Spend much time
On Testing
26
Problems : 問題
Spend much time
On Deploy
Free image provider, 2021/04/11, https://pexel.com
27
Why spend much time for testing : テストに時間がかかりすぎる
Mainly about regression test, we have too much pages to test.
Actually it’s close to the unlimited so we performed only abstract tests.
But the abstract test also took long time. (20hour / man)
FASHION JACKET COLOR
PANTS SIZE
Duration Top Genre Genre
REALTIME
DAILY
WEEKLY
MONTHLY
FOOD
…
…
…
4 39 13,000
Tag
130,000
28
Even we had Blue Green deploy architecture,
We should perform it manually running a shell.
Furthermore,
we should build application manually too.
Free image provider, 2021/04/11, https://pexel.com
Why spend much time for deploy : デプロイに時間がかかりすぎる
29
Workflow : ワークフロー
Develop new features, Manage web servers etc.
So-called entire ‘DevOps’
Preparation
Design, Estimation, POC,
Adjustment etc.
Dev, UT, FT, IT
Create / Maintain contents, Assures quality
for the modification itself
RT (Regression)
Entire scenario test
including new
change
Deploy
Deploy ENG
Kaizen & Biz
requirement
30
Workflow : ワークフロー
Develop new features, Manage web servers etc.
So-called entire ‘DevOps’
Preparation
Design, Estimation, POC,
Adjustment etc.
Dev, UT, FT, IT
Create / Maintain contents, Assures quality
for the modification itself
RT (Regression)
Entire scenario test
including new
change
Deploy
Deploy ENG
Kaizen & Biz
requirement
31
Cards we considered : 僕たちが考慮した選択肢
Considered some of countermeasure and
Containerization B
C Test Automation
Do!
32
Cards we considered : 僕たちが考慮した選択肢
Decided what to do first
Containerization
B
C
Test Automation
Do!
33
Fishbone Diagram we actually made : 実際出来上がったFishboneダイアグラム
34
Web Server Containerization : 常に改善を求める
TBU
Containerization
Free image provider, 2021/04/11, https://pexel.com
35
Web UI Test Automation : 常に改善を求める
TBU
Test Automation
Free image provider, 2021/04/11, https://pexel.com
36
Cloud Computing Models
37
XaaS
SaaS
(Software as a Service)
FaaS
(Function as a Service)
PaaS
(Platform as a Service)
CaaS
(Conainer as a Service)
IaaS
(Intra as a Service)
On Premise
Function Function Function Function Function Function
Application Application Application Application Application Application
Runtime Runtime Runtime Runtime Runtime Runtime
Middleware Middleware Middleware Middleware Middleware Middleware
OS OS OS OS OS OS
Virtualization Virtualization Virtualization Virtualization Virtualization Virtualization
Server Server Server Server Server Server
Storage Storage Storage Storage Storage Storage
Networking Networking Networking Networking Networking Networking
38
Rakuten Infrastructure : 楽天のインフラ
Server
Group
DBA
Group
Network
Group
Platform
Group
Root for
own namespace
Basically ticket based communication
…
39
CaaS and IaaS : CaaSとIaaS
TBU
CaaS
(Conainer as a Service)
IaaS
(Intra as a Service)
Function Function
Application Application
Runtime Runtime
Middleware Middleware
OS OS
Virtualization Virtualization
Server Server
Storage Storage
Networking Networking
More concentrate
on
Application itself
40
CaaS
41
CaaS Migration : CaaSってどうやって実現するねん
Free PNG provider, 2021/4/11, https://pngwing.com/
42
Infrastructure
Host OS
Docker
Container Container Container
Free PNG provider, 2021/4/11, https://pngwing.com/
CaaS Service Image : CaaSのサービスイメージ
43
Kubernetes : アーキテクチャー
Cluster
Node Node Node
Free PNG provider, 2021/4/11, https://pngwing.com/
44
Cluster : まずは社内クラウドのクラスターをサブスクライブ
Node
Pod Pod
Free PNG provider, 2021/4/11, https://pngwing.com/
45
Pod : アプリケーションのコンテナ化
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
46
Requires Dockerize : ドッカーライズは必要
Base image
(e.g. OS, Core lib etc.)
Necessary image
(Scripts etc.)
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
47
Resources : リソースとしての管理やサービスの公開
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
User
48
Connect with SLB / GSLB : LB部公開の準備
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
SLB
GSLB
49
Partial Release : 段階リリース
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
SLB
GSLB
50
Partial Release : 段階リリース
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
GSLB
SLB SLB
ASIS
production
5% 95%
51
Partial Release : 段階リリース
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
GSLB
SLB SLB
ASIS
production
25% 75%
52
Partial Release : 段階リリース
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
GSLB
SLB SLB
ASIS
production
50% 50%
53
Partial Release : 段階リリース
Container
Web app
Container Container Container
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
Web app
Cache server
Web server
GSLB
SLB SLB
ASIS
production
100% 0%
54
Run
necessary
batches 1
Get set
commits
Build apps
Run
necessary
batches 2
Create / Set
Image
Deploy to
network
Rolling
update
1 2 3 4 5 8
7
Git checkout Pre action Dockerize Deploy
Docker Run
6
Deploy on Pipeline : デプロイパイプラインの構築
…
There are multiple pipelines based on environment
55
Environment : 環境
Staging Network Production Network
Beta QA
Release
Candidate
Pre
Production
Production
56
Time to market on CaaS : CaaSでのTime To Market
Market
Time to market
57
Test Automation
58
Free PNG provider, 2021/4/11, https://pngwing.com/
Journey map : テスト自動化の旅
59
Bottleneck of Bottleneck : ボトルネックのボトルネックを選定
TBU Test Process
UnitTest
FunctionalTest
IntegrationTest
RegressionTest
*Already automated
* Different scenario at every time
* Different scenario at every time
* Recursive scenario at every time
60
User Behavior Check : ユーザーの挙動による確認
Click function
Move to expectedURL
1)
Ranking Top, 2021/04/03, https://ranking.rakuten.co.jp
61
Contents itself
Click function
1)
Ranking Top, 2021/04/03, https://ranking.rakuten.co.jp
Banner / Advertisement Check : バナーや広告の確認
62
Ranking Result
- Rank
- Item Name
- Shop Name
- Price
- Review#
- Particular condition
Genre Name
1)
Ranking Top, 2021/04/03, https://ranking.rakuten.co.jp
Data Integrity Check : 表示データの整合性の確認
63
External Resource Errors, AMP Syntax Errors
Others : その他
64
If (before != after) create diff file
Ranking Top, 2021/04/03, https://ranking.rakuten.co.jp
Image Comparison & Difference Analysis : リリース前後に対する画像比較や差分分析
Before
After
Diff file
65
E2E Test on Remote server
Database
API
Test Automation
Application
Front Page
Create expected value dynamically
& Store it as in-memory cache
As post action
Commit
Set destination
And access
Free PNG provider, 2021/4/11, https://pngwing.com/
66
Edge
on Windows
Chrome
in iOS
Firefox
on Ubuntu
Safari
on MacOS
Hub and Nodes
GRID System
Free PNG provider, 2021/4/11, https://pngwing.com/
67
Reporting/Pull Request Automation with Atlassian Products
Before After
Created report manually
Automated as well
Free PNG provider, 2021/4/11, https://pngwing.com/
68
Change
69
Preparation
Design, Estimation, POC,
Adjustment etc.
Dev, UT, FT, IT
Create / Maintain contents, Assures quality
for the modification itself
RT (Regression)
Entire scenario test
including new
change
Deploy
Deploy ENG
Kaizen & Biz
requirement
[ASIS] Development Process : 開発プロセス
70
Preparation
Design, Estimation, POC,
Adjustment etc.
Dev, UT, FT, IT
Create / Maintain contents,
Assures quality for the
modification itself
RT Deploy
Deploy ENG
Kaizen & Biz
requirement
[TOBE] Development Process : 開発プロセス
Lead time
27%
71
Operational change : オペレーションが簡単になる
Free PNG provider, 2021/4/11, https://pngwing.com/
• Craete Operation manual
• Packaging
• Build application
• Deploy
• Check
• Start pipeline job
• Craete Operation manual
• Packaging
• Build application
• Deploy
• Check
72
Operational change : デプロイの方式が変化
Load Balancer Load Balancer
k8s
Service in Service out
Free PNG provider, 2021/4/11, https://pngwing.com/
73
Rollable product : ロールバックにかかる時間も短縮
Free PNG provider, 2021/4/11, https://pngwing.com/
74
More responsibility : 自由度が上がる分、責任範囲も広がる
Application
Security
Webserver
Cache
Governance for
ALL policies
Trouble
Shooting
Etc.
75
More consideration : 考慮するものも増えてくる
Resource
Pod#
Replica#
Container#
Deployment
Strategy
Datastore Etc.
76
Device Before After Reduction
PC 8hours 5min 99.99%
Smartphone 8hours 5min 99.99%
Smartphone with AMP 3hours 5min 99.63%
Tablet 5hours 5min 99.84%
Total 19hours 20min 99.86%
Return of Test Automation : テスト自動化のリターン
77
Proactive Kaizen mind : 改善案件に対するマインドセットが変わる
78
Synergy
79
10
0
20
2017.09 ~ 2018.09 2018.10 ~ 2019.09
18
6
2019.10 ~ 2020.09
26
Increased bottom-up project release : エンジニア主導のプロジェクトの数の増加
80
Document Code References
Understanding for product is deeper and deeper because
We should investigate/reproduce current behavior
Enhanced understanding of product : プロダクトの知識が増えてくる
81
“Why this issue occurred?”
“Could we prevent it?”
“Let’s think the root cause”
Experience resolved issue together made team stronger.
We express it as winning mentality
Team Culture to discuss problem together : みんなで考えるチーム文化が作られる
Free PNG provider, 2021/4/11, https://pngwing.com/
82
Team started
dancing
83
“I created this as trial.”
“Oh, looks good!”
“Let’s maximize it”
Organizational Growth : 全員が組織的に成長
84
In 1 year
85
[In progress] Maximize values : さらにコンテナ化・横てん
Batch Server Containerization,
Creation of common plugin for automated test
Image Comparison
Auto Reporting
86
[In progress] TaaS(Test as a Service) : テストプラットフォームの構築
System that everyone can run their E2E test only with repo, branch name
87
A/BTest should be like the following but
Ineffective & Not safe A/B Test flow : A/Bテスト時の安全性問題が話題に
88
Ineffective & Not safe A/B Test flow : A/Bテスト時の安全性問題が話題に
In current architecture, all containers should be based on same image.
A/BTest tool uses user cookie but
We should redeploy ALL containers when we starts / end A/BTest so that
We add / exclude modification for the test.
89
デザインからやり直しになるかも
90
We’re always on
the start
91
But we should take the initiative
Time doesn’t wait for us
92
How to take
the initiative
(feat. OODA)
93
Orient
Decide
Act
Observe
OODA
94
Observe: 状況を理解する
Stories around us are too many to understand all well
Stories(物事・出来事)
95
Stories around us are too many to understand all well
Stories(物事・出来事)
Observe: 状況を理解する
96
To observe it well,
We should SIMPLIFY and see it from variety of perspectives
単純化した上、様々な角度から物事を把握する
Stories(物事・出来事)
あまり集中しないようにしよう。。
Observe: 状況を理解する
97
Orient : 観察した状況を分析し、次のアクション候補を抽出する
After observing current situation,
ExtractTODO tasks from it
Point 日本語訳
Collect trustworthy intelligence 信頼できる情報を集める
Search similar cases 似ている事例を調べる
Specify the risk リスクを具体化する
Set priority 優先順位を決める
Not pursue perfect 完璧を求めない
Prevent recurrence
(悪いことがあったら)
再発を防止する
How to orient?
Maybe this part should be
Bottleneck soon…
この角度から見たら、
このプロジェクトは後半になると
OOがネックになりそうだ
98
Decide : 候補を比較し、優先順位を決める
Decide the next direction considering result of analysis
A B
C D
Do!
99
Decide the next direction considering result of analysis
A
B
C
D
Do!
Decide : 候補を比較し、優先順位を決める
100
Act : 実行する
Go!
【Pexel, https://images.pexels.com/, 2020/12/28 】
Free image provider, 2021/04/11, https://pexel.com
101
Involve others : 全員が組織的に成長
102
Roll your product
103
Roll your thinking
104
Quality will be assured
105
Kaizen is there
[Devopsdays2021] Roll Your Product with Kaizen Culture

[Devopsdays2021] Roll Your Product with Kaizen Culture

  • 1.
    Roll your Productwith Kaizen Culture Let’s ‘tech’ the initiative April 15th, 2021 @woosyume (Woohyeok Aaron Kim) Senior Application Engineer Rakuten Group, Inc.
  • 2.
    2 Woohyeok Kim # CertifiedScrum Master # Speaker at RSGT2021 etc. # Favorite Lang : Korean, Java Engineer of Rakuten Ichiba Selenium User Community Organizer(Kansai) ウヒョク キム Speaker - Regional Scrum GatheringTokyo 2021 - Developers Summit Kansai 2020 - Scrum Fest Mikawa 2020 - Regional Scrum GatheringTokyo 2020 - SeleniumConf 2019 - AgileJapan 2019 - Etc.
  • 3.
  • 4.
  • 5.
    5 Index DevOps What we’ve done Whathave changed How to take the initiative
  • 6.
  • 7.
  • 8.
    8 Technical, Logical Emotional, Practical Kaizenfrom tomorrow 明日から本気出す
  • 9.
  • 10.
    10 Free image provider,2021/04/11, https://pexel.com
  • 11.
    11 Development Free image provider,2021/04/11, https://pexel.com
  • 12.
    12 Operation Free image provider,2021/04/11, https://pexel.com
  • 13.
  • 14.
    14 Fast delivery Free imageprovider, 2021/04/11, https://pexel.com
  • 15.
    15 !? Free image provider,2021/04/11, https://pexel.com
  • 16.
  • 17.
    17 Assure quality Free imageprovider, 2021/04/11, https://pexel.com
  • 18.
    18 Satisfy customers Free imageprovider, 2021/04/11, https://pexel.com
  • 19.
  • 20.
    20 Keep pursuing Kaizen: 常に改善を求める Kaizen is the common sense 3 fathers suggest Father of Java Father ofToyota system Father of Scrum Wikipedia, 2021/04/11, https://wikipedia.co.jp
  • 21.
    21 Stories(物事・出来事) We should knowourselves first : 僕たち自信の現状から把握しないといけない
  • 22.
  • 23.
    23 Rakuten Ichiba :楽天市場そしてランキング Development ~ Operation Rakuten, 2021/04/11, https://rakuten.co.jp woosyume
  • 24.
    24 Responsibility of myteam : チームの担当領域 Develop new features, Manage web servers etc. So-called entire ‘DevOps’ Free image provider, 2021/04/11, https://pexel.com
  • 25.
    25 Problems : 問題 Spendmuch time On Testing
  • 26.
    26 Problems : 問題 Spendmuch time On Deploy Free image provider, 2021/04/11, https://pexel.com
  • 27.
    27 Why spend muchtime for testing : テストに時間がかかりすぎる Mainly about regression test, we have too much pages to test. Actually it’s close to the unlimited so we performed only abstract tests. But the abstract test also took long time. (20hour / man) FASHION JACKET COLOR PANTS SIZE Duration Top Genre Genre REALTIME DAILY WEEKLY MONTHLY FOOD … … … 4 39 13,000 Tag 130,000
  • 28.
    28 Even we hadBlue Green deploy architecture, We should perform it manually running a shell. Furthermore, we should build application manually too. Free image provider, 2021/04/11, https://pexel.com Why spend much time for deploy : デプロイに時間がかかりすぎる
  • 29.
    29 Workflow : ワークフロー Developnew features, Manage web servers etc. So-called entire ‘DevOps’ Preparation Design, Estimation, POC, Adjustment etc. Dev, UT, FT, IT Create / Maintain contents, Assures quality for the modification itself RT (Regression) Entire scenario test including new change Deploy Deploy ENG Kaizen & Biz requirement
  • 30.
    30 Workflow : ワークフロー Developnew features, Manage web servers etc. So-called entire ‘DevOps’ Preparation Design, Estimation, POC, Adjustment etc. Dev, UT, FT, IT Create / Maintain contents, Assures quality for the modification itself RT (Regression) Entire scenario test including new change Deploy Deploy ENG Kaizen & Biz requirement
  • 31.
    31 Cards we considered: 僕たちが考慮した選択肢 Considered some of countermeasure and Containerization B C Test Automation Do!
  • 32.
    32 Cards we considered: 僕たちが考慮した選択肢 Decided what to do first Containerization B C Test Automation Do!
  • 33.
    33 Fishbone Diagram weactually made : 実際出来上がったFishboneダイアグラム
  • 34.
    34 Web Server Containerization: 常に改善を求める TBU Containerization Free image provider, 2021/04/11, https://pexel.com
  • 35.
    35 Web UI TestAutomation : 常に改善を求める TBU Test Automation Free image provider, 2021/04/11, https://pexel.com
  • 36.
  • 37.
    37 XaaS SaaS (Software as aService) FaaS (Function as a Service) PaaS (Platform as a Service) CaaS (Conainer as a Service) IaaS (Intra as a Service) On Premise Function Function Function Function Function Function Application Application Application Application Application Application Runtime Runtime Runtime Runtime Runtime Runtime Middleware Middleware Middleware Middleware Middleware Middleware OS OS OS OS OS OS Virtualization Virtualization Virtualization Virtualization Virtualization Virtualization Server Server Server Server Server Server Storage Storage Storage Storage Storage Storage Networking Networking Networking Networking Networking Networking
  • 38.
    38 Rakuten Infrastructure :楽天のインフラ Server Group DBA Group Network Group Platform Group Root for own namespace Basically ticket based communication …
  • 39.
    39 CaaS and IaaS: CaaSとIaaS TBU CaaS (Conainer as a Service) IaaS (Intra as a Service) Function Function Application Application Runtime Runtime Middleware Middleware OS OS Virtualization Virtualization Server Server Storage Storage Networking Networking More concentrate on Application itself
  • 40.
  • 41.
    41 CaaS Migration :CaaSってどうやって実現するねん Free PNG provider, 2021/4/11, https://pngwing.com/
  • 42.
    42 Infrastructure Host OS Docker Container ContainerContainer Free PNG provider, 2021/4/11, https://pngwing.com/ CaaS Service Image : CaaSのサービスイメージ
  • 43.
    43 Kubernetes : アーキテクチャー Cluster NodeNode Node Free PNG provider, 2021/4/11, https://pngwing.com/
  • 44.
  • 45.
    45 Pod : アプリケーションのコンテナ化 Container Webapp Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server
  • 46.
    46 Requires Dockerize :ドッカーライズは必要 Base image (e.g. OS, Core lib etc.) Necessary image (Scripts etc.) Container Web app Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server
  • 47.
    47 Resources : リソースとしての管理やサービスの公開 Container Webapp Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server User
  • 48.
    48 Connect with SLB/ GSLB : LB部公開の準備 Container Web app Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server SLB GSLB
  • 49.
    49 Partial Release :段階リリース Container Web app Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server SLB GSLB
  • 50.
    50 Partial Release :段階リリース Container Web app Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server GSLB SLB SLB ASIS production 5% 95%
  • 51.
    51 Partial Release :段階リリース Container Web app Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server GSLB SLB SLB ASIS production 25% 75%
  • 52.
    52 Partial Release :段階リリース Container Web app Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server GSLB SLB SLB ASIS production 50% 50%
  • 53.
    53 Partial Release :段階リリース Container Web app Container Container Container Cache server Web server Web app Cache server Web server Web app Cache server Web server Web app Cache server Web server GSLB SLB SLB ASIS production 100% 0%
  • 54.
    54 Run necessary batches 1 Get set commits Buildapps Run necessary batches 2 Create / Set Image Deploy to network Rolling update 1 2 3 4 5 8 7 Git checkout Pre action Dockerize Deploy Docker Run 6 Deploy on Pipeline : デプロイパイプラインの構築 … There are multiple pipelines based on environment
  • 55.
    55 Environment : 環境 StagingNetwork Production Network Beta QA Release Candidate Pre Production Production
  • 56.
    56 Time to marketon CaaS : CaaSでのTime To Market Market Time to market
  • 57.
  • 58.
    58 Free PNG provider,2021/4/11, https://pngwing.com/ Journey map : テスト自動化の旅
  • 59.
    59 Bottleneck of Bottleneck: ボトルネックのボトルネックを選定 TBU Test Process UnitTest FunctionalTest IntegrationTest RegressionTest *Already automated * Different scenario at every time * Different scenario at every time * Recursive scenario at every time
  • 60.
    60 User Behavior Check: ユーザーの挙動による確認 Click function Move to expectedURL 1) Ranking Top, 2021/04/03, https://ranking.rakuten.co.jp
  • 61.
    61 Contents itself Click function 1) RankingTop, 2021/04/03, https://ranking.rakuten.co.jp Banner / Advertisement Check : バナーや広告の確認
  • 62.
    62 Ranking Result - Rank -Item Name - Shop Name - Price - Review# - Particular condition Genre Name 1) Ranking Top, 2021/04/03, https://ranking.rakuten.co.jp Data Integrity Check : 表示データの整合性の確認
  • 63.
    63 External Resource Errors,AMP Syntax Errors Others : その他
  • 64.
    64 If (before !=after) create diff file Ranking Top, 2021/04/03, https://ranking.rakuten.co.jp Image Comparison & Difference Analysis : リリース前後に対する画像比較や差分分析 Before After Diff file
  • 65.
    65 E2E Test onRemote server Database API Test Automation Application Front Page Create expected value dynamically & Store it as in-memory cache As post action Commit Set destination And access Free PNG provider, 2021/4/11, https://pngwing.com/
  • 66.
    66 Edge on Windows Chrome in iOS Firefox onUbuntu Safari on MacOS Hub and Nodes GRID System Free PNG provider, 2021/4/11, https://pngwing.com/
  • 67.
    67 Reporting/Pull Request Automationwith Atlassian Products Before After Created report manually Automated as well Free PNG provider, 2021/4/11, https://pngwing.com/
  • 68.
  • 69.
    69 Preparation Design, Estimation, POC, Adjustmentetc. Dev, UT, FT, IT Create / Maintain contents, Assures quality for the modification itself RT (Regression) Entire scenario test including new change Deploy Deploy ENG Kaizen & Biz requirement [ASIS] Development Process : 開発プロセス
  • 70.
    70 Preparation Design, Estimation, POC, Adjustmentetc. Dev, UT, FT, IT Create / Maintain contents, Assures quality for the modification itself RT Deploy Deploy ENG Kaizen & Biz requirement [TOBE] Development Process : 開発プロセス Lead time 27%
  • 71.
    71 Operational change :オペレーションが簡単になる Free PNG provider, 2021/4/11, https://pngwing.com/ • Craete Operation manual • Packaging • Build application • Deploy • Check • Start pipeline job • Craete Operation manual • Packaging • Build application • Deploy • Check
  • 72.
    72 Operational change :デプロイの方式が変化 Load Balancer Load Balancer k8s Service in Service out Free PNG provider, 2021/4/11, https://pngwing.com/
  • 73.
    73 Rollable product :ロールバックにかかる時間も短縮 Free PNG provider, 2021/4/11, https://pngwing.com/
  • 74.
    74 More responsibility :自由度が上がる分、責任範囲も広がる Application Security Webserver Cache Governance for ALL policies Trouble Shooting Etc.
  • 75.
    75 More consideration :考慮するものも増えてくる Resource Pod# Replica# Container# Deployment Strategy Datastore Etc.
  • 76.
    76 Device Before AfterReduction PC 8hours 5min 99.99% Smartphone 8hours 5min 99.99% Smartphone with AMP 3hours 5min 99.63% Tablet 5hours 5min 99.84% Total 19hours 20min 99.86% Return of Test Automation : テスト自動化のリターン
  • 77.
    77 Proactive Kaizen mind: 改善案件に対するマインドセットが変わる
  • 78.
  • 79.
    79 10 0 20 2017.09 ~ 2018.092018.10 ~ 2019.09 18 6 2019.10 ~ 2020.09 26 Increased bottom-up project release : エンジニア主導のプロジェクトの数の増加
  • 80.
    80 Document Code References Understandingfor product is deeper and deeper because We should investigate/reproduce current behavior Enhanced understanding of product : プロダクトの知識が増えてくる
  • 81.
    81 “Why this issueoccurred?” “Could we prevent it?” “Let’s think the root cause” Experience resolved issue together made team stronger. We express it as winning mentality Team Culture to discuss problem together : みんなで考えるチーム文化が作られる Free PNG provider, 2021/4/11, https://pngwing.com/
  • 82.
  • 83.
    83 “I created thisas trial.” “Oh, looks good!” “Let’s maximize it” Organizational Growth : 全員が組織的に成長
  • 84.
  • 85.
    85 [In progress] Maximizevalues : さらにコンテナ化・横てん Batch Server Containerization, Creation of common plugin for automated test Image Comparison Auto Reporting
  • 86.
    86 [In progress] TaaS(Testas a Service) : テストプラットフォームの構築 System that everyone can run their E2E test only with repo, branch name
  • 87.
    87 A/BTest should belike the following but Ineffective & Not safe A/B Test flow : A/Bテスト時の安全性問題が話題に
  • 88.
    88 Ineffective & Notsafe A/B Test flow : A/Bテスト時の安全性問題が話題に In current architecture, all containers should be based on same image. A/BTest tool uses user cookie but We should redeploy ALL containers when we starts / end A/BTest so that We add / exclude modification for the test.
  • 89.
  • 90.
  • 91.
    91 But we shouldtake the initiative Time doesn’t wait for us
  • 92.
    92 How to take theinitiative (feat. OODA)
  • 93.
  • 94.
    94 Observe: 状況を理解する Stories aroundus are too many to understand all well Stories(物事・出来事)
  • 95.
    95 Stories around usare too many to understand all well Stories(物事・出来事) Observe: 状況を理解する
  • 96.
    96 To observe itwell, We should SIMPLIFY and see it from variety of perspectives 単純化した上、様々な角度から物事を把握する Stories(物事・出来事) あまり集中しないようにしよう。。 Observe: 状況を理解する
  • 97.
    97 Orient : 観察した状況を分析し、次のアクション候補を抽出する Afterobserving current situation, ExtractTODO tasks from it Point 日本語訳 Collect trustworthy intelligence 信頼できる情報を集める Search similar cases 似ている事例を調べる Specify the risk リスクを具体化する Set priority 優先順位を決める Not pursue perfect 完璧を求めない Prevent recurrence (悪いことがあったら) 再発を防止する How to orient? Maybe this part should be Bottleneck soon… この角度から見たら、 このプロジェクトは後半になると OOがネックになりそうだ
  • 98.
    98 Decide : 候補を比較し、優先順位を決める Decidethe next direction considering result of analysis A B C D Do!
  • 99.
    99 Decide the nextdirection considering result of analysis A B C D Do! Decide : 候補を比較し、優先順位を決める
  • 100.
    100 Act : 実行する Go! 【Pexel,https://images.pexels.com/, 2020/12/28 】 Free image provider, 2021/04/11, https://pexel.com
  • 101.
    101 Involve others :全員が組織的に成長
  • 102.
  • 103.
  • 104.
  • 105.

Editor's Notes

  • #4 영어권 사람들
  • #5 2020년 슬로건
  • #10 최근에는 DevSecOps 데브옵스가 뭘까요.
  • #11 흔히 이런 그림을 볼 것. 하나의 싸이클
  • #12 먼저 무언가를 기획하고 만들겠죠. 의미 있는 가치를 제공 실현하기 위해 우리는 계속 연구하고 연구결과에 따라 행동하기 시작합니다. 무언가를 만들죠 그리고 내부적으로 검증을 합니다. 이 정도면 됐다
  • #13 만들어낸 그 가치를 우리만 가지고 있는 것이 아니다 세상에 알려야 한다. 예쁘게 때로는 고객의 취향에 따라 커스터마이징을 하기도
  • #14 바로 이 순간 등장하는 개념이 Time to market Time to market 시장 출시까지 걸리는 시간 얼만큼 고객 니즈에 잘 대응할 수 있는가를 가리키는 지표
  • #15 타임 투 마켓을 줄이기 위해 우리는 다양한 시도를 해봅니다. 그리고 딜리버리의 악셀을 밟습니다. 필요 없는 과정을 생략하거나 자동화하거나 대량 생산 그런데, 만약 단순히 속도만 빨라선 어떤 결과를 초래하게 될까요
  • #16 분명히 해야할걸 다 했는데 넣을 것을 다 넣었고 매뉴얼대로 했다. 도대체 무엇이 문제인가?
  • #17 우리는 빠름을 추구하지만 그것이 전부는 아니다.
  • #18 아무리 좋은 아이디어라도 퀄리티가 담보되지 않는다면 결국 全て無駄 세큐리티도 마찬가지
  • #19 아이디어 퀄리티, 세큐리티 모든 것이 만족되어야만 고객을 만족시킬 수 있고 그것이 우리가 추구하는 길이다
  • #20 한 명의 엔지니어로서, 그리고 관계자로서 우리가 해야할 것은 여기서 명확해 졌습니다 常に改善すること 샤쿤이기도
  • #21 우리들은 이 가치에 공감. 그들이 쓴 책을 우리는 교과서로 여겨
  • #22 물론 그 카이젠을 위해서는 전제가 하나 있습니다. 출발점을 이해하고 그 뒤에 방향을 설정할 필요가 있다.
  • #23 라쿠텐에서 있었던 일, 그것을 통해 문제가 있을 때 어떻게 행동하고 그 행동을 통해 또 어떤 변화를 기대할 수 있는지
  • #24 슈퍼세일 때 많이 사서 포인트 많이.. 통산 포인트 70만? 얼마였지. 내건 얼마인지 확인 랭킹이라는 곳
  • #25 소위 데브옵스 팀 개발 오퍼레이션 : 슈퍼세일, 장르변경, 연간 상품 랭킹 애자일 개발로 말하자면 칸반과 스크럼 믹스
  • #26 개발 팀으로서
  • #27 오퍼레이션 팀으로서
  • #28 이걸 압축하고 압축해서 600여가지 테스트.. 물론 불완전한 테스트였다. 그런데 그 불완전한 테스트도 시간이 많이 걸려
  • #29 복수의 웹서버, 블루그린 적용했지만.. 결국 라이브러리가 변경됐다고 한다면 디플로이 해야하고 Build도 따로 해야 해 Kicker
  • #30 대체로 1.5개월 가량 소요
  • #31 주로 여기서 많은 이터레이션이 발생. 경우에 따라서는 엄청나게 지연되는 일도 발생.
  • #34 이것이 당시 실제 사용했던 Fishbone 다이어그램. 피쉬본 5 why 구체화, root cause
  • #35 くじら : 고래
  • #36 여기 뭐가 들어있을 것 같나요? 그냥 물어보고 싶었다
  • #37 ここに焦点を
  • #38 어느 레이어까지 책임을 져야하는가에 따라 여러가지 서비스 모델이 존재
  • #39 RIaaS : 시큐리티 작은 유저 CaaS One cloud 테넌트 개념, 야칭 물론 시큐리티상 바람직하지 않은 부분도 있겠지만 어찌 되었든
  • #40 여기서 우리 회사 인프라에서 말한 두 가지만 요약해서 보자면 가상화 환경까지를 제공 개념적으로 보면 CaaS에서 우리는 조금 더 비즈니스 로직에 집중할 수 있음.
  • #41 ここに焦点を
  • #42 우리는 디플로이 방식 개선을 위해 IaaS에서 CaaS로 마이그레이션을 했습니다. 그러면 무엇이 필요할까요? 먼저 컨테이너가 필요. 컨테이너는 쉽게 생각하면 보통의 어플리케이션. 웹 어플리케이션, 로거,
  • #43 CaaS 서비스의 이미지 팟으로 묶어 k8s나 스웜, 메소스를 통해 컨테이너를 통제 자주 들을 수 있는 용어 : 도커라이즈, 컨테이너라이즈
  • #44 먼저 저희가 마이그레이션 한 CaaS는 k8s에 기반 클러스터 (프로덕션, 스테이징 ...) 네임스페이스별로 할당된 노드를 통해 서비스를 공개하는 방식
  • #45 야칭을 내고 서브스크립션 노드를 이용할 수 있는 권리를 삽니다. 여기부터는 이제 우리의 영역입니다. 집을 빌리면 가구 배치를 어떻게 할지 마음대로 할 수 있죠. 컨테이너 구성을 어떻게 할 것인가. 레플리카는 어떻게 할 것이며, 스토리지는 어떤 스토리지를 이용할거고 그 스토리지는 어떤 성격을 가지게 할 것인가. 씨피유 메모리는? 벽을 부수거나 하면 붙잡히는 것도 동일.. 세큐리티 공격이죠 Replica
  • #46 팟 안에 컨테이너. 우리는 한 컨테이너 안에 크게 세 가지를 담는 디자인을 했습니다.
  • #47 물론 이 때 도커라이즈가 빠질 수 없다 기동스크립트, 설정, 전처리 후처리 등 도커 로고 설명
  • #48 팟을 디플로이하고, 서비스로서 공개 물론 이 자체로는 내부 네트워크에 기반한 Ingress에 의한 서비스 공개(인스턴트 도메인)에 불과하기 때문에 일반 유저에게 공개하기 위해서는
  • #49 내부 버추얼 호스트
  • #50 웹서버 커테이너화 릴리즈 시 빠질 수 없는 단계별 릴리즈
  • #55 다시 데브옵스 관점에서 말하면 이 마이그레이션을 통해 디플로이용 파이프라인을 만들게 됩니다. 젠킨스, Circle CI 복수의 클러스터 이미지 재사용 복수의 파이프라인
  • #56 그림으로 보면 이런 느낌 이것을 프로모션하고 프로모션 해서 최종적으로 프로덕션까지 로컬의 어플리케이션을 디플로이하게 됨. 클릭 5번
  • #57 이 모든 파이프라인을 이은 것이 최종적으로 타임 투 마켓으로 일컬어 질 수 있겠습니다. 얼마나 카이젠 되었는지 어떤 변화가 있었는지는 잠시 후에 설명
  • #60 테스트라 하면 여러가지 있지만
  • #65 모지바케 놓쳐서 트러블 된 적이 있기 때문에 도입 엔지니어 불안정한 컨디션에 따른 테스트 레벨 커버 모지바케
  • #66 Jenkins Runner 마련
  • #67 병렬화를 위한
  • #69 컨테이너화 테스트 자동화 그 자체로 인한 변화
  • #70 반복 작업을 통해 보틀넥이 되고 있었던 이 부분들이
  • #71 디플로이의 자동화 테스트의 자동화를 통해 그만큼 다른 작업
  • #72 Bluegreen -> CaaS
  • #73 Bluegreen -> CaaS 롤링 업데이트를 통해 고속, 안전, 그레이스풀 디플로이
  • #74 그렇다면 롤백을 해야 하면? 20분 -> 5분
  • #75 Root permission 자유와 책임은 비례한다
  • #76 Graceful deploy Consider Peak 디플로이 시 순간적인 필요 리소스 증가도 고려해야 레플리카 갯수 만약 당신이 클러스터 구축까지 한다면 클러스터당 노드는 몇개까지 둘 것인가 노드당 팟은 몇개까지? https://kubernetes.io/docs/setup/best-practices/cluster-large/ https://thenewstack.io/7-key-considerations-for-kubernetes-in-production/
  • #77 테스트 자동화의 리턴은 어마어마했다
  • #78 보틀넥이 해소되었기 때문애 테스트해야돼.. 디플로이 커맨드 입력 귀찮아.. 카이젠에 대해 오픈 마인드 평소는 카이젠 박스에 처박아두던 것들을 돌아볼 여유가 생겼다
  • #79 하지만 오늘 말하고 싶은 변화는 여기서부터 시작됩니다.
  • #80 두 가지 경로 비즈, 엔지니어 카이젠
  • #81 컨테이너화도 테스트 자동화도 완전히 똑같은 behavior 재현. 공부도 됐다.
  • #82 무엇보다 가장 큰 성과라고 생각하는게 평소부터 팀워크를 중시하여 팀을 운영하다보니 자연스럽게 '함께' 생각하는 문화가 만들어졌다. 실적을 낸 경험이 있다보니 싸이클로서 진화 젠킨스 카와구치상 집단적 지성이 만들어지기 시작
  • #85 여러가지 있었는데 코로나라는 특수한 상황도 있지만 매출도 꽤나 올랐다
  • #86 よこてん
  • #87 지금은 우리팀 모듈만을 실행 가능한 리모트 서버 환경이라면 예를 들면 리포, 브런치 네임만 알고 있다면 우리들도 테넌트를 모집하려고 한다
  • #88 다만 한 가지 생각이 미치지 못한 부분이… A/B 테스트 결과에 따라 손쉽게 그 컨테이너를 버릴 수 있어야 하는데
  • #89 팟 내 컨테이너가 모두 같은 이미지, 시작, 끝날때 오퍼레이션이 발생. 시간도 시간이지만 위험성이 있어 이미지를 공유하는 과정에 있어서 조금 더 생각을 해봤어야 했다. 여러분은 단순히 Before / After 측면에서의 마이그레이션이 아니라 운영적인 측면도 함께 고려할 수 있으면 좋겠다
  • #90 컨테이너가 모두 이미지를 보게 되는 근본적인 부분부터 바꿔야 한다.
  • #91 ま、良いじゃないですか
  • #92 또 우리들은 데브옵스의 여행을 떠나야 합니다. 물론 이 여행에는 종착역이 없을지도 모릅니다.
  • #96 그 카오스를 컨트롤 할 필요가 있습니다, 어떻게? 3D를 2D로
  • #97 여러 각도, 본질 파악 하나에 너무 집중하지 않기
  • #101 해 보는 것이 중요. 그것이 서비스 카이젠의 첫 걸음
  • #102 고독한 싸움을 하는 것이 아니라 隣の仲間と一緒に行くんです
  • #103 回す
  • #104 考えをめぐらせましょう
  • #106 僕たちはそこで、改善を見つけることができるでしょう。