開発– tag –
-
Fastly Yamagoya 2023に登壇しました! #yamagoya2023
こんにちは、インフラチームテックリードの櫻井です。 先日Fastly株式会社の主催するYamagoya 2023に登壇させていただいたので、こちらのイベントについて紹介したいと思います。 【登壇までの経緯】 今までのブログ記事でも何度か紹介していますが、PR TIMESではFastlyのCDN ServiceやImageOptimizerを活用しています。 以前私が執筆したCloudFrontからFastlyへの移行記事をFastlyの方に読んでいただき、Yamagoya 2023への登壇を先方から打診いただいたことで今回の登壇に至りました。 https://developers.prtime... -
認証プロバイダーのパスワードカラムマイグレーション: MySQLからPostgreSQLへの移行の記録
こんにちは、開発本部でインターンをしている田中です。 今回は企業ユーザーの認証を担っている認証プロバイダーのMySQLから、PR TIMESのPostgreSQLにパスワードカラムをマイグレーションしたので紹介します。 【経緯】 PR TIMESでは企業ユーザーの認証を行う認証プロバイダー(auth.prtimes.jp)が独自のMySQLを持っており、一部のデータがMySQLに保存されていました。 この認証プロバイダーはいくつかの問題から廃止を予定しています。 なのでまず認証プロバイダーのMySQLからPR TIMESのPostgreSQLにデータをマ... -
PR TIMESシステムのクラウドジャーニーのもう一ステップ、PR TIMES TVサービスのAWS移行の話
こんにちは、PR TIMESのバックエンドエンジニアのズンです。今回は担当していたPR TIMES TVサービスのAWS移行について話したいと思います。 前回のPR TIMESのAWS移行の話の記事もありますので、ぜひご覧ください。 PR TIMES TVとは PR TIMES TVは、PR TIMESが提供する動画PRサービスであり、ニュース動画やドキュメンタリー動画、ライブ配信を手掛けています。 データセンターを撤退するためには、PR TIMES TVの移行が不可欠でした。PR TIMES TVは、データベースやロードバランサーなどを過去のオンプレミスのPR T... -
“Logs in Context + Infinite Tracing + カスタム属性”でNew RelicのObservabilityを爆上げする
こんにちは、インフラチーム テックリードの櫻井です。 今回はアプリケーションモニタリングのために導入しているNew RelicにLogs in ContextとInfinite Tracingとカスタム属性を導入して、システムのObservabilityを向上させたことについて紹介したいと思います。 【Observability(可観測性)とは】 まずObservability(可観測性)とは処理時間やエラーなどシステム内部の状態がどれだけ可視化されているかを示す指標です。 Observabilityが高ければボトルネック解消や障害発生時の迅速な対応が可能になり、より... -
PR TIMES初のQAインターン 3ヶ月半の軌跡
こんにちは!開発本部でQAエンジニアとしてインターンをしている嵩原(@BkNkbot)です。PR TIMESで初めてのQAエンジニアインターン生として3ヶ月半の間お世話になったので、今回は実際にどんなことに取り組んだのかお話ししていきます! 【】 これまで私は複数の企業でQAとして業務していた経験があり、その際に執筆した技術記事などを読んだ社員さんから「弊社のインターンに興味ないですか?」と声を掛けられました。その後、QAチームのリーダーと1度だけ軽く面談を行いインターンを行うことが決定しました。 私... -
JWTに用いる署名アルゴリズムは何が適切かPHPで検証してみた
こんにちは、PR TIMESで学生インターンをしている田中湧大です。 今回は、PHPでパフォーマンスの観点から署名アルゴリズムについて検証してみたのでその紹介をしたいと思います。 【検証しようと思った背景】 現在、PR TIMESでは各マイクロサービスが独自のsessionを発行しており、様々な問題が発生しているため、認証基盤をJWTを用いたものに置き換えようと改善を進めています。 その過程でJWTに署名するアルゴリズムを選択する必要がありました。 PR TIMESのサービスはPHPで実装されています。なのでPHP上で候補... -
インターン生がSmartyのバージョンアップに取り組んだ話
こんにちは、PR TIMESの開発本部でインターンをしている三宅です。インターンではレガシーなPHPのコードと向き合い続けながらプロダクト開発とそれを支える技術について学んでいます。今回は、インターン中に取り組んだPR TIMESで使われているSmartyのバージョンアップを行ったことについて書いていきます。 【なぜ、Smartyのバージョンアップを行ったのか】 当時PR TIMESで使われていたSmartyのバージョンが2系が使用されていました。しかし、Smarty2.xのメンテナンスは終了しており、PR TIMES全体で取り組んでい... -
AVIF・WebPでサムネイル画像を配信して、ブラウザでのパフォーマンスを大幅に改善した話
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 今回はSTORYのサムネイル画像の配信フォーマットを変更することによるパフォーマンス改善を行ったので、そちらについて書いていこうと思います。 【現状の問題点】 STORYでは配信のサムネイルにユーザーからアップロードした画像を3サイズ(width800, 400, 200)にリサイズした画像を使用していました。 リサイズした画像は表示する箇所ごとに適したサイズのサムネイルを選択して、画像を配信していました。 そのような状況... -
SendGridとAWSを使って、メールを送信するアプリケーションを作成しました
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 今回はSQS とLambdaを使って、AWS Fargate上で動作しているLaravelからメールを送信する基盤を作成したことについて書いていきます。 【なぜ作るのか】 2/21にPR TIMES Webクリッピングの正式版がリリースされました。 https://prtimes.jp/main/html/rd/p/000001256.000000112.html 正式版をリリースするにあたって、ユーザーにメールを送信したいという要件が生じました。PR TIMES WebクリッピングはFargate上にデプ... -
日本語機械学習開発環境の作成
PR TIMES開発本部インターンの土屋です。私は現在データ分析インターンとしてプレスリリースデータをはじめとする社内のデータ解析を行なっています。 今回は、機械学習関連の開発環境を構築したいと思います。後述しますが、日本語の機械学習の開発環境には複数のソフトウェアをセットアップする必要があります。これらの設定をDockerやShell Scriptで実行することにより、セットアップのスピードを向上させます。また、日本語の前処理である正規化は主に正規表現を用いますが、中には文字コードを指定する必要が...