Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ネタ募集箱を
支える技術
2016.01.26
嶋田大輔
@cimadai (しまだい)
嶋田 大輔
自己紹介
https://bitbucket.org/daisuke-shimada
八王子 高尾山
https://github.com/cimadai
l ネットワークとその周辺分野が得意
l...
自己紹介
l 最近興味を持っていること
l 機械学習 (ディープラーニング)
l ブロックチェーン
l 言語は複数触っていますが、好きなのはこんな感じ
l JSの本を2冊書いてます。
八王子 高尾山
l OpenCV 3.x
l ...
本日の主題
ネタ募集箱
http://blog.cybozu.io/entry/8305
http://blog.cybozu.io/entry/8305
ピコーン
ネタ募集箱
作ってみた
https://github.com/cimadai/neta-­‐inbox
Fork,	
  Pull	
  Request,	
  Issue登録歓迎です!
今日はこのネタ
募集箱を作る中
で使った技術を
ご紹介します
開発環境編
動作環境編
開発言語編
開発環境編
動作環境編
開発言語編
開発環境
Docker HubEC2
WerckerCodecov
全体としてはこんな構成で開
発を進めています。
GitHubIntelliJ IDEA
Wercker CLI
Local Cloud
開発環境
Docker HubEC2
WerckerCodecov
全体としてはこんな構成で開
発を進めています。
普段はIntelliJ IDEAで開発し
つつgitでGitHubにcommit &
push。
GitHubIntelliJ ...
開発環境
Docker HubEC2
WerckerCodecov
全体としてはこんな構成で開
発を進めています。
普段はIntelliJ IDEAで開発し
つつgitでGitHubにcommit &
push。
Wercker CLIを使って...
開発環境
Docker HubEC2
WerckerCodecov
全体としてはこんな構成で開
発を進めています。
普段はIntelliJ IDEAで開発し
つつgitでGitHubにcommit &
push。
Wercker CLIを使って...
開発環境
Docker HubEC2
WerckerCodecov
全体としてはこんな構成で開
発を進めています。
普段はIntelliJ IDEAで開発し
つつgitでGitHubにcommit &
push。
Wercker CLIを使って...
もう少し詳しく
開発環境
DockerHub
WerckerCodecov
GitHubのIssueや
Pull Requestを使いつつ
日々のコーディングを
進めていきます。
EC2
GitHubIntelliJ IDEA
Wercker CLI
Loca...
開発環境
DockerHub
WerckerCodecov
GitHubのIssueや
Pull Requestを使いつつ
日々のコーディングを
進めていきます。
ZenHubと組み合わせると
GitHubにBoardというカンバ
ン機能が付与...
ZenHub?
BoardsとBurndownが増える
Backlog To	
  Do Doing Done Close
Backlog To	
  Do Doing Done Close
カンバン便利
(Boards = カンバン)
開発環境
DockerHub
WerckerCodecov
Wercker CLIを利用すること
で、手元のDocker環境で
WerckerによるCIを実施する
ことができます。
EC2
GitHubIntelliJ IDEA
Wercker...
Wercker?
TravisCI
CircleCI
Codeship
みたいなCI/CDサービス
Why Wercker?
Why Wercker?
Bitbucketでも使える!
無料で使える!
設定ファイル(wercker.yml)で
ビルドの設定ができる!
任意のコンテナでCIできる!
1
2
3
4
各リポジトリ対応状況
http://qiita.com/hiro_koba/items/282e3b2e534f4bc22d64
より引用
1
料金比較2
http://qiita.com/hiro_koba/items/282e3b2e534f4bc22d64
より引用
設定ファイルがYAML3
http://qiita.com/hiro_koba/items/282e3b2e534f4bc22d64
より引用
wercker.ymlの例
実行しているステップの
結果がリアルタイムに
見ることができる
Dockerベースのシステム4
wercker.ymlの例
wercker.ymlの例
好きなDocker	
  container上
でCIができる!
wercker.ymlの例
好きなDocker	
  container上
