Upload
visteon-corporation
View
532
Download
2
Embed Size (px)
Citation preview
Visteon Confidential
Taking CI to the Next LevelNovember 2017
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
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.
A Broad and Diversified Customer Base
4
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
Jenkins Corporate Template
6
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
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
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
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
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
Deployment
12
Job Template in Jenkins
13
Docker Deployment
14
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
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
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
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
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
DemoProduct Build using Docker
20
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