Upgrade to Pro — share decks privately, control downloads, hide ads and more …

僕の考えた最GoのCI環境

 僕の考えた最GoのCI環境

build CI environment with Golang

Osamu Habuka

July 29, 2018
Tweet

More Decks by Osamu Habuka

Other Decks in Technology

Transcript

  1. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    僕の考えた最GoのCI環境
    羽深 修
    伊藤忠テクノソリューションズ株式会社
    2018/07/29

    View Slide

  2. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    自己紹介
    羽深 修 (はぶか おさむ)
    Twitter: habuka036
    Facebook: osamu.habuka
    経歴
    クラウド基盤構築ソフトウェア界隈に生息し
    てました
    EucalyptusでLiveDVD芸人
    Wakame-vdcで茶番リスト
    OpenStackで鰻師

    View Slide

  3. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    自己紹介
    羽深 修 (はぶか おさむ)
    Twitter: habuka036
    Facebook: osamu.habuka
    経歴
    その他、以下の活動をしたり…しなかったり…
    日本Henchman使ってみる会
    日本goss使ってみる会
    日本fission使ってみる会

    View Slide

  4. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    自己紹介
    本業
    igniteというサービスを開発&運用しています
    https://www.ignite.ci
    DevOpsのコンサルティングおよびCI/CD環境の
    インテグレーションをしています
    同僚がどんなに忙しく仕事してても、ほぼ定
    時で帰って育児家事を少ししてます。

    View Slide

  5. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    自己紹介
    本業以外
    技術系の本を書いたり、大学でもぐりの講師
    をしたり…
    「インフラCI実践ガイド」は絶賛発売中で
    す!

    View Slide

  6. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    これは何?
    Goで書かれているプロダクトを使ってCI環境を作成
    しようという話です。
    ついでに、YAML大好きっこなので、なるべくYAMLで
    定義できるように
    頑張ろうと思いましたが、ぶっちゃけ酒に溺れてし
    まい、そこまで到達できませんでした。

    View Slide

  7. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    どんな構成?こんな構成を夢見ました。

    View Slide

  8. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    Goで書かれているCI環境を構成するプロダクトって
    何がある?
    Github クローン (俺基準)
    Gogs
    Gitea

    View Slide

  9. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    Goで書かれているCI環境を構成するプロダクトって
    何がある?
    CI/CD システム (俺基準)
    Drone
    Concourse

    View Slide

  10. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    Goで書かれているCI環境を構成するプロダクトって
    何がある?
    ディプロイメント (俺基準)
    Terraform
    Henchman
    なんかプロジェクトの活動が止まってるぽ
    くて「Feel free to fork the project」っ
    て…

    View Slide

  11. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    CIと言えばテスト必須
    コードに対するTDD系
    なんか色々あるっぽいよ?
    コードに対するBDD系 (俺基準)
    Gingko
    Gospel
    環境に関するBDD系 (俺基準)
    Goss

    View Slide

  12. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    別になくてもいいけど、あったら便利な周辺環境
    Chat (俺基準)
    Mattermost
    監視 (俺基準)
    Prometheus
    インシデント管理 (俺基準?)
    PagerDuty を go-pagerduty で…(無理矢理Go
    感を…

    View Slide

  13. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    他に気になっているツール類
    GUIテスト
    Robotgo
    WebUIが素敵そうなテストツール?
    GoConvey

    View Slide

  14. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    で、いつものごとく、普段使ってるのはこの中のご
    く一部です。

    View Slide

  15. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    このままだと去年の二の舞で、紹介しただけで終わ
    ってしまうので、こんな環境を作るためのスクリプ
    ト類を置くリポジトリだけ作りました。
    https://github.com/habuka036/gogg

    View Slide

  16. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    僕のやる気を刺激するために以下について協力求
    む… (誰か助けて
    Golang で書かれてるインシデント管理/アラー
    ト通知システム
    絵心ある人、ゴッグと Gopher くんをフュージ
    ョンさせて ><

    View Slide

  17. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    はじめに
    Gogg + Gopher

    View Slide

  18. 僕の考えた最GoのCI環境 Powered by Rabbit 2.2.1
    おわりに
    ロードマップという名の妄想
    2018年7月末: GogsとDroneが構築できるスクリ
    プトのリリース
    2018年8月末: 白紙
    2018年9月末: 白紙
    ずーっと白紙

    View Slide