SlideShare une entreprise Scribd logo
1  sur  30
Michal Podzimek, Jonáš Klimeš 19. června 2018
Bitcoinová burza
Coinmate.io
2
Osnova
1. Bitcoin (kryptoměny), burzy
2. Burza na zelené louce
3. Rozvoj formou teamlease
4. Růst kryptoměn i projektu
5. Shrnutí
Bitcoin (kryptoměny)
a burzy
1
4
Co je Bitcoin (kryptoměny)
› Digitální (krypto) měna
– Plně decentralizovaná
– Žádný prostředník
– Nízké transakční poplatky
– Pseudonymní
– Otevřený kód
– V provozu od roku 2009
5
Bitcoinové burzy
› Bitcoinové burzy
– MT. Gox (Magic: The Gathering Online
eXchange)
– Bitstamp.net
– BTC-e.com
– Bitfinex.com
› Funkce burzy
– Registrace uživatelů, správa účtu,
obnovení hesla, …
– Verifikace uživatelů, AML procesy
– Vklady a výběry FIAT měn a kryptoměn
– Obchodování – mezi uživateli
– API
– Reporty, statistiky, grafy
– Administrace
Burza na
zelené louce
2
7
Analýza
› Nabídka
› Schůzky se zákazníkem
– Vyjasňování funkčnosti
› Obrazovky
– HTML prototyp
› 3 iterace
– Schvalování, faktura, rozhodování zda pokračovat
› Průběžné zapracování připomínek a změn
2014 2014
DubenLeden
8
Obecná architektura
OkPay
EgoPay
Bitcoin
Google
Authenticator
User
Frontend Backend
Database
Admin
9
Proof of Concept
› Požadavky:
– Bootstrap
– Load on demand
– Živá aktualizace grafu a jiných komponent
– Bezpečnost, javascriptové GUI, integrace
se Springem
› Zkoumané technologie
– JSF
– Vaadin
– Zkoss
› Vítězí Zkoss
– Slibuje Bootstrap, load on demand, http push
– Moderní AJAXový Java framework
– Vaadin nelze integrovat s Bootstrapem
– V JSF by http push byl pracný
› Angular a React.JS nebyly prověřené
2014
Duben
10
Technologie
› Java
› Oracle
› MyBatis
› Spring
› EhCache
› Zkoss
› Bootstrap
11
xStage Env.
Ideální podoba cesty jednoho řádku kódu
Vývojář VCS Continuous
Integration
Quality Gate Test Env.
Monitoring & Planning
Testing
Production
12
Způsob spolupráce
› FTFP
– V rámci iterací fixovaný rozsah, cena a čas
– Zákazník ví, co a za kolik dostane
– Nevhodné pro často se měnící požadavky a priority
› Bodyshop
– Fixované zdroje, zákazník platí za odpracované hodiny
– Vyšší organizační nároky na straně zákazníka
– Zodpovědnost a rizika nese zákazník
› Teamlease
– Sehraný tým, specificky připravený pro danou poptávku
• Složení týmu je naše zodpovědnost – zákazník říká požadovanou kapacitu
• Zákazník se nestará o organizaci týmu
– Zodpovědnost za dodání je na týmu, zákazník platí za odpracované hodiny
– Máme větší možnosti uplatnit široké zkušenosti s dlouhodobým dodáváním
a rozvojem IT systémů
– Změny v týmu na naše náklady
Rozvoj formou
teamlease
3
14
Rozvoj formou teamlease
› Zákazník investuje do rozvoje
opatrně
– Prioritu měly úkoly viditelné
pro klienty
› Release
– 1 velký (půl roku práce)
– 4 střední (cca měsíc práce)
– drobné úpravy a bug fixy
2016 2017
Leden Červen
15
Průběžný vývoj
› 2014 – zahájení produkčního provozu
› 2015 – nové platební metody, Quick Buy/Sell, USD  EUR
› léto 2016 – tradeview, CZK/BTC
› zima 2017 – automatizace verifikace klientů
› červen 2017 – migrace do AWS
Infrastruktura
› Spravuje si zákazník
› Původně menší hosting serverů v Anglii
– Problém s DDoS
› Azure
– Výhodné podmínky
– Virtuální servery s Linuxem
› Nutná reinstalace
– Nutný upgrade OS
– Nutný licenční upgrade DB
– Revize infrastruktury po 2 letech
– Zákazník si již nechce spravovat servery sám
› Přebíráme i správu infrastruktury
2016 2017
Červen
2015
Leden
2014
Říjen Prosinec
17
Migrace do Amazon Web Services
› Azure
– Zákazník má předplacené kredity
– Omezené možnosti správy Linux serverů
– Nemá managed Oracle DB
› AWS
– Zákazník preferuje, je tam i burza Bitstamp
– Lepší podpora Linux serverů
– Má managed Oracle DB (RDS)
› Migrace dat
– Postupná migrace pro zkrácení doby odstávky
Růst kryptoměn
i projektu
4
19
Růst kryptoměn i projektu
› Roste cena BTC i počty zákazníků burzy
› Problémy trhu
– Forky – BitcoinCash, Seqwit, Segwit2x
– Dlouhá doba zpracování transakcí
– Velké poplatky
› Zákazník má hodně požadavků
– Nutná prioritizace do releasů
– Více požadavků na správu klientů  automatizace
› Release
– Větší jednou za 1–2 měsíce
2017 2018
ČervenČervenec
20
Pracovní proces
› Rozšiřování týmu
› Pro zachování podpory častých změn jsou nutné úpravy procesu
› Paralelní práce na jednotlivých požadavcích
– Zadání
– Hrubá analýza a prioritizace
– Analýza
– Detailní odhady pracnosti
– Implementace
› Vytvoření releasu z implementovaných částí
– Přechod ze SVN na Git
RELEASE 10
RELEASE 11
ZADÁNÍ PRIORITIZACE
ANALÝZA
A ODHADY
IMPLEMENTACE
ZADÁNÍ PRIORITIZACE
ZADÁNÍ PRIORITIZACE
ANALÝZA
A ODHADY
IMPLEMENTACE
ZADÁNÍ PRIORITIZACE
ANALÝZA
A ODHADY
ZADÁNÍ PRIORITIZACE
ANALÝZA
A ODHADY
IMPLEMENTACE
NASAZENÍ
NASAZENÍ
21
Průběžný vývoj
› 2014 – zahájení produkčního provozu
› 2015 – nové platební metody, Quick Buy/Sell, USD  EUR
› léto 2016 – tradeview, CZK/BTC
› zima 2017 – automatizace verifikace klientů
› červen 2017 – migrace do AWS
› září 2017 – automatické výběry přes Fio banku
› říjen 2017 – Litecoin a usnadnění přidávání dalších měn
› prosinec 2017 – Bitcoin Cash
› únor 2018 – Admin GUI  Angular
› duben 2018 – analýza projektu BitcoinPay
› červen 2018 – dva nové měnové páry (celkem 6 párů)
22
Infrastruktura
› Docker
– Kontejner = virtualizace na úrovni jádra
– Izolace
– Peněženky kryptoměn
› Ansible
– Automatizace instalace a konfigurace
– Slouží zároveň jako dokumentace
– Zatím používáme: běžná správa serverů
(řízení přístupů, nasazování aplikace)
– Plán: instalace nových serverů
23
Automatizace nasazování do produkce
› Standard – automatické nasazování na testovací prostředí
› Obsah dodávky
– změny DB
– backend
– frontend
– konfigurační soubory
– statický web
› Nasazení do produkce na 3 kliknutí
– Vytvoření dodávky – build server Jenkins
– Kontrola změn konfigurace – merge v Gitu
– Nasazení – Ansible
› Doba odstávky pro standardní nasazení
– Původně 0,5–2 h
– Aktuálně 3 min
– Možnost další optimalizace
› Můžeme nasazovat i během dne
24
Zabezpečení
› Dodržování bezpečnostních standardů
› Rozdělení na backend a frontend
› Zabezpečení peněženek kryptoměn
– Hot wallet – na serveru, malé procento financí
– Cold wallet – offline, většina financí, hardwarová peněženka Trezor
› Docker
– peněženky kryptoměn v kontejnerech (nemusí být důvěryhodné)
– izolace kódu od zbytku infrastrukturu
25
První verze burzy
OkPay
EgoPay
Bitcoin
Google
Authenticator
User
Frontend Backend
Database
Admin
26
Aktuální verze
Fio Banka
Ripple
MoneyPolo
Sofort
Bitcoin
Litecoin
Bitcoin Cash
EtherumBlockchain.infoBitstampIDnow
Google
Authenticator
Pusher.com
User
Frontend Backend
Database
Admin
Závěr
5
28
Shrnutí
› Aplikovali jsme naše standardy softwarového vývoje
› Na základě obecných business požadavků jsme sami připravili
specifikaci pro projekt v akceptovaném rozsahu
› Zkušenosti z podobné domény (bankovnictví) jsme přenesli
do oblasti kryptoměn
› Forma spolupráce se přizpůsobila potřebám projektu
v jednotlivých fázích vývoje (FTFP -> TeamLease)
› Rychle jsme doplnili specifické know-how (Blockchain, AWS)
29
Diskuze
Profinit EU, s.r.o.
Tychonova 2, 160 00 Praha 6 | Telefon + 420 224 316 016
Web
www.profinit.eu
LinkedIn
linkedin.com/company/profinit
Twitter
twitter.com/Profinit_EU
Facebook
facebook.com/Profinit.EU
Youtube
Profinit EU
Děkujeme
za pozornost

