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
リプレイスでやったこと
Search
K1mu21
November 15, 2024
Technology
1
59
リプレイスでやったこと
めぐろLT#21
K1mu21
November 15, 2024
Tweet
Share
More Decks by K1mu21
See All by K1mu21
dependabotを導入して失敗した話
k1mu21
0
120
Rust勉強会1回目の資料
k1mu21
0
51
ギャレトレ勉強会
k1mu21
0
42
Cloudflareいいぞ
k1mu21
1
110
静的解析ツールを導入した話
k1mu21
1
210
WebGLを触ってみよう
k1mu21
1
49
GoのAirを使ってみた話
k1mu21
0
120
学生から社会人1年目を通して
k1mu21
2
230
データベースで沼った話
k1mu21
0
64
Other Decks in Technology
See All in Technology
PLaMo2シリーズのvLLM実装 / PFN LLM セミナー
pfn
PRO
2
960
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
120
Pure Goで体験するWasmの未来
askua
1
170
[2025-09-30] Databricks Genie を利用した分析基盤とデータモデリングの IVRy の現在地
wxyzzz
0
460
SoccerNet GSRの紹介と技術応用:選手視点映像を提供するサッカー作戦盤ツール
mixi_engineers
PRO
1
170
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
480
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
1.5k
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
260
"複雑なデータ処理 × 静的サイト" を両立させる、楽をするRails運用 / A low-effort Rails workflow that combines “Complex Data Processing × Static Sites”
hogelog
3
1.9k
GopherCon Tour 概略
logica0419
2
180
GC25 Recap+: Advancing Go Garbage Collection with Green Tea
logica0419
1
390
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.8k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
How to Ace a Technical Interview
jacobian
280
23k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
What's in a price? How to price your products and services
michaelherold
246
12k
Documentation Writing (for coders)
carmenintech
75
5k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
A Tale of Four Properties
chriscoyier
160
23k
Code Reviewing Like a Champion
maltzj
525
40k
Faster Mobile Websites
deanohume
310
31k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Transcript
リプレイスでやったこと めぐろLT#21
• 木村宗吾(K1mu21) ◦ 社会人2年目です!(高校からプログラミングしてました ) • 株式会社ラクーンホールディングス技術戦略部 • バックエンド(+フロントエンド+CI/CD…) ◦
業務ではJava,PHP ◦ 趣味ではGo • 趣味 ◦ ライブ ▪ ボカロのライブ行きました ◦ サウナ ▪ 錦糸町の黄金湯が最高です 😆 ◦ etc … • X ◦ @detunote
やったこと 2024年2月から8月まで弊社公式サイトのリニューアルプロジェクトを行った (関係ないがほぼ全く同じ期間で他のクソでかPJにも参加していた)
やったこと 1. Cloudflareでホスティングするようにした 2. CloudflarePagesFunctionのLogをCloudWatchに飛ばすようにした 3. パッケージ管理ツール(Renovate,Dependabot)を入れた 4. biomeの静的解析結果をCodeQuarityに出るようにした(githubではcode inspection?)
5. WordPressの記事,画像データをmicroCMSに移行した
Cloudflareでホスティングするようにした 元々社内サーバー内でTomcatを使ってホスティングをしていた 本来はデザインだけの改修予定だったが、↑の部分も回収しようという事になった 色々AWS、GCPなども考えたが、選んだのはCloudflare 無料枠が大きい、値段が安い、機能が要件的に十分だったことが決め手
CloudflarePagesFunctionのLogをCloudWatchに飛ばすようにした • CloudflarePagesFunctionはAWSでいうLambdaみたいなもの ◦ CloudflarePagesFunctionを使ってYoutubeAPIを叩いていたが、ログの保管ができない ◦ Cloudflare WorkersだとLogPushの機能を使ってS3とかNew Relicにログを送れるけど... •
監査的にログがないと起こられるので、以下のライブラリを使ってCloudWatchに送 信する仕組みにしてログの保管ができるようにしました https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cloudwatch-log s • Cloudflareの話は別のLTで話してるので興味があったら見てみて下さい https://speakerdeck.com/k1mu21/cloudflareiizo
パッケージ管理ツールを導入 • ライブラリのアップデートを自動で管理してほしかったのでDependaBotを導入しまし た ◦ CIで回してるので人の手があまり入らないようになってます ◦ GitLabだとgroupsキーが使えなくてかなり微妙でした • MergeRequest(PR)をGitLabでもまとめることができるRenovateに入れ替えました
◦ 入れ替えるにあたった詳細は Zennで書いています ◦ https://zenn.dev/aeon_mall/articles/a62a1cf8652f01 ◦ https://zenn.dev/aeon_mall/articles/1704bebe048ef0
biomeの静的解析結果をGitLab CodeQuarityに出るようにした • biomeにはreporterという機能があり、これを使うと解析結果をJsonやxmlなどの形式 で出力することができます ◦ gitlabを指定すると静的解析結果を CodeQuarity形式で出力することができるようになります • これをArtifactとして持たせることで、MR上にCodeQuarityで表示することができる
ようにしました
WordPressの記事,画像データをmicroCMSに移行した • この作業が一番大変だった • WordPressをmicroCMSに移行することになったので過去データを移行する必要が 出てきた ◦ microCMS公式が出してるやり方だとアイキャッチ画像のみを引っ張ってくることができなかった ▪ アイキャッチが本文内にあり、
idなどでアイキャッチ画像の指定がされておらず特定が不可能 • https://blog.microcms.io/wordpress-to-microcms-tutorial-preparation • 新しくRestAPIのプラグインを入れることで情報は全て取得できたので解決 アイキャッチは記事の概要の上に来る画像のこと
メディア画像の取得 ・WPは/yyyy/mm/画像名の形式で保存されてるので月が変われば同じ画像名が使え る ・curl -oでファイルをダウンロードしていたが、↑の考慮をせずに画像名だけでダウンロー ドしてしまいファイルが上書きされてしまった ・解決した後にダウンロードファイル数が2ファイル足りなくて色々調査したが、全く同じ /yyyy/mm/画像名で形式で保存されていたのでまた上書きされていた
メディア画像のアップロード • マネジメントAPIを使ってアップロードを行いますが、ドキュメントがあるのでそこまで 難しくはないです • 1秒間に10ファイルしか送れないので1000ファイル以上アップロードしたのでかなり 時間が取られます • たまに500、429エラーが発生するのでリトライ処理をしないとかなり面倒くさいとい う罠があります
記事の取得 新しく入れたWPのプラグインを使うことで、APIを叩くことで必要な記事情報を取ってこ れるようになったので特に難しいことはないよ Advanced Custom Fieldsは許さん
記事のアップロード • microCMSにアップロードする際は勝手にmicroCMSの形式に変換して保存される のでWPの内容を変換する必要があった ◦ WP独自の形式で表示されてる部分もありキレてた https://microCMS形式/assets/一度きりの乱数/毎回生成される乱数/ファイル名 ファイル名x240-320.png→ファイル名png=240&w=320
まとめ • 新しいものにリプレイするのマジで大変 ◦ それぞれ基本的に互換性がないのでそれに合わせた設計とかを考えないといけない • 一から作り直すとマジで力がつく ◦ インフラ側とかの知識がすごいついた ◦
できなかったら代用できる方法がないかと気づける機会が増える • WordPressほんまカス ◦ microCMSに移行できるツールを OSS化したいなと思ってます ◦ カスコードなのでリファクタ必須