Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Pavel Dedik
February 25, 2017

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

O vývoji platformy Mergado pro vývojáře.

Pavel Dedik

February 25, 2017
Tweet

More Decks by Pavel Dedik

Other Decks in Programming

Transcript

  1. 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č
  2. 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
  3. Kde vzít nové funkce? Bohužel nerostou na stromě. Bidding Předvyplnit

    EAN Audit URL Monitoring Kontrola pravopisu Vyžaduje to • Nápad • Vývojáře • Refaktoring • Spoustu času
  4. 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í
  5. 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?
  6. OAuth 2.0 v Mergadu (online režim) Koncový uživatel Chráněné API

    zdroje Autorizační server Aplikace 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
  7. 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
  8. 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živatel práva číst tato data? ANO 200 OK NE ANO 401 Unauthorized
  9. 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
  10. 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
  11. 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
  12. 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.
  13. 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
  14. 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í.