Upload
takehito-tanabe
View
1.715
Download
5
Embed Size (px)
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 クラウド
現場でやることの 強み
現場のお客様の話を
実感を持って
直接聞く事ができる