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

ここ最近のSREのとりくみとfreeeのアーキテクチャ

 ここ最近のSREのとりくみとfreeeのアーキテクチャ

X-Tech JAWS #5 FinTechすぺしゃる ( https://xtechjaws.doorkeeper.jp/events/81233 ) のfreee株式会社の登壇資料です。

Takuma Hashimoto

October 22, 2018
Tweet

More Decks by Takuma Hashimoto

Other Decks in Technology

Transcript

  1. 2018/05- freee ite eliability ngineeringチームへ配 属 - 新卒入社です...! 運用 自動化や、

    W 各サービス/ ubernetes プロダクトへ 導入と技術検証など 大学院時代 脳波計測&解析あたりをしてました Takuma Hashimoto 橋本 卓磨 2
  2. 3 今回話すこと に関連した講演を と依頼をうけた で... - freee アーキテクチャ 概要 -

    近年 動向を中心に - とりくみを一部ご紹介 - すこしでも参考にしていただけれ あまりビジネス/プロダクト自体 詳細に踏み込んだ話 しないです - もっと聞きたい方: https://jobs.freee.co.jp/
  3. 4 「 in echスペシャル」 今回 参加者 、 W ユーザ かつ

    in ech界隈 方々が多い と想像しています 以前からfreeeをご存知だった方
  4. 5 「 in echスペシャル」 今回 参加者 、 W ユーザ かつ

    in ech界隈 方々が多い と想像しています 以前からfreeeをご存知だった方 freeeユーザですという方
  5. 6 「 in echスペシャル」 今回 参加者 、 W ユーザ かつ

    in ech界隈 方々が多い と想像しています 以前からfreeeをご存知だった方 freeeユーザですという方 - ありがとうございます :- ご存知でなかった方: freeeを軽くご紹介
  6. 8 freee 概要 「スモールビジネスを、世界 主役に。」というミッション もと、 ビジネス じまりから成長までをサポートするプロダクトを提供 2013/03- 2014/05-

    [1] 2015/06- 2016/10- 2015/09- 2017/03- [1] 給与計算フリー ローンチ時期。2017/08に人事労務フリーとしてリニューアル
  7. 9 会計ソフト シェア o.1, 有効事業所数 100万人へ クラウド会計ソフト シェア 割合 [1]

    35.2 % [1] 調べ、https://corp.freee.co.jp/news/bcn-retail-7537.html (2017) [2] 当社調べ、「クラウド会計ソフト freee」を実際に利用した事業所数 (2018) 6.5万 30万 60万 80万 100万 有効事業所数 [2]
  8. 11 が使うおもなツール 採用ページから引用 https://jobs.freee.co.jp/ 【開発に使っている主なツール】 Webサーバーサイド: uby on ails, o

    データベース: y , edis, ynamo インフラ: W ( , 2, , 3, , lasti ache, edshift, ...), ubernetes on W , ocker, ircle , luentd, nsible, ashi orp ツール, lasticsearch + ibana, lastic eats, oogle ig uery, mbulk サーバ監視: ackerel エラー監視: ew elic, ugsnag ど ように使われているかもあわせて、いくつかピックアップして紹介
  9. 12 アーキテクチャ 過去と現在 過去: futoase 「freee 成長と W 」(2015) に詳細あり

    [1] 現在: 規模・プロダクトともに増加し、技術要素もあわせて変化 - とくに、規模(利用者・インフラ・freee 従業員) 年々増加している 現在 アーキテクチャ概要 、まとまった資料が社内にもないような で、 まとめ 意味もこめて説明します [1] https://speakerdeck.com/futoase/aws-summit-tokyo-2015-freee 初期 erokuを中心に構成されていた 2013年ごろから W を本格的に導入
  10. 13 サービス基盤 アーキテクチャざっくり バッチや外部連携 一部抜粋してます etc. 一部サービス セッション管理 書類取り込み[1] [1]

    「 eal World erverless」、 https://docs.google.com/presentation/d/1_-woxhX71q s X WW6 36 e emsaV si fa 0/edit#slide id.p4 デプロイ Web API APIなど
  11. 14 , 2, , lasti ache and etc. 会計フリーや人事労務フリーなど、息 長い主要なプロダクト

    こ パターン lasti ache おもに ails 非同期処理で使用される 外向け (Webや公開 )に W を設定(ルール 別途適用) 内部 (他プロダクトと 連携など)
  12. 15 サービス デプロイメント 基本的に hat psにより、 enkinsからデプロイされる - enkins 歴史

    長く、気づいたら自分も enkins職人になっていた - Jenkinsを一新できない・ジョブ多すぎなど、負 遺産も溜まりがち - デプロイ時 トラブル 原則SRE対応 ステージング プロダクション
  13. 17 , 2, , lasti ache and etc. 機密情報 、

    暗号化に加えて 値自体も で暗号化 - 一筋縄で 引っこ抜けないようなしくみ - ほかセキュリティについて https://www.freee.co.jp/security/ 各種ログ luentdを経由して 3と一部 lasticsearch erviceへ転送、 ibanaで可視化 - 昔 自前で lasticsearchクラスタを構成していた ホスト/サービス メトリクス ackerelなどを併用[1, 2] [1]「freeeで ackerel 使い方」、 https://speakerdeck.com/asaba/freee-mackerel [2]「freee を支えるインフラ技術」、 https://speakerdeck.com/manabusakai/freee-infrastructure
  14. 18 マイクロサービス コンテナ化と ubernetes 2018年ごろから ubernetes on W 取り組みが じまる

    新規開発されるサービス 基本的に ubernetes上にデプロイされる - おもに内部 が中心だが、外部向け サービスも検討中 - ircle からコンテナイメージ生成と ubernetesへ デプロイ 会計フリーなど
  15. 19 マイクロサービス コンテナ化と ubernetes kube-awsによって W 上に ubernetesクラスタを構築 - https://github.com/kubernetes-incubator/kube-aws

    - これ由来 サービスダウン なく、安定している ( y ) や lasti ache ( edis) など、 W ですでに用意されているも 積極的に活用 - k8sにも y などデプロイできるが、メリット 薄い で... 各種ログ/システム 統計情報 ( ibana) で可視化 - ilebeat/ etricbeat 基本的にアプリケーションエンジニアがサービス 面倒をみてあげられるように[1] - ockerfile, デプロイメント, アプリ由来 アラート対応, ... - クラスタ自体 信頼性確保に専念できる [1] 「 ubernetesへ デプロイメント 〜進化 過程と展望〜」、 https://speakerdeck.com/mumoshu/kuberneteshefalsedepuroimento-jin-hua-falseguo-cheng-tozhan-wang-hou-ban-pato
  16. 20 インフラ運用 オートメーション化 一部を紹介 2 nsibleや ackerによって環境を整備 - ミドルウェアが含まれた olden

    mageをあらかじめつくっておき、 それをもとにインスタンスを起動 - コマンド一つで複数 ode uild立ち上げ・ ackerで 作成 [1] - カーネル 修正などでオリジナル AMIが更新されたときに苦労しない ecurity roup ( irewall) 変更 承認制にする - erraformを用いたコード化、 it ub + ircle で 承認&更新 - コード ull equest作成 開発者でも必要に応じて可能 オートメーション化とセキュリティ つ に両立させる [1] 「 W マネージドサービスを使ったセキュリティ強化 ため 自動化」、 https://speakerdeck.com/manabusakai/aws-security-automation
  17. 21 インフラ運用 オートメーション化 ほかW なも 一部: - ubernetesクラスタ 設定更新 オートメーション化

    - cluster.yamlを変更して、手動でkube-aws updateしていた - nsible laybook 更新を自動適用 - Playbookを更新してからインスタンスを手動で入れ替えていた [1] 「 W マネージドサービスを使ったセキュリティ強化 ため 自動化」、 https://speakerdeck.com/manabusakai/aws-security-automation
  18. 22 データ基盤 活用 さまざまなデータ edshiftに格納し、 edashで可視化[1] - 分析基盤チームが日々頑張っています 活用例: 2

    インスタンスファミリーごと 稼働台数を集計 - リザーブドインスタンス 購入台数 目安として活用 - W コストエクスプローラも参考にします - 毎年利用台数が増える で、いい感じに予測したい [1] 「freee データ分析基盤について」、 https://speakerdeck.com/krtk2k/freee-falsedetafen-xi-ji-pan-nituite
  19. 24 freee チーム 2018年10月現在: 8人 - うち1人が 兼任、2人が10月に へ配属 -

    freee エンジニア全体 1割弱くらい 50% 運用、 こり50% 開発にあてる - 運用をしたうえで、開発でカバーできる点 ないか それぞれ主担当業務が異なる で、属人性が高くなりがち - 定期的な技術共有会、差し込み業務 当番制[1] [1] 「プレイングマネージャーになって 3 か月で取り組んだこと」、 https://blog.manabusakai.com/2018/10/playing-manager/
  20. 25 W andbox環境 アカウントレベルでサービスと分離した環境で、ほぼ自由に使えるようにしている - だけでなく、すべて エンジニアで (あたりまえですが)おもに検証・研究目的 利用 -

    アプリケーションエンジニアでも W マネージドサービスを活用したプロダクトを 設計できるよう - W サービスを知ってもらい、実際 環境でもある程度 アプリケーションエンジニアに権限委譲したい
  21. 26 アプリエンジニアへ 権限委譲 異常時など、ことあるたびに毎回 が呼び出される つらい - 人的リソースを増やせ いいというわけでもない できれ

    各プロダクト エンジニア自身で面倒をみてもらうようにしたい e.g. - Webサーバ 負荷が高い - さくっとスケールアウト/スケールアップできるように させる - サービスをど ように監視するか それらをできるようにするため 、サポートやコンサルティング担当でありたい - まだ課題 多い
  22. 27 留学/ ヒーロー 短期的(1週間くらい)に 仕事をしたい場合: 留学 - 長期的な場合 社内異動制度あり いくつか単発的な業務をアプリエンジニアを巻き込んで行なう:

    ヒーロー - サービス基盤 概要や、運用 知見を共有 - システム 負荷調査 - タスク レビュー依頼 - 学んだこと あえて共有
  23. 29 本日 内容 スケールしつづけるfreee プロダクト 概要 - 主要サービス ご紹介 -

    インフラ面でも変化しつづけている - マイクロサービス コンテナ化 - 運用 自動化 - etc - まだまだ課題 多い チーム ご紹介 - 少人数で効率よく業務をこなす - チーム 枠をこえた活動