agl development tools what’s new in ffiot.bzh/download/public/2018/als-tokyo/stephane/... ·...

33
Stéphane Desneux CTO at IoT.bzh <[email protected]> AGL Development Tools What’s new in FF ?

Upload: others

Post on 12-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

Stéphane DesneuxCTO at IoT.bzh<[email protected]>

AGL Development ToolsWhat’s new in FF ?

Page 2: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 2

IoT.bzh Crew7 in 2017, 15 as of today

Page 3: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 3

1st Technical Contributor

Page 4: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 4

Agenda

XDS : Apps and Bindings development

● Code / X-Build / Run / Debug

● Monitor a single binding

● Supervision: one daemon to spy them all

Bindings Test Framework

AGL profiles and YoMo

Roadmap / Q&A

Page 5: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 5

XDS – Quick Overview

● Dedicated to Applications Developers– enables development without Yocto skills

● Cross-platform build using AGL SDK

– leverages AGL/Yocto toolchain● Deploy on development boards or VMs● Remote debugging from IDE● Documentation on

http://docs.automotivelinux.org

Page 6: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 6

XDS – Reducing complexity

● Easy target access – console, SSH, …

● Developer uses common IDEs– VS Code, Netbeans, Eclipse...

● Dashboard Web App to manage configurations and trigger actions

● XDS API for CI workflows & specific environments● Command line tool also available (xds-cli)

Page 7: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 7

XDS – Key Features● Multi-platform : no dependencies on developer host

(Linux / Windows / MacOS)

● Easy to setupNear-zero install, no admin privileges required

● Application sources remain localCompatibility with existing IT policies (e.g. corporate backup, git, ...)

● Cross toolchain & tools embedded in a container :

● Local : run locally (local subsystem, virtual machine, docker container ...)

● On-premises : run on a local build server● Cloud : SaaS

● Leverage specific OS capabilities where applicable(e.g. Linux for Windows Subsystem, docker)

Page 8: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 8

XDS – Architecture

AGL repo

Development HostLinux / Windows / MacOS

Development HostLinux / Windows / MacOS

XDS Server ContainerLocal or remote

XDS Server ContainerLocal or remote

App sources

IDE UI(NetBeans, Eclipse,

Visual Studio Code, …)

XDS-server

File Sync

Local networkor

Cloud network

REST + WS

These blocks may be bypassed when files can be shared over a local network (eg. NFS mount or docker volume)

TargetTarget

deployment

Files

App sources(duplicated)

Cross Toolchain B

Cross Toolchain A

XDS-agent

File Sync

Direct link(eg. USB <=> Ethernet)

Files

Command line

XDS-cli

Page 9: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 9

XDS – Dashboard

● Available on http://localhost:8800

NEW UI !

Page 10: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 10

1) Install xds-server on a build server machine

2) Install xds-agent and start-it on your machine

3) Browse XDS dashboard: http://localhost:8800

4) Add a new project

5) Cross build/compile your project using either :

1) Dashboard build page

2) IDE using xds-cli

6) Deploy app

7) Source debug from IDE (xds-gdb)

XDS – Operations

Page 11: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 11

XDS – Demo

● Explore Dashboard● Log on the target (terminal → Qemu)● Build helloworld-service (VS Code)

https://github.com/iotbzh/helloworld-service/● Run (VS Code)● Command line tools for IDEs (xds-cli, xds-gdb)

Page 12: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 12

Agenda

XDS : Apps and Bindings development

● Code / X-Build / Run / Debug

● Monitor a single binding

● Supervision: one daemon to spy them all

Bindings Test Framework

AGL profiles and YoMo

Roadmap / Q&A

Page 13: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 13

Monitoring – API & UI

● Monitoring API is built in the binder

● Monitor API is enabled by AppFW in any binder(--monitoring option)

● UI is available easily:

http://<host>:<port>/monitoring/

NOTE THE TRAILING SLASH !

Page 14: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 14

Monitoring – outcome

● Trace verbs calls

– API calls with args

– Results with data● Trace events content● View internal log calls (AFB_NOTICE et al.)● Filtering available to reduce “noise”:

