76
北海道 x 農業 x クラウド 株式会社ファームノート ソフトウェアエンジニア 田名辺健人 2015.03.22 JAWS-DAYS 2015

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

Embed Size (px)

Citation preview

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

北海道 x 農業 x クラウド

株式会社ファームノート ソフトウェアエンジニア 田名辺健人

2015.03.22 JAWS-DAYS 2015

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

Who am I ?!(この顔にピンときたら)

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

田名辺 健人(たなべたけひと) ソフトウェアエンジニア 北海道札幌市在住/クラウド移住者 !

!

!

JAWS-UG第一回目から参加w 初代AWSサムライ 好きなサービス: SWF

@dateofrock

http://blog.dateofrock.com/

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

architecture

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

architecture

クライアント、サーバーを完全分離!

クライアントはPC、スマホ、タブレット

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

architecture

サーバーはAPIサーバーとして構築!

クライアント ⇆ サーバー間はJSONで通信

{JSON}

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

Users

Amazon S3

Bootstrap

Client

Server

Ops

Dev deploy

Staffs

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

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

client

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

Users

Amazon S3

Bootstrap

Client

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

Users

Amazon S3

Bootstrap

Client

すべて静的ファイル

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

Users

Amazon S3

Bootstrap

Client

Users

Amazon S3

Bootstrap

Client

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

Users

Amazon S3

Bootstrap

Client

Users

Amazon S3

Bootstrap

Client

クライアントの配信は 自分たちでやる必要がない

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

UsersServer

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

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

server

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

server

APIサーバーとして構築!

Ruby on Railsを採用!

RDBはPostgreSQL on RDSを利用

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

構築運用ポリシー手動の作業はつくらない!

手間と間違いを防ぐため!

運用の手間は排除したい!

開発に集中しなければならない

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

AWS Data Pipeline

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

Data Pipeline

データ処理ワークフローを定期的なスケジュールで実行!

↓!集計テーブル作成 SQL

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

Data Pipeline

データ処理ワークフローを定期的なスケジュールで実行!

↓!集計テーブル作成 SQL

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

Data Pipeline

データ処理ワークフローを定期的なスケジュールで実行!

↓!集計テーブル作成 SQL