でCIができる!
手元でも同じ環境でテスト
できる!
wercker.ymlの例
好きなDocker	
  container上
でCIができる!
手元でも同じ環境でテスト
できる!
本番にも同じ環境で
デプロイできる!
Dockerベース
すごい
Wercker CLI?
ローカルの
Docker環境で
使えるWercker
システム
% wercker build ¥
--working-dir=wercker_work ¥
--direct-mount
手元で実行する例
※neta-­‐inboxのwercker.ymlでは、~/.zshrcにwerckerのaliasと...
実行結果
Dockerベース
すごい(再)
開発環境
Wercker
featureブランチがpush
されるとWerckerでCIが
動き始め、テストが実行
されます。
Codecov
DockerHubEC2
GitHubIntelliJ IDEA
Wercker CLI
Local...
CIが始まるとすぐに
コメントをくれます。
Pull Request出しても
コメントがつかずに
寂しい思いを
していた人も
もう安心。
開発環境
Wercker
テストのカバレッジは
Codecovに保存し、結果
をPull Requestコメント
としてGitHubに通知しま
す。
DockerHub
Codecov
EC2
GitHubIntelliJ IDEA
Werck...
カバレッジが登録され
ると教えてくれます。
CI結果はこんな感じ
でわかるので便利!
このPRはテストが
通ってないからだめ
だ!みたいなチェッ
クが簡単にできる。
もちろんPull	
  Requestsの
一覧でもわかりやすい
開発環境
Wercker
CIが成功したら、現在の
ブランチに応じてデプロ
イを実施します。
ネタ募集箱の場合は
Docker imageを作成し、
Docker Hubにpushして
います。
Codecov
DockerHubEC2
Git...
デプロイされたDocker	
  image
featureブランチと
developブランチは
developタグでpush
masterブランチは
リリース時のバージョン
タグとlatestタグでpush
他のimageもご紹介
用意しているのは全部で3つ
ビルド時に必要な
環境が入った
ビルド環境用image
ビルド環境用Dockerfile
アプリケーションを含む
デプロイimage
デプロイ用Dockerfile
デプロイするimageの
元となるベースimage
ベース用Dockerfile
あとは使いたい環境で
docker runするなり
docker-compose upするなり
dockerの話もそのうちするナリ! >
オープンソースで開発
しているのでここまで
全部無料!
無料 最高!!
オープンソース
最高!!
まとめ
• GitHub使うならZenHub便利でいいよ!
• BitbucketならJIRA使っておけばOKじゃないかな。
• Wercker使うとローカルCIもクラウドCIもできるよ!
• WerckerはDockerコンテナでCIできるか...
参考URL
• ZenHub
– https://www.zenhub.io/
• Wercker (Web)
– http://wercker.com/
• Wercker CLI
– http://wercker.com/downloads...
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
Upcoming SlideShare
Loading in …5
×

ネタ募集箱を支える技術 開発環境編

ネタ募集箱というちょっとしたプロジェクトを作るなかでいろいろな技術を使ってみたのでまとめてみました。

  • Login to see the comments