Contenu connexe

Similaire à Projekt Bitcoinová burza Coinmate

Prezentace projektu KryptoBanking.com
Prezentace projektu KryptoBanking.comPrezentace projektu KryptoBanking.com
Prezentace projektu KryptoBanking.comLukáš Kruntorád
 
Profinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publishProfinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publishProfinit
 
2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyne2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyneProfinit
 
Microservices - morning talk
Microservices -  morning talkMicroservices -  morning talk
Microservices - morning talkJindřich Kubát
 
Automatizace search term optimalizace
Automatizace search term optimalizaceAutomatizace search term optimalizace
Automatizace search term optimalizaceTaste Medio
 
PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018PROFICIO
 
ITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny AtlassianITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny AtlassianOnlio
 
Microsoft Azure – Směr, jak změnit pohled na IT
Microsoft Azure – Směr, jak změnit pohled na ITMicrosoft Azure – Směr, jak změnit pohled na IT
Microsoft Azure – Směr, jak změnit pohled na ITMarketingArrowECS_CZ
 
Nové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámNové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámJaroslav Vrána
 
20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýraJiří Mareš
 
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetMarek Čech
 
Projekt Edenred Cafeteria
Projekt Edenred CafeteriaProjekt Edenred Cafeteria
Projekt Edenred CafeteriaProfinit
 
