Yocto Project Experience: Continuous Integration



Similar documents
Developing Embedded Linux Devices Using the Yocto Project

Open Source Software Project Management A Case Study Red Hat Enterprise Linux. Bob Johnson, Red Hat

Developing Embedded Linux Devices Using the Yocto Project

Linux Foundation Automotive Summit - Yokohama, Japan

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

Building Embedded Systems

The Red Hat Enterprise Linux advantages over Oracle Linux

OPEN CLOUD INFRASTRUCTURE BUILT FOR THE ENTERPRISE

Using Intel C++ Compiler in Eclipse* for Embedded Linux* targets

CHOOSING LINUX FOR MEDICAL DEVICES

PHP in RPM distribution

Hardware monitoring on Fujitsu mainboards. Hardware monitoring on Fujitsu mainboards

Continuous Integration Processes and SCM To Support Test Automation

Using Linux in Medical Devices: What Developers and

Stanislav Ulrych CTO RED HAT ENTERPRISE LINUX OPENSTACK PLATFORM

Red Hat Enterprise Linux OpenStack Platform. Rhys Oxenham Principal Product Manager, OpenStack

Embedded Linux development training 4 days session

MontaVista Linux 6. Streamlining the Embedded Linux Development Process

Yocto Project ADT, Eclipse plug-in and Developer Tools

CE 4.2 to Windows 7 - Synchronism Problem

Ubuntu Linux Reza Ghaffaripour May 2008

Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS

Status and Direction of Kernel Development

Network connectivity controllers

An Oracle Technical Article October Certification with Oracle Linux 5

Two drivers soon followed utils, timesource. Initial location in the kernel tree: drivers/staging/hv/ Total number of lines of code: About 21,000

Creating a Custom Embedded Linux* OS for Any Embedded Device using the Yocto Project*

A Smart Way to Manage Packages in Yocto Project

Sales Slide Midokura Enterprise MidoNet V1. July 2015 Fujitsu Limited

White Paper Server. SUSE Linux Enterprise Server 12 Modules

PL2303HXA/XA Windows 8 Update Driver Installation. How to Update Driver to Support PL2303HXA/XA in Windows 8 Operating Systems

Security Vulnerability Management. Mark J Cox

WIND RIVER LINUX 6 TABLE OF CONTENTS INNOVATORS START HERE.

VxWorks Guest OS Programmer's Guide for Hypervisor 1.1, 6.8. VxWorks GUEST OS PROGRAMMER'S GUIDE FOR HYPERVISOR

COSMO BUGZILLA tutorial. Cosmin BARBU Massimo MILELLI

Linux Distributions. What they are, how they work, which one to choose Avi Alkalay

KEY LEAN CONCEPTS. The Power of Purpose, Process and People

Red Hat Enterprise Linux: The ideal platform for running your Oracle database

THE RTOS AS THE ENGINE POWERING THE INTERNET OF THINGS

Dynamic Kernel Module Support. Matt Domsch, Software Architect Dell, Inc.

Oracle Linux Strategy and Roadmap

Avnet Guide to Oracle: Oracle Linux

How to Run the MQX RTOS on Various RAM Memories for i.mx 6SoloX

RAPID EMBEDDED LINUX* DEVELOPMENT

Innovative Program to Access VMware Tools

Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab

VxWorks Licenses for EPICS Application Developers Andrew Johnson

SUSE Developer Services Program Guide

Technical Support Policies Effective Date: 05-DEC-2003

Applying Linux to the Civil Infrastructure

Turn the Page: Why now is the time to migrate off Windows Server 2003

Site Configuration SETUP GUIDE. Windows Hosts Single Workstation Installation. May08. May 08

PL-2305 USB-to-Printer Cable User Installation Guide

Red Hat Enterprise Linux for zseries, S/390: Extending Linux throughout the Datacenter

Making software from the open source community ready for the enterprise

Nested Virtualization

