俺と ha4go と さくらクラウド
TRANSCRIPT
俺と ha4go とさくらクラウド
ふぁらお加藤2017-04-29 KIT-LT #2
Profile
Name
ふぁらお加藤 / @PharaohKJ
Hobby
Camera / subculture
Job & Works
PhalanXware (Freelancer)
OCR system com / .NET
ISDB-T MFC / Linux C++
Social Game PHP / Java
ERP+CRM AngularJS / Cordova
Information App AngularJS / CakePHP
Factory Automation .NET
ha4go ってご存知ですか?
地域課題を集約し可視化する。
地域課題から自ら解決したい人と解決できる人を繋げる。
解決までの道づくりを手助けする。
つまるところ
C# とか Ruby とかできることを書いて登録しておくとスカウトメールがくる
課題とやってほしいことを書くとマッチした人にお手伝いしてほしいメールがゆく
それだけ
設計と実装
アプリRuby on Rails 4系
依存サービス
ログイン認証Facebook やっぱり誰でも書けるってのはね
メール配信さくらのメールボックス
データベースMySQL まぁ特にこだわりはない
構成
443/80のみ
認証・書込
配信
front
db manage
22のみ
443確認 異常通知
オペレータプル
プル
プル
デザイナ
プッシュ
プッシュ
確認
設計ポリシー
• 普通の鉄板構成にする
• 「サービス止まってもいいよね」っていう「ゆとり」
• 外部からはhttpsだけ許す、一部の外部は22だけ許す
• いつ引っ越しになっても大丈夫なようにDocker
• 本番以外もちゃんと用意して誰もが開発できるように
front
• 2CPU 4GBメモリインスタンス
• RailsアプリがDocker上で動いている
• 80/443以外は外部からアクセスさせない
• 内部はフルオープン
• メール配信時はさくらのメールボックス
• FBに更新通知する
DB
• 2CPU 4GBメモリインスタンス
• MySQLがDockerで動いている(Diskをマウント)
• 外部からのアクセスは不可
• 内部はフルオープン
• バックアップはマネージから取る
manage
• 1CPU 2GBメモリインスタンス
• muninで各インスタンスの状況を収集
• 唯一外部からsshでアクセスできる
• クロンで定期的にDBのバックアップを作成する
443/80のみ
認証・書込
配信
front
db manage
22のみ
443確認 異常通知
オペレータプル
プル
プル
デザイナ
プッシュ
プッシュ
確認
チーム連携
• みんなGitHubを使う、ここの Release がデプロイされるというルール
• テスト環境はHerokuで、とあるブランチをpushしたら自動でデプロイ
• notエンジニアはこのHerokuで文章や見た目を確認する→ OKならプルリク
• slackを使う→ 障害検知 & イベント発生したら全部ここに集約
課題
• やっぱり IaaS はいろいろとコストが高い。メンテがだるい。
• せっかく Docker 使ってる & さくらさんだし Arukas に行きたい。
• デプロイがまだデプロイ職人いる感じで自動化足りてない。
• テストコード入れたいけどほとんどない。
感謝
• DNSで名付けた名前とユーザー名とパスワードを同じにしたら数分で乗っ取られたでござる。マジ注意。
• さくらさんからメール連絡いただけてすぐ対応できました。よかった。マジ感謝。
• いろいろプルリクしてくれてコードフォー各位マジ感謝。かなり知見が得られた & 進捗した。
• さくらクラウドさん本当にありがとうございます。
ha4go も ha4go自体のメンテも募集しています。来たれ!
ご清聴ありがとうございました
ふぁらお加藤