Poslední středa: Jak stavíme weby (Petr Luňáček)
Poslední středa: Jak stavíme weby (Petr Luňáček)Poslední středa: Jak stavíme weby (Petr Luňáček)
Poslední středa: Jak stavíme weby (Petr Luňáček)H1.cz
 
Výkonnost webových aplikací
Výkonnost webových aplikacíVýkonnost webových aplikací
Výkonnost webových aplikacíTaste Medio
 
Glami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamouGlami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamouPetr Bechyně
 
Dynamicke scannery webovych aplikaci v cloudu
Dynamicke scannery webovych aplikaci v clouduDynamicke scannery webovych aplikaci v cloudu
Dynamicke scannery webovych aplikaci v clouduJan Horalík
 
Semináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních datSemináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních datJaroslav Prodelal
 

Similaire à Projekt Bitcoinová burza Coinmate (20)

CSAS_v06
CSAS_v06CSAS_v06
CSAS_v06
 
Prezentace projektu KryptoBanking.com
Prezentace projektu KryptoBanking.comPrezentace projektu KryptoBanking.com
Prezentace projektu KryptoBanking.com
 
Profinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publishProfinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publish
 
2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyne2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyne
 
Microservices - morning talk
Microservices -  morning talkMicroservices -  morning talk
Microservices - morning talk
 
