Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新旧ツールを駆使した レガシーアプリの解読 #cm_odyssey
Search
netprotections
July 17, 2024
0
55
新旧ツールを駆使した レガシーアプリの解読 #cm_odyssey
2024年7月16日(火)に開催されたClassmethod Odyssey ONLINE クラウド編にて、BtoBディベロップメントグループの宮澤が登壇した際の資料です。
netprotections
July 17, 2024
Tweet
Share
More Decks by netprotections
See All by netprotections
Debeziumを活用した RDBMSイベントソーシングの仕組み
netprotections
0
970
Amazon Aurora Cluster Cloneを用いたDataLake構築
netprotections
2
550
株式会社ネットプロテクションズ 会社紹介資料
netprotections
1
61k
決済システムは一人ではつくれなかった話
netprotections
1
1.7k
株式会社ネットプロテクションズ エンジニア職向け会社紹介資料
netprotections
0
17k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Navigating Team Friction
lara
183
15k
Rails Girls Zürich Keynote
gr2m
94
13k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Being A Developer After 40
akosma
87
590k
Transcript
新旧ツールを駆使した レガシーアプリの解読 -ChatGPTとshellによるサルベージ- 2024/7/16 ネットプロテクションズ 宮澤孟彰
Copyright(C) Net Protections,Inc. All Rights Reserved. • 決済システム開発経験5年、SRE経験3年 • コーポレートIT部門プロジェクトマネジメント経験5年
• ネットワーク / データベース / サーバーなどインフラレ イヤから、アプリケーションレイヤまで横断的に従事 自己紹介 宮澤 孟彰 Miyazawa Takeaki 株式会社ネットプロテクションズ ソリューションアーキテクトグループ BtoBディベロップメントグループ @takeaki_myzw
Copyright(C) Net Protections,Inc. All Rights Reserved. • 管理者不在のレガシーアプリケーションを解読し、 保守可能な状態とした (アプリの構成・ビルド・デプロイ手順の可視化)
• 保守可能な状態に至るまでに、役に立つツールと 保守性を上げる考え方がわかった 本日の話
Copyright(C) Net Protections,Inc. All Rights Reserved. 目次 01 | 会社、事業の概要
02 | 直面した課題 03 | 解読に役立ったAI、その他ツール 04 | 本日のまとめ
© Net Protections, Inc. 会社、事業の概要
Copyright(C) Net Protections,Inc. All Rights Reserved. 株式会社ネットプロテクションズ 柴田 紳 2000年1月
1億円 303名(2024年3月31日現在) 後払い決済サービスの開発・提供 東京都千代田区麹町4丁目2-6 住友不動産麹町ファーストビル 5階 京都、福岡、愛媛、愛知 NP Taiwan, Inc.(恩沛科技股份有限公司) Net Protections Vietnam Co., Ltd. 株式会社NPファイナンス 商号 代表取締役社長 創業 資本金 正社員数 事業内容 本社所在地 拠点 グループ会社 ネットプロテクションズとは つぎのアタリマエをつくる
Copyright(C) Net Protections,Inc. All Rights Reserved. 後払い決済サービスとは、商品を受け取った後に支払える決済サービス クレジットカードの代替手段としてではなく、利便性・セキュリティ・資金管理など、 「安心・安全で便利なお買い物」のニーズで選ばれています。 後日に払う
商品を注文する 決済方法を選択する画面で「後 払い」を選びます お支払いの前に商品を受け取ることがで きます 商品が届く/請求が届く 支払期限内であれば いつでも好きなときに払える
Copyright(C) Net Protections,Inc. All Rights Reserved. 2002年のサービス開始以降、累計取引件数は約5.1億件を突破しており、その成長は加速しています。 後払い決済の総合プロバイダーとしてBtoBや海外にもサービスを展開しています。 EC物販 BtoB
物販に留まらない幅広い展開 *1 デロイト トーマツ ミック経済研究所株式会社 ミックITリポート 2023年11月号 BtoC後払いサービス市場調査( https://mic-r.co.jp/micit/2023/)より、2022年度年間取扱高を参照。 *2 15歳以上の人口1億 1,060万人(総務省統計局人口統計 2022年3月1日時点概算値) ÷2022年3月期の年間ユニークユーザー数 1,500万人により算出。 2002 2000 2011 2018 2023 2015 2021 上場 東京証券 取引所に上場 創業 EC物販む け後払い サービス 特化後払い EC全般・ 実店舗後払 い 海外むけ 後払い 企業間決済 サービス 当社の後払い決済サービスは20年以上成長を継続 膨大な決済データを管理 ・業界シェアNo.1 の「後払い」決済 ・7人に1人 がNP後払いを利用 ・年間流通総額 5,659億円 ・年間ユニークユーザー 1,500万人 ・月間平均取引件数 540万件 ・累計取引件数 5.1億件超 ・導入企業数 130万店舗 *1 *2
© Net Protections, Inc. レガシーアプリの解読、直面した課題
Copyright(C) Net Protections,Inc. All Rights Reserved. 10年前にアプリ導入した担当者がいない。 アプリケーションの依存関係、 ビルドデプロイ方法がわからない。 環境構築の手順書が断片的にしか存在しない。
対応期日は30日後。 それまでに技術検証と切り替えを実行しないといけない。 事業のコア機能で使われているアプリのため、 システムの安定稼働を死守するよう 解読・変更を進める必要があった。 10年前に導入されたアプリで、 仕様がブラックボックス化していた。 急遽、コストやサポートの関係でJavaアプリのライブラリ変更が必要になるも、課題は山積み ... 直面した課題
Copyright(C) Net Protections,Inc. All Rights Reserved. 解読およびライブラリ変更にあたって大事にしたこと 正直、かなり苦労したレガシーアプリの解読とライブラリの変更。 以下のことを胸に刻み、遂行しました。 2.今後も保守できるように情報資産を残す
• 今後、同じような状況を生みたくない。 • 解読タスクの具体的な手法(コマンド、参照情報等)も残すことを決意。 1.限られた資源の中で、目的を完遂する手段を常に模索する • 資源は、情報も時間も圧倒的に少ない。 • 目的は、ライブラリを置き換えた状態で現行の決済インフラ機能を提供すること。 • より早い手段がないかは常に考えていました。
© Net Protections, Inc. 解読に役立ったAI、その他ツール
Copyright(C) Net Protections,Inc. All Rights Reserved. 1. ChatGPT 2. Community
3. Shell 解読に役立ったAI、その他ツール
Copyright(C) Net Protections,Inc. All Rights Reserved. まず、ChatGPTにコードを解説させ、全体像をつかむ ChatGPT • ライブラリ変更に必要となるコードの構造を、最短で理解するのに役立ちました。
• 「これがわかれば解読が進む」ことを解説するようChatGPTに指示して活用しました。 • 今回の場合... ◦ 他プロジェクトとの依存関係 ◦ artifactがどのように生成されるか • ChatGPTで全体構造を把握→必要とあらば詳細を確認しに行く • NOT=最初からソースコードを愚直に読んで理解する
Copyright(C) Net Protections,Inc. All Rights Reserved. 依存関係を把握する。他のプロジェクトとの構造を把握できる。 入力内容(プロンプト) 出力結果(重要な部分のみ) ChatGPT
Copyright(C) Net Protections,Inc. All Rights Reserved. • お手上げの状態 ◦ インターネットの記事少ない
◦ 公式ドキュメントにも記載なし ◦ えいやっで進め、想定外のバグを踏みたくない、、 • まだ手段がないか考える • →トライしたことがなかったが、コミュニティの力を頼る 取れる手段は全部試す。わからなければコミュニティに Community
Copyright(C) Net Protections,Inc. All Rights Reserved. 質問をしてから2時間以内に回答が返ってきた。 英語に苦手意識があってもDeepL, ChatGPTを利用すれば、問題なくやりとりができた(あとみんな優しい) アプリケーションAのバージョン20と10の違いは何ですか
Communityに頼る
Copyright(C) Net Protections,Inc. All Rights Reserved. • 再現性の担保 ◦ コマンド実行すれば他のメンバーでも再現可能
• 検索性の向上 ◦ チケット管理、ドキュメントに貼り付けることで検索にヒット • 結果がテキストであることで、以下の効用がうまれる ◦ 検索性UP(画像キャプチャでは検索ヒットしない) ◦ 再現性UP(他のメンバーでもコピペ実行) shellに解読ログを残すと、引き継ぎ資料として使える Shell
Copyright(C) Net Protections,Inc. All Rights Reserved. pom.xmlに特定のキーワードの依存関係を検索 ライブラリ切り替え後にartifactのwarの中身を比較 Shell Shellで検索することでプレーンテストでの共有が可能に。
解読ステップ自体の情報資産化がしやすい。 コマンド例
Copyright(C) Net Protections,Inc. All Rights Reserved. 前述のアプローチ含め、試行錯誤し、 無事に解読と技術検証は完了!!
Copyright(C) Net Protections,Inc. All Rights Reserved. 1. レガシーアプリと対峙するときは、目的達成のために必要最低限の解 読をすると吉。深追いしすぎない。 2.
コード解読にはChatGPT・Communityが役立った。 使える手段は臆せず使い倒した方がいい。 3. 自分が保守したシステムを、後世が保守する時のために、 解読プロセスを徹底的に残す。Shell等のテキスト情報がおすすめ。 本日のまとめ
宣伝 ネットプロテクションズでは、 現在エンジニアを積極的に採用してます。 以下のQRコードから カジュアル面談の申し込みができますので、 ぜひ一度お話できると嬉しいです!!!
None