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

Casual CI Server

Casual CI Server

at Testing Casual Talks #1
http://atnd.org/events/40914

r7kamura

July 24, 2013
Tweet

More Decks by r7kamura

Other Decks in Programming

Transcript

  1. Casual CI Server
    -Testing Casual Talks #1-
    by @r7kamura
    IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

    View Slide

  2. 意識の高い若者の面白プロダクト枠
    IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

    View Slide

  3. 自己紹介
    --------------------------------------
    name: Ryo Nakamura
    id: r7kamura
    blog: r7kamura.hatenablog.com
    at: COOKPAD Inc.

    View Slide

  4. 最近作ったもの
    --------------------------------------
    * Chanko 2.0 - prototyping rails
    * Autodoc - auto documenting tool
    * Chatroid - chatter bot framework
    * Gig - github as a blog database

    View Slide

  5. 今日話すこと
    --------------------------------------
    * あらすじ
    * JJeennkkiinnssと愉快な仲間達
    * AAllttrriiaaつくったよ
    * AAllttrriiaa PPlluuggiinnの作り方

    View Slide

  6. あらすじ
    WWhhyy ccaassuuaall ccii sseerrvveerr??

    View Slide

  7. あらすじ
    --------------------------------------
    あらゆる作業が自動化され、全ての行
    動が記録・管理されるようになった時
    代。自宅へと投下されるJJeennkkiinnss。だ
    が、その言語は人々に希望を捨てさせ
    た。若者の意識は、自分が彼を救おう
    と決心させる。果たしてカジュアルを
    望む人々の物語はどこへ続くのか?

    View Slide

  8. Jenkins Clones
    JJeennkkiinnssと愉快な仲間達

    View Slide

  9. Jenkins
    Ukigumo
    CI Joe
    Cerberus
    Intergrity
    CruiseControll
    BuildBot
    Signal

    View Slide

  10. Jenkins
    説明不要
    JJaavvaa

    View Slide

  11. CI Joe
    * by defunkt
    * Ruby (sinatra)
    * multi-process
    * 2 years ago...

    View Slide

  12. Ukigumo
    * by tokuhirom
    * Perl (amon2)
    * client/server

    View Slide

  13. Jenkins
    Ukigumo
    CI Joe
    Cerberus
    Intergrity
    CruiseControll
    BuildBot
    Signal
    ** JJeennkkiinnssほど高機能じゃなくて良い
    ** プラグインで拡張出来る機能は欲しい
    ** もっとカジュアルにプラグイン書きたい
    ** ゥチらでRRaaiillss 44盛り上げてこ㽉㽉

    JJeennkkiinnss cclloonneeで一発あてるぞ

    View Slide

  14. Altria
    Alternative Ruby Integration Application
    github.com/r7kamura/altria
    IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

    View Slide

  15. Altria Summary
    ------------------------------------------
    * Server + Worker + Cron
    * Rails 4, Redis, MySQL
    * HTML view + JSON REST API
    * Plugin as a gem
    IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

    View Slide

  16. Server
    Worker
    Queue
    DB
    Cron
    User
    Altria

    View Slide

  17. Server
    Worker
    Queue
    DB
    Cron
    User
    Altria
    Rails4

    View Slide

  18. Server
    Worker
    Queue
    DB
    Cron
    User
    Altria
    Redis

    View Slide

  19. Server
    Worker
    Queue
    DB
    Cron
    User
    Altria
    MySQL

    View Slide

  20. Server
    Worker
    Queue
    DB
    Cron
    User
    Altria
    jobs
    builds

    View Slide

  21. Server
    Worker
    Queue
    DB
    Cron
    User
    Altria
    1. HTML
    2. JSON
    3. Streaming

    View Slide

  22. Server
    Worker
    Queue
    DB
    Cron
    User
    Altria

    View Slide

  23. Plugins
    -------------------------------------------------
    * Using Rails’ plugin system
    * Every plugin is a gem
    * Modify Gemfile to add plugins
    # Gemfile
    gem "altria-git", git: "[email protected]:..."
    gem "altria-pipeline", git: "[email protected]:..."

    View Slide

  24. # δϣϒͷઃఆ߲໨Λ௥Ճ
    Job.property(:next_job_id)
    # Ϗϧυ׬ྃޙʹϑοΫ
    Job.after_execute do
    Job.find(next_job_id).enqueue
    end
    Example1: Build Pipeline Plugin

    View Slide

  25. Example2: Processing Time Plugin
    # viewͷϑοΫՕॴʹHTMLΛຒΊࠐΉ
    JobsController.before_filter only: :show do
    view_context.content_for :jobs_show do
    render_to_string(partial: "chart").html_safe
    end
    end
    # jobs/_chart.html.slim - άϥϑඳը༻HTML&JS
    = line_chart @resource.builds.limit(100)

    View Slide

  26. Other examples
    * altria-pipeline
    * altria-processing_time
    * altria-simple_cov
    * altria-git
    * altria-authentication
    * ...

    View Slide

  27. 今回話さなかったこと
    * RRaaiillss44での実装の長所短所
    * 運用事例 ((自宅のBBOOTTと連携等))
    * 他のCCIIアプリと比べたときの位置付け
    * 今後追加予定の機能
    IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

    View Slide

  28. まとめ
    * AAllttrriiaaというCCII SSeerrvveerrを作りました
    * 普通のWWeebbアプリと同じように作れるよ
    * カジュアルにプラグインが書けるよ
    * 機能要望 && 開発者を募集しています
    IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

    View Slide

  29. IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM
    ご静聴ありがとうございました
    ((質問・要望は@@rr77kkaammuurraaまで))
    github.com/r7kamura/altria

    View Slide