octwebのブックマーク (1,325)

  • 履歴データテーブルとの向き合い方_PHPerKaigi2024

    PHPerKaigi2024 の登壇資料です。 履歴データテーブルとの向き合い方 https://fortee.jp/phperkaigi-2024/proposal/47cf9f17-825a-4021-bf33-86e4a62bc222

    履歴データテーブルとの向き合い方_PHPerKaigi2024
    octweb
    octweb 2024/03/09
  • アプリケーションエンジニアこそ「監視」だよね!と私が考える訳 #phpkansai

    PHPカンファレンス関西2024での発表資料です https://fortee.jp/phpcon-kansai2024/proposal/42712995-5f3e-4c68-a951-39584eac95a1

    アプリケーションエンジニアこそ「監視」だよね!と私が考える訳 #phpkansai
    octweb
    octweb 2024/02/12
  • "クラウドアプリケーション 10の設計原則" をもっと楽しむ

    ※リンクを効かせたい場合はダウンロードしてください

    "クラウドアプリケーション 10の設計原則" をもっと楽しむ
    octweb
    octweb 2024/01/21
  • ベテランのバグ調査の秘訣、こっそり教えちゃいます。

    PHPカンファレンス北海道2024 14:35〜のトークセッションのスライドです。

    ベテランのバグ調査の秘訣、こっそり教えちゃいます。
    octweb
    octweb 2024/01/14
  • DynamoDBでできないこと

    この記事について 記事は、筆者が普段AWSの各種サービスを使って感じた感想・気づきをもとに、クラウドアーキの設計やサービスのより良い使い方Tipsを考察するシリーズです。 第二弾も第一弾に引き続きDynamoDBについてです。 DynamoDBはkey-value型のNoSQLであり、従来よく使われていたRDBとは異なるDB特性・クエリ特性を持っています。 そのためRDBを設計するときと同じようなノリでスキーマ設計・テーブル設計を行うと、後から「この操作をやらせるならDynamoDBじゃないほうが良かったんじゃないか?」ということが発覚しがちです。 記事では筆者が遭遇した「DynamoDBでやらせてみたら苦労した・できなくて設計変更を強いられた」というユースケースをまとめることで、DynamoDBのクエリ特性や適性を考察することを目指します。 使用する環境・バージョン 2024/1/1

    DynamoDBでできないこと
    octweb
    octweb 2024/01/02
  • Firebase Authから内製認証基盤に無停止移行して年間1000万円以上削減した

    症状検索エンジン「ユビー」 では、ローンチ当初から Firebase Auth (GCP Identity Platform) を使っていましたが、OIDCに準拠した内製の認証認可基盤に移行しました。 認証認可基盤そのものは m_mizutani と nerocrux と toshi0607(退職済) が作ってくれたため、僕は移行のみを担当しました。 結果として、強制ログアウトなし・無停止でビジネス影響を出さずに、年間1000万円以上のコスト削減に成功しました[1]。その移行プロセスについて紹介します。認証認可基盤そのものの紹介はあまりしません。 移行した理由 大量の匿名アカウント ユビーでは、アクセスした全ユーザーに対して自動的に匿名アカウントを発行しています。これにより、ユーザーがアカウント登録しているかどうかに関わらず、同じID体系で透過的に履歴情報等を扱うことができます。アカウント

    Firebase Authから内製認証基盤に無停止移行して年間1000万円以上削減した
    octweb
    octweb 2023/12/29
  • MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita

    この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの

    MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita
    octweb
    octweb 2023/12/03
  • スマートフォンアプリのA/Bテスト実装例 - エムスリーテックブログ

    これは エムスリー Advent Calendar 2023 の3日目の記事です。 前日は三浦さん(@yuba)による「9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか」でした。 こんにちは、エムスリーエンジニアリンググループ・マルチデバイスチームの藤原です。 マルチデバイスチームでは複数のスマートフォンアプリを開発しており、新機能の追加やレイアウト変更をする際はA/Bテストをすることもしばしばです。 今回は弊チームで採用しているA/Bテストの実装方法を2通り紹介します。 スマートフォンアプリのA/Bテスト Remote Configを用いた実装例 GraphQLを用いた実装例 GraphQLで実装してみてちょっとした感動があった We are hiring!! スマートフォンアプリのA/Bテスト A/Bテストとは、特定の要素を変更し

    スマートフォンアプリのA/Bテスト実装例 - エムスリーテックブログ
    octweb
    octweb 2023/12/03
  • 違法スカウト集団、アプリを独自開発 対警察に「ウイルス3カ条」:朝日新聞デジタル

    女性を風俗などに違法にスカウトする国内最大規模のグループ幹部らが逮捕された事件で、グループが独自にアプリを開発し、捜査への対策を取っていたことが捜査関係者への取材でわかった。警察を「ウイルス」と呼んで敵視。約1500人のメンバーの管理もアプリで行っていた。 警視庁の捜査関係者によると、違法スカウトグループ「ナチュラル」は数千万円をかけ、独自のアプリを開発した。メンバーはアプリを米アップル社製のiPhone(アイフォーン)上で使っていた。 アプリは、暗証番号を入力して立ち上げると「ウイルス3か条」と書かれた画面が表示される。警察に対し、アプリの暗証番号は言わない▽契約する店の名前は言わない▽逮捕されても「フリーのスカウト」だと言う――の三つだった。 アプリ内では「ウイルス対策」として、歓楽街を巡回する私服警察官の顔を投稿し、メンバー間で共有していた。 メンバーの出欠報告や、メンバー同士の文字

    違法スカウト集団、アプリを独自開発 対警察に「ウイルス3カ条」:朝日新聞デジタル
    octweb
    octweb 2023/11/25
  • AWSでの法令に則ったログ設計及び実装/分析 - Adwaysエンジニアブログ

    エージェンシー事業でリードアプリケーションエンジニアを行なっている大窄 直樹 (おおさこ)です. AWSのログ, サーバーのログってたくさん種類があって難しいですよね... 同じようなログがたくさんあるので, 何を取れば良いのかとか どのくらいの期間保持すれば良いのかとか またその後の, ログの実装や, 分析方法する方法も難しいですよね... 今回AWSに構築した商用アプリケーションのログを整備する機会があったので, このことについて書こうかなと思います. 概要 題に入る前の準備 今回ログ実装するアーキテクチャ ログに関する法令 ログの取得箇所 設計 保管するログの決定 インフラのログ OSのログ アプリケーションのログ ログの保管 保管場所について 保管期間について バケット構造 アプリケーション, OSのログの転送 実装 アプリケーション, OSのログをfluentbitを用いてS3

    AWSでの法令に則ったログ設計及び実装/分析 - Adwaysエンジニアブログ
    octweb
    octweb 2023/10/20
  • 話を聴く技術 / listening skills

    2023/10/12 【ハイブリッド開催】個人の成長を促すEMのコミュニケーション術 https://timeedev.connpass.com/event/296884/ 話を聴く技術 吉永 聰志 EM

    話を聴く技術 / listening skills
    octweb
    octweb 2023/10/15
  • GitHubコマテク集 - OpenWork Tech Blog

    インフラチームの西川です。 当社ではGitHubを利用しています。いろいろ便利な機能があるのですが社内でコマテクを募集してみたところ意外と知らないものがあったので共有してみます。 行動の見える化 特定コミットのリンク取得 通知 行動規範 ガイドライン .github リポジトリ テンプレートリポジトリ タグをたくさんプッシュさせない ドラフトプルリクエスト チケットの自動リンク化 ベースブランチの更新を取り込む まだレビューが終わってないプルリクエストの一覧化 レビュアーの自動割り当て コードの所有者 ファイル単位でレビュー済みをチェックする レビュー中のファイルを全部閉じる 具体的な修正を提案する レビューコメントをラベル化 デプロイ管理 リリースノートを自動作成 行動の見える化 以下の設定をすることで、GitHub上の行動を見える化することができます。 docs.github.com

    GitHubコマテク集 - OpenWork Tech Blog
    octweb
    octweb 2023/10/15
  • PostgreSQLとMySQLのメジャーバージョンアップのためのチートシート作った - そーだいなるらくがき帳

    中国地方DB勉強会 in 岡山の登壇資料です。 そのうちここで登壇動画が公開されることでしょう。 肝心なチートシートは以下のとおり。 PostgreSQL gist.github.com MySQL gist.github.com チートシートだけじゃわからない!困ってる! Have Fun Techがバージョンアップのサポートしますのでお気軽にご相談ください。 have-fun.tech まとめ やっぱ中国地方DB勉強会は最高だぜ!

    PostgreSQLとMySQLのメジャーバージョンアップのためのチートシート作った - そーだいなるらくがき帳
    octweb
    octweb 2023/10/08
  • 【AWS】大規模なバッチ処理を支える技術選定

    ここから、表で挙げた内容をそれぞれ解説していきます。 構築難度に関しては、関数を実装するだけで済むLambdaが最も簡単で、バッチ専用に特化されたサービスであるBatchに関しては比較的バッチ構築はしやすい印象ですが、ECSに関してはバッチに特化していないため、バッチ処理を行うようにカスタマイズする必要があります。 タイムアウト制約に関して留意すべきは、Lambdaの実行時間は15分までなので、それ以上を超える処理時間のバッチは実装できないことです。 起動•実行上のオーバーヘッドに関しては、Lambdaにはコールドスタートがあるため起動時にオーバーヘッドを考える必要があり、Batchではジョブをキューに送信して、最適化のために、ある程度のジョブがキューイングしてから実行しようするので、即時性を求める処理には不向きです。 既存バッチを移行したいケースがあると思いますが、Lambdaで動かせる

    【AWS】大規模なバッチ処理を支える技術選定
    octweb
    octweb 2023/09/23
  • Terraformを使って学ぶーAWSにインフラを構築するIaCの基本と、SREが実務で役立つ機能とエコシステムを徹底解説|ハイクラス転職・求人情報サイト AMBI(アンビ)

    ハイクラス求人TOPIT記事一覧Terraformを使って学ぶーAWSにインフラを構築するIaCの基と、SREが実務で役立つ機能とエコシステムを徹底解説 Terraformを使って学ぶーAWSにインフラを構築するIaCの基と、SREが実務で役立つ機能とエコシステムを徹底解説 Terraformは、パブリッククラウドのインフラ構築と自動化のツールとして、IaCのデファクトスタンダードとなっています。この記事では、AWSAmazon Web Services)を活用するハンズオンを通してTerraformの動作を理解し、実務にもとづいて役立つ機能や便利なエコシステム、さらにSRE視点の事例を紹介します。アソビュー株式会社でSREユニットリーダーを務める鈴木剛志さんを中心に6名のメンバーによる共同執筆です。 アイキャッチ画像 アソビューでは、インフラストラクチャーの変更管理にTerrafo

    Terraformを使って学ぶーAWSにインフラを構築するIaCの基本と、SREが実務で役立つ機能とエコシステムを徹底解説|ハイクラス転職・求人情報サイト AMBI(アンビ)
    octweb
    octweb 2023/09/22
  • モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith

    モジュラモノリスにおいてトランザクションはどうあるべきなのかについて整理している資料が少ない気付きがあったので「簡易的に」整理しました

    モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith
    octweb
    octweb 2023/09/18
  • 【15分で確認】AWSでクラウド設計する時に覚えておきたい設計原則・アーキテクチャ3選 - Qiita

    何となくAWSでクラウド設計をしていませんか AWSを利用する際、多くの方が「設計」というプロセスを簡単に飛ばしてしまう傾向にあります。しかし、クラウド環境の効果的な活用には、適切なアーキテクチャ設計が不可欠です。世の中には、システム設計をする上で指針となる設計原則がいくつかあります。記事では、以下の3つをピックアップをしてご紹介します。 記事で取り扱う内容 ■ マイクロサービスアーキテクチャ ■ AWS Well-Architected Framework ■ The Twelve-Factor App 1. マイクロサービスアーキテクチャ マイクロサービスは、独立した小さなサービス群でソフトウェアを構築するアーキテクチャです。これにより、迅速なイノベーションと新機能の迅速な展開が可能となります。一方、モノリシックアーキテクチャは、全てが一つのサービスとして結合され、変更や障害が全体

    【15分で確認】AWSでクラウド設計する時に覚えておきたい設計原則・アーキテクチャ3選 - Qiita
    octweb
    octweb 2023/09/17
  • サブスクリプション課金システム開発ケーススタディ - inSmartBank

    世はまさに大サブスクリプション時代。この潮流の中で弊社スマートバンクもまた、去る2023年7月12日にB/43プラスというサブスクリプションサービスをリリースしました。 サブスクリプションといえばユーザーに提供されるコンテンツや機能といった直接的な価値に焦点が当たりがちですが、その土台にはサブスクリプションビジネスを成立させるための課金システムがあります。記事では筆者が行った課金関連の開発を振り返ってみて重要だったポイントや工夫点を伝えてみたいと思います。 すでに世に多くのサブスクリプションサービスがある中で、課金システムの実装はコモディティ化した単純な作業に思えるかもしれません。しかしながら自社サービスにてゼロから実現するとなると、想像よりも多くの思考と意思決定が必要とされる、エンジニアリング観点ではとても奥深い題材といえます。いち開発プロジェクトのケーススタディ、あるいはいちプログラ

    サブスクリプション課金システム開発ケーススタディ - inSmartBank
    octweb
    octweb 2023/09/16
  • テストケースの名前には条件と結果を含めた方が良い - 感情を込める

    という考えにたどり着いたので、考えのスナップショットをとっておく。 Go言語における、テスト関数名とサブテストのname引数の値を「テストケースの名前」・「テスト名」と呼ぶことにしている。 (*testing.T).Run(name string, f func(t *testing.T)) bool テスト名に近いものとして、(*testing.T).Errorや(*testing.T).Logの引数がある。これらはテスト実行時の出力に含まれるが、テストケースを分かつものではない。あくまで、特定のテストケース内の情報を増やすものだ。対するテスト名は、(通常は)テストケースを分割できる最小単位である。 テストケースがテスト名の単位で存在するということは、テスト名はそのテストケースを十分に表現できていたほうがよいということだ。さもなくば、検証・変更しようとする仕様に対応するテストケースや、実

    テストケースの名前には条件と結果を含めた方が良い - 感情を込める
    octweb
    octweb 2023/09/11
  • なぜ Rails の前段に Nginx を置くのか - Qiita

    追記(2023.09.13) X にて、この記事が引用されて多くの議論が投稿されました。 それらの多くは以下の通り「ALB等の利用できる環境の現代であればもうNginxコンテナは不要」という内容が多数です。 その上で、文に入って頂ければと思います。一部「いいね」が多いポストを貼り付けさせていただきます。 文にショートカットしたい場合は、ここをクリック ここから文 以前、チームで以下のような会話が生まれました。 「コンテナに nginx 立てずに、直で rails Appサーバに ALB から流せばいいじゃん?」 みたいな話。その際に理由を即座にレスできなかったので、調査しました。 puma や Unicorn はあくまでAppサーバなのでユーザ直アクセス用途として設計されていない バッファリング処理が弱い バッファリング処理(処理速度や処理にかかる時間の違いを調整すること) ngin

    なぜ Rails の前段に Nginx を置くのか - Qiita
    octweb
    octweb 2023/09/11