サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブックレビュー
tech.pepabo.com
13期の@n01e0と@yumuです。11月はSUZURI事業部で働いていました。 SUZURIのデジタルコンテンツ 新着通知機能の追加 ClamAVの誤検知対応 検知された原因の特定 誤検知されないようにする モバイルアプリのパーソナライズ 行動ログ収集システムの構築 類似画像検索機能の拡張 BBQ SUZURIのデジタルコンテンツ SUZURIでは昨年よりデジタルコンテンツの取り扱いを開始しています。壁紙や3Dモデル、Podcastなど、データの販売をSUZURI上で行えます。 今回のOJTでは、このデジタルコンテンツ(以下デジコン)周りの機能改善をいくつか行いました。 新着通知機能の追加 SUZURIにはフォロー中のクリエイターが新しいグッズの販売を開始したときにメールで通知を行う機能があります。 しかし、デジコンの新作については通知に含まれていませんでした。 フォロー中のクリエイタ
ホスティング事業部 SREチームの @takumakume です。 11/21に「技術的負債に向き合う Online Conference」 が開催されました。 ペパボからは、技術責任者の @kenchan と @takumakume が登壇しました。 この記事では、@takumakume が登壇した「ソフトウェアの継続的アップデートをコンテナ化によって加速させる」というタイトルのLTについて紹介します。LTでは駆け足の説明でしたので、補足的な位置づけとなります。 簡単に説明すると 変更しにくいシステムは放置されるので、コンテナ化して変更しやすくした! という話です。 以降で詳しく説明していきます。 ソフトウェアアップデートの必要性について ソフトウェアを継続的にアップデートしなければシステムは徐々に壊れていきます。予想外のタイミングと規模でアップデートを強制されることに繋がり、ビジネスに
こんにちは。EC事業部のarumaです。 PythonとしてもRubyとしても文法的に正しく実行もできるが、出力は異なるというコードを考えてみました。 この記事は、GMOペパボエンジニア Advent Calendar 2023の4日目のものです。 きっかけ 実話です。ある日、Rubyが好きな友人に「Python の "Hello, world!" はどう書くの?」と尋ねられた私は、以下のコードを書きました。 これを見て友人は「このコード、Rubyでもそのまま動くよ」と言いました。 Rubyを全く知らなかった当時の私はすぐにオンラインの実行環境で試し、確かに同じ結果が得られることに驚きました。 あれから数年、私は業務でもRubyを使うようになりました。 そして最近、ふとした瞬間にこの出来事を思い出したとき、こんなことを考えました。 「PythonとしてもRubyとしても文法的に正しく実行も
こんにちは、技術部基盤チームのじっぱー(@buty4649)です。 さて、今日からGMOペパボエンジニア Advent Calendar 2023が始まりました!🎉 ペパボのエンジニアで行っているアドベントカレンダーは2014年から毎年開催しており、今年で10回目です。 10回目ではありますが、毎年アドベントカレンダーを作成するとすぐに埋まってしまいます。 そこで今年も2つのアドベントカレンダーを用意しています。 毎日ペパボのエンジニアが書いた記事を公開していきますので、ぜひチェックしてみてください。 🎄GMOペパボエンジニア Advent Calendar 2023 🎅GMOペパボエンジニア Advent Calendar 2023 すでに🎅GMOペパボエンジニア Advent Calendar 2023の1日目の記事が公開されています。気になる方はこちもチェックしてみてください
13 期の@yumuと@donokunです。10 月のサイクル OJT はホスティング事業部にお世話になりました。今回は SRE チームに入り、ロリポップとヘテムルの Rails アプリケーションのコンテナ化を行いました。 背景 やったこと 既存アプリケーションの構成把握 ルーティングの移行後の構成と妥当性の判断 ArgoCD の活用 まとめ 背景 ロリポップとヘテムルは複数のロールで構成されるサービスです。その一部は VM で動作していましたが、徐々にコンテナ化を進めてきました。 コンテナ化する理由は色々ありますが、特に今回はメンテナンス面のメリットに着目しました。コンテナはアプリケーションとその依存関係を一つのイメージにカプセル化するため、VM よりも管理が簡単です。これにより、アップデートやパッチの適用が容易になり、メンテナンスにかかる時間とコストを大幅に削減できます。 VM の場合
こんにちは、DevRelのボブです。この記事では、技術書典15にてGMOインターネットグループ合同での技術同人誌「Good Morning #01」を出した際に、私が編集者として携わった経験を通じたプロセスと、技術書制作の舞台裏について詳しくお伝えします。 技術書典とは 技術書典15で実現したかったこと 技術書典15にGMOインターネットグループエンジニア有志一同として参加 Good Morning #01 編集者としてやってよかったこと3選 執筆の期限をとにかく早めに設定する 最初に執筆環境を用意する はじめて書く人はブログを書くことを最初のゴールにする まとめ 技術書典とは 技術書典は、ITや機械工作とその周辺領域について書いた本を対象にした、幅広いジャンルの技術書に触れ合う事ができる同人誌即売会イベントです。サークルとして技術書を執筆して頒布する事はもちろん、一般参加として気になる技
こんにちは!SUZURI事業部デジタルコンテンツチームのyukunです。 最近、オリジナルグッズ作成販売サイトのSUZURIではグッズだけではなく、デジタルコンテンツの取り扱いを始めました。 このデジタルコンテンツの検索をElasticsearchとSearchkickというgemで実装しており、さらに類似商品の提案も手軽に実装できたので紹介します。 以下スクリーンショットのように商品ページで「こちらもおすすめ」セクションに類似アイテムを提案しています。 3Dアバターの類似としてアバターや3Dモデルのファッションアイテムなどが関連のものとして表示されているのがわかるかと思います。 商品ページ: https://suzuri.jp/moonshot-inc/digital_products/18284 Searchkick について SearchkickとはRailsでElasticsear
こんにちは。@matsusukeと申します。ホスティング事業部でWebアプリケーションエンジニアとしてプロダクト開発・運用保守業務を行っています。 最近スイカゲームをやり始めましたがいまだにスイカができずに悲しい思いをしています。 10/8に大田区産業プラザPiOで開かれたPHP Conference Japan 2023にて、「これから始める!ニ段飛ばしのPHPバージョンアッププロジェクト戦略」というテーマで登壇を行いました。 本記事では登壇の内容のレポートを行います。 登壇内容 ホスティング事業部のプロダクトは20年以上続いているため、古いPHPバージョンで動くアプリケーションが多く稼働しています。 そのうちの一部のアプリケーションについて、専任でプロジェクト担当となりました。PHPバージョンアップをどのように進めたか、 また、プロジェクトを進める上でどのような懸念があり、どう決断して
こんにちは、技術部プラットフォームグループのそめやポチです。最近はpng形式の画像をjpeg形式に変換する仕事をしています。 この記事では、私が社内のKubernetesクラスタのお世話をしているときに出会ったトラブルとその解決方法、またトラブルが起こった原因について説明します。トラブルの原因についてはKubernetes, Nginx, Linuxの3つのプロダクトについて、コードリーディングをしながら解説します。 直面した事象 急にKubernetesクラスタ内のNginxコンテナが起動しなくなりました。 GMOペパボが提供しているサービスの一つであるminneでは、検証用のKubernetesクラスタを利用しています。本番環境で使用しているKubernetesクラスタを模倣した、開発・検証のための環境です。そのクラスタ内でトラブルが起きていました。 トラブルの説明をするために、まずこ
はじめに こんにちは、minne事業部Webエンジニアの@inowayです。7/6に公開したtwadaさんによる2023年度版TDDワークショップを開催しましたの記事に執筆者の一人として参加していました。単独での記事公開は今回が初めてです。 @t_wada さんのワークショップを通して、自動テストの重要性を改めて実感しました。参加後に、おすすめされていた『テスト駆動開発』や『単体テストの考え方/使い方』を読み、今では完全に自動テストの魅力にはまっています。 参加直後は「実務でTDDを実践するぞ!」と息巻いていましたが、タイムリミットのある状況下で慣れない開発手法を実践するのは心理的ハードルが高く、Red->Green->Refactoringのステップを踏みながら開発することができていませんでした。そこで、本記事では「TDDに慣れる」をテーマに、TDDで機能追加することに挑戦します。アジャ
サービスのデプロイ頻度は、そのときに開発している機能の大きさやチームメンバーの人数などの影響を少なからず受けます。そのため、この変化がGitHub Copilot導入の効果と言いきることは難しいですが、生産性が向上しているチームからのノウハウの共有などを通じて、継続した生産性の向上に取り組んでいきたいと考えています。 GitHub Copilot導入に向けた課題とその対応 ここからは、ペパボでGitHub Copilotを全社導入するにあたり検討した観点と、その結果を紹介します。 ペパボにおける生成AI活用の現状 GMOペパボでは、ChatGPTの登場以降、生成AIを活用した機能の開発や開発プロセスへの活用による生産性向上に取り組んできました。特に、pyama86/slack-gptを利用したSlack Botはエンジニアに限らず全社員が利用しており、さまざまな業務の効率化に貢献しています
はじめに こんにちは、minne事業部でwebアプリケーションエンジニアをしているkazuです。今回の記事は、コミットメッセージを書く時に、自分がこれまで愛用してきたgitmojiをやめた話をします。 そもそもminneの開発チームにおけるコミットメッセージのルール minneの開発チームでは、コミットメッセージのルールは特にありません。 私がペパボに入社した当初、「逆か」というコミットメッセージもあったりなどして、意外とみんなカジュアルにコミットメッセージを書いているなと思っていました。なるべく実際に開発をする中でのプロセスをありのままに残していきたいという思いがあるのかなと思っています。 gitmojiとは 特にコミットメッセージのルールがないということで、これまで自分が個人開発などでは使ってきたgitmojiをminneの開発チーム内でも使っていました。 gitmojiとは、gitの
こんにちは。あなただけの彦星になりたい、鹿児島が生んだ三大Hikoの一人、和彦こと、P山 です。 今日はデータ基盤チームで利用しているワークフロー管理プラットフォームのApache Airflow(以降Airflow) で利用しているDAGのCI環境をクラウドネイティブな技術を利用して、リニューアルした実装を紹介します。 DAGというのは Directed Acyclic Graph の略で有向非巡回グラフと訳されます。Airflowではそれぞれのタスクをまとめたものを1つのDAGとして定義します。 多くの方になじみのない言葉でしょうから、この記事内においては「プログラムコード」と脳内変換していただければ読みやすいです。 リニューアル前 データ基盤チームではAirflowの実行基盤としてGCPのCloud Composer を利用しています。 自動テストを行うために、GitHub Acti
挨拶 こんにちは。2023年04月に入社した、minne事業部エンジニアの@kazuです。 この度、弊社GMO ペパボ(以下、ペパボ)では2022年に引き続き、今年も日本のTest-Driven Development(TDD) の第一人者である @t_wada さんをお招きしてTDDワークショップを開催しました。前回:『t_wadaさんによるTDDワークショップを開催しました』 なぜTDDワークショップを開催しているのかについては、こちらの記事『ふつうの開発と TDD ワークショップ』で詳しく説明していますのでご覧ください。 さて、それでは今回のTDDワークショップで何をしたのか、どんな気づきがあったのかなどについて、参加パートナーからそれぞれお話ししてまいります。 具体的な研修内容 概要 ワークショップは、事前に各参加パートナーが基調講演/ライブコーディングの動画を予習し、動画内でのラ
ホスティング事業部の業務信頼性向上チームでエンジニアをしているはらちゃんです。 先日STREET FIGHTER 6のオープンベータに参加し、友人にボコボコに負けました。 製品版買っていい勝負ができるように特訓を重ねたいと思います。 今回、ホスティング事業部のサービスであるロリポップ、ムームードメイン、ヘテムル、おさいぽのDBリストアテストを自動化したので紹介します。 まず業務信頼性向上チームとは? リストアテストを継続的にやっている理由 なぜ自動化したのか 全体像 具体的な実装 実装時に困ったこと dumpのサイズが大きすぎて通常のrunnerではリストアテストができない場合 scpをするアカウントにdumpファイルを操作する権限がない場合 dumpファイルのファイル名が微妙に違ってうまく指定できない場合 終わりに まず業務信頼性向上チームとは? 最初に、自分の所属している業務信頼性向上
はじめに 2023年6月7日に、カラーミーショップでショップの副管理者が一部のアプリストア アプリを利用できる機能の提供を開始しました。 「副管理者機能」でアプリを利用できるようになりました カラーミーショップの提供する価値の1つに、さまざまな規模のショップの運営業務を効率化するというものがあります。今回提供を開始した機能は、複数人が携わるような中規模から大規模のショップの運営において、この価値の増大に貢献するものです。また、総合的なECプラットフォームとしてショップ自体の管理から拡張機能の利用までを一貫性のある体験として提供できる、という効果もあります。 副管理者がアプリストア アプリを利用できるようにするためには、次のような技術的取り組みが必要でした。 ショップ副管理者の権限情報をサービスのどの場所からでも利用できるようにする アプリストア アプリが権限を意識し、適切なアクセス権限を持
技術部データ基盤チームの @zaimy です。今回は、Google Cloud のベクトル近似近傍探索サービスである Vertex AI Matching Engine と、自然言語と画像のマルチモーダルモデルである CLIP による特徴量変換を使った、EC サービス「SUZURI」の類似画像推薦機能をご紹介します。 できるようになったこと 構成 Batch での画像のダウンロードと特徴量変換 Batch を選択した理由 Batch で複数のタスクに処理を振り分ける Batch で GPU とストレージボリュームのマウントを併用する際の注意点 Matching Engine の index への新規登録と更新 Matching Engine のレイテンシ コスト まとめと今後について できるようになったこと SUZURI を訪れた方が閲覧中のアイテムに類似するアイテムを画像をもとに推薦でき
Rubyの名付けについての教訓は「Good Name」でした。Rubyの他には、Coral、Tishなどの名前の候補があったそうで、もしTishになっていたら、RubyKaigiはTishKaigiになっていたかもしれないという話を交えつつ、良い名前を選ぶということはとても大事なことだとお話されていました。 First Public Releaseの時代には「Community = Communication」ということをお話されていました。それまで一人で開発していたRubyを複数人で開発することでコミュニケーションが生まれ、開発に関わってくれた方がコミュニティに参加してくれるようになったことでRubyコミュニティが広がっていったそうです。 Rubyを3倍速くするというキャッチフレーズの時代では「Leadership and Vision」というお話でした。Rubyを3倍速くすることは、当
こんにちは。最近、ピストのチェーンを 和泉チエン TOUGH GUARD に替えて、ご機嫌な原口です。 ホスティング事業部の MRE(Messaging Reliability Engineering *ペパボの造語です)というチームで、 SRE ような取り組みを、DNS やメールなどのメッセージングサービスに対して実施しています。 今回は、弊社のホスティングサービスで提供しているメールシステムについてご紹介いたします。 メールシステム構成 弊社のホスティングサービスで提供しているメールシステムは、運用効率化やメールサーバー リプレイス時のダウンタイム削減のため、リバースプロキシを導入しています。 このリバースプロキシについては、過去、dovecot や Courier-IMAP などを利用していましたが、 現在は Nginx に変更しています。メールシステムで Nginx を利用している
ホスティング事業部 SREチームでエンジニアをしている @takumakume です。 2023年4月14日に「Pepabo Tech Conference #20 春のSREまつり」を開催しました。 ペパボのSRE(Site Reliability Engineering)の活動内容を知りたい方は、ぜひ見ていただければと思います。 では、発表内容を紹介します。 ホスティング事業におけるSREの取り組みと面白さ (@takumakume) ホスティング事業部におけるSREの取り組みと面白さについて紹介しました。具体的な技術やアーキテクチャの課題解決方法、そしてSREの仕事の魅力を解説しています。 世にないアーキテクチャの創出や幅広い技術の取り扱い、そこから来るチャレンジングな仕事がホスティング事業部におけるSREの魅力です。 プロダクト開発エンジニアからSREへの挑戦:Embedded S
技術部データ基盤チームの@tosh2230です。 2023/04/11(火)に、ファインディ株式会社主催のLTとパネルで学ぶ データ基盤アーキテクチャトレンド 2023にてChange Data Capture(CDC)の事例を紹介しました。関係者の皆様に感謝を申し上げます。 この記事では、発表した内容と質疑応答への回答、その後の動向についてお伝えします。 発表内容 ニアリアルタイム分析の実現に向けた取り組みの概要と、本番稼働したばかりのCDCデータパイプラインの詳細についてご紹介しました。 CDCを行うツールとして、今回はDebezium Serverを選びました。Debezium Serverは日本国内では事例が少ないのですが、コンテナで軽量にCDCを実現できる良い手段だと思います。 質疑応答 発表後にいただいた質問への回答を記載します。当日うまく答えられた自信はありませんが、下記の内
こんにちは、技術部データ基盤チームの @zaimy です。今回は、チャット形式で API 版の GPT-4 を利用できるツールを GitHub に公開しましたので、その紹介をしたいと思います。 リポジトリはこちらです: https://github.com/pepabo/ai-assistant できること このツールを使うと、以下のようなことができます。 ウェブサービスの運用・開発アシスタントとして振る舞う(プロンプトは変更可能) チャット風の UI で会話できる 会話履歴に基づいて会話できる リポジトリに Dockerfile を用意しているので、API Key をお持ちであれば手元で起動してすぐに試すことができます。 利点 できることそのものは ChatGPT のブラウザ版でも可能ですが、ChatGPT で GPT-4 を利用する場合、有料サービスの「ChatGPT Plus」に加入
最近スプラトゥーン 3 をやりこんでいて、サーモンランでカンスト(※)を達成しました todacchi です。 ゲーム内の貴重なバッジを獲得し、人生の貴重な時間を失いました。 (※) カンスト: ゲーム内の評価をでんせつ 999 まで上げること。 はじめに Ruby on Rails を用いた Web アプリケーション開発などでは、YAML ファイルを設定ファイルとして採用し、環境ごとに切り替えるような運用をすることがあります。 しかし、まれに本番環境の部分だけ書き間違えてしまうといったことがあります。 そうすると、あえて本番環境の値を使わせるようなテストを意図的に書かない限りテストが落ちないですし、YAML の文法的には正しい場合もあるのでミスに気付きづらいです。 その結果、テストやステージング環境では正常に動作していても、本番環境にリリースすると障害が発生してしまいます。 例えば以下の
本の選定理由 私たちが所属している技術部プラットフォームグループは2022年1月にチーム体制の大きな変更があり、新しい役割や責任、コミュニケーションの流れなどが発生しました。 チーム体制変更直後は、新たな体制に起因し生まれた組織的課題を感じつつも日々発生するタスクに向き合うことを優先したため、それらの課題を解決するために必要だと感じていた組織設計手法を体系立てて学ぶ時間を取ることができませんでした。 しかし、1年が経過し新しい環境に各メンバーが適応したとともに、コミュニケーションパスの複雑化による認知負荷の上昇などの課題が見えてきました。それらの課題を解消してより良い成果を出すために、チームのメンバーごとに役割や責任、コミュニケーションの流れなどを認識する必要性が高まってきました。そこで、私たちは組織設計に関する手法を学ぶために、書籍「チームトポロジー 価値あるソフトウェアをすばやく届ける
DevRelのボブレルことボブ です。先日、鹿児島鹿児島市のmark MEIZANで開催された鹿児島Ruby会議02 へ参加したので、そのレポートをお届けします。 鹿児島Ruby会議とは 鹿児島Ruby会議は、鹿児島県で開催されるRubyプログラミング言語に特化したカンファレンスです。前回の鹿児島Ruby会議01は2019年に開催され、今回の鹿児島Ruby会議02は2023年3月4日に開催されました、実に、約3年半ぶりの開催となります。 鹿児島Ruby会議02のテーマは「Rubyで広がる世界、Rubyではじめよう」となっており、Rubyが好きな人たちがRubyを通じて広がる世界について発表し、コードを書き続けることの楽しさや意義について語り合う場となっています。多様なセッションが予定されており、非常に魅力的なイベントとなりました。 当日 東京から鹿児島へ。鹿児島空港から1時間ほどバスに乗る
こんにちは @kenchan / @hiboma / @ryuichi_1208 / @rsym1290 です。今回は先日開催されたYAPC::Kyoto 2023にペパボから4名が登壇しましたので、イベントレポートをお届けします。 春のエンジニア ぶつかり稽古 2023 by @kenchan 技術責任者の高橋健一(@kenchan)です。企画という枠で@__kanさんとぶつかり稽古をさせていただきました。 ぶつかり稽古とは、YAPC::Asia 2013のノベルティをきっかけに行われたエンターテイメントペアプログラミングです。詳しくはあんちぽさんのブログ「「#ぶつかり稽古」という事件について」を参照ください。今年はそのイベントから10周年ということで、京都でリバイバルさせようという企画が立ち上がり、かくかくしかじかの事情で私が力士を務めることになりました。 初回の打ち合わせ(稽古の稽古
ホスティング事業部MREチームでインフラエンジニアをやっている原口です。 先日、弊社の DNSサービスに対し、軽めの DDoS攻撃が来たので、その際に対応した手順を簡単にご紹介します。 DNSサービスに対する DDoS攻撃への対応について DNSサービスに対する DDoS攻撃は昔からあり、弊社でも対策を行っております。 拠点や回線を分け、冗長化を行うのはもちろんですが、各拠点で「DDoS軽減装置」と言われるアプライアンスを導入しています。これは、不正なパケットを DROP をするものですが、一般的なファイアウォールのようなルールベースではなく、学習結果をもとに、通常とは異なる傾向のアクセスがあると動作するものになっています。 今回紹介する対応は、この DDoS軽減装置をすり抜ける程度の、軽めの DDoS攻撃に対して行ったものです。 DNSサービスの構成 今回 DDoS攻撃が来たサービスでは
カラーミーショップでは、システム全体の可用性向上を目指す「Boostプロジェクト」というチームが組織されており、主に「ShopSet アーキテクチャ」と呼ばれる新しいアプリケーションの運用基盤の開発と導入を進めています。 ShopSet アーキテクチャとは、それまで1つの大きなシステムだったカラーミーショップを、 Kubernetes を用いて仮想的分離させ、耐障害性の向上やシステム全体の可搬性を目指した仕組みのことです。この ShopSet の概念に関する詳細については、既に外部に向けて何度か発表が行われているので、そちらの資料などを併せてご覧ください。 カラーミーショップの 可用性向上のための インフラ刷新 - Speaker Deck 15年以上動くECシステムをクラウドネイティブにするためにやっていること - Speaker Deck 2020年から始まったこのプロジェクトでは、こ
技術部データ基盤チームのデータサイエンティストの @zaimy です。今回は、ハンドメイド作品を対象とする EC サービスである minne の注文額を、プロダクト担当者とデータサイエンティストで Prophet を使って予測した事例を、主に運用面から紹介します。 結論ファースト 背景 時系列予測を行うモデルの選択 特徴量の選択と工夫 モデリングの結果とビジネス的な成果 モデルの監視と継続的な改善 まとめと今後について 結論ファースト 月ごとの注文額を実績に対して誤差 1% 程度で予測できるようになりました。 背景 これまで minne では、経営計画に基づく年間の注文額の目標があり、それを過去実績に基づいて月割りにし、そこから日数で日割りにする…という流れで計算された、日ごとの注文額の目標を立てていました。 この目標値が予測値として使われているシーンもありましたが、当然、目標値は直近の実
次のページ
このページを最初にブックマークしてみませんか?
『Pepabo Tech Portal』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く