開発– tag –
-
インターン生が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で実行することにより、セットアップのスピードを向上させます。また、日本語の前処理である正規化は主に正規表現を用いますが、中には文字コードを指定する必要が... -
デジタル創作同好会traPさんと社内ISUCONイベントを開催しました
こんにちは、22新卒で、PR TIMES開発本部でバックエンド開発をしている宮崎です。 先日、デジタル創作同好会traPさんと、社内ISUCONイベントを開催しました。今回は、その準備で作成したLambda関数の紹介をします。 「ISUCON」は、LINE株式会社の商標または登録商標です。 【当日の様子】 会社にtraPの方々をお招きし、オフラインで行いました。traPからは20名以上参加いただきました。今回使用した問題はこちらです。 https://github.com/catatsuy/private-isu 最終的に30万点を超えたチームが2つあり、398,912点... -
GitHub Actions上でPHPUnitを並列に動作させて、CI実行時間を1/4にしました
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 今回は年末のコードフリーズ期間中に、CI実行時間の改善に取り組んだ件について話していこうと思います。 【背景】 STORYではバックエンドのPull Request作成をトリガーにして、CircleCi上でTestを実行していました。Testの実行時間は11〜13分ほどでした。 常々、このTestの実行時間が長すぎて開発体験の質が落ちているような気がしていました。 Testの実行時間が長すぎると何が問題になるのでしょうか? 以下がSTORY... -
Zero Downtime Migration from self-managed Elasticsearch to AWS OpenSearch at PR TIMES
Hello, I’m Duc, currently working on moving our on-premise Elasticsearch server to AWS OpenSearch Service. In this post, I will share how the old Elasticsearch server was replaced by a new one whose core is AWS OpenSearch Service. 【Introduction】 At the time I'm writing this blog, most of processes that require data from Elasticsearch have been replaced by the new AWS OpenSearch Service. But if we look back over the last few months, PR TIMES's search engine system was bas... -
CI/CDツールからS3へ静的ファイルをエクスポートするための設定
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 皆さん、CI/CDツールを使用していますか? 筆者が開発を担当しているSTORYでは、GitHub ActionsやCodePipeline(CodeBuild、CodeDeploy)を使用して各環境にアプリケーションのコードをデプロイしています。今回はCI/CDツールからS3にファイルをエクスポートしたいという要件に対して実装した変更について述べていこうかと思います。 【背景】 本題の設定内容に入る前に、STORYの現状と今回の改修を入れるようにした... -
お客様にオススメしたい、元営業PdMが選ぶ2022年にリリースした機能ランキング!
こんにちは、開発本部でプロダクトマネージャー(PdM)をしている山下です。 2022年も残り数えるほどの日数になってきましたね。今年は5月に営業本部から開発本部に異動し、業務がガラッと変わって、私にとって変化の大きな年になりました。みなさんにとって2022年はどんな年だったでしょうか? PR TIMESでは、1年間で昨年以上に様々な機能がリリースされ、変化の年となりました。利用していただく中で、変わったことに気付いた方もいらっしゃるのではないでしょうか。普段、なかなか機能リリースについてお知らせ... -
PR TIMESをオンプレミスからAWSに移行しました
こんにちは、開発本部インフラチームテックリードの櫻井です。 今回は2022年9月に行ったオンプレミスからAWSへの移行プロジェクトについて紹介したいと思います。 【オンプレ環境の抱えていた課題】 弊社の主力サービスである prtimes.jp はAWSなどのクラウドサービスではなく、自社サーバーをデータセンターに置くオンプレミスで運用してきました。 ほとんどのサーバーはVMware vShereを使って仮想サーバーとして構築されていましたが、データベース(PostgreSQL)だけは物理サーバーとして構築されていました。 こ...