tizen platform development process and infrastructure jong ... · tizen platform development...

25
Tizen Platform Development Process and Infrastructure Jong Woo, Chae Software Center, Samsung Elec.

Upload: others

Post on 13-Mar-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

Tizen Platform Development Process and Infrastructure

Jong Woo, Chae Software Center, Samsung Elec.

Page 2: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

2/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Tizen Platform Development Process and Infrastructure

Tizen Development Process is perceived by users and developers as a black box where magic is happening

• Idea of this presentation is to give more information on how it built, what principles it uses and how people can replicate and customize it for own needs

• We will help you • to contribute Tizen • to define your own Tizen profile • to develop Tizen products

Page 3: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

3/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Contents

Part I. Tizen Platform Development Process

Part 2. Customizing Development Process

Q & A

Page 4: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

Part I. Tizen Platform Development Process

Page 5: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

5/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Brief Tizen Platform Development Process

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

*) OBS: Open Build Service by OpenSUSE **) GBS: Git Build System by Tizen

GBS

Page 6: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

6/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Code Review with Tizen Governance D

evelo

per

Revie

wer

Inte

gra

tor/

M

ain

tain

er

Write Code

Local Verification (Build, Test)

Review Request

Review Review

Comment

Not OK

Approve Code

Change

OK

Integrate Code

Change

Submit to OBS

Release Engineers

QA Engineers

Architects

Maintainers

Reviewers

Developers

Domains Project Roles

https://wiki.tizen.org/wiki/Tizen_Governance

Gerrit projects are grouped and ruled by “Domain”

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

Page 7: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

7/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Incremental Build

Integrator

Local Verification (Build, Test) Developer

Trigger Build

Each gerrit project of Tizen composes a RPM package When a package changed, OBS triggers build using its dependent packages

• No need to compile other source codes – reduce build time to verify a change • Packages are stored in and updated to Live repository of OBS

OBS Project

Live Repository http://download.tizen.org/live/Tizen:/Mobile/

1.1 1.2.1 3.1 2.2

Pkg A Pkg B

2.0 1.0

1.1

1.1.8

1.2.1 2.1

3.0

3.1

Pkg C Pkg D

2.2 Code

Change

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

Binary RPMs

Page 8: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

8/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Snapshot Version Control for the daily development

• A certain state of all packages after group of changes are merged • Snapshot ID - <Tizen Project>-<date>-<index>

http://download.tizen.org/snapshots/tizen/mobile/

Integrator

Code Change

Create Snapshot

1.1 1.2.1 3.1 2.2

1.1 1.2.1 3.1 2.1

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

Binary RPMs

Trigger Build

OBS Project

Local Verification (Build, Test) Developer

Live Repository

1.1 1.2.1 3.1 2.2

Page 9: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

9/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Page 10: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

10/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Legacy Release Process

Integrator

Tizen:2.2:Mobile

Release Engineer

Code Change

Accept Submit

Code Change

Code Change

Integration Build

Staging build to verify submitted changes are acceptable • No build break is accepted by this process • Problem: changes are built in one place

hard to identify which relationship among changes hard to identify which changes cause problems smoke test is triggered after release engineer

Staging Build

Tizen:2.2:Mobile:build

?

Accept when build is successful

Runtime error detected

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

Snapshot

Smoke-Test

Page 11: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

11/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Pre-release Process

Integrator

Tizen 3.0 Mobile

Release Engineer

Changes are verified as a group Smoke test is triggered before Release Engineer

Release Engineer accepts the changes when: • No build break, All binary images are created, No test regression

Smoke-Test

Pre-release Snapshot

OK Code Change

Smoke-Test

Smoke-Test

Accept Submit

Pre-release Snapshot

Pre-release Snapshot

Pre-release Build

Pre-release Build

Pre-release Build

Code Change

Code Change

OK

Integration Build

Changes are integrated

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

pre-release:Tizen:Mobile

Page 12: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

12/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Smoke Test (Build Verification Test)

1.1 1.2.1 3.1 2.2

1.1 1.2.1 3.1 2.1

Create Snapshot

When new snapshots are created, smoke test is triggered • Reboot the device • Download and flash new binary image • Launch smoke test cases (verifies major daemons are alive)

• Can be extended to launch any TCs including TCT (Tizen Compliance Test)

TAV(Tizen Automated Verifier) is designed for no modifications in binary images and fully automated process (will be released soon)

Tizen 3.0 Mobile

Smoke-Test

TAV Power Cutter

Flashing Interface

Launch Smoke Test

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

Page 13: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

13/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Snapshot and Smoke Test Easy to find the origin of the error

• In Tizen platform, we have ≒900 of packages

Snapshot #1

Snapshot #2

