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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
K1mu21
November 15, 2024
Technology
100
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リプレイスでやったこと
めぐろLT#21
K1mu21
November 15, 2024
More Decks by K1mu21
See All by K1mu21
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
340
dependabotを導入して失敗した話
k1mu21
0
180
Rust勉強会1回目の資料
k1mu21
0
91
ギャレトレ勉強会
k1mu21
0
90
Cloudflareいいぞ
k1mu21
1
160
静的解析ツールを導入した話
k1mu21
1
250
WebGLを触ってみよう
k1mu21
1
69
GoのAirを使ってみた話
k1mu21
0
170
学生から社会人1年目を通して
k1mu21
2
280
Other Decks in Technology
See All in Technology
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
250
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
100
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
140
データエンジニアリングワークショップ:Auto LoaderとSparkで学ぶデータパイプライン構築
databricksjapan
PRO
0
140
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
520
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
180
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
3
2k
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
130
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
3
920
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
670
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
130
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Typedesign – Prime Four
hannesfritz
42
3.2k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
500
HDC tutorial
michielstock
2
840
We Are The Robots
honzajavorek
0
330
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
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化したいなと思ってます ◦ カスコードなのでリファクタ必須