タグ

ブックマーク / zenn.dev (1,109)

  • データ基盤におけるIaCの重要性とその運用

    この記事は、Finatextグループ Advent Calendar 2024の3日目の記事です。 はじめに ナウキャストでデータエンジニア/データプラットフォームエンジニアとして働いている@mt_musyuです。ナウキャスト社内のデータ基盤の構築や運用を行い、また社内の知見を生かしてクライアント企業様のデータ基盤の構築や運用の支援を行っています。 近年、データ利活用の推進や生成AIの利用が進む中で、データ基盤の重要性が増しています。単にデータ基盤を構築するだけでなく、増え続けるデータやユーザーを考慮した運用も求められています。そのため、データ基盤の構築や運用を効率化するために、IaC(Infrastructure as Code)の導入が重要であると考えています。もちろん、通常のシステム開発においてもIaCは重要ですが、データ基盤においては特にその重要性が際立っていると考えています。そう

    データ基盤におけるIaCの重要性とその運用
  • ecspresso - fujiwara-ware advent calendar 2024 day 2

    この記事は fujiwara-ware advent calendar 2024 の2日目です。 ecspresso とは ecspresso は、Amazon ECS のタスク定義やサービス定義を管理し、デプロイするためのツールです。 開発開始は2017年11月、リリースして7年が経ちました。fujiwara-wareの代表的なツールです。 おかげさまで、大変多くの皆様に利用されています。[1][2] (ご利用中で🌟をしていない方がいればぜひ!) 当初はタスク定義を登録してECSサービスをデプロイする機能のみのごくシンプルなツールとして誕生しましたが、ECSの機能拡張に継続的に追従した結果、現在では多くの機能を持つツールとなりました。「ECSのスイスアーミーナイフ」と呼ばれることもあります。 ecspresso handbook ecspresso の使い方や設定方法は、ecspres

    ecspresso - fujiwara-ware advent calendar 2024 day 2
  • DevTools の使い方を可能な限りスクショ付きで解説してみる

    以下の公開計測会でやったものを個別に解説してみる。 細かいテクニックが多いのだが、それを可能な限りテキストとスクショで解説したい。使い方の解説が中心で、どういう意味があるかは解説しない。 Chrome131時点のスクリーンショットで、後で読む場合は頻繁にUIが変わっている点に注意。大事なのは意図。 宣伝: これを御社のサイトで解説する仕事をやっています。 デモのURL これに意味はなく、今日偶然見ていただけで意図はない。関係ないがエッジランナーズは最高のアニメ。 DevTools を開く F12 or 右クリックから「検証」 DevTools > Lighthouse この状態で計測 このとき、新しいプロファイルを作ったりして、可能な限り Chrome拡張が入ってない状態にすること。Chrome拡張による処理も計測に含まれてしまう。 Lighthouse レポートの読み方 点数部分にマウス

    DevTools の使い方を可能な限りスクショ付きで解説してみる
  • nginx 1.27.3でupstreamにresolve指定が可能に

    個人的にはビッグニュースなのに、あまり話題にしている人がいなかったのでメモ的に書いておきます。 nginxは最近開発がGitHubに移ってから、開発が活発になっており、以前から期待されていたupstreamでresolveを指定する機能がOSS版でも使えるようになりました(有料版では以前から使えていた)。 今までの問題 nginxのproxy_passにドメインを指定すると、起動時に名前解決が走り、その後はずっとそのIPアドレスに対してproxy_passされます。よってDNSが更新されても古いIPアドレスにリクエストが行く問題がありました。 その状態で直したい場合はreloadすればまた名前解決されるので、reloadするくらいしかありません。 reloadをせずにDNS更新を反映させる方法としては、以下のように一度変数にsetするという荒技もありました。 resolver 8.8.8.

    nginx 1.27.3でupstreamにresolve指定が可能に
    fumikony
    fumikony 2024/12/01
  • システム生物学って何だったんですか?(後編)

    はじめに 「システム生物学って何だったんですか?(前編)」に引き続き、日におけるシステム生物学(的)研究のその後について、書いていきたいと思います。 まだ読んでいない人は、前編はこちら 後編は前編で触れていなかった金子邦彦さんや生物物理からの流れからはじめ、2005年以降の定着期にの話が中心になります。 文献[1]より引用・改変。 複雑系からシステム生物学へ システム生物学黎明期においては、北野さん、黒田さん、上田さん、望月さんなど比較的少数の志のある人々が”システム生物学的”な研究に取り組んできたわけですが、研究分野が広がるという意味では、研究テーマのフィロソフィーを受け継いで研究を実践する人材をどれだけ輩出できるかというのが重要になります。 人材を育成し、分野を広げるという観点で2005年ごろから現在に至るまで大きな影響があるのが、東大駒場の総合文化研究科と金子邦彦さんです。 駒場C

    システム生物学って何だったんですか?(後編)
    fumikony
    fumikony 2024/11/30
  • 【ログ分離】 ログデータを DB に保存してはいけません

    はじめに TROCCO では ETL ジョブや、dbt 連携、ワークフローなど、様々なジョブで実行ログをリアルタイムで見ることができます。 これによりエラー時のトラブルシュートをスムーズに行うことができます。 そして、この実行ログですが、DB にあるジョブのレコードの1カラムに書き込まれていました。 このように TROCCO の実行ログの表示機能は、データベースのアンチパターンの上に成り立っています。 ログデータは TEXT 型で DB に保存されているためサイズが大きく、また TROCCO の成長に応じてジョブ数は増えるため、ログデータもサービスの成長とともに無限に成長してしまいます。 おかげさまでアカウント数は増加の一方であり、それに伴い DDL が遅くなったり、また SELECT のパフォーマンスも当然落ちるため、INDEX に気をつけたりする必要がありました。 SRE ではこれに課

    【ログ分離】 ログデータを DB に保存してはいけません
  • 書籍『GitHub CI/CD実践ガイド』を読みやすくする技術

    拙著『GitHub CI/CD実践ガイド』は内容だけでなく、読書体験にもこだわりました。AmazonSNSでも読みやすいという声は多く、技術書としては珍しい観点で評価を得ています。 Amazonにおける「GitHub CI/CD実践ガイド」の読者レビュー 記事では書籍の「読みやすさ」という切り口から、執筆の舞台裏を紹介します。 最高の読書体験を目指す 技術書の使命は、役立つ情報を届けることです。しかし筆者は役立つだけでなく、読んでいて心地よい書籍にしたいと考えました。そこでまず決めたのが「最高の読書体験を目指す」ことです。そして最高の読書体験を実現するため、次のような設計原則を定めて執筆しました。 シンプルにする:短い文章・簡潔なコード・直感的な図表へと磨き上げる ノイズを減らす:難しい表現は避け、読者を迷わせる要素は徹底的に取り除く テンポを重視する:読者の集中力を削がないよう、読ん

    書籍『GitHub CI/CD実践ガイド』を読みやすくする技術
    fumikony
    fumikony 2024/11/26
  • Mermaid Graphical Editorを使うとVSCodeでサクサク図が書けるよ

    Mermaid Graphical Editor VSCode拡張機能です。 Mermaid記法を利用してマークダウン内部で作図しながら、Mermaidそれ自体のエディタを立ち上げることができます。 逆にMermaid Editor側で編集した内容もマークダウンにフィードバックされます。 vs Draw.io Integration 類似ツールとしてDraw.io Integrationがあります。 こちらは.drawio拡張子のファイルをVSCodeで作成すると、draw.ioのエディタが開いて作図ができるツールです。 しかし、draw.ioはあくまで図が書けるところを生業としていて、作成したdraw.ioファイルをマークダウンファイルに埋め込むには画像としてexportが必要です。 できれば自分はマークダウン以外のファイルを作らず、一つのマークダウンファイルだけで完結したいと思ってま

    Mermaid Graphical Editorを使うとVSCodeでサクサク図が書けるよ
    fumikony
    fumikony 2024/11/23
  • セキュリティ瓦版サービスを立ち上げたときの話

    最近、セキュリティ瓦版というワードをXで見かけた。 とても身に覚えがあったので、当時のことを思い出しながら文章に起こしてみようと思う。 セキュリティ瓦版とは? 多分震源はここ。 脅威インテリジェンスサービスやOSINTレポートサービスみたいに銘打って、月次でトレンド情報を配信するサービスのことを指していると思われる。 なぜ立ち上げたか 当時自分はセキュリティ商材のSIをするチームに所属していた。 部署がCS(カスタマーサクセス)のアプローチを大事にして、アップ/クロスセルを狙うのだ!!!という方針を打ち出して、それに乗っかったのがきっかけ。 あと、自分の経験の中で、客との定例会議中にトレンド情報をネタにして雑談していたら反応がよかったという思い出があった。 →だったらこれをサービスとして立て付ければよいのでは?という安直な考え 何をしたか? OSINT(という名前を冠したトレンド情報)配信

    セキュリティ瓦版サービスを立ち上げたときの話
  • 【2024年版】Dockerfileのベストプラクティスを整理しながらNode.jsで実践する

    はじめに 最初はなんとなくで書いていた Dockerfile なのですが、社内用にベストプラクティスを整理するタイミングがあったので、実際に Node.js + TypeScript でアプリケーションを作成しながらまとめることにしました。 この記事でフォーカスするのは、 Dockerfile のベストプラクティスそのものの詳細ではなく、それらを整理と「結局どう実装すんねん?」ってところです。 主に以下の内容を参考にしています。 想定読者 Node.js における Dockerfile のベストプラクティスの具体を知りたい方についてはピッタリだと思いますが、その他の言語でも参考になる部分はあると思います。 記事では、各用語やベストプラクティスの詳細は記載しませんが、該当箇所へのリンクを載せているので必要に応じて参照して下さい。 また、この記事に書いていない内容で、上記3つの記事に書かれて

    【2024年版】Dockerfileのベストプラクティスを整理しながらNode.jsで実践する
  • 「"君は見ているが観察していない"で考えるインシデントマネジメント」という題で登壇しました

    はじめに LuupのSREチームに所属している、ぐりもお(@gr1m0h)です。 この記事は、LUUP のTVCM放映に合わせた一足早い「Luup Developers Advent Calendar 2024」の18日目の記事です。 11/9に広島県で開催されたオープンセミナー2024@広島に登壇しました。 内容は、Luupでの取り組みとはほぼ関係ありません。「インシデント対応において必要な力」についての個人的な整理です。事例として一部Luup SREチームで行っている取り組みを取り上げています。 登壇資料は公開していますが、話した内容が資料にすべて反映されているとは言えないので、ブログを書こうと思います。 資料は以下です。 「君は見ているが観察していない」 きみは確かに見てはいる。だが観察はしない。 見るのと観察するのとでは、大違いなんだ。たとえばの話、この家の玄関からこの部屋まで上

    「"君は見ているが観察していない"で考えるインシデントマネジメント」という題で登壇しました
  • tslogで実現するセキュアなメタデータ管理とロギング

    こんにちは、sugar-catです。 はじめに 皆さんはTypeScriptでバックエンド開発を行う際に、どのようにロギングをしていますか。 この記事では、TypeScript製のロギングライブラリであるtslogの紹介と、その内部の仕組み、秘匿情報を含むログを出力しないための方法について解説します。 ログの種類 この記事ではアプリケーションログを扱います。アプリケーションコンテナで出力された標準出力を収集し、任意の監視ツールに送信し表示されるようなログを指します。 アクセスログや監査ログ、システムログのようなものは扱いません。 tslogとは tslogTypeScript製で作成された、構造化ロギングを行うためのロギングライブラリです。 主な特徴として、Node.jsとブラウザのどちらにも対応しており、他のロギングライブラリと異なり外部のライブラリへの依存が一切ない点や、コードベース

    tslogで実現するセキュアなメタデータ管理とロギング
  • 開発者のためのB2Bサービスづくり徹底入門

    こんにちは、普段はプロダクトマネージャをしつつエンジニア界隈にも首を突っ込んでいるku-sukeです。最近では個人や少人数チームでアプリやサービスを使ってリリースする人も増えましたね!その中でも「いままでは個人向けにサービスを作ってきたけど、法人のひとから問い合わせが来た」とか「B2Bって取引金額が大きそうだから興味がある」あとは自分で運営していなくても「B2BのSaaS企業に転職したけどB2Bわからん」という声をちらほら目にしたので、自分が知っている範囲でまとめようと思います。 🔰はじめに。B2Bってなんなん 個人開発者の人からするとこの時点で違和感があるかもですが、Business to Businessつまり事業者間取引のことです。個人の方もビジネスをしている以上は個人事業主ですので立派な事業者です。 これと対比して、個人消費者向けにビジネスする、あるいは広告など個人が使用すること

    開発者のためのB2Bサービスづくり徹底入門
  • DuckDB/DuckDB-Wasm と Postgres と S3 を組み合わせるメモ

    モチベーション Postgres は OLTP として利用したい DuckDB は OLAP として利用したい 集計を Postgres でやらず、独立した DuckDB でやりたい データ保存は S3 を利用したい 保存先として一番安い 一定期間経ったら削除が簡単にできる 細かいデータ処理は DuckDB-Wasm を利用してクライアント側のリソースを利用したい 一度前処理したデータは S3 に Parquet 形式で置いておきたい 転送量ボトルネックに寄せる Cloudflare R2 などを利用すれば転送量はかからなくなる 概要 DuckDB は Postgres に直接アクセスできる仕組みを持っている PostgreSQL Extension – DuckDB Postgres のテーブルを DuckDB に持ってこれる COPY でテーブルを Parquet ファイルにすることが

    DuckDB/DuckDB-Wasm と Postgres と S3 を組み合わせるメモ
    fumikony
    fumikony 2024/11/11
  • その変数名だけはやめろ:頼むから analysis を anal と略さないでください

    Linux には /tmp という一時ファイル用のディレクトリがあるので tmp は許容範囲である。というか日語読みなので英語圏にこのネタは通じない。cng, mng, unk も同様である。cnt は英語圏でも普通に使われる変数名のようで、ass や anal ほどの忌避感はないようである。 最悪な変数名は anal_check や anal_insert である。from anal import * も芸術点が高い[1]。 叩いた回数の累積などを cumshot(「射精」のスラング)にするのも割と最悪みがあるようだが、日人にはあまり伝わらないという意味でそこまででもない。 以下、改善案。 変数名 改善案 理由

    その変数名だけはやめろ:頼むから analysis を anal と略さないでください
    fumikony
    fumikony 2024/11/09
  • 5分で覚えるトランザクション分離レベル

    これはなに ども、レバテック開発部のもりたです。 今回はトランザクション分離レベルについてまとめました。トランザクション分離レベルって基情報技術者試験とかで学ぶものの、座学だけだとあんまりピンとこずに忘れちゃいますよね。もりたも長らく曖昧な状態で生きていたのですが、よい理解の仕方があったので今回はその解説をします。 トランザクション分離レベルを構成するふたつの変数 トランザクション分離レベルとは まず初めに、概要を掴むところからいきましょう。 トランザクション分離レベルとは、あるトランザクションのデータベースに加えた変更が、他のトランザクションにどの程度影響を与えるか? というもの(分離性、独立性)を一定基準でレベルに分けてまとめたものです。 どの程度影響を受けるか? については三つの影響が定義され、その影響度合いに応じて分離レベルが4つ存在します。これは大体こんな図で解説されます。 よ

    5分で覚えるトランザクション分離レベル
  • 安全に倒し切るリリースをするために:15年来のレガシーシステムのフルリプレイス挑戦記

    はじめに こんにちは!あっという間に秋が終わり、クリスマスソングが流れる季節がきましたね。 今回は、どうやら多くの人が苦しんでいると聞くレガシーシステムと向き合う話です。 弊チームでは先日、15年来のレガシーシステムを、バグ0でリプレイス&新機能の追加リリースを実施することに成功しました!既存機能の改修ではなく、既存を大きく作り替えつつI/Oも変えるというものだったので、新しい検証方法やリリース手法を組み合わせてリスクを最小限に抑える方法をとりました。 今回は、その予期せぬトラブルを未然に防ぐことができた「安全に倒し切ったリリース」についてお話します。他のプロダクトでも応用可能な方法なので、システム刷新を検討している方の参考になれば幸いです! なぜ安全に倒し切りたいか 私たちが今回触ったのは、前述の通り15年前から存在する、プロダクトの中でも最もレガシーに類される場所です。以前からパフォー

    安全に倒し切るリリースをするために:15年来のレガシーシステムのフルリプレイス挑戦記
  • 金が掛からないRailsの本番環境を求めて、

    そして私は家を飛び出した。 旅路の果てで、以下の構成に辿り着いた。 データベース: TiDB Cloud ストレージ: Cloudflare R2 Railsの実行環境: Fly.io ~ 20xx年某月某日 ~ 私はRuby on Railsを使ってWebアプリを作ろうとしていた。 そして同時にこう思っていた。 「お金かけたくない🥺」 当たり前だ。 なにせ私はこの荒れ果てた日の片隅で、ひっそりと呼吸し、そして下界に転がる料を貪る、一匹のしがなく卑しい動物だ。 いや、虫だ。 PR TIMESで「大規模な資金調達したぜ!」なんてPRできるようなニュースは無いし、タクシーの後部座席のディスプレイで上級国民にゴマをするサービスもない。 だから「できるだけお金を掛けない構成にせねば」と最初に考えた。 そんなことを考えながら、我が家のくたびれたドアノブを回した。 何に金が掛かるのか 以下の要素

    金が掛からないRailsの本番環境を求めて、
    fumikony
    fumikony 2024/11/05
  • 外部API連携のスタンスや技術面の考慮事項をまとめてみた

    はじめに 株式会社tacomsでCTOやってる井上です! tacomsは複数デリバリーサービスを1台のタブレットにまとめたり、様々なPOSレジ会社と連携してオペレーションをシームレスにする「Camel」というプロダクトを提供している会社でして、プロダクトの属性上めちゃくちゃ連携している会社数が多いのが特徴です。(様々な属性の連携パートナーを合わせるとなんとざっくり30以上!!!) また、tacomsではPublicAPIも作っているため、連携先のAPIに合わせて開発するだけでなく、連携先に使ってもらう汎用APIの開発にも取り組んでいます。 外部APIを使う側、作る側の双方を開発してきた経験から、連携開発に取り組む上でのスタンスや考慮事項をまとめてみました。少しでも皆さんのお役に立てると幸いです! 外部API連携の定義 おおよそ一般的な認識だと思いますが、外部APIを 「連携先の会社が開発し

    外部API連携のスタンスや技術面の考慮事項をまとめてみた
    fumikony
    fumikony 2024/11/05
  • 2つのJSONの差分を動的に表示する。シンタックスハイライトもする。powered by shiki

    2つのJSON文字列の差分をシンタックスハイライト付きで表示したいケースがありました。 Zennでも同じ差分かつシンタックスハイライトができますね。下のようなコードブロックがそうです。 Zennでは行頭に+や-をつけることで差分としてハイライトされるようになっています。 このようなシンタックスハイライトかつ差分ハイライトを、2つのJSON文字列の差分に対して行いたいと思いました。つまり、差分を表示したい箇所に明示的かつ静的にマークしていくのではなく、2つのテキストから動的に差分を計算して差分ハイライトを表示してくれる機能です。 この記事ではその方法を紹介します。 なお、僕がJSONの差分を表示したかったのでJSONで例を出しますが、好きな言語で、なんならプレーンテキストでも応用可能です。好きなだけdiff表示してください。 先出し結論 jsdiffでJSONの差分トークンを取得し、shik

    2つのJSONの差分を動的に表示する。シンタックスハイライトもする。powered by shiki