タグ

ブックマーク / techblog.kayac.com (257)

  • 第二回 PR TIMES x カヤック 合同技術勉強会を開催しました - KAYAC engineers' blog

    SREチームの池田 です 2022年11月11日に、PR TIMES さんとカヤックのエンジニアで、オンライン合同勉強会を開催しました。 この合同勉強会は第2回目の開催となります。1回目はちょうど1年前くらいの2021年11月4日に開催されました。 第1回に関しては以下をご参照ください。 techblog.kayac.com developers.prtimes.jp テーマと発表内容 勉強会の趣旨は第1回と同様でした。 同業他社のエンジニアと知り合う機会を作る 登壇者は特に若手に限らず、募集しました。 今回の裏テーマは『芸術的だなとか、褒められたいとか、偉業だよなとかで、なんかとにかく人に話したい話』になり、話したいことがある人に集まっていただきました。 以下が実際の勉強会のタイムテーブルです。 17:00~17:05 オープニング 17:05~17:15 Rubyサーバアプリケーション

    第二回 PR TIMES x カヤック 合同技術勉強会を開催しました - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/11/16
    わいわい
  • 【dbt小ネタ】 ログの集計 : incremental モデルの実運用 (upsert, リカバリ手法や自動復旧の実現) - KAYAC engineers' blog

    カヤックSREの池田です。 最近、日のデータエンジニアリング界隈でのdbt(Data build tool)の活用がじわじわと盛り上がってきています。 dbtpythonのJinjaテンプレートを利用したSQLの拡張を実現し、ETL処理のT(データ変換)に関して強力な機能を提供してくれます。 dbt自体の詳しい説明などは、インターネット上に増えてきていますのでそちらにおまかせするとして、記事ではdbtを使い慣れてきた人向けの小ネタを話します。 今回は『ログの集計』を例にincrementalモデルを運用する上での問題とその解決方法を紹介します。 www.getdbt.com まずはじめに dbt では モデルと呼ばれる*.sql とスキーマと呼ばれる*.ymlを記述することになります。 例えば、以下のようなsourceのスキーマがあるとします。 models/staging/log/

    【dbt小ネタ】 ログの集計 : incremental モデルの実運用 (upsert, リカバリ手法や自動復旧の実現) - KAYAC engineers' blog
  • Terraform管理されたステージング環境・本番環境の差異を検出したくて頑張っている話 - KAYAC engineers' blog

    SREチームの橋です。今回はステージング環境の運用でありがちな番との差分に対処する試みを紹介します。 背景 ステージング環境について、例えばIT用語辞典では ステージング環境とは、情報システムやソフトウェアの開発の最終段階で検証用に用意される、実際の運用環境と変わらない環境のこと。 と説明しています。検証用ですから、インフラ面で言っても番環境となるべく一致した構成であってほしいということになります。 しかし実際にはさまざまな経緯(ステージング環境を後から立てたり!)から、たとえTerraform管理していたとしても差異が発生してしまうことがあります。 こうしたとき、その差異を検出する一つの方法としてはTerraformの.tfファイルを比較することですが、これにもいろいろな書き方がありえます。 例えばaws_db_proxy_endpointはterraform-provider-a

    Terraform管理されたステージング環境・本番環境の差異を検出したくて頑張っている話 - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/10/28
    SRE連載10月号
  • EKSからECSに移行して開発運用コストの削減を図る - KAYAC engineers' blog

    SREチームの長田です。 今回はカヤックで運用している「まちのコイン」というプロダクトのアプリケーション基盤を Amazon EKS(以下EKS)からAmazon ECS(以下ECS)に移行したはなしをします。 まちのコインとは coin.machino.co www.kayac.com まちのコインはカヤックが運営している、デジタル地域通貨を使ってその地域のコミュニティを活性化させるサービスです。 2019年11月から実証実験を開始し、翌年2月から正式リリースされました。 2022年9月現在、20の地域に導入されています。 一般ユーザーが使用するクライアントアプリと、導入地域の運営団体が使用するブラウザ用の管理画面、 それらにAPIを提供するRailsサーバーアプリがあります。 データベースはAmazon Aurora PostgreSQL、 その他AWSのマネージドサービスを組み合わせ

    EKSからECSに移行して開発運用コストの削減を図る - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/09/29
    SREチーム連載9月号
  • ecrm - Amazon ECRから不要イメージを安全に削除するOSSを作った - KAYAC engineers' blog

    SREチームの藤原です。今回は、AWSのコンテナレジストリであるAmazon ECRから、不要になったコンテナイメージを安全に削除するツールをOSSとして作った話です。 Amazon ECRのライフサイクルポリシーでは、設定によっては実際に利用中のイメージを削除してしまうことがあります 現在利用中のイメージを避けて、それ以外の不要なイメージを安全に削除できるCLIツールをOSSとして作成しました Amazon ECSとECRでのイメージ運用 カヤックでは、コンテナのオーケストレーションにAmazon ECSを主に使用しています。ECSにタスクをデプロイする場合は、イメージのタグにアプリケーションのGitリポジトリのコミットハッシュ(git log -1 --format=%Hで計算した値)を付与してAmazon ECRにpushし、タスク定義ではそのタグを含めたURLを指定しています。 例

    ecrm - Amazon ECRから不要イメージを安全に削除するOSSを作った - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/08/30
    書きました
  • ISUCON12 ノベルティ制作秘話 - KAYAC engineers' blog

    皆様こんにちは、カヤックのやましんです。 選出場された皆様おめでとうございます! なんと今回のISUCONはサイバーエージェント様とカヤックで出題しており、その関係で選出場者に送られるノベルティをご用意させていただきました。 このブログではそれらにまつわる話をご紹介できればと思います。 なお、予選問題はカヤックの作問チームが担当していまして、題に入る前にISUCON12予選について少し触れさせてください。 ISUCON12予選のおさらい 予選リポジトリ https://github.com/isucon/isucon12-qualify 予選の講評 https://isucon.net/archives/56850281.html 予選紹介動画 www.youtube.com 予選紹介動画、とてもかっこいいですね! お題がマルチテナントSaaSということですが、弊社の2つのサービス

    ISUCON12 ノベルティ制作秘話 - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/08/20
    ISUPORTSトロフィー、自作です
  • SLI/SLO運用の実践 shimesabaによる指標モニタリング - KAYAC engineers' blog

    カヤックSREの池田です。 先月は、カヤックのプロダクトの一つ『Tonamel』で導入したエラーバジェット算出ツール『shimesaba』の話をしました。 techblog.kayac.com github.com 今回は、実際にどのようにSLI/SLOを運用しているのか?という内容をshimesabaを使った設定例を交えつつ話します。 SLI/SLOの運用にお悩みの方の助けになれば幸いです。 最初のSLI/SLOはどう決定したのか? SLI/SLOの運用を始めるにあたって、多くの人が悩むのは以下の2つだと思います。 一体何をSLIとすれば良いのか? 最初のSLOはどのくらいにしたら良いのか? つまりは、最初の1歩をどうしたら良いか?と言う話ですが、こちらに関しては2つ参考になるものがあります。 『SLO決定のためのArt of SLO』 https://sre-next.dev/2022

    SLI/SLO運用の実践 shimesabaによる指標モニタリング - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/07/29
    SREチーム連載7月号
  • SLOの運用のために OSS shimesabaの導入 - KAYAC engineers' blog

    カヤックSREの池田です。今回は、カヤックのプロダクトの一つ『Tonamel』で導入したエラーバジェット算出ツール shimesabaの話をします。 shimesabaとは? github.com shimesabaは監視サービスであるMackerelを用いて、エラーバジェットを計算しサービスメトリックとして投稿することでSLI/SLOの運用を助けるツールです。 このツールを用いることで、以下のようなグラフが得られます。 この図の上部は、エラーバジェットの使用率=信頼性の損失率の推移を表すグラフになっています。 この図の下部は、エラーバジェットをいつ?どのくらい?損失したのかを表すグラフになっています。 一言で、エラーバジェットと言ってもいくつかの計算方法が存在します。 今のところshimesabaでは、Rolling windowのコンプライアンス期間で、Windows-based SL

    SLOの運用のために OSS shimesabaの導入 - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/06/28
    SREチーム連載6月号です
  • 2022年、カヤックは ISUCON 12の出題を担当しています - KAYAC engineers' blog

    みなさんこんにちは〜! 技術ブログではとてもお久しぶりの acidlemon です。 さて、今年もISUCONの季節がやってきましたね。 ISUCONは、ざっくりいうとLINEが主催する、Webアプリケーションのスピードアップコンテストです。「いい感じにスピードアップコンテスト」なので略してISUCONという感じです。詳しくは 公式サイトを読んでもらうのがよいですが、毎年カヤックもコンテストの参加者だったり出題者だったり優勝者だったりといった形で関わっております。 これまでの開催と、今年の開催はどのような感じになっているかというと… そういえば公開情報をまとめてみた。 過去11回まででISUCONに参加された方は延べ9207名、そのうち優勝経験者は21名。最多優勝は @sugyan @fujiwara の4回でタイ記録。 #ISUCON pic.twitter.com/jFFTtUXHn

    2022年、カヤックは ISUCON 12の出題を担当しています - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/06/03
    わいわい
  • ステージング環境における検証用データベースの立ち上げを自動化する取り組み - KAYAC engineers' blog

    SREチーム(新卒)の市川恭佑です。 カヤックのサービスでは、信頼性の担保を目的として、ステージング環境を作成する方針を取っています。 ステージング環境では、検証の精度を高めるために、量・質ともに番環境に類似したデータベースが求められる局面が頻出します。 そこで今回は、Tonamel という自社サービスにおける、検証用データベースの立ち上げを自動化する取り組みについて紹介します。 サービスの置かれていた状況と解決方針 Tonamel の実行基盤は Amazon Web Services (AWS) 上にあり、番環境とステージング環境は別のアカウントとして、同一の AWS Organizations 組織内に構築されています。 もともと、ステージング環境では、番環境のデータは利用せず、手作業でダミーデータを作成していました。 それゆえに、データベースに格納されているデータ量は番環境と

    ステージング環境における検証用データベースの立ち上げを自動化する取り組み - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/05/31
    SREチーム連載5月号です
  • カヤック×PR TIMES合同 カヤック社内ISUCONを開催しました - KAYAC engineers' blog

    カヤックSREの今です。 今年も4月に新卒社員を迎え、4月の後半には技術部研修を行いました。 技術部研修の締めには毎年なにかしらのイベントを行うのが恒例になっており、昨年は社内CTFを開催しました。 今年は、カヤックでは2年ぶりとなる社内ISUCONを開催しました。 新卒のみなさんはオフィスへ集まってもらいました ISUCON1とは Iikanjini Speed Up CONtestの略で、出題されたwebサービスを競技時間内にいい感じにスピードアップするコンテストです。 参加者にはWebサービスが動作する環境と初期実装のソースコード、MySQL等などのソフトウェアの初期設定ファイルが配布されます。 制限時間内でWebサービスの動作が変わらないように変更を加えて、最終的にベンチマーカーが計測するWebサービスのスコアを競います。 Webサービスの構成は問題によって変わります。アプリケーシ

    カヤック×PR TIMES合同 カヤック社内ISUCONを開催しました - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/05/16
    社内ISUCON開催しました&問題も公開しました。どうぞご利用下さい
  • 「SRE NEXT 2022」にSREチームの藤原が登壇します - KAYAC engineers' blog

    SREチームの長田です。 5/14(土)・5/15(日)に開催される「SRE NEXT 2022」にカヤックSREチームの藤原が登壇します。 sre-next.dev 「1年間のポストモーテム運用と、そこから生まれたツールsre-advisor」というタイトルでポストモーテムの運用と、 そこから生まれたツールについて紹介させていただきます。 sre-next.dev カヤックではSREが関わっている社内の複数プロダクトで、ポストモーテムを2020年末から運用してきました。 社内には多数のプロダクトがあるため、エンジニアは自分が関わっているもの以外の事故や事例に疎くなりがちでした。ポストモーテムの運用を通して、それがどう変わっていったかを紹介します。 ポストモーテムからは、普段は問題なく動いていても高負荷時や長期間の運用で問題になる、インフラやミドルウェアの設定が要因として見つかることもあり

    「SRE NEXT 2022」にSREチームの藤原が登壇します - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/04/15
    #srenext
  • SREチームでポストモーテムを1年半運用してみた - KAYAC engineers' blog

    SREチームの藤原です。今回は、SREチームが主導してポストモーテムを書く取り組みを、社内で1年半ほど運用してみたという話です。 ポストモーテムとは? 「ポストモーテム」(postmortem=事後検証)とは、システムにインシデントが発生したことによる影響、緩和や解決のために取られた行動、インシデントの原因、再発防止策などをまとめた文書です。 カヤックのSREチームは、各メンバーがそれぞれのプロダクトに参加し、他のエンジニアとともに開発と運用を行う、いわゆる「Embedded SRE」という形態を取っています。そのため、SREチームのメンバーでも自分が関わっていないプロダクトで発生したインシデントについては詳しく把握できないことがありました。SRE以外で運用に携わっている、プロダクト専任のサーバーサイドエンジニアにはなおさら困難でした。 また、インシデント発生時に実際に手を動かす人がどうし

    SREチームでポストモーテムを1年半運用してみた - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/03/22
    SREチーム連載、3月号を書きました
  • 既存リソースをTerraformでimportする作業を楽にする - KAYAC engineers' blog

    SREチームの今です。 カヤックでは、クラウドリソースの管理にはTerraformを利用することが多いです。 クラウドリソースの構成や設定をコードで管理することで、リソースの変更内容の差分をレビューできる、意図しない設定変更を発見できるなどの利点があり、SREの目的であるサービスを安定して提供する上で重要な要素の一つです。 実際の作業として、既に運用中のサービスを新たにTerraform管理下に置く場合や、多くのリソースが既にweb consoleから作成されているものをTerraform管理下に追加する場合も多いと思います。 その際にはTerraform importをする必要があります。しかし、Terraform importは単純作業とはいえ時間と手間がかかり、優先順位を下げてついつい後回しにしてしまうことも多いのではないでしょうか。 今回は、手作業でTerraform import

    既存リソースをTerraformでimportする作業を楽にする - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/02/28
    SREチーム連載2月号
  • カヤックのSREチームについて - KAYAC engineers' blog

    SREチームの長田です。 今回は私が所属している「カヤックのSREチーム」について紹介します。 SREとは Site Reliability Engineering の略です。 「サイト信頼性エンジニアリング」と訳されることが多いようです。 同名の書籍(いわゆるSRE)が出版されたことから、SREという言葉が一般的に使われるようになったようです。 www.oreilly.co.jp この記事ではSREそのものについての説明は省きます。 ざっくり一言で説明すると、「サイト(サービス)の信頼性を技術の力で担保すること」のようになるでしょうか。 SREの何たるかのより詳しい説明については上記のSREや、提唱元であるGoogleのサイト(英語)を参照してください。 sre.google カヤックのSREチーム カヤックのSREチームは2018年に発足しました。 当初は3名体制でしたが、メンバー

    カヤックのSREチームについて - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2022/01/31
    持ち回りで月一連載予定です
  • 突撃!隣のリモートワーク環境 2021 - KAYAC engineers' blog

    この記事は Tech KAYAC Advent Calendar 2021 の23日目の記事です。 技術部2年目サーバサイドエンジニアのkolukuです。 2年経っても未だにコロナ下にある昨今、去年から引き続きリモートワークを行っている会社も多いのではないでしょうか?自分自身も入社直後からリモートワークで人と接点が無く、時々他の社員はどんなふうに仕事をしているのか思いふけることがあります。 リモートワークといえば、昨年はリモートワークでこう仕事しています!という紹介記事がたくさんありました。それを思い出した自分は社内で「2年かけて熟成されたリモートワーク環境のデスクを見てみたいので、なるべくありのままの状態を見てみたい」という要望で募集したところ、なんと14名も企画に参加いただけました! エンジニアエンジニアデスクと聞くと「とにかくモニターがいっぱいに並んでいそう」「ガジェットでご

    突撃!隣のリモートワーク環境 2021 - KAYAC engineers' blog
  • 7年続いたサービスをEC2構成からECS構成へ乗り換えた話 - KAYAC engineers' blog

    この記事は Tech KAYAC Advent Calendar 2021 の20日目の記事です。 こんにちは、バックエンドエンジニアの @commojun です。今年のTech KAYAC Advent Calendarは3度めの参戦です!よろしくお願いいたします! 日の記事は、昨年の記事の続きで、Amazon EC2のプロダクトをAmazon ECS構成へと乗り換えた話になります! techblog.kayac.com 目次 目次 背景 Amazon Linuxのサポート終了 ついでにPerlのバージョンもあげた 苦労したポイント 1,デプロイ方法がめっちゃ変わる デプロイのために都度コンテナイメージを焼く 2階建て作戦 2,batchサーバどうするの問題 sqsjfr + SQS + sqsjkr 作戦 3,泥臭い戦い ecspressoの存在 非エンジニアにもわかってもらおう 「

    7年続いたサービスをEC2構成からECS構成へ乗り換えた話 - KAYAC engineers' blog
    sfujiwara
    sfujiwara 2021/12/20
    頑張った
  • 複数の開発環境またいで感じたTypeScriptとコンポーネント開発におけるよいところと改善点 - KAYAC engineers' blog

    この記事はTech KAYAC Advent Calendar 2021の13日目の記事になります。 こんにちは!技術部ひめのです。 最近はDARK SOULS IIIを今更ながらはじめ、死んではうなる日々を繰り返しています。 今年からTonamelというサービスのフロントエンドを担当しており、ひとつのプロダクトにフロントエンドに複数の開発環境がある状況での開発をやっています。 そこで感じたTypeScriptとコンポーネント開発におけるよいところと改善点について、アドベントカレンダーというタイミングでまとめておこうと思います。 Tonamelとは Tonamelはトーナメント開催プラットフォームです。 大会の開催と進行をかんたんにするために、さまざまな大会形式や機能を提供しています。 2016年7月からサービスを開始し、今年で6年目を迎えたウェブアプリケーションです。 tonamel.c

    複数の開発環境またいで感じたTypeScriptとコンポーネント開発におけるよいところと改善点 - KAYAC engineers' blog
  • すき焼きの写真にすき焼きの3Dモデルを埋め込む方法 - KAYAC engineers' blog

    この記事は Tech KAYAC Advent Calendar 2021の14日目の記事です。 こんにちは!意匠部のおばらです。 今日は、知っていても役に立たないかもしれない、 WEBページでの画像の変な使い方をご紹介しようと思います。 題して「すき焼きの写真にすき焼きの3Dモデルを埋め込む方法」です。 すき焼きの写真にすき焼きの3Dモデルを埋め込む方法 WEBページで読み込んでいるファイルは全部丸見え! ブラウザのデベロッパーツール、便利ですよね。 特に Network や Source タブ。 読み込んでいるファイルがぜ〜んぶ丸見えです。 いけてるWEBサイトを見つけたら どうやって作ってるんだろう? ふむふむ、3D部分はThree.jsで、モデルはglTFか〜 お、テクスチャはKTXを使ってる! みたいに調べちゃいますよね?? そう、デベロッパーツールは 覗く側としては、すご〜く勉

    すき焼きの写真にすき焼きの3Dモデルを埋め込む方法 - KAYAC engineers' blog
  • 毎日クソダジャレを全社員に送り続けて5年、気がついたらバカゲーをリリースしてしまった… - KAYAC engineers' blog

    この記事は Tech KAYAC Advent Calendar 2021の12日目の記事です。 こんにちは!バックエンドエンジニアの @commojun です!先週ぶりですね!前回のバカ記事に引き続き、今回も性懲りも無く記事をしたためさせていただきます。 日報 みなさんは、日報を書いていますか?日報といえば、社会人のたしなみ。その形態は様々かと思いますが、上司や所属部署に対し、1日の仕事内容や、気付き、思ったことなどを報告するのが一般的なのではないでしょうか?特に社会人になりたての人ならば、まずは毎日の業務終了後、日報を書きなさいと教育されることも多いのではないでしょうか? カヤックでの日報 カヤックにも日報の文化はあります。制度として強制などはありませんが、特に入社してすぐの人は、仕事に慣れるためや、組織に早く馴染むため、はじめのうちは日報を書くことを推奨されます。その日の業務内容や、

    毎日クソダジャレを全社員に送り続けて5年、気がついたらバカゲーをリリースしてしまった… - KAYAC engineers' blog