$30 off During Our Annual Pro Sale. View Details »

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

techtekt
February 13, 2020
600

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

techtekt

February 13, 2020
Tweet

Transcript

  1. doda開発者が語る IoT&サーバレスでビジネスサイド変革に挑戦した話 ~イノベーション観点のダッシュボタン&負債から進化したアーキテクチャ~ パーソルキャリア株式会社 シニアコンサルタント 上源 勇朗 Isao Jogen

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

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

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

  5. 5 5

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

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

    45,434名 時価総額(人材) 世界7位 ※※ ※※※ ※ ※※※ ※※※2019年1月時点 ※2019年3月期 *2019年9月25日時点の人材サービス事業を行う企業の時価総額 ※※2019年3月時点 7
  8. 8 パーソルキャリアについて

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

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

    5,179名(2019年3月時点) 資本金 1,127百万円 10
  11. 11 パーソルキャリアについて(3/3) 11 サービスドメイン全体 派遣以外の「はたらく」をサポートできる企業である

  12. 12 12 Mission (1/2)

  13. 13 Mission (2/2) 13

  14. 14 IoT&サーバレス 2

  15. IoT & サーバレスで ビジネスサイド変革に挑戦した話

  16. どうしたの? 担当顧客が多すぎて 時間がない 困ったね…。。 架電しても反応がなく 時間が無くなる 営業より BITA(ビジネス・IT・アーキテクト)統括部に 相談があった

  17. 法人営業の担当は、 顧客が多すぎて架電や訪問の時間が無い インバウントで 顧客接点 持ちたい

  18. ITドリブンで課題解決に取り組んだ ITの力で課題を 解決しましょう わーい

  19. このパターン そろそろ見飽きてませんか?

  20. 苦労話 → 頑張った → 成果 いたしません

  21. 2020 Best IT Award Best IT Award

  22. 知識をお持ち帰りいただきます 実例・知見持ち帰っていただき アーキテクチャ設計の一助として活用して欲しい

  23. 伝えたいこと アーキテクチャの負債と進化 難易度: 知 識:負債解消は事業成長のため。 無策で最新化しない。 IoTダッシュボタンの実例 難易度: 知 識:AWSを用いて簡単に構築できる。アナログ業務を支援する。

  24. IoTダッシュボタン(実物)

  25. 業務の課題 顧 客 リ ス ト 確 認 パーソルキャリア 営業マン

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

    クリック)ごとメッセージ内容など記載 パーソルキャリア営業マン 携帯 ショート メール ① ダッシュボタンを購入する anダッシュボタン アーキテクチャ概要 お客さま ➁ 端末ID・ショートメール 宛先などを登録する ➂ ボタン押下時の処理を コーディングする 要望あるよ ご要望 応えます!
  27. 作り方(開発リソース) ・ エンジニア ・ AWS環境 ・ ダッシュボタン (1人月未満 ※1~2年目でもOK) (東京リージョン推奨)

    (7,980円/台 )
  28. アーキテクチャの詳細 (1/4)

  29. アーキテクチャの詳細 (2/4)

  30. アーキテクチャの詳細 (3/4)

  31. アーキテクチャの詳細 (4/4)

  32. ここからは本番稼働させていませんが 本セッション用にカスタマイズを加えてみました

  33. スマホ de 本番リリース Api Gateway SNS ショートメール (完了した連絡) AWS パーソルキャリア営業

    (非エンジニア) スグに掲載しますね! スマホ(ショートメール)に記載された URLをクリックする。 S3 (非公開) スグに掲載された お客さま S3 (公開) Lambda ※本ページ部分は、実運用していません。 (デモ用として簡易構築した内容です。) エンジニアじゃないのに すごーい♪
  34. デモンストレーション

  35. 開発のポイント 1.IoT端末購入 AWS IoTを利用(端末登録)するとLambda、CloudWatch、SNSが設定されます。 SNS宛先を登録すればスグに利用可能です。サーバレス&従量課金のため安価・安全です。 2.カスタマイズ ボタン押下(ダブルクリック、シングルクリック、長押し) それぞれ処理を分けれます。 Lambdaは好きな言語 (COBOLも可能)で処理を記載しましょう!

    簡単なPythonなら 初めてでも楽に書けます。
  36. 効果 1.利用率 導入企業の半数以上が利用し成約に至った。 2.業務改善 インバウンド顧客接点ができ業務効率化に繋がった。 但し、諸般の事象により、利用促進や追加改善などを検討するまでには至らなかった。 高齢社会、スマホの高機能化などにより、ITリテラシーの格差が発生してくると考えられる。 その課題を埋めるツールとしてのポテンシャルを感じた。 その他

  37. 37 アーキテクチャの負債と進化 3

  38. 突然ですが 新規機能・サービスは新技術で開発できているのに 既存システムのアーキテクチャに、さまざまな負債を蓄積させていませんか?

  39. アーキ進化するための 思考ポイントをご紹介させていただきます ご検討の一助となれば幸いです

  40. 思考ポイント 1.闇雲に最新化はNG! ビジネスへの影響や改善する際の投資効果の高いものから優先的に実施する。 2.アーキ進化だけではNG! アーキ進化だけでなく、エンジニア進化/コスト などリリース後の開発/運用も考慮する。 3.単発の改革はNG! 負債が発生する構造/ポイントを把握し、負債を生まない仕組みも検討する。

  41. 参考:QCD課題整理 テスト駆動 & ドキュメント整備 リリース自動化 & Git管理 解決手段 システムリフォーム 工程

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

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

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

    Q2 Q3 Q4 サービス品質の改善 ミドルウェア系 バージョンアップ FW刷新 WAF導入 開発効率・ 品質向上 仕組みの改善 Git導入 APM導入 人・組織・文化 プロセスの改善 DevOps スクラム/アジャイル 開発導入 運用効率・品質向上 リリース自動化 APM導入 ※記載内容はサンプルです。
  46. 最後はマインド 時には 経営層/承認者からの理解が得られない場合があります より良いシステムを提供するために 強い意思を持って負債に挑む 必要があります

  47. 効果(一例) FirstView 約5.1秒 (total:7.61秒) 新doda 旧DODA FirstView 約0.6秒 (total:2.94秒) 圧

    勝 2020/1/16時点 まだ 表示されない
  48. start もう一度見てください! 1 2 3 新doda 旧DODA 2020/1/16時点 FirstView 約0.6秒

    (total:2.94秒) FirstView 約5.1秒 (total:7.61秒)
  49. もう一度見てください! 新doda 旧DODA 2020/1/16時点 圧 勝 FirstView 約5.1秒 (total:7.61秒) FirstView

    約0.6秒 (total:2.94秒) まだ 表示されない
  50. Java7 Tomcat7 Strut Seasar2 svn 手動リリース 手動テスト 仮想基盤 ウォーターフォール開発 モノリシックな

    アプリケーション 昔ながらの クラサバ構成 IoT活用 AI活用 ブロックチェーン活用 ITと事業の 進化 Java8 Tomcat8 Spring Git 自動リリース 自動テスト クラウド活用 (仮想とハイブリッド) スクラム・アジャイル 開発 マイクロサービス化 ※対応中 サーバレス /コンテナ活用 (一部)
  51. 伝えたいこと (※再掲) アーキテクチャの負債と進化 難易度: 知 識:負債解消は事業成長のため。 無策で最新化しない。 IoTダッシュボタンの実例 難易度: 知

    識:AWSを用いて簡単に構築できる。アナログ業務の支援として期待できる。
  52. None
  53. 53 みんなの「はたらく」をテックでつくる 人々とテクノロジーがつながる場

  54. ご清聴ありがとうございました