22
Visteon Confidential Taking CI to the Next Level November 2017

Taking CI to the Next Level

Embed Size (px)

Citation preview

Page 1: Taking CI to the Next Level

Visteon Confidential

Taking CI to the Next LevelNovember 2017

Page 2: Taking CI to the Next Level

Visteon by the Numbers

A global leader in automotive cockpit electronics and software

Manufacturing locations22

10,000 Employees

18 Countries

Technical centers18

$3.16B 2016 annual sales

Company headquartersVan Buren Township,

Michigan, United States

2

Page 3: Taking CI to the Next Level

Industry-Leading Cockpit Electronics Product Portfolio

3

Complete product and technology portfolio with a strong market position

#2Automotive display systems(1), center stack displays and instrument cluster displays

#3Head-up displays(1)

Telematics

DriveCore™

Autonomous

Driving Computer

SmartCore™

Domain

Controller

Head-Up

Displays

Instrument

Clusters

Displays

Phoenix™

Infotainment

Visteon Products

Cloud

Driver

Monitoring

Artificial

Intelligence

Cyber

Security

Augmented

Reality

V2XComputer

Vision

Visteon Technologies

(1) IHS Markit.

Page 4: Taking CI to the Next Level

A Broad and Diversified Customer Base

4

Page 5: Taking CI to the Next Level

Focus

• CI Challenges experience and need to address them

• Research, pilot and results

• Deployment and Demo

5

Jenkins

Corporate

Template

(Groovy script + plugin

contents)

Project

Configurator

(Text file)

….

…..

…..

Jenkins Template Docker

Page 6: Taking CI to the Next Level

Jenkins Corporate Template

6

Page 7: Taking CI to the Next Level

Use Case 1: Standard Jenkins Corporate Templates

7

Proj. Eng

CI

Specialist

Job Creation

Job Scheduling

Job Sequencing

Job Configuration

Requests for CI

Set-up

Integration

Eng.

Job Creation

Job Scheduling

Job Sequencing

Job Configuration

Proj. Eng

CI

Specialist

Applying Standard

Templates

• Jenkins Corporate Templates, Project Configurator managed centrally by CI Specialists

• Project / Integration Engineer can fill in configurator and apply templates

CURRENT CURRENT FUTURE

• Quicker deployment of CI using Job Templates

• Seamless update of changes in templates

• Scalability to cover any number of product variants and operating systems

Jenkins

Corporate

Template

Fill Configurator

Filled in

Configurator

Merge

Deploy

A

U

T

O

M

A

T

I

O

N

Page 8: Taking CI to the Next Level

Deployment

8

Jenkins

Corporate

Template

(Groovy script +

plugin contents)

Project

Configurator

(Text file)

….

…..

…..

Merge &

Deploy

(Automation)

When corporate template and configurator

change it will be cascaded during next round of

configurator update through “push” technique

Project Specific Jobs

Page 9: Taking CI to the Next Level

Template Contents & Key Advantages

9

• Eliminates dependency over admins for job configurations and modifications

• Quicker deployment of CI through configurations being parameterized

• Helps to maintain consistency and order of reports

• Helps program teams to avail any new plug-ins included in the corporate template

• Ease of scalability (E.g. 15 Variants X 5 jobs per variants X 3 OSs)

Jenkins Corporate Template

Groovy script for Jenkins plugin contents

Parameter Definition for Jobs (Charts, Command execution)

Project Configurator

Place holder for actual project specific parameter Values

Page 10: Taking CI to the Next Level

CI Jenkins Corporate Template Process Flow

10

Deployment Status: JPN (3), KRN (1), NA (1), IND (2)

Project’s CI

Engineer

Define project’s CI

Strategy

Review CI

StrategyCentral CI Team

Fill in configurator

w/ project details*Create/update

required scripts

Update

Configurator

Job Deployed in

JenkinsJenkins

CI Strategy

Template

Execute

Configurator

Upload Job

Create Standard

Template

Deployment Jobs

Job Configurator

*Scripts include compilation, triggering tests and performance measures

A

U

T

O

M

A

T

I

O

N

• Quicker deployment of CI using Job Templates

• Seamless update of changes in templates

• Scalability to cover any number of product variants and

operating systems

Page 11: Taking CI to the Next Level

Jenkins Corporate Template Deployment Flow

11

Use case 1

Request for CI

Deployment

Project

Create standard

template deployment

jobs

Upload filled in

