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

doda開発者が語る IoT&サーバレスでビジネスサイド変革に挑戦した話 ~イノベーション観点のダッシュボタン&負債から進化したアーキテクチャ~

techtekt
February 13, 2020
860

 doda開発者が語る IoT&サーバレスでビジネスサイド変革に挑戦した話 ~イノベーション観点のダッシュボタン&負債から進化したアーキテクチャ~

techtekt

February 13, 2020
Tweet

Transcript

  1. 2 自己紹介(1/2) パーソルキャリア株式会社 テクノロジー本部 BITA統括部 シニアコンサルタント 上源 勇朗 Isao Jogen

    2 職 種 :ビジネスITアーキテクト (ITを武器に事業・業務の改善や創造する人材) 仕事内容:求人メディア、人材紹介サービスを中心に 事業成長のためのIT活用/高度化や高品質化/ 付加価値創出に従事しています
  2. 3 自己紹介(2/2) • 2003年 • 2015年 エンジニアとしてキャリアをスタート 大手航空システム開発、ECサイト刷新、HR関連システム開発などを経験 インテリジェンス(現パーソルキャリア)入社 doda(転職求人メディア)大規模リニューアルを担当

    ビジネスITアーキテクトのシニアコンサルタントとして 事業成長のためのIT活用/高度化や高品質化を推進中 2020年2月 • 3 • 2017年 doda、an(アルバイト・パート領域の求人メディア)、コーポレートサイトなど WEBサイトを中心としたアーキテクチャ改善、DevOps推進などに従事
  3. 5 5

  4. 6 パーソルグループについて(1/2) 派遣・BPO リクルーティング 海外事業 ITO エンジニアリング コンサルティング リサーチ/研修/その他 ✓

    人材派遣 ✓ アウトソーシング ✓ コールセンター ✓ 官公庁事業受託 ✓ 中途採用 ✓ 新卒採用 ✓ アルバイト ✓ 再就職支援 ✓ 顧問紹介 ✓ 中途採用 ✓ 人材派遣 ✓ アウトソーシング ✓ 人事労務 コンサルティング ✓ 研修 ✓ 設備施設 メンテナンス ✓ システム ソリューション ✓ アウトソーシング ✓ セールス マーケティング ✓ コンサルティング ✓ RPA ✓ 自動車部品設計開発 ✓ 自動車関連実験認証 ✓ 航空機関連機器開発 ✓ 宇宙関連機器開発 ✓ 産業機械 ✓ 民生機器開発 ✓ 映像 / 音響 / 情報関 連機器開発 ✓ 電気 / 電子 / 制御ソ フト開発 ✓ モデルベース開発 (MBD) ✓ シンクタンク ✓ 人事組織 コンサルティング ✓ タレントマネジメントシ ステム ✓ 教育 / 研修 ✓ 障害者採用 ✓ ベンチャーキャピタル ※ 開示上はPROGRAMMEDセグメント、PERSOLKELLYセグメントの2セグメントにて事業展開しています ※ 6
  5. 7 パーソルグループについて(2/2) 創業 1973年 売上高 9,258億円 サービス展開 12ヵ国・地域 619拠点 従業員

    45,434名 時価総額(人材) 世界7位 ※※ ※※※ ※ ※※※ ※※※2019年1月時点 ※2019年3月期 *2019年9月25日時点の人材サービス事業を行う企業の時価総額 ※※2019年3月時点 7
  6. 9 パーソルキャリアについて(1/3) 派遣・BPO リクルーティング 海外事業 ITO エンジニアリング コンサルティング リサーチ/研修/その他 ✓

    人材派遣 ✓ アウトソーシング ✓ コールセンター ✓ 官公庁事業受託 ✓ 中途採用 ✓ 新卒採用 ✓ アルバイト ✓ 再就職支援 ✓ 顧問紹介 ✓ 中途採用 ✓ 人材派遣 ✓ アウトソーシング ✓ 人事労務 コンサルティング ✓ 研修 ✓ 設備施設 メンテナンス ✓ システム ソリューション ✓ アウトソーシング ✓ セールス マーケティング ✓ コンサルティング ✓ RPA ✓ 自動車部品設計開発 ✓ 自動車関連実験認証 ✓ 航空機関連機器開発 ✓ 宇宙関連機器開発 ✓ 産業機械 ✓ 民生機器開発 ✓ 映像 / 音響 / 情報関 連機器開発 ✓ 電気 / 電子 / 制御ソ フト開発 ✓ モデルベース開発 (MBD) ✓ シンクタンク ✓ 人事組織 コンサルティング ✓ タレントマネジメントシ ステム ✓ 教育 / 研修 ✓ 障害者採用 ✓ ベンチャーキャピタル ※ 開示上はPROGRAMMEDセグメント、PERSOLKELLYセグメントの2セグメントにて事業展開しています ※ 9
  7. 業務の課題 顧 客 リ ス ト 確 認 パーソルキャリア 営業マン

    要 望 あ り 要 望 な し 不 在 あ り 相 談 リ ピ ー ト 確 認 再 連 絡 業務負担 お客さま
  8. SORACOM LTE-M (電話回線) Lambda AWS IoT 1-Click SNS Python言語で ボタン押下(ダブルクリック、シングル

    クリック)ごとメッセージ内容など記載 パーソルキャリア営業マン 携帯 ショート メール ① ダッシュボタンを購入する anダッシュボタン アーキテクチャ概要 お客さま ➁ 端末ID・ショートメール 宛先などを登録する ➂ ボタン押下時の処理を コーディングする 要望あるよ ご要望 応えます!
  9. スマホ de 本番リリース Api Gateway SNS ショートメール (完了した連絡) AWS パーソルキャリア営業

    (非エンジニア) スグに掲載しますね! スマホ(ショートメール)に記載された URLをクリックする。 S3 (非公開) スグに掲載された お客さま S3 (公開) Lambda ※本ページ部分は、実運用していません。 (デモ用として簡易構築した内容です。) エンジニアじゃないのに すごーい♪
  10. 参考:QCD課題整理 テスト駆動 & ドキュメント整備 リリース自動化 & Git管理 解決手段 システムリフォーム 工程

    課題 (主なものを抜粋) 設計 既存仕様書が最新化されておらず、調査に時間がかかる ソースコードが煩雑であり、影響範囲が多岐にわたる 製造 コーディング規約が遵守されずレビュー工数増加 システム間が蜜結合のためソース競合し易く並行開発し難い 使用技術が不適切・種類が多すぎため開発し難い フレームワークが古く、キャッシュ化など簡易的に行えない 設計思想に則らない実装があり、処理概要の理解が難しい テスト 手動かつ効率が悪いテストがある テストケースに抜け漏れがある 運用 保守 リリース手順が煩雑で準備に時間がかかる 手動で行うリリース作業が多く頻繁にリリース作業し難い リファクタリング ※記載内容はサンプルです。
  11. 参考:追加課題の整理 要因種別 抽出件数 課題詳細 対策傾向 品質過多 21 品質を高めるためか簡単な案件も要件確認書など資料 作成やレビューを開発側で実施しているが、案件のスピード感を損ねて いる要因になっている。また承認フローにおいて、登場人物が多く調整に

    時間がかかっている。 開発工程、承認フローを省略する。それによる品質劣化を考慮し、 テスト駆動など、別の箇所で担保する。 手動実行 9 レビューやテスト、リリースを手動で行っている。手動で行っているため、品 質を保つための確認工程も必要になっている。 静的解析ツール、CI環境構築、リリース自動化など、ツールを活用 した自動化を行う。 環境不足 3 開発環境を複数PJTで共有しているため、調整やデグレなどの 事故が起こりやすい。 開発環境を増やし、占有環境を用意する。 リモート開発 5 ベンダによる自社開発ではDEV環境に直接アクセスできないため、ベンダ 社内で別々に環境を用意する必要がある。また整合性を保つために余 計な作業が発生する。 クラウド上にセキュアなリモート構築し直接アクセスを可能とする。 構成管理 4設計書のコミットルールなど、申請が必要なため待ち状態が発生する。 構成管理ルールやツール導入する。 その他 33 生産性指標など開発フロー以外に関するもの。また個人のスキルなどに 左右されるもの。 一部を除いて保有と判断。 合計 71 ※記載内容はサンプルです。
  12. 参考:課題の全体整理 課題 ビジネス影響/実害 ToBe ToBe詳細 投資効果 Seasar2を使っている。 サポート切れ javaの新しいフレームワークへ移行する。 改修頻度が高いため、生産性向

    上の恩恵が大きい。セキュリティリス クが改善される。 ー セキュリティ対応として 必須 Struts2を使っている。 生産性の低下 Spring Bootなどのjavaの新しいフレー ムワークへ移行する。 改修頻度が高いため、生産性向 上の恩恵が大きい。 ◦ 機能ごとにフレームワーク・開発 環境が異なる。 学習コストが二重に発生する。 共通クラスなども別々に持っているため、 改修が二重に発生 フロントのフレームワークや共通クラスを 統一し、開発環境を1つにする。 ※デプロイ時にwarを2つに分けてサー バーには無駄なく配置できるように設計 する。 改修頻度が高いため、生産性向 上の恩恵が大きい。 ◦ MVCで分離できていない。 フロントとロジック層が分離できていない ため、作業効率が悪い。 APIを作成し、順次各画面からAPIを 参照するように作り替えていく。 ※サービスの根幹になる部分のため あまり改修がなく、生産性向上の 恩恵を受けにくい。 ※外部公開されない領域のためセ キュリティリスクは低い。 △ SVN 生産性の低下。 マージミスなどバグ内在の温床にもなる。 Gitに変更する。 ブランチ戦略を策定し運用で混乱 が発生しないようにする。 × ※記載内容はサンプルです。
  13. 参考:進め方の整理 ※記載内容はサンプルです。 Step1 リファクタリング 全体像を把握する意味も 含め以下を行う ・簡易リファクタリング ・不要ロジック削除 ・静的解析エラー解消 2018年度6月~

    JAVA7 JSP/Mayaa S2 JAVA7 JSP/Mayaa S2 Step2 プロトタイプ 実装方式 (FW選定、テンプレートエ ンジン選定など) プロトタイプ構築を通して 決定する 2018年度6月~ JAVA7 JSP/Mayaa S2 JAVA7 JSP/Mayaa S2 Step3 フロントエンド改善 応募機能かつ1サーバに 絞って修正/リリース 問題ないようであれば 全サービスに適用する 2018年度6月~ JAVA7 JSP/Mayaa S2 JAVA7 Thymeleaf S2 Step4 リフォーム完了 バックエンド含め フレームワーク切替完了 2019年度XX月~ JAVA7 Thymeleaf S2 JAVA11 Thymeleaf Spring
  14. 参考:進め方 テーマ タスク xx年度 xx年度 Q1 Q2 Q3 Q4 Q1

    Q2 Q3 Q4 サービス品質の改善 ミドルウェア系 バージョンアップ FW刷新 WAF導入 開発効率・ 品質向上 仕組みの改善 Git導入 APM導入 人・組織・文化 プロセスの改善 DevOps スクラム/アジャイル 開発導入 運用効率・品質向上 リリース自動化 APM導入 ※記載内容はサンプルです。
  15. start もう一度見てください! 1 2 3 新doda 旧DODA 2020/1/16時点 FirstView 約0.6秒

    (total:2.94秒) FirstView 約5.1秒 (total:7.61秒)
  16. Java7 Tomcat7 Strut Seasar2 svn 手動リリース 手動テスト 仮想基盤 ウォーターフォール開発 モノリシックな

    アプリケーション 昔ながらの クラサバ構成 IoT活用 AI活用 ブロックチェーン活用 ITと事業の 進化 Java8 Tomcat8 Spring Git 自動リリース 自動テスト クラウド活用 (仮想とハイブリッド) スクラム・アジャイル 開発 マイクロサービス化 ※対応中 サーバレス /コンテナ活用 (一部)