Automatizace search term optimalizace
Automatizace search term optimalizaceAutomatizace search term optimalizace
Automatizace search term optimalizace
 
PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018
 
ITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny AtlassianITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
 
Microsoft Azure – Směr, jak změnit pohled na IT
Microsoft Azure – Směr, jak změnit pohled na ITMicrosoft Azure – Směr, jak změnit pohled na IT
Microsoft Azure – Směr, jak změnit pohled na IT
 
Nové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámNové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službám
 
20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra20091202 Aplikované nástroje SW inženýra
20091202 Aplikované nástroje SW inženýra
 
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro Shoptet
 
Projekt Edenred Cafeteria
Projekt Edenred CafeteriaProjekt Edenred Cafeteria
Projekt Edenred Cafeteria
 
Poslední středa: Jak stavíme weby (Petr Luňáček)
Poslední středa: Jak stavíme weby (Petr Luňáček)Poslední středa: Jak stavíme weby (Petr Luňáček)
Poslední středa: Jak stavíme weby (Petr Luňáček)
 
Výkonnost webových aplikací
Výkonnost webových aplikacíVýkonnost webových aplikací
Výkonnost webových aplikací
 
Glami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamouGlami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamou
 
Audit spisové služby
Audit spisové službyAudit spisové služby
Audit spisové služby
 
Dynamicke scannery webovych aplikaci v cloudu
Dynamicke scannery webovych aplikaci v clouduDynamicke scannery webovych aplikaci v cloudu
Dynamicke scannery webovych aplikaci v cloudu
 
App Engine Kick Start
App Engine Kick StartApp Engine Kick Start
App Engine Kick Start
 
Semináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních datSemináře M-Files: Konec hledání řešení pro správu firemních dat
Semináře M-Files: Konec hledání řešení pro správu firemních dat
 

Plus de Profinit

Reference Data Management
Reference Data ManagementReference Data Management
Reference Data ManagementProfinit
 
Cloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloudCloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloudProfinit
 
Building big data pipelines—lessons learned
Building big data pipelines—lessons learnedBuilding big data pipelines—lessons learned
Building big data pipelines—lessons learnedProfinit
 
Understand your data dependencies – Key enabler to efficient modernisation
 Understand your data dependencies – Key enabler to efficient modernisation  Understand your data dependencies – Key enabler to efficient modernisation
Understand your data dependencies – Key enabler to efficient modernisation Profinit
 
Propensity Modelling for Banks
Propensity Modelling for BanksPropensity Modelling for Banks
Propensity Modelling for BanksProfinit
 
Legacy systems modernisation
Legacy systems modernisationLegacy systems modernisation
Legacy systems modernisationProfinit
 
Automating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data StoresAutomating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data StoresProfinit
 
4 Steps Towards Data Transparency
4 Steps Towards Data Transparency4 Steps Towards Data Transparency
4 Steps Towards Data TransparencyProfinit
 
Software systems modernisation
Software systems modernisationSoftware systems modernisation
Software systems modernisationProfinit
 
Data Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí clouduData Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí clouduProfinit
 
Detekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přáteléDetekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přáteléProfinit
 
Výsledky backtestu propensitního modelu
Výsledky backtestu propensitního modeluVýsledky backtestu propensitního modelu
Výsledky backtestu propensitního modeluProfinit
 
Propensitní modelování
Propensitní modelováníPropensitní modelování
Propensitní modelováníProfinit
 
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...Profinit
 
