Slide 1

Slide 1 text

改造後, 現在我們如何進⾏行開發⼯工作

Slide 2

Slide 2 text

About me ⼩小海 / tzangms

Slide 3

Slide 3 text

Outlines • What is StreetVoice • The good old memory • What changes • Workflow • Continue to Open Source

Slide 4

Slide 4 text

What is StreetVoice and what we are doing

Slide 5

Slide 5 text

獨⽴立⾳音樂社群 Taiwan, Hong Kong and China

Slide 6

Slide 6 text

簡單⽣生活節 SimpleLife We do music festivals, and life style

Slide 7

Slide 7 text

⾒見證⼤大團 The Next Big Thing We do music TV program, and Live shows

Slide 8

Slide 8 text

前情提要 避免有⼈人不知道 …

Slide 9

Slide 9 text

在去年我講過接⼿手 StreetVoice 時的狀況

Slide 10

Slide 10 text

Old StreetVoice • Use Windows / ASP (not .NET) • Unscalable structure • No Version Control System • Disasters happens all the time • 10s+ per request.

Slide 11

Slide 11 text

The New StreetVoice

Slide 12

Slide 12 text

Use Python / Django Scalable, and the deployment across Taipei, Tokyo and Beijing

Slide 13

Slide 13 text

StreetVoice Stack Galera Cluster

Slide 14

Slide 14 text

What changes

Slide 15

Slide 15 text

We have Right and talented people 當時在投稿的時候, 我們有很棒的⼈人才

Slide 16

Slide 16 text

Version Control Git & Github

Slide 17

Slide 17 text

Unit test & Coverage report

Slide 18

Slide 18 text

Error Tracking & Logging

Slide 19

Slide 19 text

Create Github issue from sentry directly

Slide 20

Slide 20 text

Deployment & configuration management

Slide 21

Slide 21 text

StreetVoice Tokyo 12 servers Taipei 12 servers Beijing 6 servers server deployment

Slide 22

Slide 22 text

$ salt “*” state.highstate Use this command to deploy every server across Taipei, Beijing and Tokyo data center.

Slide 23

Slide 23 text

Realtime chat

Slide 24

Slide 24 text

We have hubot Of course

Slide 25

Slide 25 text

Control saltstack with hubot hipchat hubot saltstack

Slide 26

Slide 26 text

: hubot salt stage deploy : OK, I am doing it, please wait …

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Make it all together

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

Make everyone noticed through hipchat

Slide 32

Slide 32 text

Workflow at StreetVoice

Slide 33

Slide 33 text

Our git branching strategy This graph comes from @nvie not exactly like this

Slide 34

Slide 34 text

workflow

Slide 35

Slide 35 text

Github network graph

Slide 36

Slide 36 text

We continue to Open Source python and django packages

Slide 37

Slide 37 text

django-elastic-transcoder transcode with AWS elastic transcoder

Slide 38

Slide 38 text

django-celery-ses Drop-in replacement EmailBackend Sending email with AWS SES through Celery

Slide 39

Slide 39 text

django-nextpage better performance than django-pagination when you just want next page

Slide 40

Slide 40 text

django-cloudfront CDN with private content signing

Slide 41

Slide 41 text

HysteriaPlayer Objective-C audio player, sitting on top of AVPlayer

Slide 42

Slide 42 text

ididit daily working log system

Slide 43

Slide 43 text

無限期⽀支持 StreetVoice 徵才 請來信 [email protected] Q & A