※PostgreSQL on RDSでSqlActivityが使えないから、ShellCommandActivityでやってる (;´Д`)

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

AWS Elastic Beanstalk

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

Elastic Beanstalk

ロードバランサー、オートスケーリング、アプリケーションサーバー、モニタリング!!自動で全て作られます

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

Elastic Beanstalk

デプロイが簡単。

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

Elastic Beanstalk

デプロイも簡単。$> eb deploy

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

Elastic Beanstalk

デプロイも簡単。

$> eb deploy

デプロイはこれだけ

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

ファームノートでは         を使ってます

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

git branch => EB env

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

develop

staging

master

env: unstable

env: staging

env: production

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

env: unstableenv: stagingenv: production

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

develop

staging

master

Feature

#123

ブランチ名は GitHubのIssue番号

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

develop

staging

master

Feature

Feature

#123

#234

milestone 達成!

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

develop

staging

master

Feature

Feature

#123

#234

staging環境でテスト

$> git checkout staging!$> git merge develop!$> eb deploy staging

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

develop

staging

master

Feature

Feature

#123

#234

#345

#456

その間も開発は続くw

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

develop

staging

master

Feature

Feature

Tag: release-20150322-1300

#123

#234

#345

#456

リリース!!

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

develop

staging

master

Feature

Feature

Tag: release-20150322-1300

#123

#234

#345

#456

EBのAppVersionと 合わせます

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

EB Config

EB Envごとの設定は .ebextensions/*.config に!

RailsのEnv(RACK_ENV)を与える!

運用系の設定(ログ、監視etc)!

ex) stagingは作って壊すので監視不要

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

EB Config

EB Envごとの設定は .ebextensions/*.config に!

RailsのEnv(RACK_ENV)を与える!

運用系の設定(ログ、監視etc)!

ex) stagingは作って壊すので監視不要

http://www.slideshare.net/dateofrock/net-cobol20130222

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

UsersServer

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

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

UsersServer

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

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

UsersServer

Dev deploy

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

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

UsersServer

Dev deploy

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

Dev

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

Dev

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

Issueを中心に!

営業には顧客要望をIssueとして上げてもらってます!

ドキュメントはWikiに集約!

連携させてます!

ZenHubも利用

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

GitHubを使いやすくするChromeの機能拡張!

IssueをGitHub上でカンバン表示できる!

マイルストーン毎に全体を把握しやすい

ZenHub

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

https://www.zenhub.io/

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

Continuous Integration(継続的インテグレーション)のSaaS!

Jenkinsサーバー持ちたくないw!

developブランチのデプロイを自動化

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

$> git push!

circle ci がソース取得 (checkout)!

→ テスト (rspec)!

→ デプロイ (eb deploy / circle.yml)!

→ に通知

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

circle.yml

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

Dev

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

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Server

RDS

Elastic Beanstalk

Amazon S3

Dev deployDev

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

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Server

OpsRDS

Elastic Beanstalk

Amazon S3

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

運用関連

ログ!

監視

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

ログ管理サービス!

導入が容易!

tail -f 的な使い方!

ログのグルーピング

Page 54: JAWS-DAYS 2015 / 北海道 x 農業 x クラウド
Page 55: JAWS-DAYS 2015 / 北海道 x 農業 x クラウド
Page 56: JAWS-DAYS 2015 / 北海道 x 農業 x クラウド

EBのenvironmentごとに 切り分けて運用

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

検索、フィルタリングが強力!

アラートも送信可能!

ex) invalid user というログが

1分間に3回出現したとき!

    に通知

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

監視サービス(お試し中)!

mackerelはエージェントを仕込む!

CPU、メモリ、ストレージ etc…!

Site Care FREE IIはエージェントレス!

HTTP死活監視、SSL証明書 etc…

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

監視サービス(お試し中)!

mackerelはエージェントを仕込む!

CPU、メモリ、ストレージ etc…!

Site Care FREE IIはエージェントレス!

HTTP死活監視、SSL証明書 etc…CloudWatch

使ってますw

Page 60: JAWS-DAYS 2015 / 北海道 x 農業 x クラウド
Page 61: JAWS-DAYS 2015 / 北海道 x 農業 x クラウド

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

Farmnoteの全スタッフが利用してます

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

チャットとして!

そもそも拠点が帯広、札幌、東京!

外部連携!

GitHub、CircleCI、Papertrail、Mackerel!

Google Drive、Hangout etc…!

営業チャンネル

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

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Amazon S3

Bootstrap

Client

Server

OpsRDS

Elastic Beanstalk

Amazon S3

Dev deploy

Hub

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

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Amazon S3

Bootstrap

Client

Server

OpsRDS

Elastic Beanstalk

Amazon S3

Dev deploy

Staffs

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

デバイス関連

http://pixelperfectdigital.com/photo/670/circuit-board-abstract-background.html

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

デバイス関連ビッグデータ

http://pixelperfectdigital.com/photo/670/circuit-board-abstract-background.html

RedshiftDynamoDB EMRKinesis

これらを利用する予定

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

まとめ

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

地方のベンチャー x クラウド

Page 70: JAWS-DAYS 2015 / 北海道 x 農業 x クラウド
Page 71: JAWS-DAYS 2015 / 北海道 x 農業 x クラウド

そのうちAWSのサービスとして出るww

地方のベンチャーにとって、クラウドを乗りこなすのは必須条件。!

AWSにないものもある。!

その場合は「自分たちで作らずに借りる」

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

サービスを生み出すためには、

運用保守に振り回されないように心がける。

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

そのための、クラウド。

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

北海道 x 農業 x クラウド

現場でやることの 強み

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

現場のお客様の話を

実感を持って

直接聞く事ができる

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