freeeで毎月開催されるEngineer All Hands #5にて、 freeeのインフラについて10minLTをしました。
Engineer All Hands #5freee2015/11/26松崎 啓治
View Slide
SonicGardenの皆様、こんばんは!!
読みました!!!http://futoase.hatenablog.com/entry/2015/11/01/201627
「自己紹介(軽く)」
自己紹介(軽く)● 2014年6月入社 (33歳児)● インフラとしてずっとやってます● 入社時インフラ2名だった● 2回目の確定申告をこれから体験します(`・ω・´)ゞ● 最近筋トレ続けてます● Twitter: @xga● facebook: @futoase
弊社のインフラについて
弊社のインフラについて(軽く)
今のところ4名
「サポートしている業務」
サポートしている業務● 引っ越しサポート○ 12月から全員新しいオフィスへ○ その前の一部引っ越し組のサポート (ネットワークや、机やらタップなどなど )● アプリケーションミドルウェア選定、セットアップ、運用● デプロイ環境整備、 (capistranoの対応など)● テスト環境構築 (Pull Request駆動のテスト環境)● ネットワーク構築 (AWSが主だが、社内でもちょこっと)● マシン選定 (最近情シスロールができたのでそちらに)● CSIRT (ゆくゆくはインフラのみではなくなる)● あとは小さいサービスの実装など (gemやmicro serviceなど)● LPの面倒を見るとか● 障害対応
「日々の業務」
日々の業務● 10:55 〜 全体朝会● 11:30 〜 朝会● 17:00 〜 Sprint振り返り (毎週水曜日)● これ以外の時間は基本ミーティングか通常業務(開発か運用か何か)
「インフラの構造」
2015年前半までのインフラの構造は以下を。Speaker Deckのプレゼン
2015年11月は?
現在
VPC 分離
VPC 分離● 今までProductionとStagingが同一VPCだった● Security Group上限までいっちゃった問題発生(後述)● Staging環境を別VPCにした
Network ACLによるトラフィック制御
Network ACLによるトラフィック制御● 今までトラフィック制御をSecurity Groupに頼っていた○ A Security GroupとB Security Groupの疎通が必要であれば都度編集・追加● Security GroupについてVPCあたり100の制限がある● VPC分割と共に、Security Groupを増やし過ぎない運用を行う必要が出てきた● SubnetごとにNetwork ACLを設定し、各Subnet、IPアドレスマスクごとにトラフィック制御のInbound / Outboundの設定を行うように整理○ Productionはこれから。● Network ACLの制限はSecurity Groupに比べるとゆるい● ただ、数が多すぎると目grepが辛い
障害時に電話かかってくる
障害時に電話かかってくる● Twilioを弊社では電話サポートに利用している○ http://twilio.kddi-web.com/case/freee/● Slack上でbot(hubot)を使って、Zabbix-agentから送られたサーバの問題を検知、インフラ担当者に電話がかかってくるシステム● ワン切りしてもだめで、Slackに書き込むまで電話が鳴る○ 5回鳴ったら次の人
「アプリとインフラ」
アプリとインフラ● アプリとインフラは、チームとしては分かれている● といってもインフラがアプリ(コード)書かないとかそういうことはないヨ● 必要なソリューション提供のためのライブラリ(gem化したり)書いたり、アプリ直したりしている● 基本的にアプリのことをわかっている前提で動く○ プロダクト命○ リソースと実装、現実、やりたいことを天秤にかける● 今のところ、アプリ vs インフラみたいな状態になってない○ 今後もならない!!!!
「課題」
課題● 会計freeeのDBがmasterのみの問題○ これは近々解決...できたい。● サービスが増えるに連れて運用のつらみが増してきている○ スクリプト化を進めていく○ フルスペックを目指さず、できるところから手をつけていく (限りがある)● テストの実行速度が落ちてきている○ RSpec(インテグレーションテストなども )の充実による副作用○ 並列化してテストを実行しているが、だんだん現実的時間で終わらなくなってきている● デプロイ速度も落ちてきている○ サーバ台数が増えてきている■ pull/push モデル、コード同期について課題がある● 増え続けるfreeeメンバーのためのネットワーク整備○ 無線でのインターネットを提供し続けたい
課題● 運用するアプリはRailsのみとは限らない現状...!!!○ 現状もGoやJava、Scalaのものが走り始めている■ 個人的にぜんぜんOK○ 運用ノウハウが無いものを始めるものが多い○ それに常に追いつけるようにしなければ …● 開発者が開発しやすい環境を整えられていない○ 今はまだ完全じゃない感○ 開発のしやすさ = 品質に繋がると思う○ どっかで大きい転換を図れるよう、がっつりやる必要がある● いかにアプリとインフラの距離をゼロにするか?○ 完全にゼロにはならないかもしれないけどそうしたい○ プロダクトがわからないインフラは残念感があるので (今のところないはず )● 開発環境整備の大変さ
課題はいっぱい。
課題はいっぱい。(やっていく気持ち)
「最近がんばってること」
10月ぐらいからずっとSplatoonやってます。nnid: futoaseなのでよろしく❢❢❢❢❢
「以上 m(_ _)m」