Managing Big Data Exhaust. Controlling Big Application Data Growth for ERP, MDM, and Other Key Enterprise Functions.

Issues update to SUSE Linux Enterprise Distribution (SLES) with regards to OFS

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Parallels Virtuozzo Containers

<Insert Picture Here> Xen Virtualization with Oracle: Commitment, Integration, Mission-critical Virtualization

MELTZER GROUP BENEFITS SELF-FUNDING MYTHS AND ADVANTAGES

Supported Upgrade Paths for FortiOS Firmware VERSION

Red Hat The Importance of the ISV Partner Ecosystem

SELENIUM GRID BUILD VS. BUY

Prospect 365 CRM Installation Requirements. Technical Document

TesT AuTomATion Best Practices

Energy Management System (EMS) 3.0 Implementation Overview for BRP Consultation. July 2015

Organizations that are standardizing today are enjoying lower management costs, better uptime. INTRODUCTION

Ubuntu ARM - What Is It?

Oracle Linux Overview. Presented by: Anuj Verma Title: Senior Pre-Sales Consultant

Surround SCM Best Practices

Binary Tree Support. Comprehensive User Guide

An Oracle Technical Article November Certification with Oracle Linux 6

How To Install The Safenet-Inc.Com Software On A Pc Or Mac Or Macintosh (For A Powerpoint) With A Powerline (For Windows) Or Ipad (For Mac) With The Safetime (For Pc

OpenEmbedded for medical devices

How To Fix A Problem On A Safesos (Mozilla) On A Pc Or Mac Or Mac) On Pc Or Ipad (For Pc Or Pc) On Your Pc Or Laptop On A Mac Or Ipa (For Mac Or Pc

LLVMLinux: Embracing the Dragon

High Performance or Cycle Accuracy?

Virtualization: Know your options on Ubuntu. Nick Barcet. Ubuntu Server Product Manager

Using IOMMUs for Virtualization in Linux

TI Linux and Open Source Initiative Backgrounder

2972 Linux Options and Best Practices for Scaleup Virtualization

A Project Summary: VMware ESX Server to Facilitate: Infrastructure Management Services Server Consolidation Storage & Testing with Production Servers

Invoice Scanning at South Ayrshire Council. Jeff Atkinson South Ayrshire Council Ross Weaver Readsoft

Transcription:

Yocto Project Experience: Continuous Integration Mark Hatle Senior Member of Technical Staff Wind River Edinburgh, Scotland 23 Oct 2013

Agenda Our experiences as an OSV, productizing the Yocto Project Software Lifecycle Big-Bang Example Continuous Integration Example Our recommendation 2 Yocto Project The Linux Foundation

Productization What does it take to turn the Yocto Project into a commercial product? Yocto Project The Linux Foundation

Yocto Project Productization What does an OSVs customer s require? Up-to-date kernel Up-to-date toolchain Up-to-date userspace One or more specific BSP (hardware support) Quality improvements Timely support 4 Yocto Project The Linux Foundation

Yocto Project Productization Up-to-date When the Yocto Project release is complete, it is generally considered to be very Up-to-date (nothing older than 6 months) Up-to-date in the customer world is roughly nothing older than one generation, or 12-18 months Toolchain is at the current community supported version Kernel is at the generally accepted stable version (LTSI or otherwise) 5 Yocto Project The Linux Foundation

Yocto Project Productization Hardware Support Customers require the hardware of their choice to be supported. Generally new hardware requires newer versions of the Linux kernel Semiconductor specific optimizations for toolchains, drivers and other components are often required. 6 Yocto Project The Linux Foundation

Yocto Project Productization Quality Anything that is released from an OSV needs to be at or better than Open Source quality Requires significant test resources (people and machines) 7 Yocto Project The Linux Foundation

Yocto Project Productization Timely support When something doesn t work, the OSV is expected to be the expert on the problem! The OSV must understand the system as a whole The OSV must work with the community to find existing fixes The OSV must work with the community suggest new fixes 8 Yocto Project The Linux Foundation

Software Lifecycle How to manage the software lifecycle? Yocto Project The Linux Foundation

Software Lifecycle Yocto Project Lifecycle Commercial Product Lifecycle Real World Examples 10 Yocto Project The Linux Foundation

Yocto Project Lifecycle 6 month development cycle 4 4 week development milestones 5 th milestone is stabilization Maintenance releases managed for roughly 1 year 11 Yocto Project The Linux Foundation

Yocto Project Lifecycle 4-4 week development milestones https://wiki.yoctoproject.org/wiki/yocto_1.5_schedule 12 Yocto Project The Linux Foundation

Commercial Product Lifecycle Examples Big-Bang Start with community release Add missing requirements Add new value-add features QA/Verify OSS QA/Verify new components QA/Verify value-add features Work to resolve bugs internally Release to customers Maintain Release (5-10 years) Continuous Integration Work in parallel with community Influence community work Add new value-add features QA/Verify OSS QA/Verify value-add features Work with community to fix bugs Release to customers Maintain Release (5-10 years) Examples assume approx 12-18 month release cycles 13 Yocto Project The Linux Foundation

Big-Bang Lifecycle Example Big-Bang refers to the work Starts with a large amount of community software Need to learn how it works Learn what required product features need to be implemented More of the traditional approach Follow Open Source 14 Yocto Project The Linux Foundation

Big-Bang Lifecycle Example Oct-Dec Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar Apr-Jun Yocto Project Update Update EOL Commercial U1 U2 U3 U4 U5 U7 Customer Adoption No opportunity to influence design, must follow Enhancements should be contributed to the next version, and backported Bugs found may or may not have been found by community, may require additional resources to resolve 15 Yocto Project The Linux Foundation

Big-Bang Lifecycle Example Oct-Dec Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar Apr-Jun Yocto Project Update Update EOL Commercial U1 U2 U3 U4 U5 U6 At start of commercialization, product components are up to 6 months old By the time of release, it s nearly 12+ months old Has a shelf life of only 6-12 months from release Decision extend shelf-life or uprev? Customer Adoption 16 Yocto Project The Linux Foundation

Big-Bang Lifecycle Example Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar cto Project Update Update EOL Commercial U1 U2 U3 U4 U5 Extend shelf life? Customer Adoption Commercial U1 U2 U3 U4 Customer Adoption Update kernel, toolchain, BSPs and other critical elements Backport additional select features 6 months work, only gains 6-12 months Customer Adoption No community help 17 Yocto Project The Linux Foundation

Big-Bang Lifecycle Example an-mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar oject Update Update EOL Commercial U1 U2 U3 U4 U5 Customer Adoption Yocto Project Update Update EOL Uprev? Rebase changes (15-45 days) Add commercialization time Commercial Finish date has now slipped back a bit more Still following, not leading U1 U2 U3 U4 Customer Ado 18 Yocto Project The Linux Foundation

Commercial Product Lifecycle Examples Big-Bang Start with community release Add missing requirements Add new value-add features QA/Verify OSS QA/Verify new components QA/Verify value-add features Work to resolve bugs internally Release to customers Maintain Release (5-10 years) Continuous Integration Work in parallel with community Influence community work Add new value-add features QA/Verify OSS QA/Verify value-add features Work with community to fix bugs Release to customers Maintain Release (5-10 years) Examples assume approx 12-18 month release cycles 19 Yocto Project The Linux Foundation

Continuous Integration Lifecycle Example Continuous Integration refers to tracking and contributing to the community development Work with the community on development Learn capabilities and feature deficits as development continues Ability to influence the community by discussing requirements and/or providing patches Ability to monitor OSS quality over a longer period of time Requires resources to follow the community Lead with the OSS community 20 Yocto Project The Linux Foundation

Continuous Integration Lifecycle Example Oct-Dec Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar Apr-Jun Yocto Project Commercial Update Update EOL U1 U2 U3 U4 U5 U6 Customer Adoption Ability to identify issues and work with the community to resolve them Enhancements can be contributed during development Bugs can be filed with the community and worked on as a group 21 Yocto Project The Linux Foundation

Continuous Integration Lifecycle Example Oct-Dec Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar Apr-Jun Yocto Project Commercial Update Update EOL U1 U2 U3 U4 U5 U6 Customer Adoption During commercialization components are current By the time of release, it s only 6-7 months old Has a shelf life of 12-24 months from release No reason to extend the shelf-life! 22 Yocto Project The Linux Foundation

Continuous Integration Lifecycle Example Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar Apr-Jun Jul-Sep Oct-Dec Jan-Mar cto Project Commercial Update Update EOL U1 U2 U3 U4 U5 U6 Customer Adoption Uprev! Yocto Project Update Update EOL Yocto Project Update Update EOL No rebase required Ramp up developers Commercial U1 U2 U3 U4 U5 U6 Customer Adoption 23 Yocto Project The Linux Foundation

Real World Examples Big-Bang Took a large product team 6 months to commercialize Required 6 one month cycles to add enhancements and backport upstream features First cycle was devoted to investigation Required significant developer resources Release was approx time of next YP release 24 Yocto Project The Linux Foundation

Real World Examples Big-Bang Extended life Required 6 months development to update kernel, BSPs, toolchain and other customer essential systems Required roughly the same development effort as a new product Release occurred at appox time of EOL of the base Yocto Project release 25 Yocto Project The Linux Foundation

Real World Examples Big-Bang Uprev Requires 45 days (of one engineer) to update the tree 2 Yocto Project releases. This 45 days simply enabled the main development team. Projected to required 6 months of development to commercialize and add new features, QA, etc. Release was now after the next YP release 26 Yocto Project The Linux Foundation

Real World Examples Continuous Integration Work done in parallel with the community. Able to ramp up a small team to full team over the course of development. As bugs were found, many filed with the community and fixed in a timely manner. (Many critical bug fixes were submitted to the community.) As missing features were identified, worked with the community to implement functionality. 27 Yocto Project The Linux Foundation

Real World Examples Continuous Integration Required 1 full time resource to manage integration and tracking of the community. Resource was the go-to person for questions about community quality, bug triage, etc. Continuous uprev averaged every 1-2 weeks for the first 4 milestones. Bug fixes and QA took most of the two week time. (Longer than we expected.) Unexpected change in the 5 th milestone caused a single 4 week integration cycle. Expect weekly uprevs after product release for point fixes. 28 Yocto Project The Linux Foundation

Real World Examples Continuous Integration Estimated to be the same amount of improvement and commercialization required Smaller teams required, as less unexpected reactionary work was required 29 Yocto Project The Linux Foundation

Recommendation What should you do? Yocto Project The Linux Foundation

Recommendations Semiconductor Mfg Kernel/BSP support big-bang address customers wanting a stable approach continuous integration keep changes timely, and ready to release for the next stable release May depend on chip market, release schedules and customer demand 31 Yocto Project The Linux Foundation

Recommendations OSV Use continuous integration. Quicker time to market, more up-to-date software, and longer shelf-life. Should allow time to sync to semiconductor and customer requirements. 32 Yocto Project The Linux Foundation

Recommendations ISV / Application Developers Follow the YP versions your customers need. Most likely to follow the stable release, but for large applications the continuous-integration model may make sense. 33 Yocto Project The Linux Foundation

Recommendations Device Developers Look at what your needs are. If you don t need work-in-progress features, it s better to start with a stable release! If you expect to be updating the OS over the life of the product, continuous integration may be useful. 34 Yocto Project The Linux Foundation

Thank you for your participation!