並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 56件

新着順 人気順

redisの検索結果1 - 40 件 / 56件

  • 技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL はじめに 久々に記事を書いたのでどうぞお手柔らかに... 私が過去2年間で行った技術選定の成功と失敗を振り返り、その学びを共有したいと思います。 文才無いので淡々と箇条書きでいきます Twitterエンジニア垢作りました。エンジニアのお友達がいません。 @uncode_jp 注意 意見を押し付けるものではありません。ただ建設的な議論は大事だと思う。 自分の意見は明確に、歯切れのよい表現を意識している。人それぞれだよねみたいな感じに逃げたくない。技術選定に結論はある(過激)。 ただし技術選定にはコンテキストがあり、例えばプロダクトのフェーズや組織の事情によって当然結論は変わる可能性がある。 OSSの開発者さん達は偉大ですごい。ありがたく使わせてもらってます。開発者を攻撃する意図はあり

      技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL
    • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

      情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

        Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
      • オープンソースとは違う新しい取り組み「Fair Source」登場。ビジネスの持続性とソースコード公開の両立を目指す

        企業がソフトウェアビジネスを持続的に行えることと、ソフトウェアのソースコードを公開することの両立を実現するための新しいライセンスへの取り組みとして「Fair Source」が登場しました。 意訳すると、ソースコードが公開され、開発者のビジネスを守るための最小限の制約がありつつもコードの利用や変更、再配布が可能で、計画的に一定期間後にオープンソースとなるもの、と言えるでしょうか。 具体的なライセンスとしては「Functional Source License (FSL)」が推奨されているのに加えて、「Fair Core License」「Business Source License (BSL)」が該当するとされています。 Fair Sourceの目的とは 公式Webサイトでは、Fair Sourceの目的が次のように説明されています。 The purpose of Fair Source

          オープンソースとは違う新しい取り組み「Fair Source」登場。ビジネスの持続性とソースコード公開の両立を目指す
        • すぐに役に立つものはすぐに陳腐化してしまうから方法ではなく設計の本を読む - API Design Patterns の読書感想文 - じゃあ、おうちで学べる

          あなたがさっきまで読んでいた技術的に役立つ記事は、10年後も使えるでしょうか?ほとんどの場合でいいえ はじめに 短期的に効果的な手法や知識は、ソフトウェア開発の分野において、急速に価値を失う傾向があります。この現象は、私たちが何を重点的に学ぶべきかを示唆しています。最も重要なのは、第一に基本的な原理・原則、そして第二に方法論です。特定の状況にのみ適用可能な知識や即座に結果を出すテクニックは、長期的には有用性を失う可能性が高いです。これは、技術や手法が時間とともに進化し、変化していくためです。 learning.oreilly.com 「API Design Patterns」は、このような考え方を体現した書籍です。しかも480 ページもあります。本書は単なる手法の列挙ではなく、Web APIデザインの根幹をなす原則と哲学を探求しています。著者のJJ Geewax氏は、APIを「コンピュータ

            すぐに役に立つものはすぐに陳腐化してしまうから方法ではなく設計の本を読む - API Design Patterns の読書感想文 - じゃあ、おうちで学べる
          • Cloudflare の利用を徐々に減らして行くメモ

            概要 Cloudflare の利用を徐々に減らし、Akamai Connected Cloud へ移行しているのでそれを記録していくことにする。 移行理由 ただのアンマッチで、自分のサービス選定ミス。 自社の商用サービスが期待するレベルのサポートを得るには、Cloudflare エンタープライズプランが必須な事をわかっておらず、費用面でアンマッチになった。 サポートが必要になった状況 WebSockets · Cloudflare Network settings docs 商用環境で WebSocket を利用する場合はサポート契約が必要 サポートに問い合わせ、年 2400 ドルのビジネスプランを契約を推奨されたので契約 Cloudflare LB で WebSocket が突然切断される問題 問題の報告から 6 ヶ月以上経過しても、連絡も無く問題も継続して発生 8 ヶ月目にやっと返信が

              Cloudflare の利用を徐々に減らして行くメモ
            • 機械学習基盤のアーキテクチャ特集 〜8社の設計意図と今後の展望〜 - Findy Tools

              公開日 2024/07/30更新日 2024/07/31機械学習基盤のアーキテクチャ特集 〜8社の設計意図と今後の展望〜 毎回ご好評頂いているアーキテクチャ特集の今回のテーマは、機械学習です。 機械学習に特に力を入れている日本のIT企業8社にご協力頂き、それぞれの技術的な挑戦と今後の展望についてご寄稿頂きました。各社のアプローチと最新の技術動向を通じて、次世代のイノベーションを紐解いていきましょう。 ※ご紹介は企業名のアルファベット順となっております 株式会社ABEJA ABEJA Insight for Retailについて ABEJA Insight for Retailは、お客様の店舗訪問から購入までの行動をデータから分析する、ABEJAが提供するDXツールです。店舗にIoTデバイス(カメラや来客カウンター等)を設置し、取得データを顧客企業に提供することで小売店舗の運営を支援していま

                機械学習基盤のアーキテクチャ特集 〜8社の設計意図と今後の展望〜 - Findy Tools
              • ジャンプTOON Next.js App Router の活用〜得られた恩恵と課題〜 | CyberAgent Developers Blog

                目次 はじめに Colocation を意識した設計方針 Parallel Routes と Intercepting Routes を用いた設計パターン サーバー側に処理を寄せたことによる恩恵と課題 Next.js が抱える課題 おわりに 参考文献 はじめに ジャンプTOON のWeb版(以降、ジャンプTOON Web)の開発を担当している浅原昌大(@assa1605)です。 5 月にサービスを開始した「ジャンプTOON」は、オリジナル縦読みマンガ作品や人気作品のタテカラー版を連載する、ジャンプグループ発の新サービスです。 ジャンプTOON のフロントエンドには、Next.js を採用し開発をしています。 本記事では、Next.js の最新機能や設計パターン、Next.js を採用した恩恵と現在の課題について紹介します。 Colocation を意識した設計方針 Parallel Rou

                  ジャンプTOON Next.js App Router の活用〜得られた恩恵と課題〜 | CyberAgent Developers Blog
                • Rails の非同期処理を Sidekiq から Cloud Tasks にリプレイスして Cloud Run のコストが6分の1になった話

                  成果 最終的に、Cloud Run のコストが$6/day前後から$1/day前後に! ちなみに、Cloud Tasks は1ヶ月あたり最初の100万回のオペレーションまで無料なので余裕で収まっています。 モチベーション 今回リプレイスを検討したシステムは軽量な非同期処理が大半で、もともと絶対に Sidekiq でないと困るということが少なかった Sidekiq は Redis をポーリングしてジョブを取得する方式なので、Cloud Run で実行するには min-instances を1以上にしなければいけない 何もジョブがない状態が続いてインスタンスが0になると起こしてくれる人がいないので... 絶対に Sidekiq でないと困らないなら Cloud Tasksにして、非同期処理がない時は寝ていても良いようにしたい => コストダウン! Pub/Sub との比較検討もしましたが今回は

                    Rails の非同期処理を Sidekiq から Cloud Tasks にリプレイスして Cloud Run のコストが6分の1になった話
                  • TiDBには面白い仕様/機能が色々あるという話 - pospomeのプログラミング日記

                    TiDBを触ってみて個人的に面白いと思ったものを雑にまとめます。 TiDBのことはある程度知っている人向けの話です。 HTAP(TiFlash) リソース制御機能 Stale Read Follower Read プッシュダウン レコードTTL コメント構文 sync-diff-inspector ローカルPCでTiDBを起動する まとめ HTAP(TiFlash) TiDBといえば、HTAPが有名だと思う。 https://docs.pingcap.com/ja/tidb/stable/explore-htap https://docs.pingcap.com/ja/tidbcloud/tiflash-overview TiDBが苦手とするOLAPを高速に処理するために、 TiFlashという列指向NoSQLを外付けし、 OLAP系のクエリをそこに対して実行するという、 なんとも力技感が

                      TiDBには面白い仕様/機能が色々あるという話 - pospomeのプログラミング日記
                    • 【CTO協会研修記録】 未経験エンジニアがISUCONで圧倒優勝するまでの話 - PLEX Product Team Blog

                      はじめに こんにちは、2024年4月に株式会社プレックスに新卒入社した佐藤祐飛です。現在は建設業界向けSaaSプロダクト「サクミル」の開発に携わっています。 2024年7月31日に、日本CTO協会主催の新卒合同研修でISUCON研修が開催され、50万点を超えるスコアで優勝することができました。 CTO協会様主催のISUCON研修優勝しました🏆 実はISUCON研修に勝つために2ヶ月間準備していたのですが、その成果が出てよかったです🔥 後日、「ISUCON 研修をガチった話」と題してテックブログを投稿する予定なのでそちらもチェックしていただけると嬉しいです‼️#ctoawakate https://t.co/fUr2hf8rkr pic.twitter.com/7FxYbmiIBu— yuhi (@yuhi_junior) 2024年7月31日 ISUCONは若手エンジニアにとってハード

                        【CTO協会研修記録】 未経験エンジニアがISUCONで圧倒優勝するまでの話 - PLEX Product Team Blog
                      • Trayce

                        How does it work? The TrayceAgent container runs along side your existing containers. The agent uses eBPF probes to intercept network requests and send them back to the GUI to be displayed. Protocols Supported: HTTP HTTPS (for Go and OpenSSL-based languages like Python, Ruby etc.) Coming soon: Websockets GRPC MySQL & Postgres MongoDB Redis Kafka Who is it for? Trayce is intended for anyone wanting

                        • Ruby コードレシピ集

                          2024年8月26日紙版発売 山本浩平,下重博資,板倉悠太 著 A5判/672ページ 定価3,740円(本体3,400円+税10%) ISBN 978-4-297-14403-6 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Amazon Kindle honto この本の概要 最新Ruby 3.3に対応。Rubyでやりたいことがすぐにわかる,逆引きレシピ集の決定版。 Rubyの基礎知識や実践ですぐに役立つテクニックを,目的別にまとめた逆引きレシピ集です。文法/データ操作/正規表現/文字列操作/テスト/エラー処理といったRubyの基本から,RubyGems/データベース操作/データ処理といった実践的な開発に役立つテクニックまで,やりたいことをすぐに逆引きできるように整理しました。繰り返し参照しやすい形式で構文やコードをわかりやすく掲載。

                            Ruby コードレシピ集
                          • The Future of WebAssembly Through the Eyes of a Veteran Kubernetes Engineer | HackerNoon

                            Too Long; Didn't ReadTaylor Thomas is the Head of Engineering at Cosmonic. He was a core maintainer of Helm for 4 years, and co-creator of Bindle and Krustlet. He is now a contributor to, and maintainer of, CNCF wasmCloud and is helping to bring the Cosmonic distributed application development platform to market. At the Pasadena leg of Kubernetes Community Days (co-located with SCaLE 20x), I had t

                              The Future of WebAssembly Through the Eyes of a Veteran Kubernetes Engineer | HackerNoon
                            • Findyの名物企画のコントリビューション・オブ・ザ・イヤー2024中間発表の裏側を大公開! - Findy Tech Blog

                              Findyでエンジニアをしている栁沢(@nipe0324)です。 今回は、Findyの名物企画である「コントリビューション・オブ・ザ・イヤー2024中間発表」の裏側を公開します。裏側を知り、キャンペーンをより楽しんでもらえたら嬉しいです。 キャンペーン期間中にXでシェア後にフォームから応募することで「Anker充電器(Findyオリジナルデザイン入り)」が抽選で当たるかも!? ぜひお申し込みください。 👇👇👇 コントリビューション・オブ・ザ・イヤー2024中間発表を試してみる コントリビューション・オブ・ザ・イヤーとは コントリビューション・オブ・ザ・イヤーの裏側 裏側①:コントリビューション・オブ・ザ・イヤーのランキング表示 裏側②:コントリビューション・オブ・ザ・イヤーのOGP表示 コントリビューション・オブ・ザ・イヤーを楽しんでください コントリビューション・オブ・ザ・イヤーと

                                Findyの名物企画のコントリビューション・オブ・ザ・イヤー2024中間発表の裏側を大公開! - Findy Tech Blog
                              • Amazon MemoryDBのベクトル検索機能が正式リリース。数百万のベクトル埋め込みを保存し、数ミリ秒でベクトル検索を実現

                                Amazon MemoryDBのベクトル検索機能が正式リリース。数百万のベクトル埋め込みを保存し、数ミリ秒でベクトル検索を実現 機械学習や生成AIとの組み合わせにおいて、テキストや画像などを「エンベディング」(埋め込み)と呼ばれるベクトルで表現した上で、そのデータを保存し、取得、検索するなどのベクトルデータベースの機能は、いまさまざまなデータベースへの実装が進んでいます。 今回、ベクトル検索機能が正式版となったAmazon MemoryDBは、オープンソースとして実装されたインメモリのキーバリューストアであるRedis互換のインメモリデータベースです。 その名前の通りデータ操作はメモリ上で行われるため、超高速にデータの保存や読み出しが可能である点が最大の特徴です。数ミリ秒でのクエリと更新を実現します。 この高速性を活かして、大規模言語モデルにおけるRAG(Retrieval-Augment

                                  Amazon MemoryDBのベクトル検索機能が正式リリース。数百万のベクトル埋め込みを保存し、数ミリ秒でベクトル検索を実現
                                • Cursor Directory

                                  TypeScript5Python5Next.js3React3Vite3Meta-Prompt3Astro2FastAPI2Expo2React Native2Viem v21Wagmi v21Standard.js1SwiftUI1Swift1Laravel1PHP1Ruby1Rails1Microservices1Serverless1Flask1Django1Web Development1C#1Unity1Game Development1Vue.js1Node.js1Critique1Reflection1Trajectory Analysis1WebShop1Acting1Julia1DataScience1Data Analyst1Jupyter1 You are an expert in TypeScript, Node.js, Next.js App Router, R

                                    Cursor Directory
                                  • Rails 7.2: Better production defaults, Dev containers, new guides design, and more!

                                    We are happy to announce the release of Rails 7.2! There has been close to 2,500 commits made by over 400 contributors since Rails 7.1, so this release is packed with new features and improvements. Better production defaults Rails 7.2 comes with better productions defaults to help you build more efficient applications. Starting with YJIT. YJIT is Ruby’s JIT compiler that is available in CRuby sinc

                                      Rails 7.2: Better production defaults, Dev containers, new guides design, and more!
                                    • Building A Generative AI Platform

                                      After studying how companies deploy generative AI applications, I noticed many similarities in their platforms. This post outlines the common components of a generative AI platform, what they do, and how they are implemented. I try my best to keep the architecture general, but certain applications might deviate. This is what the overall architecture looks like. This is a pretty complex system. Thi

                                        Building A Generative AI Platform
                                      • サーバー開発で機能要件以外に考えること - honeplusのメモ帳

                                        サーバーを開発するときって、何が出来たら完成だと思っています?APIが想定通りに動いたら?それはあくまで機能要件を満たしただけ。 仕事であれば、その他に、満たさなければいけないいろんな非機能要件があるわけです。 が、これを知らない人が「出来ました」って納品して、知らない人が検収OKにしてしまって、後で引き継いで大炎上みたいな事例が多々あるので、ちょっと自分がサーバー開発して納品するなら必要だと思っていることをまとめておく。 (非機能要件や技術要件の他に、最低限Gitは使っとけみたいな話やその他常識的な話も含む。) なお、自分の経験の都合上、ソシャゲのサーバー開発の話が発端だが、それ以外の一般的なサーバー開発で必要な話も含めて書いてるつもりなので、そんな感じで。 サーバー開発全般メジャーな言語やフレームワークを選定する開発者数が多いメジャーな言語やフレームワークを使用すること。…これ、何も条

                                        • Netbox のオンプレから Amazon ECS 移植を CDK で実現する - NTT Communications Engineers' Blog

                                          チームの管理情報を溜めていたオンプレ基盤で動く NetBox を Amazon Elastic Container Service へ AWS Cloud Development Kit を用いて移植しました。 今まで NetBox をオンプレで動かしていた際には以下のような運用の難しさがありました。 DB も Docker コンテナによって管理されており、冗長化もなかったため DB コンテナが落ちてしまうとサービス提供できなくなる可能性があった Docker Compose で動かしているので、サービスの作り直しを実施するとそれまでのログが削除される そもそも NetBox を動かしている場所で法定停電があり、定期的に NetBox のサービスがとまっていた NetBox を AWS へともっていくことでオンプレ運用時に発生していた手間を簡素化し、メンテナンス等も一部 AWS にマネージ

                                            Netbox のオンプレから Amazon ECS 移植を CDK で実現する - NTT Communications Engineers' Blog
                                          • gRPC(Connect)のServer Streamingを使ったリアルタイム処理のテストをrunnとBufを使って書いてみた

                                            最近業務でgRPCのServer Streamingを使ったリアルタイム処理をGoで書いているのですが複数のゴルーチンを起動した並行処理が絡んできたりと少しコードベースでテストを書くのが大変だなと感じており、前から気になっていたrunnを使ってE2Eテストを書いてみたためその備忘録です。 runnではgRPCランナーが実装されておりStreamingも全てサポートされているのでシナリオ自体は書けるのですがServer Streamingの裏側でRedisを購読しており、RedisにmessageをPublishしないと処理がブロックされてしまうのでgRPCランナー実行中に並行してRedisのPublishをしたかったのですが調べた限りrunnの機能だけでは実現できそうになかったため少し力技でテストを書きました。 もし、もっといい方法あるよという方がいましたらぜひコメントなど気軽にいただける

                                              gRPC(Connect)のServer Streamingを使ったリアルタイム処理のテストをrunnとBufを使って書いてみた
                                            • CloudFrontとS3を活用したキャッシュ戦略:APIパフォーマンス改善への実践的アプローチ

                                              概要 キャッシュ理解が曖昧な状態でキャッシュを活用した機能開発を行ったせいで、サーバーへの負荷を軽減することができずにパフォーマンスの悪い実装をしていました。 当たり前ですが、適切にキャッシュを利用しないと意図せずサーバーへ負荷を与え続けてしまいます。 そうならないためにも今回は、キャッシュの基本と私が行ったパフォーマンス改善の内容をご紹介します。 キャッシュとは アプリケーションに頻繁にアクセスされるデータを一時的に保存しておくものです。 ストレージに一時的に保存しておけば、データベースへのリクエストを減らしたり、計算処理をすることなくレスポンスできたりするので、負荷を削減しつつ高速にデータ処理を行えるようになります。 リアルタイムな情報や、頻繁に更新されるコンテンツには不向きなので、状況に合わせて使用するようにしましょう。 キャッシュの種類 CPUキャッシュ システムレベルのキャッシュ

                                                CloudFrontとS3を活用したキャッシュ戦略:APIパフォーマンス改善への実践的アプローチ
                                              • 8月17日(土) 第110回 ゆるハック in Tokyo 開催決定

                                                タグ EC-CUBE誕生日お誕生日RabbitMQatomPostfixGCPCybozu Office10ジカ熱就業規則法人化C#レプリケーションMVCゆるいハッキング大会基板修理Google Cloud SQLセキュリティ蟹、お年賀、パスタ美徳、マナーハイヒール、ルブタン、美しいRAIDWindows AzureH2OおりょりょんCS-QR30F負荷分散乾燥オートクチュール美肌AndroidウェディングVisual Studio 2017windows10NFSSSLAWS EBSRDPデング熱母の日ジェネリック家具、DFVNginxリカバリBINDVirtualBoxAWS EFSfluentdKibanaお土産予防接種求人躾アンチウィルスGitAnsibleConoHa VlanWindows Server無利子ジェネリック、コピー夏季休業雨、傘イベントWindows Server

                                                  8月17日(土) 第110回 ゆるハック in Tokyo 開催決定
                                                • Redisがマルチスレッド・クエリ・エンジンでベクトルセマンティック検索のパフォーマンスを向上

                                                  Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                    Redisがマルチスレッド・クエリ・エンジンでベクトルセマンティック検索のパフォーマンスを向上
                                                  • RailsのキャッシュストアにRedisを使う場合の動作確認方法

                                                    Railsの小ネタです。 Railsのキャッシュストアとして:redis_cache_storeを指定すると、Redisにキャッシュさせることができます。 config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] } これが正しく設定されているかどうかを確認する方法です。 キャッシュストアに何が使われているか調べる Rails consoleでRails.cacheをみると、キャッシュストアの設定が確認できます。

                                                      RailsのキャッシュストアにRedisを使う場合の動作確認方法
                                                    • Just use Postgres

                                                      This is one part actionable advice, one part question for the audience. Advice: When you are making a new application that requires persistent storage of data, like is the case for most web applications, your default choice should be Postgres. Why not sqlite? sqlite is a pretty good database, but its data is stored in a single file. This implies that whatever your application is, it is running on

                                                      • TiDB User Day 2024 に参加なぅ

                                                        今年も TiDB User Day に参加しています! とりあえずライブブログ頑張るw hashtag: #TiUD2024 全体さくっと PingCAPのTiDBは、高スケーラビリティとAI活用が評価され、成長中。 LinkedInは、TiDBのスケーリングとオペレーションで課題と改善点を発見。 Pinterestは、HBaseからTiDBに移行し、パフォーマンス向上と運用効率を実現。 レバテックは、リソース・管理効率向上とゼロダウンタイムを目指しTiDBに移行。 サイバーエージェントは、旧データ基盤からTiDBを含む新基盤へ移行し、運用負荷を軽減。 Voicyは、TiDB Cloud導入でコスト削減と運用効率を向上させた。 Orbは、ETL障害と遅延解消のため、CassandraとMySQLからTiDBに移行。 DMMは、クラウド化とGo書き直しを機にTiDB Cloudを採用し、運用

                                                          TiDB User Day 2024 に参加なぅ
                                                        • Stanby Tech Blog

                                                          2022-07-25 スタンバイが挑む技術領域と目指す世界について語る/CTO明石 信之 Technology Other (本記事は、執筆時2022年7月時点の情報です) 株式会社スタンバイは、日本最大級の求人検索エンジン「スタンバイ」の開発・運営を手掛けています。 “UPDATE WORKSTYLES 「はたらく」にもっと彩を”をミッションに掲げ、テクノロジーの力で世の中の「はたらく… #検索エンジン #CTO #エンジニア 2024-02-29 yamoryによる脆弱性検知の活用 Technology 株式会社スタンバイ QAグループに所属している岸です。本記事では、スタンバイの脆弱性検知の運用について紹介します。 スタンバイでは脆弱性検知のシステムとして2022年よりyamoryというツールを使っております。 参照URL:https://yamory.io/ yamoryにはい…

                                                            Stanby Tech Blog
                                                          • A Philosophy of Software Designを読み、複雑性について考えた - Qiita

                                                            認知負荷(cognitive load)が高い状態。知識はないものの、情報が必要となることに気づいているため、これから調査して情報を得ることができる。 無知の無知(unknown unknowns)。自分が知識を得ていないことに気づいてすらいないため、必要な情報を手に入れることができない。変更すべき箇所を変更できないなどの理由で、バグを招く可能性が高い。最悪。 どのようにシステム自体の複雑性を排除していくのか 複雑性は依存(dependency)と不明瞭さ(obvious)によって生じている。この2つは併存することも多く、依存性が不明瞭になると、ますます複雑になる。そのため、依存性と不明瞭さを消していく・最初から生まないようにすることが必要。よって、依存が少なく(ゼロにすることは不可能)、明瞭な、シンプルなモジュールを作らなくてはならない。 interfaceを狭くシンプルに、implem

                                                              A Philosophy of Software Designを読み、複雑性について考えた - Qiita
                                                            • データベースの選び方:ユースケースに適した

                                                              データベースは複数のユーザーが保存された情報を迅速、安全、効率的に管理、更新、編集することを可能にします。そのため、データベースは企業の会計記録の管理、IoTデバイスのネットワークからの膨大なデータの保存、企業の在庫システムの追跡、Webアプリケーションの構築など現実のさまざまなケースで役立ちます。 ここでは、適切なデータベースを選ぶためのポイントをご紹介します: データベースは、ビジネス情報の保存、維持、更新、編集、アクセスに不可欠です。 データベースには、SQLベースとNoSQLベースの2つの主要カテゴリーがあります。 Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDBは、いずれも一般的なビジネス・データベース・ソリューションです。 データの保存と編集に関するビジネスのユースケースを十分に理解することで、適切なデータベースオプション

                                                              • 10月からの業務委託案件募集中です - kenta-katsumata’s diary

                                                                自己紹介 エンジニアとしての経験は約25年になります。最初の10年ほどはSIer業界でWindows系や.NET系の開発を専門にしておりましたが、最近15年ほどはWeb業界の自社開発企業界隈でLinux系のバックエンド開発およびクラウドインフラ周りの設計/構築業務に携わっております。 ここ数年はクラウドのインフラエンジニアとしてサービスの新規開発フェーズやインフラのリプレイスフェーズに参画させていただくことが多いです。最近の業務経験に関しては下記のレジュメにまとめておりますのでご参照いただければと思います。 github.com エンジニアとしての抽象的な強みは下記になります。 幅広い知見と経験を活用して複数の打ち手を考案できること 様々な選択肢のメリットとデメリットを多面的に比較検討してその時点で最善と思われる解決策を提案できること その解決策をチームメンバーと協力して現実的な時間内でサ

                                                                  10月からの業務委託案件募集中です - kenta-katsumata’s diary
                                                                • AWSからGoogle Cloudへ移行する際にマイクロサービス化に取り組んだ話

                                                                  はじめに こんにちは。ミスミグループ本社 Gateway推進本部のshimozonoです。検索システムの開発を担当しています。 先日、弊社ECサイトの検索エンジンのバックエンドの一部(以下、ベクトル検索基盤と呼びます)を、AWSからGoogle Cloudへ移行しました。 この記事では、その移行において取り組んだマイクロサービス化についてご紹介します。 移行前の構成 移行前のベクトル検索基盤はAWS上で構築されており、以下のような構成でした。 システム構成図(移行前) API Gateway クライアントからのリクエストを受け付け、SageMakerへ振り分け。 SageMakerリアルタイム推論 検索エンジン。APサーバ兼DBとして機能している。 S3に格納された推論モデルや商品情報を加工したデータをメモリ上へ読み込む。 リクエストを受け付けると、推論モデルを使って推論処理を行い、結果を

                                                                    AWSからGoogle Cloudへ移行する際にマイクロサービス化に取り組んだ話
                                                                  • [Ruby on Rails] Sidekiq でキューに重みをつける方法

                                                                    はじめに 初めまして。電話自動応答サービスIVRyでエンジニアをやっている小瀬です。 IVRyではRailsを中心にバックエンドのコードを書いています。 開発中に溜まった知見などをzennブログの方に書いていこうと思っていますので、よろしくお願いします。 Sidekiqとは SidekiqはJobの並列実行を簡単に実現してくれるgemです。 Jobが並列数を超えていた場合もキューに詰めて処理してくれるのでかなり便利です。 やりたかったこと Job(Workerとも呼ぶが、この記事ではJobに統一)の種類が多くなり、ユーザー影響があり早く処理したい「優先度の高いJob」と、特に急ぎではないけど1日のどこかで実行できればいい「優先度の低いJob」が存在していました。 先に優先度の低いJobを大量にキューに詰めた場合、デフォルト設定のままSidekiqを使用すると、優先度の高いJobが優先度が低

                                                                      [Ruby on Rails] Sidekiq でキューに重みをつける方法
                                                                    • stunnelとLoad Balancer TLS終端サービスを使って暗号化通信を実施 - Qiita

                                                                      概要 stunnelとAWS Network Load Balancer(NLB)等のLoad Balancer TLS終端サービスを使って暗号化通信を行います 何がいいの? 既存のアプリケーションを修正することなくTLS暗号化が可能です。 方法1.AWS NLB TLS終端を使用 PC内のクライアントソフトは同じPC内のstunnelと通信します。 PC内のstunnelはNLBを経由して通信を転送します。 以下の例ではサーバーはRedisを使用しています。 NLB設定 AWSコンソールからEC2>>ロードバランサー>>ロードバランサーの作成を押下 ロードバランサーはNLBを選択 NLBを作成 ロードバランサー名 スキーム:インターネット向け IPアドレスタイプ:IPv4 ネットワークマッピング:既存VPCのパブリックサブネットを指定 セキュリティグループ:リスナーポートを許可するセキュ

                                                                        stunnelとLoad Balancer TLS終端サービスを使って暗号化通信を実施 - Qiita
                                                                      • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

                                                                        情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

                                                                          Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
                                                                        • ジャンプTOON Next.js App Router の活用〜得られた恩恵と課題〜 | CyberAgent Developers Blog

                                                                          目次 はじめに Colocation を意識した設計方針 Parallel Routes と Intercepting Routes を用いた設計パターン サーバー側に処理を寄せたことによる恩恵と課題 Next.js が抱える課題 おわりに 参考文献 はじめに ジャンプTOON のWeb版(以降、ジャンプTOON Web)の開発を担当している浅原昌大(@assa1605)です。 5 月にサービスを開始した「ジャンプTOON」は、オリジナル縦読みマンガ作品や人気作品のタテカラー版を連載する、ジャンプグループ発の新サービスです。 ジャンプTOON のフロントエンドには、Next.js を採用し開発をしています。 本記事では、Next.js の最新機能や設計パターン、Next.js を採用した恩恵と現在の課題について紹介します。 Colocation を意識した設計方針 Parallel Rou

                                                                            ジャンプTOON Next.js App Router の活用〜得られた恩恵と課題〜 | CyberAgent Developers Blog
                                                                          • 「Setting up a Redis Cluster for scalability and high availabilit」をAWS CLIでやってみる - Qiita

                                                                            # VPC名 VPC_NAME="handson-vpc" \ && echo ${VPC_NAME} # サブネット名 SUBNET_NAME_0="handson-pub-1a" \ && echo ${SUBNET_NAME_1} SUBNET_NAME_1="handson-pri-1a" \ && echo ${SUBNET_NAME_1} SUBNET_NAME_2="handson-pri-1c" \ && echo ${SUBNET_NAME_2} SUBNET_NAME_3="handson-pri-1d" \ && echo ${SUBNET_NAME_3} # VPC CIDR block VPC_CIDR_BLOCK="10.0.0.0/16" \ && echo ${VPC_CIDR_BLOCK} # サブネット CIDR block CIDR_BLOCK_0="

                                                                              「Setting up a Redis Cluster for scalability and high availabilit」をAWS CLIでやってみる - Qiita
                                                                            • ローカルで Dify を動かして遊べるようにする - 継続は力なり

                                                                              タダです. ずっと気になっていた Dify を触っていきたいと思ってローカルでいじれるようにしていきます. Dify とは Dify はオープンソースの LLM アプリ開発プラットフォームです.特徴としてユーザーはドラッグ&ドロップでアプリケーションを構築できます.これにより専門的なプログラミングスキルがなくてもアプリを作成することが可能です. github.com docs.dify.ai どうやってローカルで使えるようになるの? Docker を使えば簡単にローカルで使用できるようになります.こちらに沿って操作していきます.起動できたら http://localhost/signin でアクセスできます. $ git clone https://github.com/langgenius/dify $ cd docker $ cp .env.tmplate .env $ docker

                                                                                ローカルで Dify を動かして遊べるようにする - 継続は力なり
                                                                              • docker composeを始めよう(メリットとよく使う設定) - Qiita

                                                                                前回は「今日から始めるDocker入門(必要性を理解してから動かす)」ということで、docker composeを使わずにdockerを動かす方法、またその必要性について解説させていただきました たくさんの方にいいねやストックいただけて大変嬉しいです、ありがとうございます! 今回は、より実践的な内容にしたく、docker composeについて色々解説していきたいと思います docker composeとは まずは公式の説明を引用します Compose とは、複数のコンテナを定義し実行する Docker アプリケーションのためのツールです。Compose は YAML ファイルを使い、アプリケーションのサービスを設定します。コマンドを1つ実行するだけで、設定内容に基づいた全てのサービスを生成・起動します。Compose の機能一覧について学ぶには、 機能一覧 をご覧ください。 若干分かりず

                                                                                  docker composeを始めよう(メリットとよく使う設定) - Qiita
                                                                                • MongoDBの可能性・課題点をそれぞれ徹底考察

                                                                                  はじめに 今回の記事では、NoSQLデータベースの代表格であるMongoDBの可能性と課題点をそれぞれ徹底考察する。 対象読者 MongoDBについて知らない人 MongoDBを実務・開発で使いたい人 技術選定でMongoDBを検討している人 MongoDBとは MongoDBとは、MongoDB Inc.が開発したNoSQLデータベースである。数多くあるNoSQLの中では最も高いシェアを誇っており、オープンソースで公開されている。NoSQLデータベースには数多く種類が存在するが、その中でもMongoDBはドキュメント指向データベースに該当する。 MongoDBの開発は2007年10月から開始され、2009年2月にリリースされた。 ドキュメント指向データベースとは、簡潔に言えば、キーに紐づくデータをドキュメント形式で格納できることである。NoSQLの中では書き方の自由度が最も高く、複雑な要

                                                                                    MongoDBの可能性・課題点をそれぞれ徹底考察