Profinit webinar: Instalment Detector
Profinit webinar: Instalment DetectorProfinit webinar: Instalment Detector
Profinit webinar: Instalment DetectorProfinit
 
2019 09-23-snidane qa-public
2019 09-23-snidane qa-public2019 09-23-snidane qa-public
2019 09-23-snidane qa-publicProfinit
 
2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-fullProfinit
 
Matedatový sklad
Matedatový skladMatedatový sklad
Matedatový skladProfinit
 
20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxiProfinit
 
20180201 3 detekce domácnosti v telekomunikacich
20180201 3 detekce domácnosti v telekomunikacich20180201 3 detekce domácnosti v telekomunikacich
20180201 3 detekce domácnosti v telekomunikacichProfinit
 

Plus de Profinit (20)

Reference Data Management
Reference Data ManagementReference Data Management
Reference Data Management
 
Cloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloudCloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloud
 
Building big data pipelines—lessons learned
Building big data pipelines—lessons learnedBuilding big data pipelines—lessons learned
Building big data pipelines—lessons learned
 
Understand your data dependencies – Key enabler to efficient modernisation
 Understand your data dependencies – Key enabler to efficient modernisation  Understand your data dependencies – Key enabler to efficient modernisation
Understand your data dependencies – Key enabler to efficient modernisation
 
Propensity Modelling for Banks
Propensity Modelling for BanksPropensity Modelling for Banks
Propensity Modelling for Banks
 
Legacy systems modernisation
Legacy systems modernisationLegacy systems modernisation
Legacy systems modernisation
 
Automating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data StoresAutomating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data Stores
 
4 Steps Towards Data Transparency
4 Steps Towards Data Transparency4 Steps Towards Data Transparency
4 Steps Towards Data Transparency
 
Software systems modernisation
Software systems modernisationSoftware systems modernisation
Software systems modernisation
 
Data Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí clouduData Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí cloudu
 
Detekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přáteléDetekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přátelé
 
Výsledky backtestu propensitního modelu
Výsledky backtestu propensitního modeluVýsledky backtestu propensitního modelu
Výsledky backtestu propensitního modelu
 
Propensitní modelování
Propensitní modelováníPropensitní modelování
Propensitní modelování
 
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
 
Profinit webinar: Instalment Detector
Profinit webinar: Instalment DetectorProfinit webinar: Instalment Detector
Profinit webinar: Instalment Detector
 
2019 09-23-snidane qa-public
2019 09-23-snidane qa-public2019 09-23-snidane qa-public
2019 09-23-snidane qa-public
 
2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full
 
Matedatový sklad
Matedatový skladMatedatový sklad
Matedatový sklad
 
20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi
 
20180201 3 detekce domácnosti v telekomunikacich
20180201 3 detekce domácnosti v telekomunikacich20180201 3 detekce domácnosti v telekomunikacich
20180201 3 detekce domácnosti v telekomunikacich
 