– Filter per API

– Filter per trace type

Page 15: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 15

Monitoring – UI Overview & Demo

●TODO

Page 16: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 16

Agenda

XDS : Apps and Bindings development

● Code / X-Build / Run / Debug

● Monitor a single binding

● Supervision: one daemon to spy them all

Bindings Test Framework

AGL profiles and YoMo

Roadmap / Q&A

Page 17: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 17

Supervision – How it works ?

Page 18: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 18

Supervision

● xds-service binding running on target● Collects data from supervisor daemon● Send them to harvester binding for storage in

a TimeDB

– currently tested: traces are stored in influxdb● XDS Dashboard: Grafana draws reports based

on influxdb records

Page 19: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 19

Supervision – Interaction graph

● Example: 2 apps simulate requests to 2 low level bindings and receive responses and events

Page 20: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 20

Supervision – Visualize in XDS

VIDEO

Page 21: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 21

Agenda

XDS : Apps and Bindings development

● Code / X-Build / Run / Debug

● Monitor a single binding

● Supervision: one daemon to spy them all

Bindings Test Framework

AGL profiles and YoMo

Roadmap / Q&A

Page 22: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 22

afb-test – How it works

● afb-test is a binding● It is run as an extra in the binder that also

loads the binding to be tested

Page 23: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 23

afb-test – Main features

● Write the tests in LUA using new ‘AFT’ framework● Uses LuaUnit (xUnit interface)● Reports in several common formats: Text, TAP, JUnit, ...● To test API verbs:

– Call a verb with arguments

– Get the result back and assert content● To test API events:

– Install a callback function triggered when a particular event is received

– Inside callback, assert event data if needed

Page 24: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 24

afb-test – Example using AFT

Page 25: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 25

Agenda

XDS : Apps and Bindings development

● Code / X-Build / Run / Debug

● Monitor a single binding

● Supervision: one daemon to spy them all

Bindings Test Framework

AGL profiles and YoMo

Roadmap / Q&A

Page 26: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 26

YoMo – Binary feeds for Yocto

● A project to distribute packages built using Yocto through binary RPM feeds

● For target boards:

– Assemble a minimal core image common to all profiles

– Declare RPM repositories

– Use dnf to install/upgrade the target system● For development:

– Install minimal (core) SDK

– Install/Upgrade SDK with profile specific packages using RPMs

Page 27: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 27

YoMo - Architecture

Page 28: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 28

YoMo – Outcome

● Avoid rebuilding over and over again Yocto images :

– gain of time for integration teams

– repeatable results for the community ● Applications developers MUST NOT use

bitbake, but binary images and SDK

Page 29: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 29

YoMo – Further information

● Available at:

https://github.com/iotbzh/YoMo ● See talk by Khiem Nguyen, Renesas:

Page 30: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 30

Agenda

XDS : Apps and Bindings development

● Code / X-Build / Run / Debug

● Monitor a single binding

● Supervision: one daemon to spy them all

Bindings Test Framework

AGL profiles and YoMo

Roadmap / Q&A

Page 31: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 31

AGL Devtools Roadmap

● XDS v1.1 released, available for FF

– cross-build/run/debug from IDE● XDS v2.x targeting GG

– Supervision to be integrated

– Offline data collecting for KPI analysis● Afb-test

– Initial integration for FF

– Deployment in AGL bindings for GG● YoMo

– Still WIP

– Discussions with upstream Yocto project to see how to converge

Page 32: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 32

Q&A

Gulf of Morbihan, south of Brittany, France

Page 33: AGL Development Tools What’s new in FFiot.bzh/download/public/2018/ALS-Tokyo/Stephane/... · Local : run locally (local subsystem, virtual machine, docker container ...) On-premises

June 2018AGL Development Tools - What's new in FF ? 33

References● XDS– Documentation: http://docs.automotivelinux.org/...

– Source code: https://git.automotivelinux.org/src/xds/xds-*/● Bindings Test Framework: https://github.com/iotbzh/afb-test● YoMo: https://github.com/iotbzh/yomo