Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Engineer All Hands #5 (freee) 「インフラ」

Engineer All Hands #5 (freee) 「インフラ」

freeeで毎月開催されるEngineer All Hands #5にて、
freeeのインフラについて10minLTをしました。

Keiji Matsuzaki

November 27, 2015
Tweet

More Decks by Keiji Matsuzaki

Other Decks in Technology

Transcript

  1. Engineer All Hands #5
    freee
    2015/11/26
    松崎 啓治

    View Slide

  2. SonicGardenの皆様、こんばんは!!

    View Slide

  3. View Slide

  4. 読みました!!!
    http://futoase.hatenablog.com/entry/2015/11/01/201627

    View Slide

  5. 「自己紹介(軽く)」

    View Slide

  6. 自己紹介(軽く)
    ● 2014年6月入社 (33歳児)
    ● インフラとしてずっとやってます
    ● 入社時インフラ2名だった
    ● 2回目の確定申告をこれから体験します(`・ω・´)ゞ
    ● 最近筋トレ続けてます
    ● Twitter: @xga
    ● facebook: @futoase

    View Slide

  7. 弊社のインフラについて

    View Slide

  8. 弊社のインフラについて
    (軽く)

    View Slide

  9. View Slide

  10. 今のところ4名

    View Slide

  11. 「サポートしている業務」

    View Slide

  12. サポートしている業務
    ● 引っ越しサポート
    ○ 12月から全員新しいオフィスへ
    ○ その前の一部引っ越し組のサポート (ネットワークや、机やらタップなどなど )
    ● アプリケーションミドルウェア選定、セットアップ、運用
    ● デプロイ環境整備、 (capistranoの対応など)
    ● テスト環境構築 (Pull Request駆動のテスト環境)
    ● ネットワーク構築 (AWSが主だが、社内でもちょこっと)
    ● マシン選定 (最近情シスロールができたのでそちらに)
    ● CSIRT (ゆくゆくはインフラのみではなくなる)
    ● あとは小さいサービスの実装など (gemやmicro serviceなど)
    ● LPの面倒を見るとか
    ● 障害対応

    View Slide

  13. 「日々の業務」

    View Slide

  14. 日々の業務
    ● 10:55 〜 全体朝会
    ● 11:30 〜 朝会
    ● 17:00 〜 Sprint振り返り (毎週水曜日)
    ● これ以外の時間は基本ミーティングか通常業務(開発か運用か何か)

    View Slide

  15. 「インフラの構造」

    View Slide

  16. 2015年前半までのインフラの構造は以下を。
    Speaker Deckのプレゼン

    View Slide

  17. View Slide

  18. 2015年11月は?

    View Slide

  19. 現在

    View Slide

  20. VPC 分離

    View Slide

  21. VPC 分離
    ● 今までProductionとStagingが同一VPCだった
    ● Security Group上限までいっちゃった問題発生(後述)
    ● Staging環境を別VPCにした

    View Slide

  22. Network ACLによる
    トラフィック制御

    View Slide

  23. 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が辛い

    View Slide

  24. 障害時に電話かかってくる

    View Slide

  25. 障害時に電話かかってくる

    View Slide

  26. 障害時に電話かかってくる
    ● Twilioを弊社では電話サポートに利用している
    ○ http://twilio.kddi-web.com/case/freee/
    ● Slack上でbot(hubot)を使って、Zabbix-agentから送られたサーバの問題を検知、
    インフラ担当者に電話がかかってくるシステム
    ● ワン切りしてもだめで、Slackに書き込むまで電話が鳴る
    ○ 5回鳴ったら次の人

    View Slide

  27. 「アプリとインフラ」

    View Slide

  28. アプリとインフラ
    ● アプリとインフラは、チームとしては分かれている
    ● といってもインフラがアプリ(コード)書かないとかそういうことはないヨ
    ● 必要なソリューション提供のためのライブラリ(gem化したり)書いたり、アプリ直した
    りしている
    ● 基本的にアプリのことをわかっている前提で動く
    ○ プロダクト命
    ○ リソースと実装、現実、やりたいことを天秤にかける
    ● 今のところ、アプリ vs インフラみたいな状態になってない
    ○ 今後もならない!!!!

    View Slide

  29. 「課題」

    View Slide

  30. 課題
    ● 会計freeeのDBがmasterのみの問題
    ○ これは近々解決...できたい。
    ● サービスが増えるに連れて運用のつらみが増してきている
    ○ スクリプト化を進めていく
    ○ フルスペックを目指さず、できるところから手をつけていく (限りがある)
    ● テストの実行速度が落ちてきている
    ○ RSpec(インテグレーションテストなども )の充実による副作用
    ○ 並列化してテストを実行しているが、だんだん現実的時間で終わらなくなってきている
    ● デプロイ速度も落ちてきている
    ○ サーバ台数が増えてきている
    ■ pull/push モデル、コード同期について課題がある
    ● 増え続けるfreeeメンバーのためのネットワーク整備
    ○ 無線でのインターネットを提供し続けたい

    View Slide

  31. 課題
    ● 運用するアプリはRailsのみとは限らない現状...!!!
    ○ 現状もGoやJava、Scalaのものが走り始めている
    ■ 個人的にぜんぜんOK
    ○ 運用ノウハウが無いものを始めるものが多い
    ○ それに常に追いつけるようにしなければ …
    ● 開発者が開発しやすい環境を整えられていない
    ○ 今はまだ完全じゃない感
    ○ 開発のしやすさ = 品質に繋がると思う
    ○ どっかで大きい転換を図れるよう、がっつりやる必要がある
    ● いかにアプリとインフラの距離をゼロにするか?
    ○ 完全にゼロにはならないかもしれないけどそうしたい
    ○ プロダクトがわからないインフラは残念感があるので (今のところないはず )
    ● 開発環境整備の大変さ

    View Slide

  32. 課題はいっぱい。

    View Slide

  33. 課題はいっぱい。
    (やっていく気持ち)

    View Slide

  34. 「最近がんばってること」

    View Slide

  35. View Slide

  36. 10月ぐらいからずっと
    Splatoonやってます。
    nnid: futoaseなのでよろし
    く❢❢❢❢❢

    View Slide

  37. 「以上 m(_ _)m」

    View Slide