ݺߣ

ݺߣShare a Scribd company logo
Confidential. Do not distribute.
Ondřej Hlaváček (najloš)
● Praha, Vancouver, Chicago
● ~50 lidí
● Dev tým
○ 18 lidí, nevlezeme se do kanclu
○ Remote
○ 500.keboola.com
● Vlastní produkt
● Investoři (nemáme)
● Černá čísla od prvního dne
● 10+ let
● Frontend, backend,
infrastruktura
● 2014 – orchestrační nástroj na
dávkové joby (Docker
kontejnery)
● Adopce Azure
Keboola & Já
● Produkt, který sami
potřebujeme
● Cloudová platforma pro práci
s daty
● “Datový Operační systém”
● Prostředí pro provoz aplikací
pro práci s daty
● Multicloud
● Multitenant + singletenant
● Uživatelé
● mají Projekty
● a v nich Storage (data)
● a Komponenty (kód)
● pro ně vytvoří Konfigurace,
● jejich spuštěním vzniknou Joby
● pravidelné pouštění
posloupností Jobů řeší
Orchestrátor
● Vše je Verzované
Co je Keboola (Connection)?
Co je Keboola (Connection)?
1. Oracle extraktor stáhne data z
CRM.
2. SQL transformace vyčistí data a
připojí počasí.
3. Python transformace data
zakategorizuje podle modelu.
4. Tableau writer pošle data do
Tableau Server.
5. Kategorie se pošlou zpět do CRM.
6. To vše každou hodinu.
● Storage = Snowflake
○ ~50 TB, 1 b řádků
○ Do projektů nesmíme
● Komponenta = Docker image
○ ~1000 komponent, 700 cizích
○ ~16 000 verzí
● Konfigurace = json
○ ~120 000 konfigurací
○ ~1 500 00 verzí
● Job ~ Docker container
○ ~43 000 denně
○ 24 hodin za minutu
● Exponenciální růst
● Konfigurace je stav UI formuláře
a cizí kód
○ SQL, Python, R, AWQL...
● Do Storage nevidíme
● Do Konfigurací vidíme
● Ale nemůžeme je měnit
○ Enterprise level audit trail
● Stejné prostředí pro všechny
○ Žádné uživatelské nebo projektové
nastavení, jen featury.
● Legacy
○ Odstraněný UI prvek zůstane
navždy v konfiguracích
Prostředí
Vznik a zánik featury
Čím nás to zatěžuje
● Žádné featury na zakázku
● Požadavkům zákazníků
navzdory
● Zpětná kompatibilita (API i UI)
● Uložené Dzfigܰ musí
zůstat funkční
● Migrace na nové komponenty
● Legacy
Co se děje
● Posouvání platformy dopředu
○ Nové technologie
○ Změna use-case
○ Změny architektury
● Vnější okolnosti
○ Nová technologie
○ Změny cizích API
○ Security, governance
○ Zrušená technologie
● Příležitost, (ne)baví nás
● Podplacení zákazníkem
STRAŠNĚ TO
TRVÁ!!!
Update Python 3.6.4 → 3.6.5
Release Python 3.6.5
Oznámení
70 Python transformací využívá
odstraněnou funkci
Další ping
30 transformací
v 6 projektech
Opt-out
Implementace možnosti
odložit update
3
2018
4
2018
5
2018
7
2018
10
2018
11
2018
1
2019
2
2019
Adresný ping
Asi 25 ticketů
BC break v PIP
Update + Revert
Hurá!
Pohár přetekl
6 transformací ve 2
projektech
Update a revert
(protože Pandas)
Další Update
A revert
(protože APT)
MySQL transformační backend
AWS Redshift
30minutový limit
omezení délky běhu (My)SQL na 30
minut (incentiva na přechod na
Redshift)
Q3 Deprekace
oznámení deprekace MySQL,
support do konce Q1/2018,
vypnutí zakládání v UI bez featury
Deaktivace
Přes featuru
2014 2015 2016 2017 2018 2019
Snowflake
MySQL nedává žádný smysl!MySQL je pomalý bráška
Vypnutí
NIC!
MySQL transformační backend
JobyNové Dzfigܰ
Kudy na to?
Kudy na to?
● Komunikace
○ Oznámení deprekace včas
○ Dodržovat termíny
● Vztah se zákazníkem
● Náhrada / incentiva
○ Zvýšení výkonu
● Duplikace komponenty
○ https://medium.com/@herbcaudill/lessons-fro
m-6-software-rewrite-stories-635e4c8f7c22
● Migrace
○ Automatické / ruční
○ Klient
● Feature toggles
○ Featura na vypnutí
● Reverty
○ ~2500 releasů, 1–2 % revert
● Monitoring
○ Infrastruktura
○ Chyby
○ Support
Nejsme v tom sami
Q&A

