GOCC Internal Use Only
IT Home 2015 DevOps 研討會
百人工研院團隊如何落實 CI
雙子星雲端運算公司
符儒嘉 執行長
http://www.geminiopencloud.com
Agenda
•
DevOps – What does it mean?
•
From Agile to DevOps
•
ITRI Cloud OS development process
•
Tools
•
Process
•
People
Technology changes just as fast
•
Digitization, Internet, and Big Data leads to the wide adoption of
Cloud Services and the era of globally-connected society
DevOps – What does it mean?
•
Business evolution is driving the
rate of change of Web applications
•
Waterfall model breaks down, Ken
Schwaber brings in iterative,
incremental development, aka
Agile methodology
•
Rapid and Frequent delivery by
Development drives pressure into
Operations team
•
The same agile methodology for
Development must now also apply
to Operations
•
DevOps is the iterative
collaboration model between
Development & Operations
Agile Development – It all starts here
•
Agile Practice
•
Frequent delivery of releasable
software
•
Empowerment of individuals and teams
•
Continuous communication,
collaboration and improvement
•
Responsiveness to change
•
Velocity
•
Prioritize to maximize value
•
Attention to quality
•
Agile Values (manifesto)
•
Individuals & Interactions over process & tools•
Working software over comprehensive documenation•
Customer collaboration over contract negotiationFrom Agile to DevOps
Iterative Deliverables Regression CI Scrum SIT UAT WebApp Scaling + Cloud Infrastructure Need to know WHAT & HOW to testProducts Delivered
ITRI Cloud OS – a complex system
5. Server Load Balancing 6. Distributed Main Storage 8. System & Network Management 4. Virtual Machine Managemen t 2. Physical Resource Managemen t 10. Repository Manager 7. Distributed Secondary Storage 3. Virtual Cluster Provisioning 1. Cloud Application Managemen tITRI
Cloud OS
12. User Management 9. Security 11. Messaging Server 1.5 DCSS API ServerITRI Cloud OS SDLC
Coding
Unit &
Function
Test
Commit to
Feature
Branch
Sprint
Reqmts
Code
Review
Feature
Integrate
Commit to
RIB
Chkout
from RIB
Build
CI
SIT
RC Build
Internal
Beta
Release
Continuous buildScrum Development
done todo WIP
Review Board (by Google)
Branching Methodology
Feature Branch
Feature/Requirement Design Spec Spec Review Coding Code Review Coverity Analysis RIB Daily Build Daily Deploy Regression Test Commit Regression Test DemoRelease Integration Branch
Auto Build Auto Deploy Acceptance Test Acceptance Report (KGB) Regression Test Release Candidate Regression Report Coverity/Understand Analysis
Release Candidate
Branch
Internal Beta Duration/Stress Test Product Platform ReleaseFeature Implementation
Unit Test
Checkin to SVN (+ dependent components) Passed ? Daily at 5pm Jenkins driven Feature Integration test Passed ?Tag
Request
Daily @ Midnight Releng build NNN 9am next morning SIT Brief test Passed ? SIT test vs. BOM list in build NNN Passed ?SIT Full
Test &
Release
“
NO GOOD” buildYes
No
Yes
Yes
Yes
No
No
No
Continuous Integration
Known Good Build (KGB)Auto-deploy
developers control scripts scripts source codeSVN
Jenkins
build test case statistic bug reportsSpira
JIRA
verify resultSTAF
deploy test cellbuild archive library