2014年11月13日開催の全脳アーキテクチャ若手の会 第3回Deep Learning勉強会の資料です。RBMの動作原理をポイントを押さえて解説しました。参考資料を後ろに纏めましたのでご自由にご活用ください。Read less
はじめに こんにちは。WEAR部フロントエンドブロックの藤井です。WEARでは現在、Webサイトのリプレイスを進めています。本記事では、リプレイスに至った背景や課題と、課題解決のために行ったリプレイスのアーキテクチャ選定についてご紹介します。 なぜリプレイスするのか WEARはサービスローンチしてから約10年が経ちます。これまでローンチ当時の技術スタックのまま開発を続け、サービスを成長させてきました。今後もより継続的にスピード感を持ってユーザーへ価値を届けていくにあたってさまざまな課題があったため、新たな技術スタックでリプレイスを開始することにしました。 リプレイス前の環境 リプレイス前の環境はオンプレミスの環境にロードバランサー、Windowsサーバー(IIS)があり、そこでVBScriptが動いています。VBScriptでテンプレートHTMLにデータを流し込み、ブラウザに表示する仕組み
こんにちは。LINEヤフー株式会社で、出前館というプロダクトのサーバーサイドエンジニアをしている古田大志です。 株式会社出前館はLINEヤフーのグループ会社です。資本業務提携を結んでいて、LINEヤフーが開発などをサポートしています。 詳しくはこちらをご参照ください。(https://corporate.demae-can.co.jp/pr/news/demaecan/line.html)(外部サイト) 今回の記事では、その出前館における開発の内容を紹介させていただきます。 出前館はデリバリーサービス事業のプロダクトで、開発においてはマイクロサービスアーキテクチャを採用しています。出前館のマイクロサービスの1つに、クーポンに関するドメインの責務を持ったコンポーネントであるクーポンサービスがあります。 クーポンサービスでは、ビジネスエンハンスに伴う「非機能要件の増大」や「仕様の複雑さの肥大化
この記事は AWS re:Invent 2014、PFC304-JT - Effective Interprocess Communications in the Cloud: The Pros and Cons of Micro Services Architectures - Japanese Trackのレポートです。 スピーカーはNetflixのSudhir Tonse。 レポート どうやってMicroservicesに変化していったのかを話したい。 これまで何度か本番環境が停止し、そこからたくさんのことを学んだ。それを共有したい。 Netflixについて。映画のストリーミングサービス。 PCやPS4などで再生できる。 ネットワークの1/3のトラフィックをNetflixが占めることがある。 20億以上のエッヂAPIリクエストがあって、500以上のMicroservicesが動いてい
Ansibleのアーキテクチャー: 構成管理を超えて¶ すでに2月ほど経っていますが、2013/11/29にAnsible WorksのCTOであるMichael DeHaanさんが、 Ansible’s Architecture: Beyond Configuration Management という記事を書いています。 この記事はAnsibleのアーキテクチャを説明するのにとても良い記事だと思いましたので、DeHaanさんの許可を得て、翻訳したものを公開します。 ただ、いかんせんこの人は一文が長いのと言い回しが詩的で意味が取りにくいのとで、うまく訳せていないところが多々あります。間違っている箇所がありましたらご指摘ください。 Ansibleのアーキテクチャー: 構成管理を超えて¶ Ansibleがなにものなのか、というあまりよろしくない議論があり、とても奇妙 だったので、ここでAnsi
機械学習を記事配信に採用したママリ - 0から構築したレコメンドエンジンのアーキテクチャ設計 コネヒト株式会社が運営する女性向け情報サービス「ママリ」では、2019年12月に記事配信で機械学習によるレコメンドエンジンを構築、2020年初頭にテストが完了しました。 機械学習を採用した背景、設計したアーキテクチャとテストの結果について伺いました。 コネヒト株式会社が運営する、女性を対象とした情報サービス「 ママリ」は、2014年のリリース以降、着実にユーザーを増やし、2020年3月現在、アプリ会員数は240万人(日本で2019年に出産した中で3人に1人が利用)、ママたちが集まるオンラインコミュニティとして定着しています。 ママリでは2019年12月、サービス内に掲載する記事の配信について機械学習を採用したレコメンドエンジンへ変更し、2020年初頭にテストが完了、いよいよ正式リリースとなりました
PC向けCPUの主流な命令セットアーキテクチャであるx86は、Intel 8086プロセッサに起源を持ち、46年の長きにわたって使われてきました。そんなx86は近い未来に滅んでしまうだろうと、技術系ブログのHackadayが主張しています。 Why X86 Needs To Die | Hackaday https://hackaday.com/2024/03/21/why-x86-needs-to-die/ x86を採用する現代のCPUは、複雑な命令セットコンピューターであるCISC、1クロックサイクルあたり複数の命令を実行可能な「スーパースカラー」、命令を高速化するため順序を変更して実行する「アウト・オブ・オーダー実行」、分岐先の命令を条件が満たされるか不明な状態で実行する「投機的実行」を特徴とする、フォン・ノイマン型アーキテクチャの一部分です。x86はもともとは16bitプロセッサで
このTEAは、関数型FluxライブラリであるReduxの思想に影響を与えたことで知られています。 TEAは現代のフロントエンド・アプリケーションを開発するにあたってのベストプラクティスを踏襲しており、「Elmまかせ」でアプリケーションを作ることでが、スケールするアプリケーションを開発するための最短ルートととなるように作られているのです。 ECサイトの商品カート機能をElmで作ってみよう さて、ここからは手を動かしながら、Elmのエッセンスをお伝えしていきたいと思います。ElmによるTODOアプリやカウンタアプリのサンプルは、Elmの公式ページやさまざまなブログ、書籍などで比較的よく見られますが、もう少し大きな規模でのElmのアプリケーションのコードを見る機会は多くはありません。 最も実践的なアプリケーションのサンプルとしては、NoRedInk社のリチャード・フェルドマンによるmediumの
This document summarizes Mosa Siru's engineering work at DeNA and Gunosy. It describes Gunosy's RSS/Atom feed crawler system which includes components like a job queue, fetcher, parser, updater, content generator, and indexer. It also discusses technologies used like Python, Celery, MySQL, S3, Elasticsearch. The system is designed to efficiently parse, store, generate content and index feeds at sc
DBサーバでとある日を境にswapが発生していることに気がつきました。 サーバはメモリ32GB搭載していて、そのうちの24GBをinnodb_buffer_pool_sizeに割り当てています。 他のthread毎のメモリ設定値を見てもおかしそうな点はなかったのでググってみました。 MySQL と NUMA アーキテクチャと Swap Insanity MySQL InnoDBストレージエンジンのチューニング(後編) なるほど…。 それぞれのCPUがローカルでメモリを管理しているので、 2CPU積んでいるサーバだと、AというCPUで実行されているスレッドが、BというCPUが確保しているメモリ領域にアクセスするには、AのCPUを経由しないといけないわけですね。 このメモリアクセスが不均一になる方式をNUMAアーキテクチャというみたいです。 NUMAアーキテクチャのメモリ管理が、ノードという単
Twitterのスケール関係で、面白い記事を発見したのでまとめ。 一時期「スケールしない」とか「動作が不安定」だとか言われ続けていたTwitter。5月ごろにslashdot.jpでも話題になっていた。論調は総じて「Twitterがスケールしないのは、Rubyを使っているから」というもの。 ところが同じ5月、「Why Can't Twitter Scale? Blaine Cook Tries To Explain(なんでTwitterってスケールしないの?)」という、blog紹介記事がSilicon Alley Insiderに掲載される。記事の元になったblogエントリは、Twitterの前チーフアーキテクトだったBlaine Cook氏によるもの。Cook氏によれば、TwitterのスケールとRubyは何の関係もないという。 Why Can't Twitter Scale? Blai
AWS上にサービスを構築するうえで、アーキテクチャー図を作る機会はままあるかと思います。 その際、draw.ioやCacooなどのウェブサービスで作っている人も多いのではないでしょうか。 今回は別のアプローチとして、PlantUMLによってコードベースでAWSのアーキテクチャー図を作る方法をご紹介します。 PlantUMLの実行環境を用意 まずは、PlantUMLの実行環境を用意します。 ローカル環境にインストールするのもいいですが、素早く試したい場合はPlantUML Web Serverを使うのが便利です。 AWSのアイコンセットを用意 PlantUMLでは、ファイルパスやURLを指定してリソースをインポートすることができます。 これにより自作の画像を組み込むことができるわけですが、ありがたいことにAWSが公式にPlantUMLのためのアイコンセットを配布しています。 awslabs/
マイクロサービスアーキテクチャの4章にオーケストレーションとコレオグラフィという話があります。 マイクロサービスを使ってアプリケーションを組み立てる側の、サービスの呼び出し方の違いです。 「マイクロサービス的に作ってるよー」というシステムでも、ここに特に疑問を持たず、ふつうにWeb APIたちを呼び、受け取ったデータでHTMLをレンダリングするというオーケストレーション方式で作られているのが多いのではないでしょうか? Sam Newmanは、それだと呼び出されるサービス側がドメインモデル貧血症になりがちで、呼び出す側にロジックが集まっていくことになると、書籍の中で述べています。 いったいどういうことでしょうか? 書籍中の例をちょっと変えて考えてみます。 マイクロサービスアーキテクチャでECサイトを作る(オーケストレーション編) ECサイトをマイクロサービスアーキテクチャで作ることを考えてみ
毎回ご好評頂いているアーキテクチャ特集の今回のテーマは、データ分析基盤です。 データ活用に特に力を入れている日本のIT企業8社にご協力頂き、それぞれの技術選定の裏側と今後の展望についてご寄稿頂きました。 ※ご紹介は企業名のアルファベット順となっております 株式会社朝日新聞社 アーキテクチャ選択の背景や意図 これまでは、朝日新聞デジタル(朝デジ)のサービス開発・運用において、データを収集する基盤が存在せず業務ごとに Adobe Analytics や AWS QuickSight、 内製のツールなど様々なBIツールが乱立している状態でした。そこで、複数のシステムのデータソースを統合的に可視化・分析を可能にするために、分析基盤の構築に着手しました。 まず、データを集積・加工するETLとしては以下の点で TROCCO を選択しました。 1. データエンジニアが不足しているため、データアナリストで
kintone フロントエンドリアーキテクチャプロジェクトリーダーの @koba04です。 昨年末から、kintone フロントエンドリアーキテクチャをプロジェクト(フロリア)として再構成してスタートさせました。フロリアという名前は社内での公募により決定しました。 今回はプロジェクトで目指していることについて紹介します。本プロジェクトの開始前に Cybozu Meetup で話したスライドや動画も公開されているのでよければ見てください。 speakerdeck.com www.youtube.com これまでの取り組みについては下記の記事にて紹介しています。 blog.cybozu.io 3 行まとめ フロリアのゴール 全てのページが React によって表示されている 現状 今後 フロントエンドが技術的にもチーム的にも分割されている モノリスな構成からの脱却 アーキテクチャとチーム(
従来のVim scriptによるゲーム作成時の問題点を解消する、 新しいアーキテクチャを考察してみました。 この記事は Vim script Advent Calendar 2015 の 13日目の記事です。 まずは以下のデモ画像(別ウィンドウ)を見てください。 かなりスムーズに○リオが動いています。実はこれ、全部Vim scriptでできています。 ソースコードは koron/vim-ario に置いてありますので、チェックアウトして gvim -S game.vim することで試せます。ただし動作確認・保証は Windows版の +kaoriya な gvim でしかしておりません。また解像度も画面幅1920ドット無いとおかしなことになるので、異なる環境の場合は各自で調整してPRなどしてください。 操作は以下のとおりです。 h - 左ボタンのトグル l - 右ボタンのトグル f - ジ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに アーキテクチャや設計の書籍や記事、これまでの経験も踏まえ、学んだ事をここにまとめたい。(まだ、勉強中なので微妙なところもあるかもしれません。お気付きの点があればご指摘いただけるとありがたいです。) 参考文献や参考記事は、本当に良書、良記事で非常に参考にさせていただきました。 生意気なタイトルにしてしまいましたが、自分への戒めということもあってこのタイトルにさせていただいたので、ご容赦ください。 ある共通した話題 設計やアーキテクチャについて書かれた書籍や記事を読んでいく中で、言葉は違えどかなりの高確率で共通するテーマが存在した
クラウドが備えるスケーラビリティやアベイラビリティ、そして膨大な処理能力を実現する技術として、MapReduceやキーバリュー型データベースが注目を浴びています。「リレーショナルデータベースはもう古い」という人さえいるほどです。 ところが、そんな話題の新テクノロジーに背を向けて、既存技術であるリレーショナルデータベースを核にしつつクラウドを構築し、絶大なスケーラビリティと信頼性を実現している企業があります。セールスフォース・ドットコムです。 彼らはMapReduceもキーバリュー型データベースも使わずに、どうやってスケーラビリティや信頼性を備えたクラウドを実現しているのでしょうか? 同社が公開している情報はそれほど多くないのですが、それらをつなぎ合わせて見えてきたいくつかの技術的な仕組みを、何回かに分けて紹介したいと思います。 Salesforceはどれほどスケーラブルか 同社のクラウドが
デジタル時代の企業にとって、システムの安定稼働と迅速な問題解決は、競争力を維持するための重要な要素です。21社にご寄稿頂いた「Amazon CloudWatch」「Datadog」「Grafana」「New Relic」「Prometheus」「Sentry」「Splunk」の各ツールレビュー記事を参照・抜粋し、それぞれの企業がどのようにシステムの健全性を確保し、未来の課題に備えているのかをアーキテクチャを通してご紹介します。 ※ツール名・ご寄稿企業名共にアルファベット順で掲載しております Amazon CloudWatchAWS CloudWatchは、AWSのクラウドリソースとアプリケーションの監視と管理を行うためのサービスです。メトリックス、ログ、イベントなどを収集、追跡し、可視化することで、システム全体の状態を把握し、問題の早期発見と解決をサポートします。 ▼Amazon Clou
ストリームデータを即時にWebに反映する「リアルタイムWeb」は、TwitterやFacebookなどが普及したことでそう目新しい技術ではなくなった。しかしその実装は、まだまだ力業でなされていることが課題だ。「Developers Summit 2015 Autumn」のKaizen Platform 伊藤直也氏によるセッションでは、リアリタイムWebを実現する分散アプリケーションアーキテクチャの昨今について、「Reactive System」と「Microservices」という2つのキーワードから読み解かれた。 Kaizen Platform 技術顧問 伊藤直也氏 講演資料「分散アプリケーションアーキテクチャ 2015」 ストリーム処理は現状、まだまだ力業で乗り切っている まず、かつては大量トラフィックとデータを、どのように処理していただろうか。LAMP環境を作り、RDBにデータを溜め
JavaScriptフレームワークを取り巻く状況は、常に変化を続けています。近年では、サーバーサイドレンダリング(SSR)とクライアントサイドレンダリング(CSR)のバランスは、重要な検討事項です。 ChatGPTのRemix採用 2024年9月、ChatGPTがNext.jsからRemixに移行したことが明らかになりました。この出来事は、Remixの母体であるReact Router系のコミュニティで大きな話題となり、移行の理由について様々な憶測を呼びました。 JavaScriptエキスパートのWes Bos氏(学習動画教材とかを作っている人)は、ChatGPTのフロントエンドのソースコードを分析し、OpenAIがRemixを採用した理由について独自の考察を展開しました。 www.youtube.com 緊急で動画を回すWes Bos氏 Wes Bos氏の分析によると、ChatGPTのア
この記事は Gunosy Advent Calendar 2017 の1日目の記事です(フライング) qiita.com §1. はじめに こんにちは。データ分析部ロジックチームの @mathetakeです。いつもはデータ分析ブログにいるのでテックブログは初めてです。怖いです。Twitterとかやったことないですね。 最近は仕事でニュースパスというプロダクトの記事配信ロジックの改善を行っており、その一環としてパーソナライズロジックの開発プロジェクトに従事しています。 パーソナライズとはユーザーひとりひとりに対して別々の記事配信を行う事です。下記の記事でパーソナライズプロジェクト発足に至るまでの背景が語られているので、興味のある方はぜひご覧ください。 gunosiru.gunosy.co.jp この記事ではニュースパスの記事配信アルゴリズムのパーソナライズプロジェクトに関連して、 パーソナラ
先日行われた builderscon tokyo 2017 にて、「複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ」という発表をしてきました。この記事では、そのプレゼンテーションの再現を行います。 アバンパート 本日はこういう発表をします。よろしくおねがいします。 普段はメディロムという会社で働いていて、ScalaとJSを主軸に活動しています。PerlとRubyもたしなむ程度には書きます。業務では、業務で使うアプリケーションをブラウザプラットフォーム上に作っています。こういうブログも書いてるんでよかったら読んでください。 あと、何度かweb+DBプレスに特集書かせてもらっていて、とくに左の「データ構造の基礎知識」ってやつは自分で言うけどまじでいい記事なんでまだ読んでないひとはバックナンバー買って読んでください。 さて、複雑なアプリケーションに立ち向かうためのアー
前説 丸山です。Re.Ra.Ku. アドベントカレンダー13日目の記事です。前日はiOSアプリのUIをコードで書いてみる話でした。明日はおそらくScalaの話になると思います。 さて、以前も話題にしましたが、builderscon2016が先日開催されました。チケットは3hでSOLD OUT。プラチナチケットと化した参加権ですが、発表する側ならば実質無料で参加し放題!これはいっそ申し訳ないレベルでは!? というわけで、せっかく発表したのでその内容をなるべく多くの手段で共有したい。そう思い、今回も実況中継シリーズを弊社テックブログで行います。実況中継シリーズというのは、プレゼンをブログで再現するアレです。なお、実際のプレゼンは動画になってYoutubeにアップロードされております。builderscon公式サイトのセッション詳細ページからもご覧いただけますので、よろしければそちらも合わせてご
Immutable Infrastructureはアプリケーションのアーキテクチャを変えていく、伊藤直也氏(後編) 仮想化やクラウドを基盤とした新しいインフラの考え方である「Immutable Infrastructure」が注目されています。このImmutable Infrastructureをテーマに3月25日に渋谷にあるDeNAの大会議室で開催された勉強会「Immutable Infrastructure Conference #1」では、150人の定員に400人以上が申し込む人気ぶりでした。 (本記事は「Immutable Infrastructureはアプリケーションのアーキテクチャを変えていく、伊藤直也氏(前編)」の続きです) 不自由さをアプリケーションが受け入れることでよい影響が まずアプリケーションアーキテクチャへの影響についてですが、サーバがImmutableになるという
next.js 9.4 に Incremental Static Regeneration という実験的な新機能があります。 Blog - Next.js 9.4 | Next.js パッと見、「段階的な静的サイト生成…?なんのことだろう…」となったのですが、手元で試してみた感じ、これが既存のサーバーの実装アプローチを変える、革命的な機能ではないかと思いました。 解説を書きつつ、どのような応用があるか解説します。 next.js の Incremental SSG を試してみる リポジトリはここです。 mizchi/issg-playground 解説にあたっては、必要なのはほぼこのファイルだけで、短いのでそのまま貼ります。 // pages/[slug].tsx import { GetStaticProps, GetStaticPaths } from "next"; type Pro
2014-05-06 RESTFul(リソース指向アーキテクチャ)について アーキテクチャ ROA(Resource Oriented Architecture)について。 次の本を参考に勉強してみた。参考図書 RESTful Webサービス ROAの基本 アプリケーションを動作と名詞(リソース)で考える。 リソースは特定のデータ、データの演算結果、状態、ユーザーアカウントなどである。 URIに動詞を含めてはならない。 リソースはHTTPメソッドを使用してのみ操作できる。 アドレス可能性 リソースはアドレス(URI)で一意に表現する。 1つのURIが複数のリソースを示してはいけない。 リソースを特定の言語や特定のフォーマットで取得したい場合は「Accept-Language」や「Accept」、または「Media-Type」を使用する。このようにリソースの表現方法が複数あ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く