$30 off During Our Annual Pro Sale. View Details »

The workflow of the New StreetVoice

The workflow of the New StreetVoice

As last year, I gave a talk at PyCon Taiwan 2013 about "How I transform StreetVoice from Windows/ASP to Linux/Python"

This year at PyCon APAC 2014, I gave this talk: "The workflow of new StreetVoice" , including the stack we are using, the deployment, development process, and how we use hipchat to connect all the other services like, travis-ci, github, coveralls, hubot and saltstack.

And we continue to Open Source, release lots of django apps and python packages.

Ming Shien Tzang

May 18, 2014
Tweet

More Decks by Ming Shien Tzang

Other Decks in Programming

Transcript

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

    View Slide

  2. About me
    ⼩小海 / tzangms

    View Slide

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

    View Slide

  4. What is StreetVoice
    and what we are doing

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. The New StreetVoice

    View Slide

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

    View Slide

  13. StreetVoice Stack
    Galera Cluster

    View Slide

  14. What changes

    View Slide

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

    View Slide

  16. Version Control
    Git & Github

    View Slide

  17. Unit test
    & Coverage report

    View Slide

  18. Error Tracking
    & Logging

    View Slide

  19. Create Github issue from sentry directly

    View Slide

  20. Deployment
    & configuration management

    View Slide

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

    View Slide

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

    View Slide

  23. Realtime chat

    View Slide

  24. We have hubot
    Of course

    View Slide

  25. Control saltstack
    with hubot
    hipchat hubot saltstack

    View Slide

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

    View Slide

  27. View Slide

  28. View Slide

  29. Make it all together

    View Slide

  30. View Slide

  31. Make everyone noticed
    through hipchat

    View Slide

  32. Workflow
    at StreetVoice

    View Slide

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

    View Slide

  34. workflow

    View Slide

  35. Github network graph

    View Slide

  36. We continue to
    Open Source
    python and django packages

    View Slide

  37. django-elastic-transcoder
    transcode with AWS elastic transcoder

    View Slide

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

    View Slide

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

    View Slide

  40. django-cloudfront
    CDN with private content signing

    View Slide

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

    View Slide

  42. ididit
    daily working log system

    View Slide

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

    View Slide