はじめに あなたはブラウザからデータベース(DB)に情報が行き着くまでにどんな技術が使われているか説明できますでしょうか? どのようなプロトコルが用いられ、どの技術を駆使してサーバと通信しているのか、Webサーバでは何が行われ、どのようにして負荷が分散されているのか、トランザクションはどのように管理されているのか、そしてデータベースではシャーディングや負荷対策のためにどのような対策が取られているのか… なんとなくは理解しているものの、私は自信を持って「こうなっている!!」とは説明ができません。 そこで今回は「大規模サービス」を題材としてブラウザからデータベースに至るまでの、情報の流れとその背後にある技術について、明確かつ分かりやすく解説していきたいと思います。 対象としてはこれからエンジニアとして働き出す、WEB、バックエンド、サーバーサイド、インフラ、SREを対象としております。 1.
▼この研修についてのテックブログ記事 https://tech.willgate.co.jp/entry/2024/04/01/184252 ▼補足 株式会社ウィルゲート 2024年度エンジニア新卒研修「エンジニア基礎」の資料です。 実際に研修で使用したものを加筆修正して外部公開しています。 ▼研修を実演するイベントが開催されました 2024/4/15 18:30〜『エンジニア基礎 - 話題の新卒向け研修実演』 https://forkwell.connpass.com/event/315283/ YouTube Live アーカイブ https://www.youtube.com/watch?v=VidNzvmlbvE
OSIとTCP/IP構造 OSI参照モデルとTCP/IPプロトコルスタックの対応関係を示しています。 OSIモデルはデータ通信のための抽象的なモデルで、7つの階層(レイヤー)から成り立っています。 一方、TCP/IPプロトコルスタックはインターネットで実際に使用されているプロトコルの集まりで、4つの階層から構成されています。 TCP/IPの4層構造 アプリケーション層:OSIモデルのアプリケーション層、プレゼンテーション層、セッション層に相当します。HTTP、FTP、SMTPなどのプロトコルが含まれます。 トランスポート層:OSIモデルのトランスポート層に相当します。TCPやUDPがこの層で動作します。 インターネット層:OSIモデルのネットワーク層に相当します。IPプロトコルがこの層で主に使用されます。 ネットワークインターフェース層:OSIモデルのデータリンク層と物理層に相当します。E
Object-Oriented Conference 2024で発表した資料です。 https://fortee.jp/oocon-2024/proposal/b31c9818-3cb8-4350-adfe-cbc839cdf829 ビジネスの専門知識(ドメイン)を中心に据えたドメイン駆動設計に代数的データ型などの関数型のパラダイムを加えたよりタイプセーフな関数型DDDを紹介します。 本セッションではドメインモデリングによって発見したモデルやビジネスロジックをソフトウェアに反映する際により型を重視した設計を加えます。 型で表現する範囲が広がることでビジネスロジックをより明確にコードで表現できるようになります。 さらには型で表現されているためコンパイルフェーズで気付けるミスが増え、ソフトウェアの品質向上にもつながります。 関数型の考えをいれるといってもただ単にHaskellなどに代表される関
概要 Sakana AIは進化や集合知などの自然界の原理を応用して基盤モデルを開発することを目指しています。私達の目標は、モデルを自ら訓練し開発することだけではありません。基盤モデルの開発を効率化、高度化、自動化するための新たな手法を生み出すことに挑戦しています。この目標に向けた第一歩として、私たちはプレプリント「Evolutionary Optimization of Model Merging Recipes (モデルマージの進化的最適化)」を公開しました。 このリリースの要点は以下の通りです。 進化的モデルマージという手法を提案します。これは、多様な能力を持つ幅広いオープンソースモデルを融合(マージ)して新たな基盤モデルを構築するための方法を、進化的アルゴリズムを用いて発見する手法です。私たちの手法は、ユーザーが指定した能力に長けた新しい基盤モデルを自動的に作成することができます。既
一休.comレストランのエンジニアのkymmtです。 2023年度の下半期、一休.comレストランの開発チームでは開発プロセス改善に取り組みました。改善は小さい単位で徐々に進め、バックログの作りかたやカンバンの運用方法を改善することで、フロー効率の向上、開発ペースの把握、チーム内外からの進捗の見える化ができるようになりました。 この記事では、このようなインクリメンタルな開発プロセス改善の取り組みについて紹介します。 従来の開発プロセス 主に2023年度前半の開発プロセスは次のような形でした1。 プロダクトのリリースに必要なタスクが長いバックログとして存在し、ひたすらタスクを消化 その状況に課題を感じ、区切りを入れるために2週間のスプリントを導入 この時点では、スプリントは2週間ごとに状況を確認するためのもので、目標に対するふりかえりや、次のスプリントの計画を作るためのものとしては活用してい
スクラムフェス福岡2024での講演資料です。 --- 皆さん、職場でFour Keysを導入していますか? Yesと答えた皆さん、『LeanとDevOpsの科学』は読みましたか? あくまで僕の周囲のみの観測で語るのですが、Four Keysを職場で導入しているという人はとても多いのですが、そのうち、出典である『LeanとDevOpsの科学』をきちんと読んだ人はかなり少ないようです。 そして、ここで敢えて強めの主張をするのですが 『LeanとDevOpsの科学』を読まずにFour Keysをきちんと利用することはほぼ不可能です。 Forsgrenらは徹底した研究の結果として4つのメトリクス(指標)を見出すのですが、その裏には彼女らの沢山の思いが詰まっています。その思いや彼女らの思考を理解し、彼女らの考えをきちんとトレースして始めて、Four Keysは意味を持ちます。 そして『LeanとDe
突然ですが、質問です! 以下の文章で、登場人物が実際に声に出して言っている部分と、心の中で思い浮かべている部分はどこでしょうか。 「みんなはね、ずいぶん走ったけれども遅れてしまったよ。ザネリもね、ずいぶん走ったけれども追いつかなかった」と言いました。 ジョバンニは、 (そうだ、ぼくたちはいま、いっしょにさそって出かけたのだ)とおもいながら、 「どこかで待っていようか」と言いました。 青空文庫 宮沢賢治『銀河鉄道の夜』 https://www.aozora.gr.jp/cards/000081/files/43737_19215.html 答えは簡単ですね。 「 」の中の言葉が声に出して言っている部分、( )の中の言葉が心の中で思い浮かべている部分です。 前後の文章からも読み取れると思いますが、括弧の使い分けがされていることで、より分かりやすくなっています。 このように括弧類は主に文章内で会
このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に本来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正
「nosh」というサービスがある。 いわゆる「宅配弁当」のサービスであり、冷凍された弁当が定期的に届く今流行りのシステムである。 ネット上の広告ではこれでもかと「定期的にご飯が届くなんて素晴らしい!」「チンするだけで美味しいお弁当が食べられて最高!」などというプロモーションが打たれているので、誰でも一度は見たことがあるのではないだろうか。だが、個人的にあのPR漫画はほぼ嘘じゃないかと思っている。 私はnoshを2年使い続ける中で、もはや「戦争」とも言えるほどの食で食を洗う戦いを繰り広げてきた。チンするだけで美味しい弁当が食べられる。まぁ、嘘ではない。健康にいい食事が定期的に届く。あながち嘘ではない。ただしこれは、「noshを使いこなすことができれば」の話である。 人は、noshで失敗すると心が死ぬ。 これは、私がnoshと繰り広げた「戦い」の歴史。PRでもなんでもなく、2年間に渡ってひたす
7階までは4基のエレベーターか階段でのアクセスとなるため、チケット購入者の1000人が一度に集うと混雑が発生する恐れもあった。そのため、運営事務局はWeb整理券制を採用。会場の混雑度合いに応じて番号順に入場可能にしたところ、大きな事故はなく人流をさばけたという。午前11時開場(閉場午後4時)で、1時間後の正午には400番までの来場者が入場可能になっていた。 出展サークル数は36サークルで、企業ブースが6、事務局ブースが1、共催の自作キーボード専門ショップ「遊舎工房」ブースが1の計44ブース。 運営事務局メンバーのぺかそさん(@Pekaso)は「次回はより大きな会場も検討したい」と明かした。 TRONキーボードの中でも設計のみだった“最小配列”を再現 ここからは筆者が見て回ったブースの一部を写真や動画とともに紹介していく。 サークル「satromi works」のさとろみさんが出展していたの
このように、層ごとに関心事の分離を行うことで、保守性の高い(変更容易性や再利用性等)アプリケーションを実現できます。 しかし、「トランザクション」においてはどうでしょうか。 トランザクションはビジネス領域においても、技術領域においても関心事がある内容です。 そういう曖昧なものは「ひとまず usecase 層に入れてしまえ」という方針になりがちです。 ですが、DB 固有の知識を usecase 層の関心事にしてしまっては、関心事の分離をするメリットが得られません。 そのため、関心事の分離を実現しつつトランザクション実装をする方法を模索してみました。 前提 1. クリーンアーキテクチャを採用している(オニオンアーキテクチャやレイヤードアーキテクチャも含む) そもそもビジネス知識と技術知識を分離していないアーキテクチャを採用している場合、メリットは得られません。 そのため、オニオンアーキテクチャ
「インプットの怪物」あんちぽが語るエンジニア勉強論。終わりなき論争に終止符は打たれるのか 2024年2月29日 作家/GMOペパボ株式会社 CTO 栗林健太郎(あんちぽ) GMOペパボ株式会社取締役CTO、日本CTO協会理事。情報処理安全確保支援士(登録番号:013258)。東京都立大学法学部政治学科卒業後、奄美市役所勤務を経て、2008年より株式会社はてなでソフトウェアエンジニアとして勤務。2012年よりGMOペパボ株式会社に勤務。現在、同社取締役CTO。技術経営および新技術の研究開発・事業創出に取り組む。2020年より北陸先端科学技術大学院大学に在学する社会人学生としても活動。 X SpeakerDeck Kentaro Kuribayashi’s Website Pepabo Tech Portal での執筆記事 「エンジニアは一生勉強しなければならない職業である」と言われます。「勉
マイクロソフトは、GPT-35-TurboもしくはGPT-4に任意のデータソースを指定することでそのデータの内容を読み込み、質問に対して内容を基に回答できるようになる新機能「Azure OpenAI On Your Data」が正式サービスとなったことを発表しました。 例えば、社内規約や社内マニュアルなどを読み込ませると、「PCの修理を申し込むための社内手続きは?」といった、汎用の知識だけしか持たない従来のGPTでは答えられない質問にも回答できるようになります。 任意のドキュメントを読み込ませるための支援ツール「Azure AI Studio」には、Azure OpenAI On Your DataでカスタマイズしたAIを、チャットボットとして公開する機能も備わっています。 カスタマイズしたチャットAIのサービスを、社内や社外に簡単に公開できるようになります。 Azure OpenAI S
序文 私の仕事は、DBエンジニアです。といっても別に望んでデータベースの世界へきたわけではなく、当初、私はこの分野が面白くありませんでした。「Web系は花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、私はこの世界にとても興味深いテーマが多くあることを知りました。なぜもっと早く気づかなかったのか、後悔することしきりです。 もちろん、自分の不明が最大の原因ですが、この世界に足を踏み入れた当時、先生も、導きの書となる入門書もなかったことも事実です。 今でこそバイブルと仰ぐ『プログラマのためのSQL 第2版』も新入社員には敷居が高すぎました (2015年2月追記:その後、自分で第4版を訳出できたのだから、 人生は何があるか分からないものです)。 そこで、です。このサイトの目的は、データベースの世界に足を踏み
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く