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.

JAWS-DAYS 2015 / 北海道 x 農業 x クラウド

4,183 views

Published on

JAWS-DAYS 2015でお話ししたスライドです。
株式会社ファームノートは酪農・畜産業界向けに特化したスマートフォンアプリ「Farmnote」の開発を行うITベンチャーです。「牧場を、手のひらに。」をビジョンに、手書きノートのように「かんたん」に情報を活用できるシステムの開発を通じて、酪農・畜産業界の経営効率化を支援します。本セッションでは、Farmnoteの紹介と技術的概要、AWSの活用事例、そして、農業とITの関係についてお話しします。

Published in: Engineering
  • Be the first to comment

JAWS-DAYS 2015 / 北海道 x 農業 x クラウド

  1. 1. 北海道 x 農業 x クラウド 株式会社ファームノート ソフトウェアエンジニア 田名辺健人 2015.03.22 JAWS-DAYS 2015
  2. 2. Who am I ?!(この顔にピンときたら)
  3. 3. 田名辺 健人(たなべたけひと) ソフトウェアエンジニア 北海道札幌市在住/クラウド移住者 ! ! ! JAWS-UG第一回目から参加w 初代AWSサムライ 好きなサービス: SWF @dateofrock http://blog.dateofrock.com/
  4. 4. architecture
  5. 5. architecture クライアント、サーバーを完全分離! クライアントはPC、スマホ、タブレット
  6. 6. architecture サーバーはAPIサーバーとして構築! クライアント ⇆ サーバー間はJSONで通信 {JSON}
  7. 7. Users Amazon S3 Bootstrap Client Server Ops Dev deploy Staffs Elastic Load Balancing CloudWatch Amazon EC2 Instances RDS RDS Elastic Beanstalk Amazon S3 Data Pipeline
  8. 8. client
  9. 9. Users Amazon S3 Bootstrap Client
  10. 10. Amazon S3 Bootstrap Client すべて静的ファイル
  11. 11. Amazon S3 Boo Client p
  12. 12. Amazon S3 Boo Client p クライアントの配信は 自分たちでやる必要がない
  13. 13. UsersServer Elastic Load Balancing CloudWatch Amazon EC2 Instances RDS RDS Elastic Beanstalk Amazon S3 Data Pipeline
  14. 14. server
  15. 15. server APIサーバーとして構築! Ruby on Railsを採用! RDBはPostgreSQL on RDSを利用
  16. 16. 構築運用ポリシー 手動の作業はつくらない! 手間と間違いを防ぐため! 運用の手間は排除したい! 開発に集中しなければならない
  17. 17. AWS Data Pipeline
  18. 18. Data Pipeline データ処理ワークフローを 定期的なスケジュールで実行! ↓! 集計テーブル作成 SQL
  19. 19. Data Pipeline データ処理ワークフローを 定期的なスケジュールで実行! ↓! 集計テーブル作成 SQL
  20. 20. Data Pipeline データ処理ワークフローを 定期的なスケジュールで実行! ↓! 集計テーブル作成 SQL ※PostgreSQL on RDSでSqlActivityが使えないから、ShellCommandActivityでやってる (;´Д`)
  21. 21. AWS Elastic Beanstalk
  22. 22. Elastic Beanstalk ロードバランサー、オート スケーリング、アプリケーショ ンサーバー、モニタリング! ! 自動で全て作られます
  23. 23. Elastic Beanstalk デプロイが簡単。
  24. 24. Elastic Beanstalk デプロイも簡単。$> eb deploy
  25. 25. Elastic Beanstalk デプロイも簡単。 $> eb deploy デプロイはこれだけ
  26. 26. ファームノートでは         を使ってます
  27. 27. git branch => EB env
  28. 28. develop staging master env: unstable env: staging env: production
  29. 29. env: unstableenv: stagingenv: production
  30. 30. develop staging master Feature #123 ブランチ名は GitHubのIssue番号
  31. 31. develop staging master Feature Feature #123 #234 milestone 達成!
  32. 32. develop staging master Feature Feature #123 #234 staging環境でテスト $> git checkout staging! $> git merge develop! $> eb deploy staging
  33. 33. develop staging master Feature Feature #123 #234 #345 #456 その間も開発は続くw
  34. 34. develop staging master Feature Feature Tag: release-20150322-1300 #123 #234 #345 #456 リリース!!
  35. 35. develop staging master Feature Feature Tag: release-20150322-1300 #123 #234 #345 #456 EBのAppVersionと 合わせます
  36. 36. EB Config EB Envごとの設定は .ebextensions/*.config に! RailsのEnv(RACK_ENV)を与える! 運用系の設定(ログ、監視etc)! ex) stagingは作って壊すので監視不要
  37. 37. EB Config EB Envごとの設定は .ebextensions/*.config に! RailsのEnv(RACK_ENV)を与える! 運用系の設定(ログ、監視etc)! ex) stagingは作って壊すので監視不要 http://www.slideshare.net/dateofrock/net-cobol20130222
  38. 38. UsersServer Elastic Load Balancing CloudWatch Amazon EC2 Instances RDS RDS Elastic Beanstalk Amazon S3 Data Pipeline
  39. 39. UsersServer Elastic Load Balancing CloudWatch Amazon EC2 Instances RDS RDS Elastic Beanstalk Amazon S3 Data Pipeline
  40. 40. UsersServer Dev deploy Elastic Load Balancing CloudWatch Amazon EC2 Instances RDS RDS Elastic Beanstalk Amazon S3 Data Pipeline
  41. 41. UsersServer Dev deploy Elastic Load Balancing CloudWatch Amazon EC2 Instances RDS RDS Elastic Beanstalk Amazon S3 Data Pipeline Dev
  42. 42. Dev
  43. 43. Issueを中心に! 営業には顧客要望をIssueとして 上げてもらってます! ドキュメントはWikiに集約! 連携させてます! ZenHubも利用
  44. 44. GitHubを使いやすくする Chromeの機能拡張! IssueをGitHub上でカンバン
 表示できる! マイルストーン毎に全体を 把握しやすい ZenHub
  45. 45. https://www.zenhub.io/
  46. 46. Continuous Integration(継続的 インテグレーション)のSaaS! Jenkinsサーバー持ちたくないw! developブランチのデプロイを 自動化
  47. 47. $> git push! circle ci がソース取得 (checkout)! → テスト (rspec)! → デプロイ (eb deploy / circle.yml)! → に通知
  48. 48. circle.yml
  49. 49. Dev
  50. 50. Users RDS Elastic Load Balancing CloudWatch Amazon EC2 Instances Server RDS Elastic Beanstalk Amazon S3 Dev deployDev
  51. 51. Users RDS Elastic Load Balancing CloudWatch Amazon EC2 Instances Server OpsRDS Elastic Beanstalk Amazon S3
  52. 52. 運用関連 ログ! 監視
  53. 53. ログ管理サービス! 導入が容易! tail -f 的な使い方! ログのグルーピング
  54. 54. EBのenvironmentごとに 切り分けて運用
  55. 55. 検索、フィルタリングが強力! アラートも送信可能! ex) invalid user というログが 1分間に3回出現したとき!     に通知
  56. 56. 監視サービス(お試し中)! mackerelはエージェントを仕込む! CPU、メモリ、ストレージ etc…! Site Care FREE IIはエージェントレス! HTTP死活監視、SSL証明書 etc…
  57. 57. 監視サービス(お試し中)! mackerelはエージェントを仕込む! CPU、メモリ、ストレージ etc…! Site Care FREE IIはエージェントレス! HTTP死活監視、SSL証明書 etc… CloudWatch 使ってますw
  58. 58.
  59. 59. Farmnoteの全スタッフが利用してます
  60. 60. チャットとして! そもそも拠点が帯広、札幌、東京! 外部連携! GitHub、CircleCI、Papertrail、 Mackerel! Google Drive、Hangout etc…! 営業チャンネル
  61. 61. Users RDS Elastic Load Balancing CloudWatch Amazon EC2 Instances Amazon S3 Bootstrap Client Server OpsRDS Elastic Beanstalk Amazon S3 Dev deploy Hub
  62. 62. Users RDS Elastic Load Balancing CloudWatch Amazon EC2 Instances Amazon S3 Bootstrap Client Server OpsRDS Elastic Beanstalk Amazon S3 Dev deploy Staffs
  63. 63. デバイス関連 http://pixelperfectdigital.com/photo/670/circuit-board-abstract-background.html
  64. 64. デバイス関連 ビッグデータ http://pixelperfectdigital.com/photo/670/circuit-board-abstract-background.html RedshiftDynamoDB EMRKinesis これらを利用する予定
  65. 65. まとめ
  66. 66. 地方のベンチャー x クラウド
  67. 67. そのうちAWSのサービスとして出るww 地方のベンチャーにとって、 クラウドを乗りこなすのは 必須条件。! AWSにないものもある。! その場合は
 「自分たちで作らずに借りる」
  68. 68. サービスを生み出すためには、 運用保守に振り回されないように心がける。
  69. 69. そのための、クラウド。
  70. 70. 北海道 x 農業 x クラウド 現場でやることの 強み
  71. 71. 現場のお客様の話を 実感を持って 直接聞く事ができる

×