2016 niweek - ti’s continuous delivery machine for accelerated application deployment
TRANSCRIPT
ni.com
TI’s Continuous Delivery Machine for Accelerated Application Deployment
Ching-Hwa Yu, CLA, CTASenior Validation Software Architect, Texas Instruments
https://www.linkedin.com/in/chinghwayu
2ni.com
Agenda• Big Picture• Delivery Pipeline• Components of the Machine• Pulling It Together• Lessons Learned
5ni.com
Big Picture
Agile Manifesto2001
Continuous Integration2006
Continuous Delivery2010
Evolution of Agile Software Development
6ni.com
Big Picture
• Process inefficiency• Manual deployments• Lack of test environments• “Build Master”
Common Issues
7ni.com
Delivery Pipeline• Continuous Integration (CI):
Check-ins verified by automated build to ensure all components are working together and passing tests
• Continuous Delivery (CD):
Ship releases regularly with a push of a button
10ni.com
Components of the Machine
Develop
Build
TestStage
Deploy
Software Configuration Management and Code Review
11ni.com
Components of the Machine
Develop
Software Configuration Management and Code Review
Mercurial PerforceGit
GitLab Bitbucket SwarmGitHub
13ni.com
Components of the Machine
Build
VIPM Pro
Continuous Integration
LabVIEW
Jenkins Bamboo TeamCity
14ni.com
Components of the MachineBuild Engine: LabVIEW-CLI
McNally, J. (2016). Command line application and LabVIEW library
15ni.com
Components of the MachineBuild Engine: LabVIEW-CLI
McNally, J. (2016). Command line application and LabVIEW library
26ni.com
Components of the Machine
Develop
Build
TestStage
Deploy
Static Code Analysis, Unit Testing, and Integration Testing
27ni.com
Components of the Machine
Test
VI Tester
Static Code Analysis, Unit Testing, and Integration Testing
VI Analyzer Unit TestFramework
35ni.com
Putting It TogetherDelivery Orchestration
Source Code
Build and TestStagingQA
1
2
3 4 5
Feedback
36ni.com
Putting It TogetherDelivery Orchestration
Source Code
Build and Test
Production
StagingQA
1
2
3 4 56
Feedback
37ni.com
Lessons Learned• Understand the manual process• Use Agile to become Agile• Design for Test• Design for Automation• Scaling
38ni.com
Resources• Continuous Delivery by Jez Humble and David Farley
http://www.amazon.com/dp/0321601912• Continuous Integration by Paul Duvall, Steve Matyas, and
Andrew Glover http://www.amazon.com/dp/0321336380• My Blog http://chinghwayu.com• Continuous Integration User Group• https://
decibel.ni.com/content/groups/continuous-integration-in-labview
• Minimum Viable Producthttp://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp
• LabVIEW-CLI by James McNally https://devs.wiresmithtech.com/