2016 niweek - ti’s continuous delivery machine for accelerated application deployment

38
ni.com TI’s Continuous Delivery Machine for Accelerated Application Deployment Ching-Hwa Yu, CLA, CTA Senior Validation Software Architect, Texas Instruments https://www.linkedin.com/in/chinghwayu

Upload: ching-hwa-yu

Post on 12-Apr-2017

266 views

Category:

Software


0 download

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

3ni.com

About TI

800+ users

Validation Automation Software Suite

TI HQFacilitiesManufacturing

4ni.com

About TI

FrameworkCustomSteps

Tools

Drivers

Database

LabVIEWTestStand

SCM

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

8ni.com

Continuous Delivery

Develop

Build

TestStage

Deploy

The Multi-Tool Pipeline

9ni.com

Continuous DeliveryMinimum Viable Product (MVP)

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

12ni.com

Components of the Machine

Develop

Build

TestStage

Deploy

Continuous Integration

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

16ni.com

Components of the MachineBuild Engine: LabVIEW Spec

17ni.com

Components of the MachineBuild Engine: LabVIEW Spec

18ni.com

Components of the MachineBuild Engine: LabVIEW Spec

19ni.com

Components of the MachineBuild Engine: LabVIEW Spec

20ni.com

Components of the MachineBuild Engine: LabVIEW Spec

21ni.com

Components of the MachineBuild Engine: LabVIEW Spec

22ni.com

Components of the MachineBuild Engine: LabVIEW Spec

23ni.com

Components of the MachineBuild Engine: VIPB Spec

24ni.com

Components of the MachineBuild Engine: VIPB Spec

25ni.com

Components of the MachineBuild Engine: VIPB Spec

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

28ni.com

Components of the Machine

Develop

Build

TestStage

Deploy

Code Delivery

29ni.com

Components of the Machine

Stage

Deploy

Code Delivery

Jenkins Bamboo TeamCity

30ni.com

Putting It TogetherDelivery Orchestration

31ni.com

Putting It TogetherDelivery Orchestration

Source Code1

32ni.com

Putting It TogetherDelivery Orchestration

Source Code1

2Feedback

33ni.com

Putting It TogetherDelivery Orchestration

Source Code

Build and Test

1

2

3

Feedback

34ni.com

Putting It TogetherDelivery Orchestration

Source Code

Build and Test

QA

1

2

3 4

Feedback

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/