x(cross) development system€¦ · x(cross) development system sep. 2017 4 x(cross) development...

18
July 2017 X(cross) Development System make AGL application development easier Sébastien Douheret [email protected]

Upload: others

Post on 24-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

July 2017

X(cross) Development Systemmake AGL application development easier

Sébastien Douheret [email protected]

Page 2: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 2

IoT.bzh● Located in France - Brittany

( Vannes / Lorient / Rennes )

● People background:– 40% coming from Tizen IVI (Intel+Samsung)– 40% coming from Wind River– 20% coming from industry

● Working on AGL since 2015● First technical contributor

on AGL

Page 3: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 3

Key Focuses● Cybersecurity

● Secure Application Framework (life cycle, MAC, Cynara, Systemd, Cgroups, Namespaces ...)

● Vehicle to Cloud, Identity management● Securing key platform services (audio, signaling, graphics …)

● Development Tools● Docker Platform development (AGL SDK)● Apps development from IDE: XDS (Cross Development System)● Platform Monitoring tools

● Integration● Yocto recipes, Releases automation & Testing (CI)● Renesas boards support

● Community Support● Documentation (kickstart, developer samples, guides …)● White Papers & Conferences (Genivi, AGL, Fosdem, ELC …)

Page 4: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 4

X(cross) Development System (XDS)● Dedicated to Applications Developers

enable apps developer without Yocto skills→● Cross-platform build using AGL SDK toolchain● Secure packaging (.wgt files including signatures)● Deploy on development boards (or Qemu image)● Remote debugging from IDE● Easy target access (console, SSH, …)● Developer environment is a standard IDE● Dashboard Web App to manage configuration and trigger actions

● Provide an XDS API ie CI workflows or specific environments→

Page 5: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 5

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 6: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 6

Targeted Use CasesSingle Host mode

● Host: Windows

● IDE: Eclipse

● Container: Linux Subsystem

● Sources: shared through native access

Local Network mode

● Host: Linux

● IDE: Visual Code

● Container: Docker

● Sources: shared through docker volume

Cloud mode

● Host: Linux

● IDE: Eclipse

● Container: Docker running in the Cloud

● Sources: shared through sync tool

Target

Dev Host Windows

Linux Subsystem

XDS Serverdaemon

IDE

USB or local network

Dev Host Linux

IDE

Build Host

Docker

XDS Serverdaemon

Target

Local network

Dev Host

IDE

Docker

XDS Server daemon

Target

Localnetwork

Cloud

Page 7: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 7

Architecture

AGL repo

Development Host Linux / Windows / MacOS

Development Host Linux / Windows / MacOS

XDS Server Container Local or remote

XDS Server Container Local or remote

App sources

IDE UI (Eclipse, Visual Studio Code, …)

XDS -server Daemon

File Sync

Local network or

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)

XDS plugin

Files

Command line

xds-exec

Page 8: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 8

Architecture - debug

AGL repo

Development HostLinux / Windows / MacOS

Development HostLinux / Windows / MacOS

XDS Server ContainerLocal or remote

XDS Server ContainerLocal or remote

App sources

IDE UI(Eclipse, Visual Studio Code, …)

XDS-server

Local networkor

Cloud network

REST + WS

Target Target

App sources(duplicated)

Cross Toolchain B

Cross Toolchain A

gdb (cross)

XDS-gdb

gdbserver

Page 9: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 9

XDS Implementation● Written in GO

(portable Linux/Windows/MacOS)● Dashboard (webapp Angular2, TypeScript 2) to make

development setup easier● REST API + WebSocket (socket.io)● File synchronization based on Syncthing [1] to support

Cloud model● XDS server integrated into AGL SDK docker image

(see flavour xds [2])

[1]: https://syncthing.net/

[2]: https://git.automotivelinux.org/AGL/docker-worker-generator/

Page 10: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 10

XDS building blocks● xds-server

– Core of the system, running in container:● Provide Dashboard as a webapp● REST API interface over HTTP to config and trigger commands● Websocket to get asynchronously data (commands output) or events (commands

exit)● Control file synchronizer (Syncthing) on server/ in container ● Manage (install, list, remove) AGL SDKs

● xds-agent (client)– Client side part, running on developer host.

● Control file synchronizer (Syncthing) on developer's machine● Target terminal (work in progress)

● xds-exec– Command line tool to wrap standard exec command.

● xds-gdb– Command line tool to allow application debugging (based on gdb).

Page 11: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 11

Develop AGL app with XDS

1) Browse XDS dashboard: eg. http://localhost:8000

2) Download xds-agent, install and start-it on desktop

3) Add a new project

4) Cross build/compile your project using either :

● Dashboard build page● IDE using xds-exec

5) Deploy app

6) Source debug from IDE (work in progress)

Page 12: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 12

Available as today● Beta version

– Pre-build docker image including XDS server https://github.com/iotbzh/xds-server#how-to-run

– Multi-platform (Linux / Windows/ MacOS) host tools (xds-agent, xds-exec, xds-gdb)– Support Cloud mode (file sharing based on a synchronization tool)– IDE integration (manual setup)

https://github.com/iotbzh/xds-exec#using-xds-exec-within-an-ide– Debugging proof of concept (based on gdb and AGL app-templates)

● Video showing development and debug https://vimeo.com/221493917

● Binary packages available on openSuSE Build Service:https://build.opensuse.org/project/show/isv:LinuxAutomotive:app-Development

● Sources available on Github – xds-server : https://github.com/iotbzh/xds-server– xds-agent : https://github.com/iotbzh/xds-agent– xds-exec: https://github.com/iotbzh/xds-exec– xds-gdb: https://github.com/iotbzh/xds-gdb

Page 13: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 13

Release Candidate 1 (AGL AMM – Fall’ 17)● Complete packaging and server side upgrade● Improve dashboard and error reporting● Support multiple file sharing (simple path-

mapping, NFS, synchting) ● AGL SDK management (add, remove)● Target setup and target terminal integration in

dashboard● Better integration in IDE (templates)● Improve/document debugging support ● Document REST API

Next version

Page 14: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 14

Roadmap

● AGL AMM Fall ’17: Release Candidate 1● EE/CES ’18: Release Candidate

Page 15: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 15

Contacts● Sébastien Douheret

<[email protected]>● Stéphane Desneux

<[email protected]>

Page 16: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 16

Q&A

Gulf of Morbihan, south of Brittany, France

Page 17: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 17

Target Board

AGL - Linux + Docker + XDS - Develop, Build, Deploy

Linux Host

XDS Container - Debian Jessie

LAN / @

NetworkBridge

IDEIDE

edit edit

external accessexternal access

SDKSDK

ProjectSources

shared volume

buildbuild

Binary/Widget

BrowserBrowser

deploydeploy

Binder

Agen

t

Page 18: X(cross) Development System€¦ · X(cross) Development System Sep. 2017 4 X(cross) Development System (XDS) Dedicated to Applications Developers → enable apps developer without

Sep. 2017X(cross) Development System 18

Target Board

AGL - Linux + Docker + XDS - Debug

Linux Host

XDS Container - Debian Jessie

LAN / @

NetworkBridge

DEBUG UIDEBUG UI

external accessexternal access

ProjectSources

shared volume

SSH

gdb (cross)

gdbserver

Binder

gdb

SDKSDK