Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive...

29
DEVELOPMENT TOOLCHAIN ON STEROIDS MICHAEL KOLB DEVELOPMENT TOOLCHAIN ON STEROIDS MICHAEL KOLB

Transcript of Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive...

Page 1: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

DEVELOPMENT TOOLCHAIN ON STEROIDS

MICHAEL KOLB

DEVELOPMENT TOOLCHAIN ON STEROIDS

MICHAEL KOLB

Page 2: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.2

http://geek-and-poke.com/ [CC BY 3.0]

Page 3: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

About me

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.3

Michael Kolb

• Chief Architect for Cloud-Projects @ Robert Bosch in Stuttgart,

Germany

• 10 Years+ as Architect and Head of development for IoT & Cloud

Projects

#Blogger, #Open Source Contributor, #Cloud Native

Page 4: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

About us

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.4

Robert Bosch GmbH - Business units

Mobility Solutions Industrial

Technology

Energy and

Building

Technology

Consumer Goods

Page 5: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

About us

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.5

E/E Architecture Trend

Centralization

Domain Fusion

Central Domain ECUs

Central Cross Domain ECUs(Cross) Domain

centralized E/E

architecture

TO

MO

RR

OW

Modular

Integration

Each function has his ECU

Functional IntegrationDistributed E/E

architecture

TO

DA

Y

Vehicle Computer

Vehicle Cloud Computing

Vehicle Computer

and pot. Zone Oriented Architecture

Vehicle functions

in the cloudVehicle centralized

E/E

architecture

FU

TU

RE

increasing no. of SW

New E/E-Architectures are driving new SW-Architectures

Page 6: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

About us

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.6

Cross Automotive Platform – System, Software, Tools

Mobility Solutions

Base Software

Tools and Methods

Engineering Services and

Solutions

Software

ArchitectureHardware

Development

Bosch Mobility

Solution

common

platform

Page 7: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

About us

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.7

CAP-SST ProjectsDevelopment of a platform withintegration of AUTOSAR Adaptive to allow the concept of vehiclecomputers

Development ofsimulation-basedsolutions for SW

testing

Development of a common cloudbased environmentfor automotive SW development

Conceptcoordination and

base softwaredevelopment for a

BBM-wide controller

Analysis andintroduction of a common languagefor code generators

Bosch Mobility commonplatform

Development of a tooling platform to

improve theperformance of

Multicore SW

Page 8: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

THE GOOD, THE BAD, THE UGLY

LOCAL DEVELOPMENT ENVIRONMENTS

Page 9: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

How does the classic local environment look like?

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.9

Components

IDE, Compiler, Clients,

other Tools

Static Code analysis Buildserver SCM Ticket System Artifact Storage

Data

cente

rLoca

l M

achin

e

Page 10: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

How does the classic local environment look like?

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.10

Process

RequirementsCode

Changes

Build

Output

Analysis

Deployment

System Tests

Page 11: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

How does the classic local environment look like?

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.11

Developer’s machine

Code

Build

Deploy

Test

Fix

Tools?

Configurations?

Reproducibility?

IDE settings?

Integrations?

Quality?

Credentials?

Access?

Environment?“Works on my

machine”

Runtime?

Codebase?

Validation?

Page 12: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

HOW DOES CLOUD HELP

ADVANTAGES OF A CLOUD DEV-ENVIRONMENT

Page 13: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environments

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.13

What can be solved better?

Everything

!Complete

BaselineAccessible

from

everywhere

Less effort for

OpsUncomplicated

to testPay as you go

No update hell

/ version lock-

in

“Infinite”

computing

power

(Depending on the perspective)

Page 14: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environments

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.14

*aaS

IaaS

SaaS

PaaS

Cla

ssic

CaaS

Application & Data

OS / Middleware

Virtualization

Hardware

Your Job

• Infrastructure (and OS) are

abstracted

• No provider lock

• High portability

• Scalability

Page 15: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.15

Deciding for a cloud provider

The question is:

Do you really need to decide for one?

No you don’t, but…

Page 16: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

THE TECHNICAL STUFF

ARCHITECTURE. TECHNOLOGIES. PITFALLS.

Page 17: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.17

Scope of the technical part

