Top Banner
H A C K A T H O N Czyli jak zrobić sobie zawody z przygotowania do konferencji. l
38

Warsjawa hackaton

Jul 14, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Warsjawa hackaton

H A C K A T H O N

Czyli jak zrobić sobie zawody z przygotowania do konferencji.

l

Page 2: Warsjawa hackaton

{Foundation, Docker, nginx, Node.js, Meteor, Mongo, Python, Flaskr, Jinja, Ruby, SASS, HTML5, Bash, GitHub, Mailgun} = Warsjawa 2014

l

Page 3: Warsjawa hackaton

Foundation

n

Mobile first, responsive, web frontend framework (podobny do Bootstrapa)

HTML5SASS (kompilowany do CSS), kompilator i konfiguracja w Rubym

Page 4: Warsjawa hackaton

GitHub gh-pages

n

Page 5: Warsjawa hackaton

github pages

static page

warsjawa.pl

n

Page 6: Warsjawa hackaton

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).

Page 7: Warsjawa hackaton

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).

Page 8: Warsjawa hackaton

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.

Page 9: Warsjawa hackaton

Frontend

nginx static page

Request

n

Page 10: Warsjawa hackaton

Tiktalik

l

Page 11: Warsjawa hackaton

Zalety

l

Page 12: Warsjawa hackaton

Wady

l

Page 13: Warsjawa hackaton

Tiktalik

*.warsjawa.pl/*

Frontend

nginx static page

l

Page 14: Warsjawa hackaton

Deployment v1

Git Post-Receive Hook

Procedura:● docker stop● docker rm● docker build● docker run

l

Page 15: Warsjawa hackaton

Tiktalik*.warsjawa.pl/*

Frontend

nginx static page

git push

l

Page 16: Warsjawa hackaton

Deployment v2

https://github.com/razius/github-webhook-handler

Procedura:● docker stop● docker rm● docker build● docker run

l

Page 17: Warsjawa hackaton

Deployment v2

Staging

Production

l

Page 18: Warsjawa hackaton

Tiktalik Systemy zewnętrzne

GitHubonCommit restart container

*.warsjawa.pl/*

Frontend

nginx static page

l

Page 19: Warsjawa hackaton

System do maili - Backend

l

Page 20: Warsjawa hackaton

Przypadki użycia

● Wysłyanie maili po rejestracji● Przekazywanie maili od prowadzących

warsztat● Potwierdzanie użytkowników● Usługi dla NFC

p

Page 21: Warsjawa hackaton

Stos technologiczny

PythonFlask

mongo(mock)

Czas wykonania testów <1s

p

Page 22: Warsjawa hackaton

Tiktalik

Backend Mailgun

Mongo warsjawa

Systemy zewnętrzne

GitHubonCommit restart containers

*.warsjawa.pl/*

Frontend

nginx static page

p

Page 23: Warsjawa hackaton

Backend Fuckup 1

Jednowątkowy python blokujący cały backend

p

Page 24: Warsjawa hackaton

Backend Fuckup 2

Długi czas odpowiedzi w przypadku niedostępności Mailguna

p

Page 25: Warsjawa hackaton

Meteor

n

Meteor platforma do budowania aplikacji webowych (serwer i klient).

W całości w JS (Node).

Websockety.

Mongo.

meteor.com

Page 26: Warsjawa hackaton

Tiktalik

Backend Mailgun

Mongo warsjawa

Systemy zewnętrzne

GitHubonCommit restart containers

*.warsjawa.pl/*

Frontend

nginx static page

Meteor

workshops.warsjawa.pl

n

Page 27: Warsjawa hackaton

Godzina ‘zero’

Rejestracja VIP’ów przebiegła pomyślnie.

Byliśmy spokojni i pewni siebie.

n

Page 28: Warsjawa hackaton

Godzina ‘zero’

timeouty na serwerze meteor

backend wołany asynchronicznie

n

Page 29: Warsjawa hackaton

Godzina ‘zero’

brak danych w meteorze

szpachla, szpachla, szpachla

l

Page 30: Warsjawa hackaton

Godzina ‘zero’

400 osób się zarejestrowało

wydaje się, że działa

l

Page 31: Warsjawa hackaton

Godzina ‘zero’

zdychają JS’y

● przeniesienie meteor na tiktalik● optymalizacja JS po stronie klienta

n

Page 32: Warsjawa hackaton

Tiktalik

Backend MailgunMeteor rejestracja

Mongometeor warsjawa

Systemy zewnętrzne

GitHubonCommit restartcontainers

*.warsjawa.pl/*

Frontend

nginx static page

p

Page 33: Warsjawa hackaton

Działało, więc nie dotykaliśmy więcej

l

Page 34: Warsjawa hackaton

Ale trzeba było wysłać potwierdzenia...

l

Page 35: Warsjawa hackaton

Tiktalik

Backend MailgunMeteor rejestracja

Mongometeor warsjawa

Systemy zewnętrzne

GitHubonCommit restartcontainers

*.warsjawa.pl/*

Frontend

nginx static page

Wysyłka potwierdzeń

l

Page 36: Warsjawa hackaton

user = { "_id" : ObjectId("507f191e810c19729de860ea"),

"email": "[email protected]", "name": "Janek", "key": "ASJHD@UE*G*HASDASIDHGUWGU", "isConfirmed": true, "emails": [] }

l

Before

Page 37: Warsjawa hackaton

user = { "_id" : ObjectId("507f191e810c19729de860ea"),

"isConfirmed": true }

l

After

Page 38: Warsjawa hackaton

Tomasz [email protected]

Tomasz Pęksa@tpeksa

Michał [email protected]