intro a snappy

Download Intro a snappy

If you can't read please download the document

Upload: sergio-schvezov

Post on 13-Apr-2017

550 views

Category:

Software


0 download

TRANSCRIPT

Snappy
La arquitectura que mueve a Ubuntu Core

Presentado porSergio [email protected]@sergiusenswww.canonical.comAgosto 2015

Sobre mi

Crdoba Argentina

Ubuntu Core

Donde

Equipo

Antes estaba en phone foundations.Mis responsabilidades:- snappy: diseo y desarrollo- ubuntu-device-flash- oem- webdm- bootloaders

En foundations:- storage- mms- notificaciones- portar/integrar

El camino recorrido

Comencemos por el principio

Manejado por apt.

Ciclo de actualizaciones peridicas.

Paquetes atados al release.

Ubuntu

Ubuntu como comnmente lo conocemosEsta en todas partes.

Maintainer scriptsCada 6 meses nuevo paquetePpa ayudanTodo tiene una librera compartida (e.g.; Qt, gtk)Arbol de dependencias grande.Empaquetar bien cuesta.Confinamiento complicado (apparmor nativo)

Un paso evolutivo

System Image

click

Seguridad y aislamiento

Frameworks

SDK

Ubuntu Touch

Ubuntu para telfonos, cambiando el paradigma que conocamos.

Una imagn que es un todoSystem Image.

Se aplica en funcin del delta.

Son capas.

lxc

Generalmente actualizaciones pequeas

Se introduce click:No hay maintainer scripts

Hay hooks.

Dependencia es el framework.

Ubuntu Store ofrece dinamismo y libertad al desarrollador.

Hay un SDK y en gran parte define el framework.

Confinamiento easy prof

Trusted helpers

Hasta aqu llegamos

Nueva arquitectura

Transacciones (y Rollbacks)

Maleable

Componentes aislados e independientes

Snappy

Ubuntu Core y Personal tiene una arquitectura snappy

Construye sobre el desarrollo de Touch

Todo es un paquete snappy

Migrando de System Image:Aislamiento total y no capas

Las capas requiren un director de orquestras.

El aislamiento es a traves de interfaces.

La pequeez y el aislamiento lo hace maleable

Ubuntu Core

Confusin entre snappy y Ubuntu Core

Ubuntu no es apt como Ubuntu Core no es snappy

Arquitectura

AppAppAppFrameworkSnappy Ubuntu CoreAbstraccin de HardwareGadget

Actualizaciones confiables

Resguardos

Paquetes simples

Todo esta en el storeEl framework de click sera el releaseLos frameworks instalados definen la disponibilidad de app, los frameworks extienden al OS (mir es un framework).Abstraccin de hw sera el kernel y un par de cosas msGadget intersecta y define la instalacin.Apps permiten forks.Hay binarios y servicios

Gadget

Branding

Paquetes

Permisos

Adaptaciones

DefinenEl gadget define el gadget.

Puede configurar todos los paquetes.

Frameworks

Mediacin de recursos compartidos.

No hay conflictos

Frameworks no pueden depender de otros frameworks.

Pueden proveer polticas de seguridad adicionales.

ExtiendenLos frameworks son una extensin directa de Ubuntu Core.

Al requerir polticas especiales y ser tan invasivos, pasan por inspeccin (lento como debs).No al fork.No son librerias

Releases y canales

rolling

15.04

Hoy hay 2, rolling y 15.0415.04 y todos los releases numerados son estables

No del todo cierto, los releases estables son estables en el canal estable

Edge es el build diario y va iterando hasta llegar al canal estable.

No hay canal estable para rolling

En las nubes

Imagenes de Vagrant y KVM sirven para prototipado rpido.Snappy Ubuntu Core se encuentra disponible en los clouds pblicos como AWS, Azure y GCE

Tambin en nubes privadas

Las instancias t2 micro son gratis por un ao en ec2Usado bastante con docker (dijeron mis compaeros del cloud).Kvm no es una nube de por si, pero lo que se haga ac se puede llevar a las nubes.Nubes privadas openstack

Contenedores

snappy install docker

snappy install owncloud

O usar docker directament

Para instalar:https://plus.google.com/+St%C3%A9phaneGraber/posts/aX6vogzEQ1X

usando snappy-remote

snappy-remote --url=ssh://localhost:8022 install lxd_0.11-git0_amd64.snaplxc remote add images images.linuxcontainers.orglxc launch images:ubuntu/trusty/amd64 trustylxc exec trusty bash

Dispositivos

Kickstarter

Focalizarse en la lima milla para construir productos

Se extiende con frameworks si es necesario.Se configuran con el gadgetApps le dan proposito al sistema

Pueden o no permitir aplicaciones adicionales dependiendo del dueo del producto.

Erle tiene muchas apps que llama cerebros.

Ubuntu Personal

Arquitectura

AppAppAppFrameworkSnappy Ubuntu PersonalAbstraccin de HardwareGadget

Actualizaciones confiables

Resguardos

Paquetes simples

Todo esta en el storeEl framework de click sera el releaseLos frameworks instalados definen la disponibilidad de appAbstraccin de hw sera el kernel y un par de cosas msGadget intersecta y define la instalacin.En el OS, aparte de la base hay un stack muy parecido al del telefono.

Visuales

sudo ubuntu-device-flash personal rolling channel edge output personal-rolling.img

kvm -m 2048 -vga qxl personal-rolling.img (o virt-manager)

Unity8Greeter similar al tabletEs rolling, se rompe

Ecosistema

Store

Saben subir un deb, no hablo de gente que se dedica a empaquetar, hablo de alguien que desarrolla algo y quiere que este disponible para los demas.

El store hace chequeos de compliance (seguridad) y si pasa todo sin requerir revisin manual queda automticamente publicado en los releases elegidos (y prontamente canales).

webdm

Experiencia de firstboot

Acceder, configurar e instalar snaps

Administracin del sistema

Vista de app store para personalizar y extender el sistema.

avahi

Idea original era que sirva para device management remoto. Esa funcionalidad esta migrando a snappy.

Snapcraft

Permite integrar fuentes en git, bzr o hg

Compuesto por partes

Extensible mediante plugins

Ciclo de vida: pull, build, stage, snap, assemble

Ubuntu

Snapcraft permite el crafting de snaps haciendo facil la incorporacin de elementos desde diferentes fuentes como GitHub, Launchpad, o npm...

Partes- parte central- independientes entre ellos- usado para el snap final o para contruirPlugins:- go, py2/3, java, c, ubuntuCiclo de vida:- pull parts/part-name/src- build parts/part-name/build, despus ../install- stage combina todos los parts en ./stage- snap partes productivas de stage + ./meta- assemble crea el snap

Demos

Si hay internet...

Levantar kvmsnappy list/install (forks)Snapcraft unas fuentes (qml)Instalar en VM con snappy remote y mostrar el sideloadMostrar lxcMostrar webdm en bbb

Preguntas por favor
Gracias!

Sergio [email protected]@sergiusens#snappy en freenodewww.canonical.com

Click to edit the title text format