8. 8
A-1 プロジェクトチーム解散時の記憶喪失
“When we ship a release at Microsoft, people often change jobs.
For employees, this rotation is an opportunity both to develop a career
and improve personal satisfaction in trying new challenges.”
“Although this is a healthy pattern for the company and its employees
overall, in the short term it can create a sort of amnesia.”
Sam Guckenheimer, Neno Loje
“Visual Studio Team Foundation Server 2012 : Adopting Software Practices”
「Microsoftでは製品リリースにこぎつけると通常は
人事異動が行われます。社員にとって、この人事異動は、
キャリアを開発し、新しい挑戦を行なって
個人の満足度を高める好機です。」
「これは企業にとっても社員全体にとっても
健全なやり方ですが、短期的には一種の
記憶喪失状態を生み出すことになります。」
「アジャイルソフトウェアエンジニアリング」 (日経BP社)
45. Culture
45
Rakuten Shugi DevOps
Always Improve, Always Advance Managing Technical Debt
Passionately Professional Team Autonomy & Enterprise
Alignment; Production First Mindset
Hypothesize -> Practice -> Validate ->
Shikumika
Evidence gathered in Production;
Backlog groomed with Learning
Maximize Customer Satisfaction Flow of Customer Value
Speed!! Speed!! Speed!!! Managing Infrastructure as a Flexible
Resource
52. Tools – DevOps Philosophy Applied
Dev
Ops
Team
Tools
Services
Data
Analysis
Process
53. Build Server - Roles
• Central part of development process
• Integrated with Messaging App (Hip Chat) forreal time
reporting
• Global Collaboration
– Tokyo, Japan
– San Mateo, USA
– Cambridge, UK
– Bangalore, India
54. Build Server - Roles
• Centralized deployment
• Configuration management
• Resource provisioning in the cloud
• Start / stop agents on demand
55. Build Server – Code Quality
• Feature branches builds – Build during development
• Reduce Code Review - Automation
• Gated Builds – Merge only if successful build exist
Build
Unit
Tests
Code
Coverage
56. Build Server – Code Quality
Style
Cop
Sonar
Cube
Patch
Config
Backup Deployment
Integration
Tests
Microsoft
Azure
57. Build Server Set Up
Build Server
Agent AgentAgent Agent
Tokyo San Mateo Cambridge Bangalore
69. Microservices
• Small Autonomous services that work together,
modelled around a business domain
• Small - 2 weeks to rewrite / few hundred lines of code
• Independently scalable and deployable
70. API Relations
API #3
API #8
API #1 API #4
API #5
API #2
API #7
API #6
API #9
6 Callers
4 Callers
2 Callers
72. Microservices Characteristics
• Very simple services
• Use best tool for the job
• Loosely coupled
• Independent teams
• Great for continuous delivery
82. DevOps
• Any framework supported
• Rolling upgrades
• Automatic rollback
• Application always in consistent state
• Fully scriptable -> easy to integrate with CI / CD