タグ

ブックマーク / techblog.yahoo.co.jp (53)

  • 数億商品を扱う出品ツールをマイクロサービス化 〜 解決した課題と開発の悩みについて

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、Yahoo!ショッピングでシステム開発を担当している石田と村上です。 Yahoo!ショッピングでは数億件にのぼる商品が日々更新されています。 今回はそれを支える出品ツールをマイクロサービス化して解決した課題と、複数のチームで開発する中で課題に感じたことを紹介します。 出品ツール(ストアエディタ)について マイクロサービス化の話に入る前に、まずはYahoo!ショッピングの出品ツール(ストアエディタ)について紹介します。 ストアエディタとは、出店ストアの方々がYahoo!ショッピングに出品するためのツールです。 出品データは以下の図にあるフローで連携されます。 商品情報には以下の情報が含まれており、入稿された値が正しいかど

    数億商品を扱う出品ツールをマイクロサービス化 〜 解決した課題と開発の悩みについて
  • 表示速度を飛躍的に向上させるHTML/CSS最新仕様「content-visibility」「Lazy loading」「contain」をコード付き簡単解説

    これまではJavaScriptを用いて実装するしかありませんでしたが、ついにimgやiframe要素であればloading="lazy"を付与するだけで、簡単に実装できます。 <!-- 画像に適用する場合 --> <img src="pic.png" alt="画像の詳細" loading="lazy"> <!-- iframeに適用する場合 --> <iframe src="external.html" loading="lazy"></iframe>画面外では読み込みが発生しないので、必要になった時(画面内に要素が入りそうになった時)に読み込みが発生するのでパフォーマンスが向上します。 また画像についてはsrcsetを用いたレスポンシブな画像に対しても指定できますし、picture要素を用いてfallback形式でも記述できます。 <img src="normal.png" srcse

    表示速度を飛躍的に向上させるHTML/CSS最新仕様「content-visibility」「Lazy loading」「contain」をコード付き簡単解説
  • MySQLのレプリケーション設定で起きたトラブルの原因とその解決策

    そのため、binlog_formatの設定を合わせるため問題が起こったのsourceサーバーをSTATEMENTにして対処したところ、今度は更新処理で以下のようなエラーが出ていました。 ERROR 1665 (HY000): Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.これによりsourceに書き込む

    MySQLのレプリケーション設定で起きたトラブルの原因とその解決策
  • 社内ソリューションアーキテクトのお仕事

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。ヤフーで社内ソリューションアーキテクト(以下、社内SA)をしている小川です。 ヤフーには、大小さまざまなサービスが存在しています。今回は、それらのサービスをサポートしている、社内SAのお仕事をご紹介します。 ヤフーのプライベートクラウド環境 前提としてヤフーのサービスは、まずサービスレイヤーというのが上にあって、その下に共通のプラットフォーム、その下にインフラといったような水平分業の形になっています。 ※ ヤフーのレイヤーイメージ その中でも、プラットフォームレイヤーにはさまざまなクラウドサービスが存在しており、それらクラウドサービスを、AWSGCPといったパブリッククラウドを利用するのではなく、独自のプライベートク

    社内ソリューションアーキテクトのお仕事
  • プッシュ通知のタイミングを制御する話 〜 ユーザーの空気を読む通知

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo! JAPAN研究所 坪内と申します。今日は通知の話です。 プッシュ通知に気づかなかったり、タイミングが悪くてイラっとしてしまうことはないでしょうか? 最適なタイミングで通知する研究結果をご紹介します。 みなさんが目にする、ヤフーの広告の表示や、オススメの情報は、パーソナライズされています。つまり、過去のユーザーの行動履歴から「この人は釣りが趣味の人だ」と推測し、釣りに関するニュースや、釣竿のレコメンデーションをしています。これはプッシュ通知もしかりです。プッシュ通知は表示できる文字数や送信できる通知数に制限があります。ユーザーの興味などから、この人にはこの通知だ! というのを送ります。ここまでは、広告やレコメンデーショ

    プッシュ通知のタイミングを制御する話 〜 ユーザーの空気を読む通知
  • 不揮発性メモリでのデータベース処理最適化 〜 ヤフーにおけるデータベース技術の研究開発

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは! ヤフーでデータベースエンジニアをしている松浦です。 インターネットサービスを作る上で、そのデータの保持・管理を担うデータベースは重要なソフトウエアコンポーネントですが、今回のTech Blogでは、ヤフーにおけるデータベース技術の研究開発についてのお話をします。 ヤフー社内では、さまざまなデータベースを運用していますが、そのデータベースを最新のハードウエアに対応させる研究開発を行っています。 具体的には、不揮発性メモリを有効に活用するMySQLのストレージエンジン「Leo」の開発に取り組んでいます。 日は、Leoについて簡単にご紹介をします。 不揮発性メモリとは? まず、前段として、Leoのお話をする前に、不揮発性

    不揮発性メモリでのデータベース処理最適化 〜 ヤフーにおけるデータベース技術の研究開発
    lizy
    lizy 2020/05/26
    シーケンシャルなログファイルをなくすといった訳ではなかった。いずれそのあたりの構造自体も最適化されるのかな
  • MySQLの物理削除によるパフォーマンスの悪化とその回避策について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!ショッピングでシステム開発を担当している村上です。 Yahoo!ショッピングでは数億件にのぼる商品が日々更新されています。 今回はそれを支える巨大なDBの運用の中で遭遇したMySQLのアンチパターンと、回避した方法について紹介いたします。 特定のテーブルをJoinするとすごく遅くなる Yahoo!ショッピングでは商品を出品するためのツールがあります。 商品情報には「商品名」「価格」といった、任意で設定可能な項目のほか、「ブランド」「商品種別」など、製品ごとに入力する内容が決まっている項目を、マスター情報としてテーブルで管理しています。 このマスター情報を利用して、出品の際に入力情報が正確であるかどうか確か

    MySQLの物理削除によるパフォーマンスの悪化とその回避策について
  • Kubernetes as a Serviceを2年稼働させて、行ってきた改修と知見紹介 #k8s

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ヤフーのKubernetes as a Service(以下KaaS)を担当している勝田です。 今回、KaaSをProduction環境で2年活用してきた中でどのような変化がおき、ヤフーの開発環境がどう変化してきたかをご紹介いたします。 ※ 記事はYahoo JAPAN Tech Conference 2019 in Shibuya(以下YJTC2019 in Shibuya)のセッション「Kubernetes as a ServiceをProduction環境で2年活用し、直面してきた課題と解決策」をベースに、よりヤフーのKubernetes事情にスポットを当ててお話させていただきます。YJTCのスライドも下記リン

    Kubernetes as a Serviceを2年稼働させて、行ってきた改修と知見紹介 #k8s
  • IoTを活用して飲食店の空席情報を可視化した時の話

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめての○○特集1目の記事です。 こんにちは、ヤフーでIoTの仕事をしている佐藤公宣です。 数年前からIoTというキーワードを見たり聞いたりする機会が増えましたね。5Gが普及したら、世の中のIoT化にいっそう拍車がかかると思います。ところで、よく使われているこの"IoT"とは、いったいなんなのでしょうか?今回はこれからIoTを始めてみようという方に向けて、ヤフーが実施したIoTを使った実証実験の例を交えながら、基からお話ししたいと思います。 IoTってなに? "Internet of Things"の頭文字を取ったIoT(アイ・オー・ティー)は、さまざまなモノがインターネットで相互につながり、情報を共有し、制御し合う状態や、

    IoTを活用して飲食店の空席情報を可視化した時の話
    lizy
    lizy 2019/06/14
  • Callback を撲滅せよ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。言語サポート(Node.js)チームの伊藤(@koh110)です。 Node.js v10 も10月にLTSとなり async/await によるフロー制御は当たり前のように利用されるようになってきました。JavaScriptの非同期処理は async/await から覚える人も今後増えていくでしょう。今回はそんな非同期処理について、社内での事例を交えて記事を書いていこうと思います。 index Promise 化がなぜ重要なのか ユーザーに promisify をさせる落とし穴 Road to Promise まとめ Promise 化がなぜ重要なのか ちょうど3年前のアドベントカレンダーで、今後はいろいろなモジュー

    Callback を撲滅せよ
  • Spring Boot + GraphQLでAPIを作成してみよう! - Yahoo! JAPAN Tech Blog

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに こんにちは、コマース福岡開発部で金融サービスのバックエンドを担当しているチョ ジョンミンと申します。 「Yahoo! JAPAN Tech Advent Calendar 2018」に寄稿させていただく機会をいただきましたので、前から興味のあったGraphQLAPIを実装してみました。記事では、GraphQLの概要とAPIの作り方を紹介します。 ターゲット 記事は、次の読者を想定して書かれています。 GraphQLに興味はあるが、作成した経験がない方 Spring BootでGraphQLAPIを作成してみたい方 目次 利用している技術 GraphQL概要 GraphQLのメリットとデメリット GraphQLのA

    Spring Boot + GraphQLでAPIを作成してみよう! - Yahoo! JAPAN Tech Blog
  • Androidアプリで活用しているKotlin・RxKotlinの紹介

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Androidアプリで活用しているKotlin・RxKotlinの紹介 Yahoo!ニュースでAndroidアプリを開発している池田 惇です。2017年はKotlinAndroidアプリの公式開発言語になり、開発者にとってうれしい年になったと思います。今回は、Kotlin, RxJava, RxKotlinについて簡単に紹介します。 Kotlinの特徴 2017年5月のGoogle I/OでAndroidの開発言語として公式にサポートされ、利用が急速に広がっています。Androidだけではなくサーバーサイドでも活用できます。 実用性を重視した言語である Kotlinは新しい概念を提案したり革新的な機能を提供したりしません。その代

    Androidアプリで活用しているKotlin・RxKotlinの紹介
  • 乗換案内アプリのCI/CDの取り組みについてのご紹介

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。乗換案内のiOSアプリの開発を担当している田中 (@tattn)です。 ここ最近、アプリの品質を担保するための手段として継続的インテグレーション (CI: Continuous Integration)や、アプリのリリースコストを削減するための継続的デリバリ (CD: Continuous Delivery) が注目されています。 そこで今回は、自分が担当している乗換案内のiOSアプリで活用しているCI/CDの仕組みをご紹介したいと思います。 まずはiOSアプリの開発フロー自動化ツールのデファクトスタンダード fastlane について簡単に触れます。乗換案内もfastlaneを活用しています。 fastlane ht

    乗換案内アプリのCI/CDの取り組みについてのご紹介
  • Go 言語のプロファイル機能とネットワークコネクションにまつわるトラブルシューティング

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog インフラエンジニア見習いの森です。これまで数年ほどサーバーサイドエンジニアとして開発ばかりをしてきた人が最近インフラエンジニアになりました。 3月末に開催された Go Conference 2017 Spring で開発チームの後藤から弊社で開発・運用している AWS S3 互換の分散オブジェクトストレージ Dragon についての発表がありました。 Goでヤフーの分散オブジェクトストレージを作った話 私は Dragon の運用を担うチームに所属しており、稿ではその業務の中で発生したトラブルシューティングについて紹介したいと思います。 分散オブジェクトストレージ Dragon で発生していた課題 Dragon で gorout

    Go 言語のプロファイル機能とネットワークコネクションにまつわるトラブルシューティング
  • 書籍「本気ではじめるiPhoneアプリ作り」のXcode8.x+Swift3.x対応版を執筆しました

    概要 アプリを作り上げていくにはさまざまな基礎知識が必要になるわけですが、書ではiOSアプリ開発において重点的に抑えておくべき基をまとめつつ、実際にApp Storeへリリースできるアプリを開発できるようになるまでを爆速で支援するように書いています。 最終的にはWeb API(インターネット通信を使ったデータ取得の手段)を行いながら、ヤフーショッピングの商品を検索することができる「商品検索アプリ」を開発することができるようになります。 通信を行なうアプリはiOS入門者には難しいといわれています。しかし、通信を行なう方法を学習すると、作ることができるアプリの種類やアイデアを爆発的に増やすことができます。世の中のさまざまな課題を解決するアプリを考えられることは素晴らしいことですし、とても楽しいものです。 そのためヤフーが提供するWeb APIを利用してアプリ開発を行なうことができるようにな

    書籍「本気ではじめるiPhoneアプリ作り」のXcode8.x+Swift3.x対応版を執筆しました
  • AndroidにおけるSDK開発時に意識していること

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。ヤフーで広告に関わるソフトウェアの開発をしている加藤 真也(@shikato)です。 今回はAndroid向けSDK開発について、作り方や普段意識していることを紹介したいと思います。 このテーマにした理由は、AndroidやiOSにおける広告などのSDKを使う際の知見は比較的充実しているように思うのですが、それらのSDKを開発する際の知見はあまりないように感じているためです。 記事は、私が最近担当しているAndroidの広告関連SDK開発時の内容となりますが、いわゆるアドテクのような広告業界ならではの話題は少なめとなっています。 開発者に向けた、ライブラリのようなソフトウェアの開発全般に適用できる話題を盛り込みました

    AndroidにおけるSDK開発時に意識していること
  • キャッシュシステムのオリジンサーバアクセスの効率化と Apache Traffic Server

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。システム統括部プラットフォーム開発部配信プラットフォーム部の大久保諒です。 過去に何度か紹介している通り、ヤフーでは静的コンテンツのキャッシュを行うためにオープンソースの HTTP プロキシサーバである Apache Traffic Server (以下 ATS) を用いて行っています。 Yahoo! JAPAN における HTTP/2 への取り組み ヤフーの画像配信システム(CDN)の紹介 さて、 ATS のような HTTP キャッシュを行うサーバにおいて、短時間である一つのオブジェクトに対する大量の HTTP リクエストが来た際に使用できるキャッシュがない場合、オリジンサーバの負荷が増大する問題が存在します。

    キャッシュシステムのオリジンサーバアクセスの効率化と Apache Traffic Server
  • 分散システムの一貫性に関する動向について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog システム統括部アーキテクト室 今野です。 昨年は、Twitter,Facebookを始めとするクラウド各社で新規の分散システム開発のプロジェクトが相次いで発表された年でした。これらの新しい分散システムを開発する理由や、その背景にあるものは何なのでしょうか? 今回は、昨年末に開催された高信頼性分散システム系の国際学会であるSRDS 2014[1]の発表内容に関連する論文の話題も踏まえて、昨今のクラウド各社の分散システムの動向について整理してみます。 分散システムにおけるクラウド各社の動向 近年の分散データベースの世界では、AmazonのDynamo[2]やFacebookのCassandra[3]などを代表とする結果整合性(Eve

    分散システムの一貫性に関する動向について
  • Apache Traffic Server の脆弱性の発見と報告

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに こんにちは。システム統括部 プラットフォーム開発エンジニアの小柴(@masaori335)です。Yahoo! JAPAN は多くの Open Source Software(以下 OSS)に支えられています。そのなかの 1 つに Apache Traffic Server(以下 ATS)があります。ATS は過去にこの TechBlog でも紹介したこともある非常に高性能なキャッシュ/プロキシサーバーです。(*1)私の所属するチームでは日頃 ATS コミュニティへバグの報告やパッチの提供などを行っています。この記事ではその活動のなかから『ある脆弱性を発見した顛末』を紹介します。 CVE-2014-3525 脆弱性

    Apache Traffic Server の脆弱性の発見と報告
  • 第8回Jenkins勉強会で「Jenkins with Docker」というLTをしました #jenkinsstudy - Yahoo! JAPAN Tech Blog

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog LT の中で触れた環境を構築するデモコードを Vagrantfile にまとめて GitHub においていますのでよければ触ってみてください。ジョブ登録済の Jenkins が立ち上がるので全く同じ環境を試してもらえます。 yahoojapan/jenkins-with-docker-demo LT は5分でざっと流してしまったため、このエントリで補足します。 ジョブ実行毎にクリーンな環境がほしい 特に説明の必要もなく普段 Jenkins を使っていればジョブ毎にクリーンな環境がほしいと思うはずです。スレーブノードをジョブ毎に新規でインスタンスを立ちあげて実行することもできますが インスタンスの作成、起動はそれなりの時間がかかりま

    第8回Jenkins勉強会で「Jenkins with Docker」というLTをしました #jenkinsstudy - Yahoo! JAPAN Tech Blog