Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
E
edd_workshop
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 1
    • Merge Requests 1
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Jiří Fejfar
  • edd_workshop
  • Wiki
  • Home

Last edited by Jiří Fejfar Feb 06, 2020
Page history

Home

  • Abstrakt
    • Poděkování
  • Prerekvizity
  • Obsah školení (návrh p2d2 2020)
    • 1) Seznámení s technologiemi (1.5 h)
      • 1a) Prostředí Dockeru (30 min)
      • 1b) PostgreSQL extenze (45 min)
      • 1c) Propojení s GitLab CI/CD (15 min)
    • 2) Otázky / rezerva (0.5 h) – je možné zařadit úplně na konec
    • 3) Praktické cvičení (1.5 h)
      • 3a) Data
      • 3b) Zadání úkolu
      • 3c) Způsob řešení
  • Zpětná vazba & kontakt

Abstrakt

Během školení si ukážeme tvorbu jednoduché DB aplikace coby extenze (něco jako nfiesta_pg) a její napojení na gitlab CI/CD (zejména spouštění regresních testů v dockeru).

Prezentovaná aplikace se nebude omezovat jen na "funkční část" ale bude obsahovat i nějaká data (tj. podíváme se na rozdíly mezi tabulkami a konfiguračními tabulkami). Pokud zbude čas, zkusíme si extenzi rozšířit o něco málo s geodaty a PostGISem.

Posluchači by asi měli mít základní představu o PG, gitu, dockeru.

Poděkování

  • http://nil.uhul.cz/
  • https://gitlab.com/nfiesta

Prerekvizity

Vyplňte prosím krátký dotazník s preferencemi k obsahu školení a dovednostmi účastníků.

Požadavky na SW:

  • funkční prostředí Docker
    • Windows 10 build 18917 nebo vyšší (nemám odzkoušeno): WSL2 (viz blog)
    • Windows 10 ostatní: viz https://docs.docker.com/docker-for-windows/install/ (budeme používat linuxové kontejnery)
    • Linux: viz https://docs.docker.com/install/linux/docker-ce/ubuntu/
    • jiné Windows: prosím kontaktujte mě předem, nejlepší je asi Linux ve VirtualBoxu
  • pgAdmin IV (pokud nebudete používat pouze psql): https://www.pgadmin.org/download/pgadmin-4-windows/
  • QGIS (pokud bude školení obsahovat práci s geodaty): https://www.qgis.org/en/site/forusers/download.html

Obsah školení (návrh p2d2 2020)

Obsah školení bude přizpůsoben podle výsledků dotazníku.

1) Seznámení s technologiemi (1.5 h)

Posluchač se seznámí se základními technologiemi. Výsledkem je funkční "individualizované" vývojové prostředí a nastavéné spouštění regresních testů na straně gitlabu.

1a) Prostředí Dockeru (30 min)

  • Dockerfile
  • způsob "baremetal instalace" vs. Postgres image
    • perzistentní data – nepoužijeme
  • "zabydlení" v Docker kontejneru: připojení, sdílení adresáře, mapování portů, git
  • spuštění PostgreSQL
  • manuální spouštění testů a práce v DB (psql)
  • připojení zevnějšku kontejneru pomocí pgAdmin4 / QGIS

1b) PostgreSQL extenze (45 min)

  • PostgreSQL extenze a metodika Evolutionary Database Design (viz martiflower.com, wiki)
  • updatescripty, makefile a controlfile
  • statická (configuration tables) a dynamická data
    • select * from pg_catalog.pg_extension;
  • regresní testy (30 min)

1c) Propojení s GitLab CI/CD (15 min)

  • https://about.gitlab.com/pricing/
  • upload Docker image do prostředí GitLab
  • konfigurační soubor .gitlab-ci.yml
  • lokální spouštění testů pomocí nástroje gitlab runner (je možné vynechat)
  • speciality gitlab – webový editor (je možné vynechat)
  • deploy výsledku na statické stránky (je možné vynechat)

2) Otázky / rezerva (0.5 h) – je možné zařadit úplně na konec

3) Praktické cvičení (1.5 h)

Ukázka vývoje DB aplikace cca metodikou EDD: issues, git větvě, merge, preprodukce, produkce.

3a) Data

https://gitlab.com/jurafejfar/edd_workshop/-/wikis/data

3b) Zadání úkolu

Vytvoříme jednoduchou databázi zákazníků seskupených do skupin podle obchodníků, kteří je mají na starost. Z adres zákazníků vytvoříme geografickou polohu a zhodnotíme efektivnost rozčlenění zákazníků mezi obchodníky z hlediska polohy. Volitelně je možné implementovat funkce hledající optimální cestu mezi zákazníky atp. (geo-aplikace). Volitelně je možné sledovat kupříkladu tržby od zákazníků a dávat je do souvislosti s obchodníky (statistika – plpythonu / plr).

3c) Způsob řešení

  • aktivní účastnící si zvolí svoje issue, které řeší, výsledkem je updatescript
    • tabulka zákazníků
    • tabulka obchodníků
    • přidání sloupce s geometrií
    • funkce pro převod adresy na geometrii
  • průběžně je možné monitorovat ve větvích postup a dále hodnotit kvalitu updateskriptů při mergerequestu
  • účastníci kteří se nechtějí aktivně zapojit mohou sledovat celý postup případně na lokálním prostředí experimentovat

Zpětná vazba & kontakt

Vyplňte prosím krátký dotazník týkající se spokojenosti se školením, připomínek a návrhů.

Jiří Fejfar

email

Clone repository
  • data
  • Home