More Related Content

Ondřej Hlaváček: Životní cyklus featury

  • 1. Confidential. Do not distribute. Ondřej Hlaváček (najloš)
  • 2. ● Praha, Vancouver, Chicago ● ~50 lidí ● Dev tým ○ 18 lidí, nevlezeme se do kanclu ○ Remote ○ 500.keboola.com ● Vlastní produkt ● Investoři (nemáme) ● Černá čísla od prvního dne ● 10+ let ● Frontend, backend, infrastruktura ● 2014 – orchestrační nástroj na dávkové joby (Docker kontejnery) ● Adopce Azure Keboola & Já
  • 3. ● Produkt, který sami potřebujeme ● Cloudová platforma pro práci s daty ● “Datový Operační systém” ● Prostředí pro provoz aplikací pro práci s daty ● Multicloud ● Multitenant + singletenant ● Uživatelé ● mají Projekty ● a v nich Storage (data) ● a Komponenty (kód) ● pro ně vytvoří Konfigurace, ● jejich spuštěním vzniknou Joby ● pravidelné pouštění posloupností Jobů řeší Orchestrátor ● Vše je Verzované Co je Keboola (Connection)?
  • 4. Co je Keboola (Connection)? 1. Oracle extraktor stáhne data z CRM. 2. SQL transformace vyčistí data a připojí počasí. 3. Python transformace data zakategorizuje podle modelu. 4. Tableau writer pošle data do Tableau Server. 5. Kategorie se pošlou zpět do CRM. 6. To vše každou hodinu.
  • 5. ● Storage = Snowflake ○ ~50 TB, 1 b řádků ○ Do projektů nesmíme ● Komponenta = Docker image ○ ~1000 komponent, 700 cizích ○ ~16 000 verzí ● Konfigurace = json ○ ~120 000 konfigurací ○ ~1 500 00 verzí ● Job ~ Docker container ○ ~43 000 denně ○ 24 hodin za minutu ● Exponenciální růst ● Konfigurace je stav UI formuláře a cizí kód ○ SQL, Python, R, AWQL... ● Do Storage nevidíme ● Do Konfigurací vidíme ● Ale nemůžeme je měnit ○ Enterprise level audit trail ● Stejné prostředí pro všechny ○ Žádné uživatelské nebo projektové nastavení, jen featury. ● Legacy ○ Odstraněný UI prvek zůstane navždy v konfiguracích Prostředí
  • 6. Vznik a zánik featury Čím nás to zatěžuje ● Žádné featury na zakázku ● Požadavkům zákazníků navzdory ● Zpětná kompatibilita (API i UI) ● Uložené Dzfigܰ musí zůstat funkční ● Migrace na nové komponenty ● Legacy Co se děje ● Posouvání platformy dopředu ○ Nové technologie ○ Změna use-case ○ Změny architektury ● Vnější okolnosti ○ Nová technologie ○ Změny cizích API ○ Security, governance ○ Zrušená technologie ● Příležitost, (ne)baví nás ● Podplacení zákazníkem
  • 8. Update Python 3.6.4 → 3.6.5 Release Python 3.6.5 Oznámení 70 Python transformací využívá odstraněnou funkci Další ping 30 transformací v 6 projektech Opt-out Implementace možnosti odložit update 3 2018 4 2018 5 2018 7 2018 10 2018 11 2018 1 2019 2 2019 Adresný ping Asi 25 ticketů BC break v PIP Update + Revert Hurá! Pohár přetekl 6 transformací ve 2 projektech Update a revert (protože Pandas) Další Update A revert (protože APT)
  • 9. MySQL transformační backend AWS Redshift 30minutový limit omezení délky běhu (My)SQL na 30 minut (incentiva na přechod na Redshift) Q3 Deprekace oznámení deprekace MySQL, support do konce Q1/2018, vypnutí zakládání v UI bez featury Deaktivace Přes featuru 2014 2015 2016 2017 2018 2019 Snowflake MySQL nedává žádný smysl!MySQL je pomalý bráška Vypnutí NIC!
  • 12. Kudy na to? ● Komunikace ○ Oznámení deprekace včas ○ Dodržovat termíny ● Vztah se zákazníkem ● Náhrada / incentiva ○ Zvýšení výkonu ● Duplikace komponenty ○ https://medium.com/@herbcaudill/lessons-fro m-6-software-rewrite-stories-635e4c8f7c22 ● Migrace ○ Automatické / ruční ○ Klient ● Feature toggles ○ Featura na vypnutí ● Reverty ○ ~2500 releasů, 1–2 % revert ● Monitoring ○ Infrastruktura ○ Chyby ○ Support
  • 13. Nejsme v tom sami
  • 14. Q&A