uporaba vsebnikov v okolju interneta...
TRANSCRIPT
![Page 1: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/1.jpg)
UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARI
Aleksandar Lazarević 12.4.2017
![Page 2: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/2.jpg)
Uporaba vebnikov Docker v okolju interneta stvari
Pregled:
• IoT – izzivi za razvijalce PO
• Virtualizacija in vsebniki
• Platforma Docker
• Docker in Raspberry Pi
• Zaključek
![Page 3: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/3.jpg)
IoT – internet stvari
Internet stvari je mreža fizičnih predmetov oziroma naprav, vozil, stavb in drugih objektov, ki jim integracija z elektroniko, programsko opremo, senzorji in omrežno povezljivostjo omogoča zbiranje in izmenjavo podatkov.
![Page 4: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/4.jpg)
IoT – izzivi z razvijalce
• varnost
• raznolikost platform
• nameščanje in posodabljanje
• razširljivost
• omejeni viri
![Page 5: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/5.jpg)
IoT – izzivi z razvijalce
• varnost
• raznolikost platform
• nameščanje in posodabljanje
• razširljivost
• omejeni viri
![Page 6: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/6.jpg)
IoT – izzivi z razvijalce
• varnost
• raznolikost platform
• nameščanje in posodabljanje
• razširljivost
• omejeni viri
![Page 7: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/7.jpg)
IoT – izzivi z razvijalce
• varnost
• raznolikost platform
• nameščanje in posodabljanje
• razširljivost
• omejeni viri
![Page 8: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/8.jpg)
IoT – izzivi z razvijalce
• varnost
• raznolikost platform
• nameščanje in posodabljanje
• razširljivost
• omejeni viri
![Page 9: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/9.jpg)
Virtualizacija in vsebniki
• Virtualizacija: deljenje virov, izolacija, ...
• Vsebniki (ang. containers): virtualizacija na nivoju operacijskega sistema
– omogoča virtualno okolje za posamezno aplikacijo
![Page 10: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/10.jpg)
Virtualizacija vs Vsebniki
VM Vsebniki
Gostojoči OS Vsaka VM teče na navidezni strojni opremi; jedro se naloži v lastno območje v pomnilniku.
Vsi vsebniki delijo isti OS in jedro. Slika jedra se naloži v fizični pomnilnik.
Varnost Jedro gostitelja je odgovorno za izolacijo navideznih okolij.
Vsebniki uporabljajo imenske prostore (namespaces) za izolacijo procesov in SELinux za varnost.
Performanse VM zahtevajo dodatni čas zaradi prevajanja strojnih ukazov iz gostojočega na gostiteljev OS.
Primerljivo izvajanje z gostiteljevim OS.
Izolacija Deljenje knjižnic, datotek in podobno med VM in gostiteljevim OS ni možno.
Knjižnice in datoteke se lahko delijo.
Zagonski čas VM potrebujejo nekaj minut za zagon. Vsebniki se lahko naložijo v nekaj sekundah.
Shranjevanje podatkov
VM zasedejo več prostora, ker se mora naložiti celotni OS in vse pripadajoče datoteke.
Vsebniki zasedejo manj prostora, ker se osnovni OS deli.
![Page 11: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/11.jpg)
Docker
Docker je odprtokodna platforma namenjena izgradnji, distribuciji in poganjanju distribuiranih aplikacij na raznovrstni infrastrukturi.
Omogoča: • enotni ukazni vmesnik/API za upravljanje
vsebnikov (start, stop, pull, pause, commit) • uporablja lastnosti Linux jedra
Linux jedro/FS: • izolacija: namespaces • upravljanje: cgroups • UnionFS
Docker arhitektura: • Docker strežnik in odjemalec • Docker slike (image) • repozitorij (npr. Docker Hub) • vsebniki
![Page 12: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/12.jpg)
Docker
Docker Engine je aplikacija tipa odjemalec/strežnik
- Strežnik je deamon proces (dockerd)
- REST API določa vmesnik – nabor ukazov (npr. run, pull, push)
- CLI odjemalec (docker)
Docker registri shranjujejo Docker slike.
- docker pull naloži sliko iz
registra.
Docker objekti:
- slike (images) – niz ukazov za
kreiranje vsebnikov
- vsebniki (containers) – izvršna
oblika slike: docker run --name rpi-mysql -e MYSQL_ROOT_PASSWORD=rpi -d mysql:v5.5
![Page 13: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/13.jpg)
Senzorska mreža
Sestavljena iz:
• senzorjev/senzorskih mest
• vozlišč
• usmerjevalnika(ov)
![Page 14: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/14.jpg)
Senzorska mreža - senzorji
Namenjeni zajemu podatkov:
• temperatura
• vlaga
• hrup
• svetloba
• kakovost zraka
• stanje baterije
Arduino Nano
Podatke po radijskem oddajniku pošilja na vozlišča (RF 315/433Mhz)
Vozlišče lahko sprejema podatke več senzorjev/senzorskih mest
Vsako vozlišče ima svoj ID
![Page 15: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/15.jpg)
Senzorska mreža - vozlišča
Radio sprejemniki
Računalniki Raspberry Pi:
• sprejemajo info iz senzorskih mest (Python)
• shranjujeo podatke na lokalno podatkovno bazo (MySQL/MongoDB)
• vizualizacija podatkov (PHP, Freeboard.io)
![Page 16: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/16.jpg)
Docker in Raspberry Pi
• Linux Raspbian Jessie za ARM procesor
• osnovna slika: – MySQL v5.5: docker pull hypriot/rpi-mysql
– Apache: docker pull pitchanon/docker-apache-php
• dodatno: – Python v2.7: docker pull resin/raspberry-pi-python
– knjižnice
– zajem podatkov
– vizualizacija podatkov
– orodje sysbench
– orodje pxz
![Page 17: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/17.jpg)
Docker in Raspberry Pi
1. Primerjava RPi in Docker – primerjava performans
2. Primerjava RPi in Docker na realnem primeru senzorske mreže
3. Uporaba storitve Resin.io – hkratno nalaganje novih verzij aplikacije preko vsebnikov
![Page 18: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/18.jpg)
Ugotovitve
CPU: • orodje sysbench in orodje pxz
(kompresija cca 1,5 GB datoteke)
• ni bistvenih razlik (cca -3 do 5%)
Pomnilnik: • orodje sysbench
• ni bistvenih razlik (cca -2 do 4%)
I/O: • orodje sysbench
• bistvene razlike: (do -15%)
• veliko število manjših sprememb – večje razlike!
MySQL: • orodje sysbench
• razlike glede na tip shranjevanja:
– file system - počasnejši
– data volume - hitrejši
Poraba el.energije: • v določenih primerih manjša, kot pri
gostitelju
![Page 19: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/19.jpg)
Distribucija vsebnikov – Resin.io
![Page 20: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/20.jpg)
Zaključek
Docker v okolju IoT omogoča: • enostaven in hiter razvoj aplikacij:
– enostavno nalaganje novih vsebnikov iz pripravljenih slik, brez nameščanja posameznih knjižnic.
• varnost: – omogoča izolacijo in omejitev virov (namespaces/cgroups).
• povezljivost in razširljivost: – dela na različnih modelih RPi brez sprememb ali prilagajanja
• dobro izrabo virov: – Docker porabi do cca 5% več virov
– v določenih primerih je poraba el.energije celo manjša – za ceno počasnejših operacij. V določenih razmerjih je to dobrodošlo.
• naprekinjeno dostavo in upravljanje – z uporabo Resin.IO storitve hkratna dostava vsebnikov na različne/oddaljene
naprave
• omejenost na platformo
![Page 21: UPORABA VSEBNIKOV V OKOLJU INTERNETA STVARIdsi2017.dsi-konferenca.si/upload/predstavitve/A_Lazarevic.pdf · Docker in Raspberry Pi 1. Primerjava RPi in Docker – primerjava performans](https://reader034.vdocuments.mx/reader034/viewer/2022042620/5b0907667f8b9a5f6d8d562d/html5/thumbnails/21.jpg)