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

U30エンジニアだからこそ実現できた劇的ビフォーアフター #bcu30

Hiroki Tanaka
April 21, 2018
3.9k

U30エンジニアだからこそ実現できた劇的ビフォーアフター #bcu30

Hiroki Tanaka

April 21, 2018
Tweet

Transcript

  1. ©2018 Ateam Lifestyle Inc.
    U30エンジニアだからこそ実現できた
    劇的ビフォーアフター
    株式会社エイチーム ライフスタイルサポート事業本部
    エイチームライフスタイル 技術開発部
    リードエンジニア 田中宏紀

    View Slide

  2. ©2018 Ateam Lifestyle Inc.
    自己紹介/経歴紹介
    所属 : エイチームライフスタイル
       技術開発部
       リードエンジニア
    名前 : 田中宏紀 a.k.a だびっつ
    Id : @dabits
    経歴 : ・misocaの前身, 受託の開発
       ・サン電子 BLのソシャゲ開発/運営
       ・金融事業->ヘルスケア事業->技術開発部
    趣味 : アニソンDJ

    View Slide

  3. ©2018 Ateam Lifestyle Inc.
    会社紹介/事業紹介
    ・株式会社エイチーム
    ・本社: 名古屋/ 東京・大阪・福岡オフィス
    ・エンターテインメント事業           EC事業
    ・ライフスタイルサポート事業

    View Slide

  4. ©2018 Ateam Lifestyle Inc.

    View Slide

  5. ©2018 Ateam Lifestyle Inc.
    テーマ : U30・技術浸透・ビフォーアフター
    ・学生・新卒と話す機会が多かった
    ・エンジニア≒新しい技術が好き
    ・好きな技術を浸透させきれずもったいない人も

    View Slide

  6. ©2018 Ateam Lifestyle Inc.
    どういった手順を踏んで
    浸透させたのかを事実ベースで

    View Slide

  7. ©2018 Ateam Lifestyle Inc.

    View Slide

  8. ©2018 Ateam Lifestyle Inc.
    2017年7月〜2018年2月にやってきたこと

    View Slide

  9. ©2018 Ateam Lifestyle Inc.
    やってきたこと

    View Slide

  10. ©2018 Ateam Lifestyle Inc.
    やってきたこと
    ・Excel手動集計,エンジニア都度集計
     →Redash+Prestoで自動化
    ・Redmineのチケット運用&コマンドでリリース
     →Gitlab+Gitlab-CIで自動化
    ・デザイン確認待ち中別環境作って開発
     →デザイン確認用環境をDocker+ECS+Gitlab-CI自動作成へ
    ・障害検出報告がメールのみで行われる文化
     →Kibana+ElastAlert+Newrelic+Sentry+Chatworkへ

    View Slide

  11. ©2018 Ateam Lifestyle Inc.
    スライド枚数150枚超え

    View Slide

  12. ©2018 Ateam Lifestyle Inc.
    スライド枚数150枚超え

    View Slide

  13. ©2018 Ateam Lifestyle Inc.
    やってきたこと
    ・Excel手動集計,エンジニア都度集計
     →Redash+Prestoで自動化
    ・Redmineのチケット運用&コマンドでリリース
     →Gitlab+Gitlab-CIで自動化
    ・デザイン確認待ち中別環境作って開発
     →デザイン確認用環境をDocker+ECS+Gitlab-CI自動作成へ
    ・障害検出報告がメールのみで行われる文化
     →Kibana+ElastAlert+Newrelic+Sentry+Chatworkへ

    View Slide

  14. ©2018 Ateam Lifestyle Inc.

    View Slide

  15. ©2018 Ateam Lifestyle Inc.
    ここからビフォーアフター
    フォーマットで
    お送りします

    View Slide

  16. ©2018 Ateam Lifestyle Inc.
    ビフォー : 障害検出報告メール文化
    ・太古の昔、障害検出フローがメールベースで整えられた
    ・時が数年経ち、事業・人数が増えると...
    デーモンログ
    アプリケーションログ収集
    サーバメトリクス収集
    内製ログ→メールスクリプト

    View Slide

  17. ©2018 Ateam Lifestyle Inc.
    ビフォー : 障害検出報告メール文化
    ・サービス数分だけログが増えて鳴り止まないメール
    ・担当者が定まらず一丸で対応にあたるので疲弊
    ・メンテされずスルーしてくださいが増えオオカミ少年化

    View Slide

  18. ©2018 Ateam Lifestyle Inc.
    やっとれん

    View Slide

  19. ©2018 Ateam Lifestyle Inc.
    でも

    View Slide

  20. ©2018 Ateam Lifestyle Inc.
    長い期間フローが定着してしまっているので
    急には変えづらい

    View Slide

  21. ©2018 Ateam Lifestyle Inc.
    どう乗り越えたか

    View Slide

  22. ©2018 Ateam Lifestyle Inc.
    リフォームの全貌を
    お見せしましょう

    View Slide

  23. ©2018 Ateam Lifestyle Inc.
    匠の技1 : Mail2Chatworkを準備
    ・内製のLambdaスクリプト
    ・メール送るとLambda経由でChatworkAPIに投げてくれる
    ・個別にチャットのToが送れるように拡張
    保存 APIで投稿
    AWS Lambda
    イベントフック
    AWS S3
    AWS SES

    View Slide

  24. ©2018 Ateam Lifestyle Inc.
    匠の技1 : Mail2Chatworkを導入
    ・アプリエラーログ通知をメールからチャット通知に変更
    ・緊急対応=メール、気づいたら対応=チャットのフローへ

    View Slide

  25. ©2018 Ateam Lifestyle Inc.
    とりあえず
    緊急対応件数は減りました

    View Slide

  26. ©2018 Ateam Lifestyle Inc.
    匠の技2 : ElastAlertを準備
    ・Yelp社製OSS
    ・Elasticsearchに定期的にクエリを投げて監視
    ・しきい値に達したらAlertアクションを実施
    ログ集約
    保存 定期的に監視 検出したら発報
    Fluentd Elasticsearch ElastAlert

    View Slide

  27. ©2018 Ateam Lifestyle Inc.
    匠の技2 : ElastAlertを導入
    ・優先度高いエラーをメールで発報
    ・優先高=ユーザに直ちに影響がある
     ・5xx系エラー
     ・レスポンス遅延

    View Slide

  28. ©2018 Ateam Lifestyle Inc.
    本当に対応すべき障害が
    判るようになりました
    !重要!
    軽め

    View Slide

  29. ©2018 Ateam Lifestyle Inc.
    匠の技3 : Sentryを準備
    ・アプリに組み込むとエラーを収集してIssueにしてくれる
    ・新規・件数跳ねたエラーを通知してくれる
    検出したら発報
    SDKがログを送信

    View Slide

  30. ©2018 Ateam Lifestyle Inc.

    View Slide

  31. ©2018 Ateam Lifestyle Inc.

    View Slide

  32. ©2018 Ateam Lifestyle Inc.
    匠の技3 : Sentryを導入
    ・チャットに流していたアプリエラーを止めSentryへ移管
    ・新規エラーと件数スパイクはメールで通知されるように

    View Slide

  33. ©2018 Ateam Lifestyle Inc.
    本当に修正すべきバグが
    判るようになりました
    !重要!
    軽め

    View Slide

  34. ©2018 Ateam Lifestyle Inc.
    匠の技4 : 通知先をチャットへ
    ・緊急対応の対象をメール→チャットへ変更するとアナウンス
    ・ElastAlert・Sentryからの通知を全てMail2Chatwork経由に

    View Slide

  35. ©2018 Ateam Lifestyle Inc.
    その結果...

    View Slide

  36. ©2018 Ateam Lifestyle Inc.
    アフター : 担当者が率先して気付き対応
    ・影響がある事業の担当者にToが付くようになった
    ・自身の担当している事業の障害に気付きやすくなった

    View Slide

  37. ©2018 Ateam Lifestyle Inc.
    アフター : 返信やディスカッションが迅速に
    ・メールはレスポンス遅い、チャットは早い
    ・対応者への打ち返しが速くなった

    View Slide

  38. ©2018 Ateam Lifestyle Inc.
    アフター : 勤務時間外対応の判断が迅速に
    ・ElastAlertからの通知を基本的に対応要とする
    ・必要な情報は本文にほぼ記載

    View Slide

  39. ©2018 Ateam Lifestyle Inc.
    無事にリフォーム完了

    View Slide

  40. ©2018 Ateam Lifestyle Inc.

    View Slide

  41. ©2018 Ateam Lifestyle Inc.
    進めてみて
    大切だと感じたところ

    View Slide

  42. ©2018 Ateam Lifestyle Inc.
    大切だと感じたところ
    1. 入れたい技術とニーズを結びつける
     ・組織にはまらない技術はエゴになりがち
       =浸透しにくい

    View Slide

  43. ©2018 Ateam Lifestyle Inc.
    大切だと感じたところ
    2. 定着できるペースを考えて進める
     ・急に変えたり強行すると定着しない
     ・期限は決めるけど長い目でみる

    View Slide

  44. ©2018 Ateam Lifestyle Inc.
    大切だと感じたところ
    3. 「新しいかどうか」より
     「気持ちいいかどうか」で決める
     ・新しくてもしんどい技術は長く続かない

    View Slide

  45. ©2018 Ateam Lifestyle Inc.
    気持ちいい最新の技術を追えるのはU30だけ

    View Slide

  46. ©2018 Ateam Lifestyle Inc.
    若いからこそのセンスを活かして
    社内に技術の革命を起こそう!

    View Slide

  47. ©2018 Ateam Lifestyle Inc.
    ご清聴ありがとうございました

    View Slide

  48. ©2018 Ateam Lifestyle Inc.

    View Slide