ネタ募集箱を支える技術 開発環境編

  1. 1. ネタ募集箱を 支える技術 2016.01.26 嶋田大輔
  2. 2. @cimadai (しまだい) 嶋田 大輔 自己紹介 https://bitbucket.org/daisuke-shimada 八王子 高尾山 https://github.com/cimadai l ネットワークとその周辺分野が得意 l RTP / RTSP使って監視カメラの録画とか l Winny方面の技術とか l 独自プロトコルで高速にデータを送る技術とか
  3. 3. 自己紹介 l 最近興味を持っていること l 機械学習 (ディープラーニング) l ブロックチェーン l 言語は複数触っていますが、好きなのはこんな感じ l JSの本を2冊書いてます。 八王子 高尾山 l OpenCV 3.x l IoT などなど
  4. 4. 本日の主題
  5. 5. ネタ募集箱
  6. 6. http://blog.cybozu.io/entry/8305
  7. 7. http://blog.cybozu.io/entry/8305
  8. 8. ピコーン
  9. 9. ネタ募集箱 作ってみた https://github.com/cimadai/neta-­‐inbox Fork,  Pull  Request,  Issue登録歓迎です!
  10. 10. 今日はこのネタ 募集箱を作る中 で使った技術を ご紹介します
  11. 11. 開発環境編 動作環境編 開発言語編
  12. 12. 開発環境編 動作環境編 開発言語編
  13. 13. 開発環境 Docker HubEC2 WerckerCodecov 全体としてはこんな構成で開 発を進めています。 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  14. 14. 開発環境 Docker HubEC2 WerckerCodecov 全体としてはこんな構成で開 発を進めています。 普段はIntelliJ IDEAで開発し つつgitでGitHubにcommit & push。 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  15. 15. 開発環境 Docker HubEC2 WerckerCodecov 全体としてはこんな構成で開 発を進めています。 普段はIntelliJ IDEAで開発し つつgitでGitHubにcommit & push。 Wercker CLIを使ってLocal でもWebと同じCIを実行しま す。 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  16. 16. 開発環境 Docker HubEC2 WerckerCodecov 全体としてはこんな構成で開 発を進めています。 普段はIntelliJ IDEAで開発し つつgitでGitHubにcommit & push。 Wercker CLIを使ってLocal でもWebと同じCIを実行しま す。 WerckerでCI & CDを行い、 テストカバレッジはCodecov に流す。 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  17. 17. 開発環境 Docker HubEC2 WerckerCodecov 全体としてはこんな構成で開 発を進めています。 普段はIntelliJ IDEAで開発し つつgitでGitHubにcommit & push。 Wercker CLIを使ってLocal でもWebと同じCIを実行しま す。 WerckerでCI & CDを行い、 テストカバレッジはCodecov に流す。 できたDocker Imageは Docker Hubでホストしてい ます。 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  18. 18. もう少し詳しく
  19. 19. 開発環境 DockerHub WerckerCodecov GitHubのIssueや Pull Requestを使いつつ 日々のコーディングを 進めていきます。 EC2 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  20. 20. 開発環境 DockerHub WerckerCodecov GitHubのIssueや Pull Requestを使いつつ 日々のコーディングを 進めていきます。 ZenHubと組み合わせると GitHubにBoardというカンバ ン機能が付与されるのでとて も使いやすいです。 EC2 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  21. 21. ZenHub?
  22. 22. BoardsとBurndownが増える
  23. 23. Backlog To  Do Doing Done Close
  24. 24. Backlog To  Do Doing Done Close カンバン便利 (Boards = カンバン)
  25. 25. 開発環境 DockerHub WerckerCodecov Wercker CLIを利用すること で、手元のDocker環境で WerckerによるCIを実施する ことができます。 EC2 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  26. 26. Wercker?
  27. 27. TravisCI CircleCI Codeship みたいなCI/CDサービス
  28. 28. Why Wercker?
  29. 29. Why Wercker? Bitbucketでも使える! 無料で使える! 設定ファイル(wercker.yml)で ビルドの設定ができる! 任意のコンテナでCIできる! 1 2 3 4
  30. 30. 各リポジトリ対応状況 http://qiita.com/hiro_koba/items/282e3b2e534f4bc22d64 より引用 1
  31. 31. 料金比較2 http://qiita.com/hiro_koba/items/282e3b2e534f4bc22d64 より引用
  32. 32. 設定ファイルがYAML3 http://qiita.com/hiro_koba/items/282e3b2e534f4bc22d64 より引用
  33. 33. wercker.ymlの例
  34. 34. 実行しているステップの 結果がリアルタイムに 見ることができる
  35. 35. Dockerベースのシステム4
  36. 36. wercker.ymlの例
  37. 37. wercker.ymlの例 好きなDocker  container上 でCIができる!
  38. 38. wercker.ymlの例 好きなDocker  container上 でCIができる! 手元でも同じ環境でテスト できる!
  39. 39. wercker.ymlの例 好きなDocker  container上 でCIができる! 手元でも同じ環境でテスト できる! 本番にも同じ環境で デプロイできる!
  40. 40. Dockerベース すごい
  41. 41. Wercker CLI?
  42. 42. ローカルの Docker環境で 使えるWercker システム
  43. 43. % wercker build ¥ --working-dir=wercker_work ¥ --direct-mount 手元で実行する例 ※neta-­‐inboxのwercker.ymlでは、~/.zshrcにwerckerのaliasとして以下と、git  configでcodecovのトークンを設定しています。 # Wercker # with local git owner and repository name alias wercker= export X_WERCKER_GIT_OWNER=`git config remote.origin.url ¦ sed -E "s/.*:(.*)¥/(.*).git/¥1/g"` && ¥ export X_WERCKER_GIT_REPOSITORY=`git config remote.origin.url ¦ sed -E "s/.*:(.*)¥/(.*).git/¥2/g"` && ¥ export X_CODECOV_TOKEN=`git config codecov.token` && ¥ wercker' git config codecov.token <Your codecov token>
  44. 44. 実行結果
  45. 45. Dockerベース すごい(再)
  46. 46. 開発環境 Wercker featureブランチがpush されるとWerckerでCIが 動き始め、テストが実行 されます。 Codecov DockerHubEC2 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  47. 47. CIが始まるとすぐに コメントをくれます。
  48. 48. Pull Request出しても コメントがつかずに 寂しい思いを していた人も もう安心。
  49. 49. 開発環境 Wercker テストのカバレッジは Codecovに保存し、結果 をPull Requestコメント としてGitHubに通知しま す。 DockerHub Codecov EC2 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  50. 50. カバレッジが登録され ると教えてくれます。
  51. 51. CI結果はこんな感じ でわかるので便利!
  52. 52. このPRはテストが 通ってないからだめ だ!みたいなチェッ クが簡単にできる。
  53. 53. もちろんPull  Requestsの 一覧でもわかりやすい
  54. 54. 開発環境 Wercker CIが成功したら、現在の ブランチに応じてデプロ イを実施します。 ネタ募集箱の場合は Docker imageを作成し、 Docker Hubにpushして います。 Codecov DockerHubEC2 GitHubIntelliJ IDEA Wercker CLI Local Cloud
  55. 55. デプロイされたDocker  image
  56. 56. featureブランチと developブランチは developタグでpush
  57. 57. masterブランチは リリース時のバージョン タグとlatestタグでpush
  58. 58. 他のimageもご紹介
  59. 59. 用意しているのは全部で3つ
  60. 60. ビルド時に必要な 環境が入った ビルド環境用image
  61. 61. ビルド環境用Dockerfile
  62. 62. アプリケーションを含む デプロイimage
  63. 63. デプロイ用Dockerfile
  64. 64. デプロイするimageの 元となるベースimage
  65. 65. ベース用Dockerfile
  66. 66. あとは使いたい環境で docker runするなり docker-compose upするなり dockerの話もそのうちするナリ! >
  67. 67. オープンソースで開発 しているのでここまで 全部無料!
  68. 68. 無料 最高!!
  69. 69. オープンソース 最高!!
  70. 70. まとめ • GitHub使うならZenHub便利でいいよ! • BitbucketならJIRA使っておけばOKじゃないかな。 • Wercker使うとローカルCIもクラウドCIもできるよ! • WerckerはDockerコンテナでCIできるから柔軟性も 抜群! • テストカバレッジも出すといいよ。Codecov便利。 • 開発もテストも本番も全てDockerでやろうぜ。 • 今回は無料だったけど、必要ならばお金を出して楽を しよう!
  71. 71. 参考URL • ZenHub – https://www.zenhub.io/ • Wercker (Web) – http://wercker.com/ • Wercker CLI – http://wercker.com/downloads/ • Docker Hub – https://hub.docker.com/ • みんなで技術ネタを持ち寄ってワイワイするには – http://blog.cybozu.io/entry/8305

×