+ All Categories
Home > Software > Jak probíhal vývoj platformy pro vývojáře

Jak probíhal vývoj platformy pro vývojáře

Date post: 20-Mar-2017
Category:
Upload: pavel-dedik
View: 94 times
Download: 2 times
Share this document with a friend
20
Jak probíhal vývoj platformy pro vývojáře Pavel Dedík CTO v Mergadu
Transcript

Jak probíhal vývoj platformy pro vývojáře

Pavel DedíkCTO v Mergadu

Nástroj pro e-shopy.

Pomáhá navyšovat tržby z

vyhledávačů zboží.

Co je to Mergado?

Jak Mergado manipuluje s

produkty?S pomocí pravidel a výběrů.

Vstupní XML feed

Výstupní XML feed

<product>

Pravidlo:CPC = 2 Kč

<product>

<product>

<product><product>

<product>

<product>

<product>

<product>

CPC = 2 Kč<product>

PRICE_VAT > 100 Kč

Další funkce Mergada a výzvy pro vývojáře

● Převody mezi formáty XML, napojení na reklamní systémy

■ Heureka, Zboží.cz, Sklik, Google, Facebook, CJ.com, …

■ Celkově přes 50 různých formátů

● Parsování nevalidních XML

■ Vlastní parser XML

● Vlastní dotazovací jazyk

■ Mergado Query Language (MQL)

■ Deklarativní jazyk

● Real-Time analytika

■ Terabajty dat

● Audit XML

Kde vzít nové funkce?

Bohužel nerostou na stromě.

Bidding

Před

vypl

nit E

AN

Audit UR

L

Monitoring

Kont

rola

pr

avop

isu

Vyžaduje to

● Nápad

● Vývojáře● Refaktoring

● Spoustu času

Co kdybychom tvorbu nových funkcí zpřístupnili i externím vývojářům?

● Nové funkce by přibývaly ve formě aplikací

■ zcela oddělené od jádra Mergada

● Výhody

■ Outsourcing nových funkcí

■ Jádro se neznečišťuje novým kódem

■ Nižší nároky na údržbu a vývoj

■ Lepší použitelnost rozhraní

● Nevýhody

■ Menší dohled nad novými funkcemi

■ Vysoká počáteční investice

■ Horší použitelnost rozhraní

Mergado jako webová aplikace

Jádro

Pravidla

Výběry

Audit XML

Analytika

Mergado jako platforma

Jádro

Store

Developers

Aplikace

Ale kde vlastně začít?

● Jak budou aplikace komunikovat s jádrem?

● Jak bude fungovat autentizace?

● Co správa oprávnění?

● Jak vývojářům platformu zpřístupnit?

● Jaké bude jejich workflow?

● Kde aplikace poběží?

● Jaké technologie budou mít vývojáři k dispozici?

OAuth 2.0 v Mergadu (online režim)

Koncový uživatel

Chráněné API zdroje

Autorizační serverAplikace

1. autorizační požadavek

2. autorizační kód

3. autorizační kód

4. access token

5. access token

6. chráněný zdroj

OAuth 2.0 v Mergadu (offline režim)

Chráněné API zdroje

Autorizační server

Aplikace

1. refresh token

2. access token

3. access token

4. chráněný zdroj

● Během povolení aplikace uživatelem si autorizační

server uloží refresh token

● Ten pak aplikace použije k vyžádání access tokenu

Mergado API v0.3.1● Aplikace se autorizují přes OAuth 2.0

● Komunikace probíhá přes HTTP JSON API

● Oprávnění aplikace stanovují OAuth scopy

■ Uživatel uděluje práva (scopy) při zapnutí aplikace

GET /api/users/42

Je token validní?

403 Forbidden

NE

Má aplikace práva číst tato

data?

ANO

NE

Má uživatelpráva číst tato

data?

ANO

200 OK

NE

ANO

401 Unauthorized

Nad rámec standardních API

● Uživatel může zapnout aplikaci pro e-shop

■ A více uživatelů může v Mergadu přistupovat k jednomu e-shopu

■ ⇒ access token se váže na entitu (na uživatele, e-shop nebo export)

● Mergado někdy komunikuje i s aplikací

■ ⇒ Aplikace potřebují mít vlastní API/webhook

● Aplikace někdy potřebují komunikovat s API periodicky

■ Zatímco uživatel není přihlášen v Mergadu

Developers

● https://developers.mergado.com

● Centrum pro vývojáře

● K registraci a správě aplikací

App Cloud

● Hosting pro aplikace

● MySQL, Redis, Apache, PHP

● V budoucnu Python a další jazyky

App Cloud

App 1

Mergado API

App 2

App N App M

Statistiky Analytika

Pravidla Výběry

Audit Elementy

ProměnnéNotifikace

Jak se aplikace zobrazuje v Mergadu?

● Primárně jako samostatná HTML stránka

■ IFRAME, kde src=”https://appcloud.mergado.com/...”

MERGADO

<IFRAME src=“https://appcloud...”/> <HTML> ... </HTML></IFRAME>

App: Logbook

Logbook content-type: text/html

App Cloud

● Sekundárně jako widget v přehledu zapnutých aplikací

■ Opět pouze HTML dokument v IFRAME

Servis pro vývojáře aplikací

● Hosting pro aplikace zajišťuje App Cloud

○ Technologicky je však možné použít vlastní hosting

● 70 % z částky zaplacené zákazníky se vyplatí vývojáři

○ 30 % je na provoz a další vývoj platformy

● Mergado dále pomáhá vývojářům marketingově

○ Prostřednictvím blogu, e-mailingem, atd.

Jaký je stav po roce vývoje?

73 API endpointů, rosáhlá dokumentace platformy v angličtině, 14 aplikací na produkci a 3 ve vývoji.

● Bidding Fox

● Feed Image Editor

● Pricing Rank

● Data Owl

● Weekday Bidding Booster

● … a další v Mergado Store

Závěrem: Pár poučení a návrhů na vylepšení

● Porozumění architektury

○ návrh HTTP API má smysl teprve až

v pozdějších fázích vývoje

● Neomezovat vývojáře příliš

○ začnou vymýšlet “hacky”

● Aplikace v docker kontejneru

○ jednodušší správa oprávnění,

○ jednodušší řízení zdrojů,

○ aplikace si navzájem nekradou zdroje,

○ aplikace si mohou v rámci kontejneru

nainstalovat co potřebují.

Otázky?@paveldedik


Recommended