warsjawa hackaton
Post on 14-Jul-2015
70 Views
Preview:
TRANSCRIPT
H A C K A T H O N
Czyli jak zrobić sobie zawody z przygotowania do konferencji.
l
{Foundation, Docker, nginx, Node.js, Meteor, Mongo, Python, Flaskr, Jinja, Ruby, SASS, HTML5, Bash, GitHub, Mailgun} = Warsjawa 2014
l
Foundation
n
Mobile first, responsive, web frontend framework (podobny do Bootstrapa)
HTML5SASS (kompilowany do CSS), kompilator i konfiguracja w Rubym
GitHub gh-pages
n
github pages
static page
warsjawa.pl
n
Przejście na szablony
n
Zmiany były powolne, dużo treści (prelegenci) powodowało dużo błędów.
Więc wprowadziliśmy szablony (Python + Jinja + bash).
Docker
n
Pojawiła się potrzeba odpalenia projektu u innych. Dużo zależności (Python, Ruby, SASS, itd) mocno zniechęcały.
Pojawił się więc Docker (aplikacja do zarządzania lekkimi kontenerami).
Docker
n
Dodatkowa enkapsulacja pomogła w dodawaniu nowych automatyzacji: dane przechowywane w YAMLu.
Teraz chcąc wysłać stronę, robiliśmy git push na wskazane repo.
Frontend
nginx static page
Request
n
Tiktalik
l
Zalety
l
Wady
l
Tiktalik
*.warsjawa.pl/*
Frontend
nginx static page
l
Deployment v1
Git Post-Receive Hook
Procedura:● docker stop● docker rm● docker build● docker run
l
Tiktalik*.warsjawa.pl/*
Frontend
nginx static page
git push
l
Deployment v2
https://github.com/razius/github-webhook-handler
Procedura:● docker stop● docker rm● docker build● docker run
l
Deployment v2
Staging
Production
l
Tiktalik Systemy zewnętrzne
GitHubonCommit restart container
*.warsjawa.pl/*
Frontend
nginx static page
l
System do maili - Backend
l
Przypadki użycia
● Wysłyanie maili po rejestracji● Przekazywanie maili od prowadzących
warsztat● Potwierdzanie użytkowników● Usługi dla NFC
p
Stos technologiczny
PythonFlask
mongo(mock)
Czas wykonania testów <1s
p
Tiktalik
Backend Mailgun
Mongo warsjawa
Systemy zewnętrzne
GitHubonCommit restart containers
*.warsjawa.pl/*
Frontend
nginx static page
p
Backend Fuckup 1
Jednowątkowy python blokujący cały backend
p
Backend Fuckup 2
Długi czas odpowiedzi w przypadku niedostępności Mailguna
p
Meteor
n
Meteor platforma do budowania aplikacji webowych (serwer i klient).
W całości w JS (Node).
Websockety.
Mongo.
meteor.com
Tiktalik
Backend Mailgun
Mongo warsjawa
Systemy zewnętrzne
GitHubonCommit restart containers
*.warsjawa.pl/*
Frontend
nginx static page
Meteor
workshops.warsjawa.pl
n
Godzina ‘zero’
Rejestracja VIP’ów przebiegła pomyślnie.
Byliśmy spokojni i pewni siebie.
n
Godzina ‘zero’
timeouty na serwerze meteor
backend wołany asynchronicznie
n
Godzina ‘zero’
brak danych w meteorze
szpachla, szpachla, szpachla
l
Godzina ‘zero’
400 osób się zarejestrowało
wydaje się, że działa
l
Godzina ‘zero’
zdychają JS’y
● przeniesienie meteor na tiktalik● optymalizacja JS po stronie klienta
n
Tiktalik
Backend MailgunMeteor rejestracja
Mongometeor warsjawa
Systemy zewnętrzne
GitHubonCommit restartcontainers
*.warsjawa.pl/*
Frontend
nginx static page
p
Działało, więc nie dotykaliśmy więcej
l
Ale trzeba było wysłać potwierdzenia...
l
Tiktalik
Backend MailgunMeteor rejestracja
Mongometeor warsjawa
Systemy zewnętrzne
GitHubonCommit restartcontainers
*.warsjawa.pl/*
Frontend
nginx static page
Wysyłka potwierdzeń
l
user = { "_id" : ObjectId("507f191e810c19729de860ea"),
"email": "jan@kowalski.pl", "name": "Janek", "key": "ASJHD@UE*G*HASDASIDHGUWGU", "isConfirmed": true, "emails": [] }
l
Before
user = { "_id" : ObjectId("507f191e810c19729de860ea"),
"isConfirmed": true }
l
After
Tomasz Netczuk@netczuknetczuk.pl
Tomasz Pęksa@tpeksa
Michał Lewandowski@lewandm4blog.klkl.pl
top related