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

Preview:

Citation preview

北海道 x 農業 x クラウド

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

2015.03.22 JAWS-DAYS 2015

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

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

!

!

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

@dateofrock

http://blog.dateofrock.com/

architecture

architecture

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

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

architecture

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

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

{JSON}

Users

Amazon S3

Bootstrap

Client

Server

Ops

Dev deploy

Staffs

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

client

Users

Amazon S3

Bootstrap

Client

Users

Amazon S3

Bootstrap

Client

すべて静的ファイル

Users

Amazon S3

Bootstrap

Client

Users

Amazon S3

Bootstrap

Client

Users

Amazon S3

Bootstrap

Client

Users

Amazon S3

Bootstrap

Client

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

UsersServer

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

server

server

APIサーバーとして構築!

Ruby on Railsを採用!

RDBはPostgreSQL on RDSを利用

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

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

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

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

AWS Data Pipeline

Data Pipeline

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

↓!集計テーブル作成 SQL

Data Pipeline

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

↓!集計テーブル作成 SQL

Data Pipeline

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

↓!集計テーブル作成 SQL

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

AWS Elastic Beanstalk

Elastic Beanstalk

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

Elastic Beanstalk

デプロイが簡単。

Elastic Beanstalk

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

Elastic Beanstalk

デプロイも簡単。

$> eb deploy

デプロイはこれだけ

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

git branch => EB env

develop

staging

master

env: unstable

env: staging

env: production

env: unstableenv: stagingenv: production

develop

staging

master

Feature

#123

ブランチ名は GitHubのIssue番号

develop

staging

master

Feature

Feature

#123

#234

milestone 達成!

develop

staging

master

Feature

Feature

#123

#234

staging環境でテスト

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

develop

staging

master

Feature

Feature

#123

#234

#345

#456

その間も開発は続くw

develop

staging

master

Feature

Feature

Tag: release-20150322-1300

#123

#234

#345

#456

リリース!!

develop

staging

master

Feature

Feature

Tag: release-20150322-1300

#123

#234

#345

#456

EBのAppVersionと 合わせます

EB Config

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

RailsのEnv(RACK_ENV)を与える!

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

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

EB Config

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

RailsのEnv(RACK_ENV)を与える!

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

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

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

UsersServer

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

UsersServer

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

UsersServer

Dev deploy

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

UsersServer

Dev deploy

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

RDSRDS

Elastic BeanstalkAmazon S3

Data Pipeline

Dev

Dev

Issueを中心に!

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

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

連携させてます!

ZenHubも利用

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

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

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

ZenHub

https://www.zenhub.io/

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

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

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

$> git push!

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

→ テスト (rspec)!

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

→ に通知

circle.yml

Dev

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Server

RDS

Elastic Beanstalk

Amazon S3

Dev deployDev

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Server

OpsRDS

Elastic Beanstalk

Amazon S3

運用関連

ログ!

監視

ログ管理サービス!

導入が容易!

tail -f 的な使い方!

ログのグルーピング

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

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

アラートも送信可能!

ex) invalid user というログが

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

    に通知

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

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

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

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

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

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

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

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

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

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

使ってますw

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

チャットとして!

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

外部連携!

GitHub、CircleCI、Papertrail、Mackerel!

Google Drive、Hangout etc…!

営業チャンネル

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Amazon S3

Bootstrap

Client

Server

OpsRDS

Elastic Beanstalk

Amazon S3

Dev deploy

Hub

Users

RDS

Elastic Load Balancing CloudWatch

Amazon EC2 Instances

Amazon S3

Bootstrap

Client

Server

OpsRDS

Elastic Beanstalk

Amazon S3

Dev deploy

Staffs

デバイス関連

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

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

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

RedshiftDynamoDB EMRKinesis

これらを利用する予定

まとめ

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

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

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

AWSにないものもある。!

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

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

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

そのための、クラウド。

北海道 x 農業 x クラウド

現場でやることの 強み

現場のお客様の話を

実感を持って

直接聞く事ができる

Recommended