Pro výrobní společnost Grammer CZ Tachov proběhl úspěšný vývoj a implementace intranetového portálu firemní Wikipedie včetně instalace a konfigurace virtuální Linux server v německém datacentru.
Tradiční filesystémy a relační databáze zde budou s námi po mnoho dalších let o tom nemá smysl diskutovat, problém, ale vzniká dnes již na úrovni dat samotných, jsou totiž vysoce nestrukturovaná, bohužel nebo bohudík ?
Odhady říkají, že 80-90% dat kolem nás je nestrukturovaných, přesto se je snažíme popsat strukturou tabulek a relací, v nejhorším případě si uložíme string/json a ten si “žvýkáme” v aplikaci, otázka je zda-li je tento postup správný a nebojujeme proti vlastní “touze” dat být neorganizována.
Připomeňme si známý výrok Billa Jensena z knihy Simplicity.
Množství informací se zdvojnásobuje po každých 1100 dnech, tedy zhruba po třech letech, nicméně, čas, který nám zůstává k zpracování těchto narůstajících informací je stále stejný: 1440 minut denně".
Toto tvrzení bohužel již také není zcela platné, množství informace se zdvojnásobuje za polovinu času. :-(.
Strukturovaná data, ale mají stále a budou mít místo, jsou systémy, které generují “jen” tuto formu dat, senzory, čítače, čtečky, transakce, účto, sklady, … takové vše “bez lidí” z pohledu vývojářů je idylka, vše pevně zaškatulkováno, nikde nic nepřetéká, indexy indexují, ovšem reálný svět takový není.
NEstrukturovaná data jsou opačný extrémní protipól, svět plný chaosu jako kvantové fluktuace, je to náš svět takový jako jsou sami lidé, svět plný textů, audio a video obsahu, emailů, stránek, sociálna … je to “lidský” rozměr dat, pro vývojáře pekelný, nikdo přeci nechce “cpát” profilovou fotku či 100MB video jako blob do tabulky.
Nestrukturovaná data a web aplikace
Tradiční pohled dnešních web aplikací je generování strukturovaného výstupu dat na základě uživatelského vstupu (formuláře/upload) a ukládání na tradiční úložiště (filesystém, relační databáze), doba se však mění a uživatelé k nám budou (chtějí) tlačit data, které nelze jednoduše rozbít do “chlívečků”, protože jejich struktuře nerozumíme, typický zástupce největšího zdroje těchto dat jsou sociální media.
Proč “nová” objektová úložiště je zcela legitimní otázka, v první řadě je nutné pochopit (viz studie IDC), že internet je zaplavován masivním nárostem nestrukturovaných dat.
Je nutně změnit tedy přístup k těmto datům, je nutné je umět efektivně obsloužit, zvládnout je ukládat je jedna věc (zde by nebyl problém s klasickým filesystémem), ale většinou požadujeme další vlastnosti, snadný přístup, metadata, škálovatelnost (škálování relačních DB je obecně problém, distribuované FS mají své problémy), redundanci a výkon a flexibilitu (metadata nemohou mít pevnou strukturu tak jako to např. známe z filesystémů).
Objekt jako základ je elementární “struktura”, objekty nejsou na storage organizovány (flat), žádné adresáře ani hierarchie, objekt je reprezentován pouze svým ID, vyšší logiku, smysl, uspořádání zajišťuje aplikace a proto je důležité kvalitní API rozhraní, které je v těsnější integraci přímo s aplikací (aplikace “programuje”/řídí úložiště), z toho pohledu není překvapující, že některá cloud úložiště mají rozhraní přímo přes protokol HTTP/s (všimněte si, že filesystémy nebyly nikdo moc dobře stavěné na přístup přes HTTP/s).
Ilustrace filesystému, blokového a objektového úložiště.
Kde to najdu, kde to kvete, AWS S3, Google Cloud Storage a ti druzí …
Začít experimentovat je “snadné”, Amazon Web Services je cloud platforma jejíž součástí je i služba AWS S3 (Simple Storage Service), zajímavou alternativou na testing/vývoj je projekt Minio, což je minimalistický object storage s API kompatibilní s AWS S3.
Dalším zástupce je Google Cloud Storage, nemáme přímé zkušenosti, přednáška byla ovšem dost zajímavá, cenově asi “zatím” stále lépe než AWS, také si zatím hrajeme.
Z opensource možností projekt Ceph, distribuované objektové úložiště umožňující blokovou i file storage, predikuje se velká budoucnost, společnost RedHat koupila projekt Ceph a otevřela ho veřejnosti, předpokládá se integrace s platformou OpenStack a posazení vedle OpenStack Swift object storage, což je další open projekt storage řešení nebo můžete zkusit hodit oko na openio.io.
A to je vše, díky za pozornost.
František Havel, MOJEservery.cz
Linux mini-howto?
Krátce o nástrojích ze života sysadmina.
Mikroslužba ipinfo.io
Pro menší projekt jsme hledali jednoduché řešení realizace IP address look/whois/geolokace a to nejlépe formou služby s jednoduchým API, k ruce nám velmi vhod přišla právě mikroslužba ipinfo.io, zřejmě by to šlo vše realizovat svépomocí, ale máme rok 2016 tak proč se trápit.
Protože na více místech používáme RabbitMQ (message broker, fronty, zprávy) a opravdu čas se s tímto konceptem naučit se již vyplatil, nebyl velký problém napsat si vlastní službu na vyřizování požadavků z fronty “rabbit whois” nad ipinfo.io, hlavní app je neinteraktivní a pouze přehazuje do fronty požadavky a nepotřebuje okamžitě odpověd, triviální.
ipinfo.io
Pohodlná služba s jednoduchým API, vrací výsledky v JSON (lze se i ptát v JSON), k dotazům lze použít vše co rozumí http protokolu (v placené variantě i https), základní verze je zdarma do 1000 dotazů/den, prostě super, nic více nepožadujeme, máme max. pár desítek požadavku za den a pokud se neplatu ipinfo běží na AWS.
API, API, API (Application Programming Interface) je takové zaklínadlo dnešní doby, pokud služba/aplikace nedisponuje rozhraním pro komunikaci je vyřízená, nebrat doslovně, pojem API aby zde byl mnohem dříve než z něho web stihl udělat buzzword, konec konců už i DOS měl své API v podobě přerušení int 21h, služby BIOSu jsou API, systémová volání v moderních systémech nejsou nic jiného než opět API.
REST (Representational state transfer)
REST představuje jeden z konceptů (architektur) je vytvořit rozhraní, je postavená nad volání metod protokolem HTTP, datově orientované a masivně používané, oblíbené.
ARC je aplikaci běžící uvnitř prohlížeče Chrome a dovoluje pohodlné odzkoušení API rozhraní, dříve jsme měli postup otestovat funkčnost a chování API pomocí jednoduchého řádkového klienta curl (a je stále dobré to umět, rozumět, lze to scriptovat a průběžně tak testovat) ještě předtím než zavoláte composer, požádáte ho o Guzzle a začnete “čarovat”.
Oficiální kniha Raspberry Pi projektů 2015 je venku, 200 stránek nápadů, inspirací a návodů Vás motivují a pomohou Vám s Vašim novým projektem, vhodné pro děti, výuku, učitelé, vzdělání a vše za tu nejlepší cenu, zdarma ve formátu pdf, elektronická verze také dostupná obchodech Google Play a Apple store.
Kniha Vám pomůže a ukáže jak rychle začít s malinou, provede Vás instalací systému, nastavením, ukáže zajímavé realizované projekty, tutoriály (návody), recenze, namátkou vybráno.
PI Video Wall (Video stěna NASA)
LEGO-LUTION PI (spojení LEGO a Pi)
Raspeberry Pi Cluster
iDATA TRUNK (geolokace nákladních vozů s Pi)
Sound Fighter (spojení piana a Raspberry Pi , Arduino)
Super Nintendo emulátor s Raspberry Pi
Magické LED zrcadlo
PISCAN (ruční snímač čárových kódu ve spojení s Pi)
Poskytujeme technickou podporu na minipočítač Raspberry Pi a Arduino , pomoc s rozběhnutím, instalace, zaškolení, workshopy pro zájemce a nedílnou součástí je i vývoj software/hardware a řešení postavená na embedded platformou Raspberry Pi, nebojte se nas kontaktovat.
Raspberry Pi 2 skladem Tachov, Planá, Mariánské Lázně
Nejrychlejší komplikace OpenWrt, pro úplné nováčky, nebojte se postavit si vlastní systém na míru, dle vlastních potřeb, díky automatizovanému build systému je to snadné.
Komplikaci provedeme na Debianu, budeme potřebovat cca 4GB volného místa a trpělivost, OpenWrt má vlastním buildovácí systém (Buildroot, můžete na něj narazit leckde, je to populární nástroj pro sestavení embedded Linuxu) pro cross-compile (sestavuje na x86 ale výstup poběží na jiné platformě).
Nainstaluje nezbytné věci pro překlad,vývoj a git (build-essential, ať žije síla balíčkovacích systému), poté klonujeme git repozitář OpenWrt, jdeme na to.
Tak, máme základ OpenWrt stažen (cca 200MB), nyní potřebujeme balíčky (feeds, potravu) pro sestavení, další se budou dotahovat podle toho vše budeme chtít začlenit.
havel@havel-machine:~/Work$ cd openwrt
havel@havel-machine:~/Work/openwrt$ ./scripts/feeds update -a
havel@havel-machine:~/Work/openwrt$ ./scripts/feeds install -a
Tak konsole na nás hodně křičela, stáhlo se cca dalších 50MB dat, ale nebojte se ničeho, pokračuje dále k sestavení.
havel@havel-machine:~/Work/openwrt$ make defconfig
havel@havel-machine:~/Work/openwrt$ make prereq
havel@havel-machine:~/Work/openwrt$ make menuconfig
Po poslední příkazu se dostáváme k textovému menu, zde si vybereme co chceme sestavit, pro jakou architekturu, jaké balíčky zahrneme (ty se následně stáhnout ve formě zdrojového kódu a zkompilují), jak krásné a jednoduché.
Nejklíčovější je výběr správné cílové architektury (target), otevřete menu, vyberte Broadcom BCM2708/BCM2709 pro Raspebrry Pi 2, stejným způsobem můžete přeložit OpenWrt pro cokoliv jiného, výběr je velmi široký.
Doporučuji si pohrát s v menu Target images -> Boot SD card partition size a Root filesystem partition size , což jsou velikosti oddílů pro boot a root, jako filesystém nechávám ext4.
V kernel -> Wireless si vyberte ovladače pro bezdratové adaptéry pokud je budete používat, já jsem si ještě začlenil VLAN (802.1q), zabbix agenta, LuCI, LuCI Asterisk, coova-chilli a pár dalších, hodí se i wpa_supplicant, obecně menuconfig je velmi bohatý projděte se ho až budete mít chvilku, vše co zaškrtáte má vliv na dobu komplikace, množství stahovaných dat i výslednou velikost image.
Jdeme buildovat (komplikovat), pozor z menuconfig vyberte Save, uložte do souboru .config a až poté exit.
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
havel@havel-machine:~/Work/openwrt$ make -j 3
make[1] world
make[2] tools/install
make[2] package/cleanup
make[3] -C tools/patch compile
make[3] -C tools/expat compile
make[3] -C tools/sstrip compile
make[3] -C tools/make-ext4fs compile
... čekejte a čekejte ...
... pokud jste pozorní všimnete si, že openwrt si samo sestavilo gcc (překladač, či obecně tzv. toolchain) pro své pokračování v překladu ...
make[3] -C toolchain/gcc/final compile
make[3] -C toolchain/gcc/final install
make[2] target/compile
make[3] -C target/linux compile
Hotovo, výstup (připravený image) najdete v openwrt/bin/ , OpenWrt build automaticky sestavil image pro modely Raspberry b,b+ a CM (Compute Module).
OpenWrt obsahuje balíčkovací systém opkg, jde o repositáře s předkompilovaným software pro danou platformu, není nutné tedy software (userspace + ovladače) kompilovat pokud nechcete, ale ta možnost tu stále je. Pro úplnost, balíčky jsou soubory s koncovkou .ipk např. iperf_2.0.5-1_brcm2708.ipk.
Pro Broadcom 2708 a 2709 tedy Raspberry Pi 2 použijte tento předkompilovaný repositář, nastavte si ho v /etc/opkg.con a udělejte opkg update, získáte přístup k rozsáhlému množství software.
Hotovo, tak kompilujte, pokud bude zájem je možné si příště ukázat patchnutí a kompilace OpenWrt jako metarouter Mikrotik s instalací VoIP telefonní ústředny Asterisk, za velmi nízké náklady tak získáte router s Wifi, až ethernet 10portů pro LAN a VoIP telefony.
Užívejte moudře, díky za pozornost. František Havel, MOJEservery.cz.
Linux mini-howto?
Krátce o nástrojích ze života sysadmina.
SSH login notifikace emailem
Krátké a jednoduché, chcete info(oznámení) do emailu po přihlášení uživatele na SSH server? Jednoduchý script ukazuje jak na to, nejde o náhradu za komplexní systémy s logování na centrání vzdálený server, ale pro malé použití a případně další čarování s sshrc se může hodit.
Kde spouštět SSHrc script?
~./ssh/rc – lokální konkrétní uživatel
/etc/ssh/sshrc – globálně pro všechny uživatele
SSHrc script
Napsán pro Vás jednoduchý ukázkový script v bashi, použijte ho, upravujte dle potřeby.
A to je vše! (! script opravdu není uvozen #!/bin/bash )
Na serveru musí být v provozu mail subsystém, alespoň jako stmp relay, tak aby email mohl odejít, navíc může být zpracování sshrc potlačeno konfigurací (ForceCommand, ssh -N apod.).
Užívejte moudře, mějte přehled o přístupech na Váš SSH server.
Díky za pozornost. František Havel, MOJEservery.cz
Připraveno ke stažení a použití, testujte je to zdarma !
Microsoft po předchozím developer insider preview uvolnil oficiální verzi Windows 10 IoT (Internet of Things) pro platformy Raspberry Pi 2, MinnowBoard Max a Intel Galileo.
Chcete Raspberry Pi 2? Skladem Tachov, Mariánské Lázně, Planá, můžete ho mít ještě dnes ! Kontaktujte nás.
Není plnohodnotná verze Windows 10 pro desktop! Je upravená pro mini počítače a vývoj, nepotřebuje display, lze použít k připojení SSH, integruje vývojové nástroje (python, node.js,…), podpora pro GPIO rozhraní, wireless rohraní, device-command-line tools, nástroje pro portování aplikací, powershell, integrace s Visual Studio, debugger, FTP, Arduino podpora a další nástroje.
Buďte kreativní, rozviňte výjimečný potenciál sebe i svých dětí, nabízíme Vám unikátní příležitost, nabízíme Vám platformu Arduino včetně možnosti školení za atraktivní ceny, poprvé skladem k osobnímu převzetí Tachov, Planá, Mariánské Lázně.
Objevte dokonalost a ještě dnes můžete mít Arduino u sebe, poštou expedujeme 24hodin (zpravidla druhý den u Vás).
! Připravuje od září 2015 jednoduchý eshop s Arduino a Raspberry Pi !
Školení!
Pro zájemce, jednotlivce i skupiny nabízíme možnost zaškolení do platformy Arduino, krátký praktický workshop Vám pomůže objevit kouzlo chytré elektroniky.
! Připravuje pro Vás jednoduché start-up video jak rychle začít s Arduino platformou !
UNO R3 ATMEGA328 kompatibilní s Arduino.
Cena: 199Kč/ks
Možnost osobního odběru Tachov, Planá, Mariánské Lázně nebo poštou pro přespolní za přijatelných 40Kč.
Jak objednat Arduino?
Stačí nás kontaktovat kontaktovat přes jednatele (František Havel), způsob je na Vás, telefon, email, facebook, twitter, zbytek zařídíme.
Součástí balení
1x USB kabel pro připojení
pinové lišty pro možnost osazení Arduino do DPS (desky plošného spoje)