Projekt Bitcoinová burza Coinmate

  • 1. Michal Podzimek, Jonáš Klimeš 19. června 2018 Bitcoinová burza Coinmate.io
  • 2. 2 Osnova 1. Bitcoin (kryptoměny), burzy 2. Burza na zelené louce 3. Rozvoj formou teamlease 4. Růst kryptoměn i projektu 5. Shrnutí
  • 4. 4 Co je Bitcoin (kryptoměny) › Digitální (krypto) měna – Plně decentralizovaná – Žádný prostředník – Nízké transakční poplatky – Pseudonymní – Otevřený kód – V provozu od roku 2009
  • 5. 5 Bitcoinové burzy › Bitcoinové burzy – MT. Gox (Magic: The Gathering Online eXchange) – Bitstamp.net – BTC-e.com – Bitfinex.com › Funkce burzy – Registrace uživatelů, správa účtu, obnovení hesla, … – Verifikace uživatelů, AML procesy – Vklady a výběry FIAT měn a kryptoměn – Obchodování – mezi uživateli – API – Reporty, statistiky, grafy – Administrace
  • 7. 7 Analýza › Nabídka › Schůzky se zákazníkem – Vyjasňování funkčnosti › Obrazovky – HTML prototyp › 3 iterace – Schvalování, faktura, rozhodování zda pokračovat › Průběžné zapracování připomínek a změn 2014 2014 DubenLeden
  • 9. 9 Proof of Concept › Požadavky: – Bootstrap – Load on demand – Živá aktualizace grafu a jiných komponent – Bezpečnost, javascriptové GUI, integrace se Springem › Zkoumané technologie – JSF – Vaadin – Zkoss › Vítězí Zkoss – Slibuje Bootstrap, load on demand, http push – Moderní AJAXový Java framework – Vaadin nelze integrovat s Bootstrapem – V JSF by http push byl pracný › Angular a React.JS nebyly prověřené 2014 Duben
  • 10. 10 Technologie › Java › Oracle › MyBatis › Spring › EhCache › Zkoss › Bootstrap
  • 11. 11 xStage Env. Ideální podoba cesty jednoho řádku kódu Vývojář VCS Continuous Integration Quality Gate Test Env. Monitoring & Planning Testing Production
  • 12. 12 Způsob spolupráce › FTFP – V rámci iterací fixovaný rozsah, cena a čas – Zákazník ví, co a za kolik dostane – Nevhodné pro často se měnící požadavky a priority › Bodyshop – Fixované zdroje, zákazník platí za odpracované hodiny – Vyšší organizační nároky na straně zákazníka – Zodpovědnost a rizika nese zákazník › Teamlease – Sehraný tým, specificky připravený pro danou poptávku • Složení týmu je naše zodpovědnost – zákazník říká požadovanou kapacitu • Zákazník se nestará o organizaci týmu – Zodpovědnost za dodání je na týmu, zákazník platí za odpracované hodiny – Máme větší možnosti uplatnit široké zkušenosti s dlouhodobým dodáváním a rozvojem IT systémů – Změny v týmu na naše náklady
  • 14. 14 Rozvoj formou teamlease › Zákazník investuje do rozvoje opatrně – Prioritu měly úkoly viditelné pro klienty › Release – 1 velký (půl roku práce) – 4 střední (cca měsíc práce) – drobné úpravy a bug fixy 2016 2017 Leden Červen
  • 15. 15 Průběžný vývoj › 2014 – zahájení produkčního provozu › 2015 – nové platební metody, Quick Buy/Sell, USD  EUR › léto 2016 – tradeview, CZK/BTC › zima 2017 – automatizace verifikace klientů › červen 2017 – migrace do AWS
  • 16. Infrastruktura › Spravuje si zákazník › Původně menší hosting serverů v Anglii – Problém s DDoS › Azure – Výhodné podmínky – Virtuální servery s Linuxem › Nutná reinstalace – Nutný upgrade OS – Nutný licenční upgrade DB – Revize infrastruktury po 2 letech – Zákazník si již nechce spravovat servery sám › Přebíráme i správu infrastruktury 2016 2017 Červen 2015 Leden 2014 Říjen Prosinec
  • 17. 17 Migrace do Amazon Web Services › Azure – Zákazník má předplacené kredity – Omezené možnosti správy Linux serverů – Nemá managed Oracle DB › AWS – Zákazník preferuje, je tam i burza Bitstamp – Lepší podpora Linux serverů – Má managed Oracle DB (RDS) › Migrace dat – Postupná migrace pro zkrácení doby odstávky
  • 19. 19 Růst kryptoměn i projektu › Roste cena BTC i počty zákazníků burzy › Problémy trhu – Forky – BitcoinCash, Seqwit, Segwit2x – Dlouhá doba zpracování transakcí – Velké poplatky › Zákazník má hodně požadavků – Nutná prioritizace do releasů – Více požadavků na správu klientů  automatizace › Release – Větší jednou za 1–2 měsíce 2017 2018 ČervenČervenec
  • 20. 20 Pracovní proces › Rozšiřování týmu › Pro zachování podpory častých změn jsou nutné úpravy procesu › Paralelní práce na jednotlivých požadavcích – Zadání – Hrubá analýza a prioritizace – Analýza – Detailní odhady pracnosti – Implementace › Vytvoření releasu z implementovaných částí – Přechod ze SVN na Git RELEASE 10 RELEASE 11 ZADÁNÍ PRIORITIZACE ANALÝZA A ODHADY IMPLEMENTACE ZADÁNÍ PRIORITIZACE ZADÁNÍ PRIORITIZACE ANALÝZA A ODHADY IMPLEMENTACE ZADÁNÍ PRIORITIZACE ANALÝZA A ODHADY ZADÁNÍ PRIORITIZACE ANALÝZA A ODHADY IMPLEMENTACE NASAZENÍ NASAZENÍ
  • 21. 21 Průběžný vývoj › 2014 – zahájení produkčního provozu › 2015 – nové platební metody, Quick Buy/Sell, USD  EUR › léto 2016 – tradeview, CZK/BTC › zima 2017 – automatizace verifikace klientů › červen 2017 – migrace do AWS › září 2017 – automatické výběry přes Fio banku › říjen 2017 – Litecoin a usnadnění přidávání dalších měn › prosinec 2017 – Bitcoin Cash › únor 2018 – Admin GUI  Angular › duben 2018 – analýza projektu BitcoinPay › červen 2018 – dva nové měnové páry (celkem 6 párů)
  • 22. 22 Infrastruktura › Docker – Kontejner = virtualizace na úrovni jádra – Izolace – Peněženky kryptoměn › Ansible – Automatizace instalace a konfigurace – Slouží zároveň jako dokumentace – Zatím používáme: běžná správa serverů (řízení přístupů, nasazování aplikace) – Plán: instalace nových serverů
  • 23. 23 Automatizace nasazování do produkce › Standard – automatické nasazování na testovací prostředí › Obsah dodávky – změny DB – backend – frontend – konfigurační soubory – statický web › Nasazení do produkce na 3 kliknutí – Vytvoření dodávky – build server Jenkins – Kontrola změn konfigurace – merge v Gitu – Nasazení – Ansible › Doba odstávky pro standardní nasazení – Původně 0,5–2 h – Aktuálně 3 min – Možnost další optimalizace › Můžeme nasazovat i během dne
  • 24. 24 Zabezpečení › Dodržování bezpečnostních standardů › Rozdělení na backend a frontend › Zabezpečení peněženek kryptoměn – Hot wallet – na serveru, malé procento financí – Cold wallet – offline, většina financí, hardwarová peněženka Trezor › Docker – peněženky kryptoměn v kontejnerech (nemusí být důvěryhodné) – izolace kódu od zbytku infrastrukturu
  • 26. 26 Aktuální verze Fio Banka Ripple MoneyPolo Sofort Bitcoin Litecoin Bitcoin Cash EtherumBlockchain.infoBitstampIDnow Google Authenticator Pusher.com User Frontend Backend Database Admin
  • 28. 28 Shrnutí › Aplikovali jsme naše standardy softwarového vývoje › Na základě obecných business požadavků jsme sami připravili specifikaci pro projekt v akceptovaném rozsahu › Zkušenosti z podobné domény (bankovnictví) jsme přenesli do oblasti kryptoměn › Forma spolupráce se přizpůsobila potřebám projektu v jednotlivých fázích vývoje (FTFP -> TeamLease) › Rychle jsme doplnili specifické know-how (Blockchain, AWS)
  • 30. Profinit EU, s.r.o. Tychonova 2, 160 00 Praha 6 | Telefon + 420 224 316 016 Web www.profinit.eu LinkedIn linkedin.com/company/profinit Twitter twitter.com/Profinit_EU Facebook facebook.com/Profinit.EU Youtube Profinit EU Děkujeme za pozornost