Snapshot #3

Snapshot #4

Snapshot #5

Smoke Test Report

Smoke Test Report

Smoke Test Report

Smoke Test Report

Smoke Test Report

Snapshot Diff with #2 • Added packages: … • Removed packages: … • Modified packages: … • Packages with rebuild: …

Release Engineer

1. Error is discovered

2. Same error is repeating until #3

3. Survey changed packages only

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

Page 14: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

14/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Local Verification (GBS) GBS(Git Build System) supports you

• to build one or multiple git repositories with dependent packages • incremental build using local repo • to create binary images (using MIC, MIC Image Creator) • to submit changes to OBS to trigger build

Snapshot A

Snapshot B

Snapshot C

Developer

GBS

~/.gbs.conf

Local build with dependency

Local Repo

Code Review Incremental

Build

Continuous Integration

Automated Smoke Test

Page 15: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

15/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Tizen Platform Development Process Part I. Tizen Platform Development Process

Develo

per

Revie

wer

Inte

gra

tor/

M

ain

tain

er

Rele

ase

Engin

eer

Write Code

Local Verification (GBS)

(Build, Test)

Review Request

Review Review

Comment

Not OK

Approve Code

Change

OK

Pre-release Build

Smoke-Test

Pre-release Snapshot (Image)

Accept Submit

OK

Integrate Code

Change

Snapshot (Image)

Smoke-Test

Off

icia

l/M

ilest

one

Rele

ase

OK

OK

Integration Build

pre-release:Tizen:Mobile

Tizen:Mobile

QA Test Manual, TCT

Submit to OBS

Page 16: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

Part 2. Customizing Development Process: Recipes

Page 17: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

17/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Recipes with Docker Part 2. Scaling Development Process

To support your customization, we prepared Docker VM Images

GBS local fullbuild

GBS

https://wiki.tizen.org/wiki/Setup_of_Tizen_Infrastructure_with_Docker

Build Data

Page 18: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

18/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Recipes Part 2. Scaling Development Process

GBS GBS with your local git/rpm repository • Recommended to single developers

GBS local fullbuild

GBS local fullbuild with your local git/rpm repository • You can use Jenkins to operate fullbuild process

GBS local fullbuild GBS local fullbuild with Gerrit server • Fullbuild process by Jenkins, Code Review by Gerrit

Build Data OBS with Build Data • Build Data of Tizen to reduce initial build time • You can change Build Data with your own needs

Siz

e o

f Your

Team

Page 19: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

19/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Recipes: For Large Team Part 2. Scaling Development Process

Full set of Tizen Infrastructures are ready with Docker (except smoke test) • In Jenkins, continuous integration processes are implemented • So, you can choose which process you will operate

Page 20: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

20/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Demo: Tizen Infrastructure with Docker Part 2. Scaling Development Process

https://wiki.tizen.org/wiki/Setup_of_Tizen_Infrastructure_with_Docker

Page 21: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

21/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Your Team Grows… Part 2. Scaling Development Process

You Need to Scale and Optimize Performance of Your Infrastructure • For GBS Local fullbuild with Jenkins, you can consider:

• More Jenkins slave nodes to operate fullbuild • tmpfs for BUILDROOT to dramatically reduce build time

• For OBS, you can consider :

• More build workers • powerhost (special build worker with higher configurations) to reduce

build time of bottleneck packages • to extend backend of OBS server to add more and more workers

• high-speed network among OBS servers and workers

Page 22: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

22/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Conclusion Tizen development process is designed:

• to provide automated process with less human-intervention • with many open source tools and services

Future plans

• Enhance performance and add developer-friendly functions to the tools and services of Tizen

• Infrastructure by VM still needs configurations VM with templates • Prepare more operation manuals for each recipes

If you need supports:

• Leave JIRA tickets to https://bugs.tizen.org/jira/projects/TINF • Contact Jong Woo, Chae ( [email protected])

Page 23: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

23/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

References •https://wiki.tizen.org/wiki/Tizen_Governance •https://wiki.tizen.org/wiki/Setup_of_Tizen_Infrastructure •https://wiki.tizen.org/wiki/Setup_of_Tizen_Infrastructure_with_Docker •https://wiki.tizen.org/wiki/GBS_local_full_build_Docker_image •https://wiki.tizen.org/wiki/GBS_Performance •https://wiki.tizen.org/wiki/OBS_Performance •http://download.tizen.org/docker

Page 24: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

24/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Q & A

Page 25: Tizen Platform Development Process and Infrastructure Jong ... · Tizen Platform Development Process and Infrastructure Tizen Development Process is perceived by users and developers

25/25 TIZEN DEVELOPERS CONFERENCE 2015 SHENZHEN

Thanks!!!