Static Code analysisBuildserverSCMTicket System Artifact StorageIDE

Scope

Plan Implement Store Build Analyze Deliver

Page 18: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.18

Building Blocks: Static code analysis src: sonarqube.org

Code

Results

Results Code

Results

Check

• Analysis for each commit

• Local analysis possible

• Sonar as automated reviewer

• Build Breaks on

• Quality gate fail

• “Red” Issue increase

Page 19: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.19

Building Blocks: Buildserver

src: wiki.jenkins-ci.org/display/JENKINS/Logo

Deliver • Pipeline in Repository

• Zero configuration (except secrets)

• Build contains

• Compile

• Analysis

• Versioning + Tag

• Unit-Test, I-Test and Sys-Test execution

• Delivery

• Execution in Docker containers

• Max 10 minutes until you get feedback

LinkPush HookPoll Repos

Page 20: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.20

Building Blocks: Buildserver

src: wiki.jenkins-ci.org/display/JENKINS/Logo

Push Hook

Deliver Custom Service

• Microservice that consumes “Successful Build events”

• Utilizes REST-API of Ticket System to create links to

build artifacts on NexusLink

Poll Repos

Jenkins Bitbucket Plugin

• Checks BB REST-API for new / changed repositories

• Creates new Build-Plans based on Pipelines in the repository

• Provides Webhook Endpoint to trigger builds

Page 21: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.21

Building Blocks: SCM

• Distributed System

• Reviews are done by

• Jenkins: “Green Build”

• Sonar: Quality Gate passed, “Red Issues”, Code

Coverage

• Developer: Based on a review guideline

Knowledge sharing

• Only approved Pull-Requests can be merged

Changes

Review

Principle: “Everything that was approved by Sonar & Jenkins is considered to be valid”

Page 22: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.22

Building Blocks: IDE - Terminology

src: eclipse.org/che/

Stack

• Generic recipe for creating a workspace for a specific technology

• Contains one or more references to containers

Factory

• Produces workspaces based on the recepies defined in a stack

• Holds the configuration values for variables in a stack

Machine

• Single container inside a workspace

• “Virtual” Computer

Workspace

• The instance of a stack

• Defines the environment where IDE actions are executed

Che Server

• Master-Controller of all workspaces

• Serves the Web-UI

Page 23: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.23

Building Blocks: IDE - Overview

src: eclipse.org/che/

• Web-Based IDE

• “Workspace manager”

• Support for custom “Stacks”

• Workspaces consist of one or more containers

• Support for integration into local IDE

Changes

Linking

L

Files

Web UI

Service calls

Page 24: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.24

Building Blocks: IDE - Workflow

src: eclipse.org/che/

Load Web-UI

Create Stack

Create Factory

Run Factory

Create Workspace

Access Workspace

Shortcut

Page 25: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.25

System overview

Create WS Link Code Changes

Change

Notifications

Deliver

Analyze

Review

Baseline Links

This is your common

baselineManager’s

playground

Page 26: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.26

Deployment & Release

Microsoft Azure Cloud West Europe

AKSPublic

DTR

• Deployment / upgrades done automatically

• Deployed environment is controlled via

Git-TagBuild Deployment

Private

DTR

Infra as codeSources

Page 27: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.27

Benchmark

Decreased build times by factor 3 (average)

Parallel Testing, even for System Tests

Dynamic scaling of build CPUs

No dedicated Operations needed anymore

Cooperation is much more likely to happen

Main accepted Use cases so far

IDE for “smaller” pieces of code (e.g. reviews)

Back-in-Time Machine for old Build environments

Page 28: Development Toolchain on Steroids · 05/04/2018  · common cloud based environment for automotive SW development Concept coordination and base software development for a BBM-wide

Cloud development environment @ Bosch

Cross Automotive Platforms - Systems, Software and Tools | CAP-SST/ESY | 2018-04-05

© Robert Bosch GmbH 2018. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights.28

Rumors. Prejudices. Lessons learned.

Docker can be a problem

Be provider agnostic wherever possible

Hold everything inside your repository (Code, Infrastructure,

Architecture, Documentation, Build, Configuration, Machines, …)

– Everything!

Do not split Dev and Ops

Automate your quality measures