configurator in

Nexus

Auto

xml in Job

TemplateGenerate project’s

job template (groovy)

& convert to XML

Auto

Place and reload xml

in Job Template

Folder

Auto

Execute Deployed

Job Template

Auto

*Create RTC Build

Setup

Admin

Project’s CI Strategy

Create Project

Specific Jobs

Auto

Project’s Jobs

Created BD, BE, BWS

Project’s CI

Strategy

CI Strategy

Template

Admin

Update Job

Configurator & place

in slave node

Project

Job Configurator

Execute

Configurator Upload

Job

Global Job Template

Filled in

Project’s Job

Configurator

Project

Config. xml

*Build Setup includes creation of Build Definition (BD), Build Engine (BE) and Build Workspace (BWS) in RTC

A

U

T

O

M

A

T

I

O

N

A

U

T

O

M

A

T

I

O

N

Page 12: Taking CI to the Next Level

Deployment

12

Page 13: Taking CI to the Next Level

Job Template in Jenkins

13

Page 14: Taking CI to the Next Level

Docker Deployment

14

Page 15: Taking CI to the Next Level

Use Case 2: Standard Product’s Build Environment

• Build Environment• OS

• Compilers

• Build Tool Kit

• RTC Sources

• Eclipse Distribution

• What works in developers’ machine may not work in the CI environment

• Challenges in updating build environment across Jenkins instances

C

U

R

R

E

N

T

Build Server

Variations between developers’ build environment

F

U

T

U

R

E

Build Server

Build

Environment 1

Build

Environment 2

Build

Environment N

Build

Environment

Standard Build

Environment Seamless updates to developers’ build environment when there is any change to the build environment (.e.g

compiler version, RTC source changes)

15

Page 16: Taking CI to the Next Level

Use Case 3: Standard Jenkins Environment

• Standardized Jenkins Environment

• Seamless deployment of updates of Jenkins and plug-ins

16

Sofia Build Server

C

U

R

R

E

N

T

Pune Build Server

Variations in Jenkins and related plug-ins between Build Servers

ALL Build Servers

Standardization and consistency between Build Servers

Chennai Build Server

F

U

T

U

R

E

Page 17: Taking CI to the Next Level

Use Case 4: Dockerize Test Framework to manage a fleet of DUTs

17

With Docker CONTAINERS in a SINGLE TEST

MACHINE can be setup with ANY number of

parallel running instances of the test application

well isolated from each other but still sharing

the resources .

Without containers ideally we may need

individual test machines to connect to

every device under test

CURRENT FUTURE

Page 18: Taking CI to the Next Level

Docker Deployment Architecture

Docker Host Jenkins

Master Server (OEM 1)

Docker Host Jenkins

Master Server (OEM 2)

Docker Host Jenkins

Master Server (OEM 3)

Jenkins Slave

<Linux> (OEM 1)

Jenkins Slave

<Windows> (OEM 1)

Jenkins Slave

<Windows> (OEM 2)

Jenkins Slave

<Linux> (OEM 3)

Jenkins Slave

<Windows> (OEM 3)

Image

containers

and

create/edit

images

Docker Host

Jenkins Master

Server (Docker

Image)

Jenkins Slave

<Linux> (Docker

Image)

Pull Image

Dep

loy

Perform Docker Related

Operations through Jenkins

P

U

S

H

P

U

L

L

1

2

3

18

1 – Image Creation

2 – Store / Repo

3 - Deployment

Page 19: Taking CI to the Next Level

Build Environment Automation (Experiment in OEM Program)

19

Use Cases 2 – 4

1. Base OS

2. RTC Tool Kit

3. RTC SCM Tools

4. Open JDK

5. Project – Compilers and

dependent libraries as tar file

Build Docker Image

Docker Image

containing Project

Build Environment

Slave

Node1

2

3

4

Tri

gg

er

Bu

ild

Build

Process

Page 20: Taking CI to the Next Level

DemoProduct Build using Docker

20

Page 21: Taking CI to the Next Level

Acknowledgements

• Velizar Dimov (EU CRE)

• Karthigeyan Sarangapani (Engineering)

• Zhivko Stoychev Zapryanov (EU CRE)

• Prasad Donthu (EU CRE)

• Maheswari, Karuppiah (EIT)

• Gil Jensen (EIT)

• Ganesh Kumar M C (Engineering Quality)

21

Page 22: Taking CI to the Next Level