V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
JavaScript používáme nejen v HTML5 webovém klientu, ale i na serveru prostřednictvím node.js. V kombinaci jazyků C a Perl je napsán klíčový ROLAP server a také unikátní a inovativní datové úložiště EventStore. V Javě zase ETL komponenty, které propojují naši platformu s partnerskými aplikacemi a jiným zdroji dat. O exekuci a rovnoměrné rozložení výpočetních, transformačních i jiných úkolů v clusteru se pak stará middleware v Erlangu, jazyku s přirozenou podporou pro vytváření škálovatelných aplikací, a platfomě OTP (Open Telecom Platform), která poskytuje bohatou knihovnu funkcí pro psaní robustních distibuovaných aplikací.
Na členy QA týmu klade takové vysoce heterogenní prostředí mnohdy větší nároky než na vývojáře, kteří se většinou drží víceméně na "svém písečku", tedy v prostředí svého oblíbeného programovacího jazyka. QA engineer musí jednotlivé komponenty a jejich interakce vidět v širších souvislostech a dohlédnout důsledky nových a nových funkcionalit začleňovaných během času do systému. QA engineer sice nemusí být expertem na tu kterou konkrétní technologii, ale zároveň musí disponovat jakýmsi obecným přehledem o jejích principech, specifikách a vhodnosti jejího použití v té které situaci. Z druhé strany lze ovšem říci, že tato komplexnost je i největším pozitivem takové práce. Možnost osahat si zblízka tak široké spektrum moderních technologií a odhalovat úskalí a potenciální problémy jejich vzájemné integrace je velikou výzvou a dobrodružstvím.
Kvalita kódu a vývojem dodávané funkcionality je kontrolována na mnoha úrovních. Testy řízený vývoj a kontinuální integrace jsou v GoodData samozřejmostí, takže vývojáři standardně pokrývají svůj kód unit testy a komponentovými testy. Úkolem infrastrukturní části QA oddělení je pak efektivní exekuce tisíců takových testů v Hudsonu, serveru pro kontinuální integraci, a zajištění včasného varování. Kromě těchto nízkoúrovňových testů máme k dispozici ještě další indikátory a nástroje k detekci problémů. Například data-driven testy chroupající neustále desítky gigabajtů dat a u tisíců reálných reportů a dashboardů porovnávající vypočtená čísla pro předchozí a novou verzi produktu. A samostatnou kapitolu tvoří takzvané REST testy, což jsou integrační testy, které pokrývají de facto všechny komponenty platformy kromě webového klienta. Ten komunikuje se serverem výhradně prostřednictvím RESTových API, takže každý případ užití, každou funkcionalitu, kterou GoodData nabízí, lze reprezentovat jako sekvenci HTTP požadavků. Od loginu přes vytvoření projektu, nalití dat až po konfiguraci a spočítání reportu.
Velkou QA výzvou zůstává automatické testování webového klienta. Jelikož je napsán kompletně v JavaScriptu, je možné sice řadu aspektů prověřit na úrovni unit testů a je také možné také jednotlivé UI komponenty separátně instanciovat v browseru, ovšem automatizované testy na akceptační úrovni jsou vzhledem k dynamičnosti a všudypřítomné asynchronicitě (AJAX) velkým oříškem. Nelze říci, že bychom nezaznamenali na tomto poli alespoň částečné úspěchy, ale robustní a flexibilní framework pro tento typ testů je jeden z úkolů, který v GoodData chceme a budeme řešit v blízké budoucnosti.
I když věříme v automatizaci, je jasné, že bez manuálního testování se zejména v rychle se měnícím webovém uživatelském rozhraní neobejdeme. V této oblasti hraje v GoodData hlavní roli testovací tým našeho kontraktora z vietnamského Ho Či Minova města, firmy LHV, která má s outsourcovaným testováním bohaté zkušenosti, včetně spolupráce s několika českými společnostmi. Říká se, že off-shoring nemá kromě ceny žádnou jinou výhodu. Jenže outsourcovat QA do Vietnamu je jako outsourcovat běžecký tým do Keni: pracovitost, pečlivost, disciplína a smysl pro detail jsou v QA vlastnostmi nejcennějšími a naši asijští kolegové jimi disponují od přírody. V agilním prostředí GoodData se pak i šestihodinový (v létě pětihodinový - ve Vietnamu není letní čas) časový rozdíl stává výhodou: když přijdeme v Praze do práce, máme k dispozici výsledky testů a JIRA je plná ještě teplých defektů, z nichž mnohé jsou během dne opraveny. A poslední odpolední, automatickými testy prověřený build je večer nasazen na testovací prostředí, které je ráno vietnamského času připraveno na verifikaci a další testovací scénáře. Klíčová je samozřejmě komunikace: primitivní představa o off-shoringu, že pošlete e-mail se specifikací na jiný kontinent a zpátky se vám vrátí dokonalý produkt je scestná. Kromě časové bariéry je tu i bariéra jazyková a také možná ta největší: kulturní. Intenzivní komunikací a každodenním přenosem znalostí lze však všechny tyto obtíže překonat a zajistit spolupráci, která je ekonomicky výhodná nejen na první pohled, ale je efektivní, vzájemně inspirativní a nevede k oboustranné frustraci tak časté, jak tomu bývá při pokusech o realizaci tohoto konceptu.
QA v GoodData nejenže bedlivě sleduje práci vývojářů, ale také jim poskytuje nástroje k tomu, aby mohli rychle otestovat své výtvory. Produkční cluster GoodData platformy čítá v současné době téměř 70 linuxových serverů většinou dedikovaných specifickému úkolu, ale pro testovací účely jsme schopni desítky běžících služeb a komponent směstnat na jeden stroj se 7,5 GB paměti a čtyřmi procesory (v terminologii Amazon EC2 m1.large). Nástroj, který takovou tzv. personální instanci (PI) je schopen nastartovat v Amazon Elastic Cloudu, nainstalovat na ní potřebný software a zároveň ji na různých úrovních (REST API, UI,...) otestovat, pochází právě z dílny GoodData QA. Vývojář má během krátké doby k dispozici úplně nový, čistý stroj nainstalovaný z vlastní gitové větve a vše, včetně deployment skriptů, na něm může otestovat. Když je hotov, může stroj vypnout a "zahodit". Odpadají tak problémy typické pro sdílená testovací prostředí, kde je každá část rozbita zásahy jednoho developera a dlouhé hodiny jsou vyplýtvány na údržbu a zjišťováním příčin záhadných selhání.
GoodData dodává svým zákazníkům novou funkcionalitu každé dva týdny a QA manager zastává současně i roli release managera, který plánuje a koordinuje celé období stabilizace a určuje, které defekty je nutno opravit okamžitě, a které mohou počkat na následující "Bug-fixing Day" (koná se jednou za vývojový cyklus a vývojáři ho tráví spravováním problémů s nižší prioritou a "čištěním" bug trackeru). Pozice QA v GoodData je tradičně velmi silná a je v její pravomoci odložit release v případě problémů, které by mohly ovlivnit našeho zákazníka. Zároveň je třeba říci, že vývojáři v GoodData si důležitost kvality uvědomují a vztah obou oddělení je tak rovnocenně partnerský.
Každý release s sebou samozřejmě přináší nějaký ten stres, ale na druhou stranu, když se vše povede, můžete ještě tentýž den čekat zpětnou vazbu od zákazníků. Ve staromódním produktovém vývoji bývá vývojový cyklus půl roku i více, přičemž po vydání nové verze ještě nějakou dobu trvá než se dostane k zákazníkovi. U softwaru jako služby na zákaznické ohlasy čekat nemusíte: o případných problémech se dozvíte hned a můžete začít plánovat okamžité i dlouhodobější kroky nutné k nápravě a vylepšení kvality. Na druhou stranu, když problémy nejsou a zákaznické reakce jsou pozitivní, následuje ihned po lehce adrenalinovém releasu zasloužená radost a uspokojení z dobře vykonané práce.
Lubomír Zrnečko
QA Manager
GoodData
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
efektivní exekuce tisíců takových testů v Hudsonu
vas nejvyssi je poradcem v Cloudbees a vy pouzivate Hudson?? Zajimave
Jinak bych ocenil spis podrobnejsi popis, v cem jake testy pisete, co pouzivate, jake zajimave problemy jste resili (napr. tak, jak je popsan onen nastorj na tzv. personální instanci (PI) na me pusobi dojmem, ze tohle jde naklikat v Hudson/Jenkins pomerne jednoduse a nemusi se na to delat zadny novy nastoj - ve skutecnosti to ale hadam asi tak jednoduche neni) atd.
Testy řízený vývoj a kontinuální integrace jsou v GoodData samozřejmostíTo mám radost, že to aspoň někdo tak vidí