ブックマーク / tech-blog.monotaro.com (54)

  • EKSコンテナ移行のトラブル事例:ALBの設定とPodのライフサイクル管理 - MonotaRO Tech Blog

    こんにちは、SREグループの岡田です。 モノタロウではモノタロウのクラウドネイティブ化の取り組みについて - MonotaRO Tech Blog にも記載されているようにシステムのモダナイズに取り組んでおり、その一環でEKSのPoCそして実際にECサイトの裏側のAPIを対象にコンテナ化に取り組みました。 この記事では移行時に起こったトラブルとハマったポイントの1事例をご紹介します。 前提 起こったトラブル トラブルシュート 1. 問題の整理と仮説 2. 検証 検証1.Podのステータスがterminate状態になってから削除されるまでの時間を変えてみる。 検証2.Pod Readiness Gateを試す。 検証3. ALBのDeregistration delay(登録解除までの待機時間)を短くしてみる。 分かった事 ALBを含めたPod入れ替え時の挙動 EKSにおけるトラブルシュート

    EKSコンテナ移行のトラブル事例:ALBの設定とPodのライフサイクル管理 - MonotaRO Tech Blog
  • EKSコンテナ移行のトラブル事例:推測するな計測せよ -CoreDNS暴走編- - MonotaRO Tech Blog

    こんにちは、モノタロウの SRE グループ・コンテナ化推進チームの田中です。 現在、私たちはシステムモダナイゼーションのプロジェクトの一環として、200以上のエンドポイントを持つモノリスのバックエンド API を EC2 上から Kubernetes マネージドサービスの EKS(Elastic Kubernetes Service)に移行しています。ノードは Fargate を使用し、監視には Datadog と Sentry を導入しています。 今回、EC2 に流れているリクエストを全て EKS に振り分けを行おうとしておりました。その際に外部(DB、 サービス)への疎通ができないといった内容の Sentry のエラーが大量に発生し、切り戻しをせざるを得ない状況に陥ったのです。エラー内容を詳しくみたところ名前解決に関するものであり、今回私たちは CoreDNS の設定を行うことで解決し

    EKSコンテナ移行のトラブル事例:推測するな計測せよ -CoreDNS暴走編- - MonotaRO Tech Blog
  • マーケター自身がデータを管理するために、広告運用にdbtを導入した経緯と効果 - MonotaRO Tech Blog

    こんにちは、マーケティング部門広告グループの小林です。この記事ではオンライン広告運用に使っているデータ変換処理をdbtに移行した過程と得られた効果についてご紹介します。 モノタロウでは、全社的なデータ活用研修などにより、マーケティングのようなビジネス系の部署でも、SQLを自身で書いてデータ抽出を行い、数字に基づいた意思決定を行っています。その一方で、集計後の数値のズレやドメイン固有のデータの品質管理など、活用が進んだ企業ならではの課題というのも表面化してくるようになってきました。 オンライン広告運用においては、投下した費用など配信実績のレポーティング、広告媒体へのデータ送信などのいわゆるELTを安定的に回す仕組みが必要になりますが、処理の自動化やデータの品質まで求められるようになると、「データが抽出できる」だけでは限界が見えてきていました。そこで今回、マーケター自身がデータを管理する立場に

    マーケター自身がデータを管理するために、広告運用にdbtを導入した経緯と効果 - MonotaRO Tech Blog
  • 31記事で4500以上はてなブックマークがついた2022年のMonotaRO Tech Blogを振り返ってみた - MonotaRO Tech Blog

    データ基盤グループ兼TechBlog編集担当の吉です。 MonotaROでは2021年よりTechBlogでのアウトプットを積極的に行っており、今年が3年目になります。 そこで記事では昨年に投稿したブログの振り返りと、特に読まれた記事について振り返ります! ブログ振り返り 特に読まれた記事 SRE導入: システムを安定させる4000万円の魔法の壺 全社員からデータ基盤への問い合わせが殺到して2人では捌けなくなったので仕組みで解決する話〜datatech-jp Casual Talks #2 登壇後記〜 一般企業であまり前例がない「認証VLAN」を導入した、その後の学び 66分かかる同期処理を10分以内に短縮せよ!~商品情報同期システムでの、処理速度と運用の改善~ 【Elasticsearch】1900万点に及ぶ商品データ作成の時間を約67%短縮できた構成と工夫 最後に ブログ振り返り

    31記事で4500以上はてなブックマークがついた2022年のMonotaRO Tech Blogを振り返ってみた - MonotaRO Tech Blog
  • 「モノタロウの1900万商品を検索するElasticsearch構築運用事例」のポイント深掘り〜第50回 Elasticsearch勉強会後記〜 - MonotaRO Tech Blog

    こんにちは。 EC基盤グループ サーチチームの 山村です。 この記事は、 Elastic Stack (Elasticsearch) Advent Calendar 2022 の 23日目です。 2か月ほど前になりますが、2022年10月26日に実施された 第50回 Elasticsearch勉強会 で発表させていただきました。 私が外部での発表するのは、2016年6月のSolr勉強会 以来で、非常に緊張しました。 日々の業務にかまけて、ブログが後回しになっていたことで大変遅くなってしまいましたが、上記の発表で話した内容とスライド資料から、話したかったポイントを抜粋するとともに、勉強会で不足していた部分について補足をします。 当日、発表を終えたところで気が抜けてしまい、Twitter で頂いていた質問に満足に答えられませんでしたので、この場で補足説明を含めて出来るだけ回答したいと思います。

    「モノタロウの1900万商品を検索するElasticsearch構築運用事例」のポイント深掘り〜第50回 Elasticsearch勉強会後記〜 - MonotaRO Tech Blog
  • デブサミ2022夏に登壇してきました! ――信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入 - MonotaRO Tech Blog

    ソフトウェアデリバリーチームの市原です。先週、社内の有志メンバー3人でISUCONに参加してきました。私自身は初参加でした。結果は予選突破ならずでしたが、それなりに手ごたえもあり、学びも多くあり、何よりめちゃくちゃ楽しかったです。 さて、2022年7月21日にオンライン開催されたDevelopers Summit 2022 Summer(主催: 株式会社翔泳社 CodeZine編集部) で登壇してきましたので、ご紹介します。 発表内容について 資料 質問に回答します Q プロジェクトの仕切り直しは、内部品質起因なのでしょうか?要件などの上流工程にも課題がありそうに思いました。 Q 経過観察の日数は何日間くらいですか? Q デプロイの自動化は何かツールを使いましたか? Q テストをすべて自動化することは、かなりテストコードの作成にも工数を要すると思いますが、それ以上にデプロイ頻度が多いのでメ

    デブサミ2022夏に登壇してきました! ――信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入 - MonotaRO Tech Blog
  • 報酬確率分布の変化に応じたBandit Algorithm〜論文解説:A Linear Bandit for Seasonal Environments〜 - MonotaRO Tech Blog

    はじめに MonotaROとBandit Banditの着目理由 MonotaROにBanditを導入する際の課題 A Linear Bandit for Seasonal Environments 論文概要 背景と動機 提案手法 実験 まとめ おわりに はじめに はじめまして、データサイエンスグループの岡林です。普段はbanditなどの強化学習を用いてUIの最適化に取り組んでいます。 このブログでは最近MonotaROが注目しているbanditの概要を紹介しつつ、その中でも事業特性にあったbanditアルゴリズムにフォーカスし、論文を解説します。 MonotaROとBandit Banditの着目理由 MonotaROでは、商品単位レベルでのUI最適化に取り組んでいます。例えば、商品に応じて商品ページのコンテンツ文言などを変化させ、より適切なUIを提供することに取り組んでいます。具体的に

    報酬確率分布の変化に応じたBandit Algorithm〜論文解説:A Linear Bandit for Seasonal Environments〜 - MonotaRO Tech Blog
  • データ活用視点に立つ「指標」のエンジニアリング 〜DataOps Night#1 登壇後記〜 - MonotaRO Tech Blog

    データサイエンスグループでエンジニアやっています 竹野です。 日は先日登壇したDataOps Nightについて参加報告させていただきます。 DataOps Nightについて finatext.connpass.com 「データガバナンス」や「アナリティクスエンジニアリング」、「DataOps」といったキーワードは近年注目の大きい分野となり、イベントも盛んに行われるようになりました。 DataOps Nightもその一つで、そのテーマに「データ品質の向上に取り組むエンジニアを集めて知見を共有する勉強会」を掲げています。 データを溜めるだけではなく活用するところにまで踏み込んでいくためには、解決すべき問題が数多く存在しています。 この知見を共有しようというのがこの勉強会の主旨です。 登壇するにあたってお声がかかった際に悩んだのは、 私自身はモデル開発や施策レポーティングといった形でデータ

    データ活用視点に立つ「指標」のエンジニアリング 〜DataOps Night#1 登壇後記〜 - MonotaRO Tech Blog
  • Nativeアプリでの膨大なテスト工数を開発と運用によって75%削減した話 - MonotaRO Tech Blog

    はじめに スマートフォンアプリチームについて リリースサイクルにおける課題 解決に向けた取り組み①:自動テスト導入 解決に向けた取り組み②:運用面での見直し よくなった点 学び おわりに はじめに こんにちは、モノタロウのスマートフォンアプリチームに所属している坂江です。 スマートフォンアプリを開発する際、UIテストってとても大変ですよね。 UIの開発や対象OSに比例して増える確認項目 マニュアル作業での確認により膨れ上がるテスト工数 etc. UIテストが重要であることは分かっているのですが、テストを重要視するあまり工数が膨れ、肝心な開発や新しい取り組みへの時間がなかなか確保できなくなってしまいとても困っていました。 記事では、モノタロウのスマートフォンアプリ開発において「膨大なテストをいかに効率化し、リリースサイクルを向上させていったか」をご紹介します。 ここでのテストとは主にUI

    Nativeアプリでの膨大なテスト工数を開発と運用によって75%削減した話 - MonotaRO Tech Blog
  • Cron→Rundeckに乗り換えた話 - MonotaRO Tech Blog

    こんにちは。MonotaROで商品管理や受発注システムの開発を担当している中尾です。 この度、これまでcronで実行していたジョブに対してRundeckを導入し、ジョブのスケジュール管理を効率化することができましたので、導入にあたって苦労した点とその解消方法を中心に紹介いたします。 Rundeck導入の背景 Cronの限界を感じた 過去にも導入しようとしたが・・・ Rundeck導入において苦労した点 Rundeckが落ちた場合の対応の検討 GitでのRundeckジョブのバージョン管理 導入してよかったこと 複数のサーバーに跨ってジョブフローが組めること Cron式が使えること 重複起動制御ができること まとめ Rundeck導入の背景 Cronの限界を感じた MonotaROでは「注文を倉庫に連携する」、「商品の発注を自動で行う」といった様々なバッチ処理が、細かいものも含めると1日数千

    Cron→Rundeckに乗り換えた話 - MonotaRO Tech Blog
  • Software Design連載 2021年12月号 リリース作業とエラー追跡の改善 - MonotaRO Tech Blog

    新年あけましておめでとうございます。モノタロウでエンジニアをしております大西です。年もよろしくお願いいたします。 年もMonotaRO Tech Blogでは社内の様々な取り組みを定期的に更新して参りますので、お時間の空いた際にお読み頂けると嬉しく思います。皆様のお役に少しでも立つことができれば幸いです。 今回は、リリースにかかる時間の増加や、リリースに関する作業の属人化を体制変更によって解消した経緯と、大規模な開発体制におけるリリース作業や監視業務でのエラーやアラートの管理方法についてご紹介します。 記事の初出は、 Software Design2021年12月号「Pythonモダン化計画(第5回)」になります。 過去の連載記事は以下を参照ください。 第1回 Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか

    Software Design連載 2021年12月号 リリース作業とエラー追跡の改善 - MonotaRO Tech Blog
  • EOL対応はシステム見直しを行うベストタイミングである - MonotaRO Tech Blog

    今回のミッションと問題 テスト環境 テストの方針 全体像を知ったからできたこと テストを通じてあるべき姿を知る まとめ こんにちは。モノタロウで開発担当している竹原です。 皆さんは、EOL対応についてどのようなイメージをお持ちでしょうか? EOL(End Of Life)とは、ハードウェアやソフトウェア製品の販売や生産、ベンダーのサポートや修正・更新プログラムの提供終了を意味します。EOLを放っておくと脆弱性や不具合を抱えたまま運用することになりかねないため、基的には対応必須です。 とは言いつつも、不具合を出すリスクもあり作業内容としては広範囲のテスト作業となるため、入れ替えるハードウェアやソフトウェアに劇的な機能向上が無ければ、コストに見合う価値が得られません。しかし、確認範囲が広いという点を逆手にとるとシステム全体を見直す良い機会でもあります。 今回、私のチームでPythonのEOL

    EOL対応はシステム見直しを行うベストタイミングである - MonotaRO Tech Blog
  • ペアワークをデフォルトにしたら生産性が劇的に上がった話 - MonotaRO Tech Blog

    こんにちは、yoichi22です。半年ほど運用から離れて平和な日々を過ごしていましたが、2018年初からECサイトバックエンドの運用開発の現場に戻ってきました。この記事では新しいチームで3ヶ月ほどペアプロ、ペアワークを推進してきた過程と、その結果何が起こっているかを紹介します。 出戻り初日 少し前から基盤開発チームで一緒に働いていた1人と、隣のチームの活きのいい若手1人と一緒に、私にとっては古巣のチームにジョインすることになりました。私はまずは離脱していた間に変わったことの把握から始めることになりましたが、新しい仲間たちは業務知識がない状態からどう入っていこうかと相談になり、元から居たメンバがやろうとしている作業を新しい人とペアワークでやったらどう?と唐突にぶつけてみました。するとチームからは、 大きめのタスクはもう進行中で、いきなり入るのは難しいのでなしで 小さめのタスクは簡単すぎるので

    ペアワークをデフォルトにしたら生産性が劇的に上がった話 - MonotaRO Tech Blog
  • cron から Rundeck に乗り換えると決めた話 - MonotaRO Tech Blog

    こんにちは、鈴木です。 cron でバッチの実行制御を行っている環境に、Rundeck というジョブスケジューラの導入を進めています。cron をやめようとした理由や、Rundeck を検証した結果をお話しします。 cron をやめる cron の安心感 cron をやめる理由 ジョブスケジューラを選定する ジョブスケジューラの一般的な特徴 機能面 構成面 Rundeck を選んだ理由 具体的な選定基準 最後に cron をやめる cron の安心感 cron は十分に枯れている、実績のあるソフトウェアです。安定して動き、情報も世の中に多くあります。何かを定期実行するときに、とりあえず cron を選んでおけば大丈夫である場合も多いです。 cron をやめる理由 今回 cron をやめようと考えた理由は以下の通りです。 ジョブ数が多くて辛くなってきたから。 権限管理やエラー時のリトライ、監

    cron から Rundeck に乗り換えると決めた話 - MonotaRO Tech Blog
  • アサインは突然に -チームリーダーになって気づいたこと- - MonotaRO Tech Blog

    はじめに こんにちは。モノタロウで開発を担当している渡邉です。半年前に初めて開発チームのチームリーダーになり、スクラムを使った開発を行ってきました。今回はこれらの取り組みを振り返ってみようとおもいます。 はじめてのリーダー業って不安ですよね。どう行動すればよいのか、何を変えるべきなのか、うまくチームの目標を達成できるかなどなど・・・。私自身、そのような不安をかかえてチームリーダーになりました。 しかし、開発プロセスとしてスクラムを取り入れたことにより、想像していたよりスムーズにチーム運営を進めることができました。これから初めてリーダー職につく方や、スクラムをこれから取り入れてみようかなと思っている方の参考になれば嬉しいです。 アサインは突然に・・・ ある日のグループ連絡会で、当時のリーダーから突然の連絡がありました。 これまでのリーダーは経験豊富で、技術面でも行動面でもチームを率先してまと

    アサインは突然に -チームリーダーになって気づいたこと- - MonotaRO Tech Blog
  • 図解を制するものは、エンジニアリングを制す。diagrams.netを使ったチーム開発のススメ。 - MonotaRO Tech Blog

    こんにちは、初めまして、フロントエンドエンジニアの八木です。 普段、モノタロウのECサイト開発を行っています。 エンジニアだとシステム構成図やシーケンス図など、何かと図を作る機会が仕事柄たくさんあります。その多くは要件定義や詳細設計などのフェーズで、人に何かを伝えるために使われます。 最近では、テック系のイベントやセッション登壇などでも使われる機会が多く見られるようになってきましたね。 エンジニアが図を用いる理由 図を用いる理由は文字だけでは直感的に伝わりづらいなど様々ですが、共通して言えることはビジュアライズすることによって皆が同じ認識を持つことにあります。 しかし、人によって描き方が異なっていたり、描き方に正解はないことから個人の解釈にずれが発生することが多々あります。 例えば以下の例を考えてみます。 伝えたいことは次の通り。 WebサーバーはNginxを使用 Appサーバー上ではDo

    図解を制するものは、エンジニアリングを制す。diagrams.netを使ったチーム開発のススメ。 - MonotaRO Tech Blog
  • 大規模アプリケーション開発運用をマルチテナント方式のGKEクラスタで実現した話 - MonotaRO Tech Blog

    こんにちは。EC基盤グループの宮口(@smiyaguchi)と池田(@progrhyme)です。 モノタロウではKubernetesのマネージドサービスであるGoogle Kubernetes Engine(以下、GKE)を利用しています。 このKubernetesですがとても便利な反面、管理が大変で開発者がアプリケーションの開発とKubernetesの運用を同時に行うのは負荷が高くなりあまり好ましくありません。 そこでモノタロウでは開発と運用を分離できるように、社内でGKE共通環境と呼んでいるマルチテナント方式のクラスタによるアプリケーションの実行基盤を構築しました。 今回はその紹介をします。 マルチテナント・シングルテナントとは? なぜマルチテナントのGKE環境を作ることにしたのか 全体概要 前提・環境情報 GKE共通環境の特徴 Namespace・ノードプールの分離 RBACによる権

    大規模アプリケーション開発運用をマルチテナント方式のGKEクラスタで実現した話 - MonotaRO Tech Blog
  • モノリシックなアプリケーション開発から小さなアプリケーション開発へ(Software Design連載 2022年3月号:設計方針から変えていく、 モノリシックなアプリの過去と未来) - MonotaRO Tech Blog

    この記事の初出は、Software Design2022年3月号「設計方針から変えていく、モノリシックなアプリの過去と未来(最終回)」で、加筆修正されています。過去の連載記事は以下を参照ください。 第1回 Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか - MonotaRO Tech Blog 第2回 Software Design連載 2021年9月号 「テストが無い」からの脱却 - MonotaRO Tech Blog 第3回 Software Design連載 2021年10月号 スナップショットテストの可能性を追求する - MonotaRO Tech Blog 第4回 Software Design連載 2021年11月号 Robot FrameworkでE2Eテストを自動化する - MonotaRO Te

    モノリシックなアプリケーション開発から小さなアプリケーション開発へ(Software Design連載 2022年3月号:設計方針から変えていく、 モノリシックなアプリの過去と未来) - MonotaRO Tech Blog
  • 半年デプロイ改善を継続して見えてきた「成果」 ~モノタロウのカナリアリリース導入のその後 - MonotaRO Tech Blog

    ※この記事は 開発生産性 Advent Calendar 2022 カレンダー2 の20日目の記事です。 前回記事の16日目は nakayamaatsushiさんの 『Findy Team+ Award 受賞の裏側~開発生産性向上の取り組みを振り返る~』でした。計測した開発指標をどのように開発生産性向上に結び付けているのか、具体的なアクション事例が紹介されており非常に参考になりました! この記事の内容 カナリアリリースを導入しました やってみての感想 うまくいったこと デプロイ頻度が上がる 番で発覚するバグのユーザー影響を抑えられる 試しやすくなる 期待通りじゃなかったこと 開発リードタイムが短縮される⇒それほどでもない 機能開発のスループットがあがる⇒べつに上がらない マージが分散することで、衝突が起こりづらくなる⇒ならない 番環境での不具合は発生しなくなる⇒そうとはいいきれない わ

    半年デプロイ改善を継続して見えてきた「成果」 ~モノタロウのカナリアリリース導入のその後 - MonotaRO Tech Blog
  • Kubernetesをちょっと理解したあなたに贈るGKEの実践ノウハウ4選 - MonotaRO Tech Blog

    はじめに 商品推薦システム: RecSys について GKEを採用した理由 GKEノウハウの紹介 RegionalクラスタでZone, NodeごとにPodが分散されるようにAffinityを設定 graceful shutdownするコンテナでもpreStopが必要 コンテナネイティブの負荷分散を利用 負荷試験によるHPAのパラメータ調整 まとめ はじめに こんにちは。EC基盤グループの池田(@progrhyme)です。 モノタロウでは昨年、商品のレコメンデーションに用いるシステムを内製化するという取り組みを行いました。 私もこのプロジェクトに参加し、主にGoogle Kubernetes Engine(以下、GKE)上でのアプリケーションの構築・設定やCI/CD設定、監視設定などを行っていました。 私自身、番運用するGKEのプロダクトを格的に触るのは、件が初めての経験でした。 そ

    Kubernetesをちょっと理解したあなたに贈るGKEの実践ノウハウ4選 - MonotaRO Tech Blog