You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
中〜大規模サービスのインフラの様子を知りたいアプリケーションエンジニア向けに、もともとアプリケーションコードを書いていた視点から、個人的な体験をベースにはてなで大規模サービスのインフラを学んだ過程や学んだ内容の一部を紹介します。 Webアプリケーションのブラックボックス Webアプリケーションフレームワークの向こう側 なぜ複数のサーバが必要なのか 突然のWebサービス3層構成 リバースプロキシ アプリケーション データベース その他のコンポーネント キャッシュは麻薬 飛び道具としてのKVS/NoSQL 非同期処理 バッチ処理 Mackerelの場合 参考 まとめ Webアプリケーションのブラックボックス 今年もはてなインターンの時期が近づいてきた。 毎年ではないけど、はてなインターンでは「インフラ講義」というのをやっている。 今年はインフラ講義の講師としてアサインされたのでちょうど何を話そ
グーグルは世界有数のハードウエアメーカーであり、ソフトウエアメーカーである。1990年代末に他に先駆けて「情報爆発」に直面し、いち早くそれに対応したグーグルのコンピュータは、従来のコンピューティングと比較すると常識外れにすら見える進化を遂げた。グーグルコンピューティングの特異さを10個紹介しよう。 (1)自前主義 グーグルは売上高を見ると「広告会社」だが、その実態は7000人を超えるエンジニアを抱える世界有数のメーカーである。しかもそのコンピューティングのあり方は、従来型のそれと大きく異なる(図1)。グーグルが“異形”のメーカーなのは、同社がハードもソフトも自前主義を貫いているからだ。 使用するサーバーはすべて自社開発だ。一部報道では、グーグルは台数ベースで米デルや米ヒューレット・パッカード(HP)に次ぐ「世界第3位」のサーバーメーカーだという。 サーバーだけではない。2007年、大手ネッ
最近MySQLの勉強をしていました。実践ハイパフォーマンスMySQLを読むべきという話を聞いていたのですが、かなり網羅的に書かれていて、今の知識ではどれが重要なのかわからない状態でした。そこで色々調べてみて、参考になる記事をいくつか見つけたので、少しまとめてみようと思います。 今回まとめた記事を読んで、大体以下のことが理解できました。 インデックスの使われ方とその構造(MyISAMとInnoDB) EXPLAINの詳しい使い方、見方 InnoDBの特性 ALTER TABLEの特性 レプリ遅延 まず最初に Webエンジニアのための データベース技術[実践]入門 (Software Design plus)posted with amazlet at 12.06.02松信 嘉範 技術評論社 売り上げランキング: 9767 Amazon.co.jp で詳細を見る 松信さんの書いた「Webエンジ
とあるSESの現場では本番リリースの時期が近づいてきており、僕を含めた数人のエンジニアは間に合いそうもない残作業の開発を進めたり、本番で使うためのデータの整備を本番サーバー内で行ったりしていた。ほとんどがその案件のために集められたメンバーだったため特に和気あいあいとするでもなく、エアコンの風の音が響く小さなオフィスの片隅で静かに作業をしていた。 業務上のやりとりもRedmineで行われており、声を発するのもたまにメンバー同士で話をしたり、クライアントから電話がかかってきた時だけ。その日もメールで通知が届いてきており、確認してみるとRedmineで僕が関係しているチケットにコメントが届いているという通知だった。 通知のURLをクリックしてRedmineのチケットを確認してみる。 それによると一旦本番サーバー上に存在するデータの中の一部の主要データをCSV形式で送ってほしいという依頼だった。無
Android/iOSアプリ「Memento Database」 使ってみる(同期の検証) 便利な機能 無料版と有料プランの違い かなり満足! 僕は今はGoogleスプレッドシートで購入物を記録しています。 GoogleスプレッドシートはGoogleドライブで同期でき、ハードオフなど出先でスマホで検索できるのでそこそこ便利です。 ただ、スマホでの一覧性はあまりよろしくなく、検索機能も乏しくソートや条件での整理はできません。画像の登録・閲覧も限定的。まぁそりゃそうだ。ExcelもGoogleスプレッドシートも表計算ソフトであってデータベースソフトではないしね。 ならばデータベース専用ソフト(AccessやFilemaker)で記録と管理を・・・ということになりますが、これらのソフトは使い勝手がかなり専門的で古臭いのです。ボタン一つでスマホ対応・クラウド同期はほぼ無いですし、特に表計算ソフトで
SQLのパフォーマンス問題は、SQLそのものと同じぐらいの歴史がある―― ある人は、SQLはそもそも遅いものだとすら言うかもしれません。これは、SQLの歴史が始まった頃は正しかったかもしれませんが、今となっては全く 当てはまらないでしょう。にもかかわらず、SQLのパフォーマンス問題は今も一般的でよくあることです。どうしてそうなってしまうのでしょうか? SQL言語は、恐らく最も成功した第4世代言語(4GL)でしょう。その最大の利点は、「何を」と「どのように」 を分離できることです。SQL文は、どのようにそれを実行するかを記述せずに、単純に 何を必要としているかのみの記述になっています。以下のような例を考えてみましょう。 SELECT date_of_birth FROM employees WHERE last_name = 'WINAND'SQLのクエリは、データを要求する英語の文として読
出来事の詳細 3/13 新着図書データベースを作るためクローリング&スクレイピングプログラムを作成した ちょうどその頃、市場調査を行うためにECサイトのスクレイピングプログラムを作っていた。そのついでに、前々から構想していたLibra新着図書Webサービスを作ろうと思った。市場調査プログラムの一部をカスタマイズして、新着図書データベース作成プログラムを作った。この時、市場調査プログラムと新着図書データベース作成プログラムは同じプログラム内にあり、パラメータでアクションを指定して振り分けていた。 Webサービスを作ろうと思った動機は「なぜプログラムを作ったか」の通り。 Webサービスの概要は「どんなプログラムを作ろうとしていたか」の通り。 普段読む本を入手する流れ:1. Amazonの各カテゴリの売れ筋をチェックしてレビューを確認し読むかどうか決める(または、書評ブログや新聞などのメディアで
今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たい SQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ
Webアプリケーションが攻撃者に付け込まれる脆弱性の多くは、設計者や開発者のレベルで排除することができます。実装に忙しい方も、最近よく狙われる脆弱性のトップ10を知ることで手っ取り早く概要を知り、開発の際にその存在を意識してセキュアなWebアプリケーションにしていただければ幸いです。 Webの世界を脅かす脆弱性を順位付け OWASP(Open Web Application Security Project)は、主にWebアプリケーションのセキュリティ向上を目的としたコミュニティで、そこでの調査や開発の成果物を誰でも利用できるように公開しています。 その中の「OWASP Top Ten Project」というプロジェクトでは、年に1回Webアプリケーションの脆弱性トップ10を掲載しています。2004年版は日本語を含む各国語版が提供されていますが、2007年版は現在のところ英語版のみが提供さ
NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック
.NET開発者中心 厳選ブログ記事 開発者が知っておくべき、6つのUIアーキテクチャ・パターン ―― 「matarillo.com」より ―― 猪股 健太郎 2011/12/15 「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者中心の読者に有用だと考えられるブログ記事を編集部が発掘・厳選し、そのブログ記事を執筆したブロガーの許可の下、その全文を転載・翻訳しています。この活動により、.NET開発者のブログ文化の価値と質を高め、より一層の盛り上げに貢献することを目指しています。 Martin Fowler氏の『GUI Architectures』を訳して公開しようと思ったのだが、FAQページに「PofEAAの続編などは商業出版する予定なので翻訳はしないでほしい」と書いてある。なので翻訳の公開はやめて、「
先日、Yahoo! ニュースからリンクして頂いたのを切っ掛けに、大量アクセスがありました。いつもは後で気がつくんですけど、たまたま Google Analytics のリアルタイム画面を開いたらその直前にアクセスが爆発していました。通称「Yahoo!爆弾」ってヤツですね。 【追記】現在はコアウェブバイタル対応を完璧にするため、もっとモダンな設定にしています。 iPhone 研究室は WordPress で運営していますが、全く動じないでこの大量アクセスをこなしてくれました。 11時半頃にリンクがあったみたいなんですけど、世の中がお昼休みに入った12時頃から更にアクセスが倍増しました。 だいたい、11時半から12時までの30分で2万ページビュー(PV)、12時から13時までの1時間だけで5万PV位の大量アクセスになりました。 新型iPhoneに関する噂という記事からのリンクだったので、興味を
大規模データが公開されているサイトについて以下のQuoraでid:makimotoさんが質問していました。Data: Where can I get large datasets open to the public? - Quora以下、紹介されているサイトの一覧です。一部有料のものもあるようです。UCI Machine Learning RepositoryPublic Data Sets : Amazon Web ServicesCRAWDADno titleCity of Chicago | Data PortalGovLoop | Social Data Network for Governmentdata.gov.uk | Opening up governmentData.Medicare.GovData.Seattle.Gov | Seattle’s Data SiteOp
引き続き、新入生向けを口実にする。 前回はオフラインでの探し方の話をしたので、今回はオンラインでの(ネットをつかった)探しものについて。 ごくごく基礎的な話は、 googleで賢く探すために最低知っておくべき5つのこと 読書猿Classic: between / beyond readers あたりにまかせて、今回は足がかりになりそうなものをつくってみた。 こうしたリンク集は、検索エンジンが今ほど便利でなかった/ソーシャル・ブックマークが存在しなかった時代にはよくつくられたが、ネットではどれだけ有益なサイトでもあっという間に(つまり本屋や古本屋よりもはやく)消えてしまったりするので、大規模なリンク集ほどメンテナンスが大変で、あまり望まれなくなった。 自分でも、なんだか久しぶりにつくってみた気がするが、個人的にはネットの定点観測的な意味合いがある。 つまり、つくってみることで、ネットの情報の
いつの間にかさくらのVPSの標準OSがCentOS6になってたので設定を見直してみました。 月額980円/月から利用でき、2週間のお試し期間もあるのでこれを機会にサーバ設定に足を踏み入れてみてはどうでしょう? 慣れると10分くらいでウェブサーバが立ち上げれるようになります。 すみません。こんなに多くの人が見てると思わなかったんです。 お一人様サーバ向けのつもりで書いてます。 タイトルもタグもネタだったのにツッコまれまくりで恥ずかしい… 公開鍵登録しよう どうせ自分しか触らないなしrootで作業しちゃってもいいんじゃない? リブート(またはsshのrestart)以降秘密鍵がないとsshでログイン出来なくなるので気をつけてください。 mkdir ~/.ssh/ touch ~/.ssh/authorized_keys chmod 700 ~/.ssh/ chmod 600 ~/.ssh/au
バッチ処理というのはそれ単体で勉強しようとするとなかなか何を勉強したらいいのかわからないことが多い。 特に経験がWeb系ばっかりだと、いざバッチ処理を実装しようとした時に基本的なノウハウを知らないままに書いてしまうことが多い。 バッチ処理というのは実態を整理すると「何らかのトリガーを期に起動し、データをロード・加工・変換・集計してから、出力する」という事になる。 まぁ、INがあって処理してOUTがあるという点では関数だと考えてもいいだろう。 システムの利用者(人に限らない)のアクションとは直接関係ない処理であったり、利用者のアクションをトリガーとしていても、即時にレスポンスがいらないor返せない場合に バッチ処理を選択する事が多い。 実現方式はシェルスクリプト、LL言語、実行可能バイナリだったりするし、デーモンとして立ち上げる場合もある。 利用者の操作に対して対話的・同期的な処理はオンライ
■ OECDガイドラインの8原則についてChatGPTに聞いてみた ChatGPTに色々聞いてみるテストは1月にTwitterに結果を報告していた*1が、GPT-4が使えるようになったということで、もう一度やってみた。ChatGPTは基本的に、質問者に迎合しようとする(質問者の期待に応えようとする)ので、ChatGPTが答えたといっても質問者の意図した答えになっているにすぎない(それゆえ、質問者の意図が明確にされず、ChatGPTも知らないことが問われると、全くの出鱈目を答えてしまうという現象が起きるようだ。)わけであるが、それでも、質問者が誘導しているわけでもないのに質問者が必要としていることを言葉の端々から察知して根拠を探してきてくれるような回答をする。以下は、できるだけ誘導しなように(といっても、後ろの方で明確に誘導しているところもあるがw)質問した例だが、最初のうちはChatGPT
iPhoneおよびiPad 3Gが、ユーザーの位置情報(経度・緯度・時刻)の履歴を過去10ヶ月に渡り記録していることが判明。 公開されているツールで、比較的簡単にデータを取り出せることが報告されています。 [source: O’Reilly Radar 他 ] 現在開催中の位置情報系のイベント「Where 2.0」で、2人の研究者 (Alasdair Allan と Pete Warden)が発表したもので、以下がその要点。 iOS 4.xを搭載したおそらく全てのiPhoneおよびiPad 3Gが対象 携帯基地局による位置情報を時刻とともに記録 本体およびバックアップに暗号化なしで保存されている 地図上にプロットするツールが公開されている 問題となるデータは、「consolidated.db」と呼ばれるファイルに、iOS 4.0が公開されて以来記録され続けており、緯度・経度・時刻のデータが
世の中には、一見関係なさそうな物理現象がITシステムに不可思議な影響を及ぼすことがあります 例えば,500マイル以上離れた場所にメールが送れないという話だったり 中国人のAさんがお茶を入れると会社のネットが繋がらなくなる という話があります。 私の場合は、祖母が就寝するとDBインサートが失敗する、という状況でした 実家の見守りシステム 問題が起きているのは、離れた実家にいる一人暮らしの祖母の状態を見守るために作成した自作のシステムです。 気温や湿度、CO2濃度、明るさ、部屋のドアの開閉、冷蔵庫の開閉の状況をモニタリングできるようにしています。 Raspberry Piに各種センサが接続され、定期的にInfluxDBに送信し、Grafanaという可視化ツールでいつでも見られるようにしています。 これらの情報を見ることで、祖母の家の部屋の温度が適切か、活動しているか、部屋にいるかなどが分かりま
09 幻日のヨハネ TGS2023 スペシャルステージ【TGS】 YouTube 視聴 ● (ハピネットゲームフェス! in TGS2023 リアルステージ生放送!【9月23日】枠内) 出演:斉藤朱夏、鈴木愛奈、高槻かなこ ● ●
はじめに 本連載では、PHPまたはプログラミング初心者の方を対象に、PHPを用いたWebアプリケーションの作成方法を説明していきます。今回は、データベースとSQLに関して、「おすすめレストラン一覧を閲覧できるWebサイトを制作する場合」を例にして、説明をしていきます。 対象読者 プログラミングが初めてでこれから学習する予定の方 プログラミングの経験はあるがPHPを初めて学習する方 この記事の内容 はじめに 対象読者 動作確認環境 データベースとは何か・・・データベースはどんな役割? データベース操作の基礎・・・データベース言語「SQL」とは SQL基礎:テーブルの作成・・・CREATE文を使ってみましょう SQL基礎:レコード追加・・・INSERT文を使ってみましょう SQL基礎:レコード検索・・・SELECT文を使ってみましょう SQL基礎:レコード更新・・・UPDATE文を使ってみまし
当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。 万が一、当サイトで重大な問題を発見した際などは、フォーラムや WordSlack #docs チャンネルでお知らせください。</p>
皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。
DB設計のメモ。ネタサイトのレベルであれば、これくらいで問題がないと思う ネタサイトの作り方その2: コードをもりもり書く。なるべくPHPで ある程度設計が固まったら、ブラウザでCloud9を起動して、いきなりコードをもりもり書きます。 サーバの言語はPHPが多いです。運良くヒットした時、日本の大きな会社にサービスを売却するのに便利なのはPHPだからです。 Cloud9は素晴らしいです。感動します。無料でいきなりクラウド上のオンラインIDEとサーバを用意してくれます。ApacheとMySQLとRubyとPHPとGitくらいは普通に入っています。 昔は、オンラインIDEは遅くてダメなものが多かったのですが、Cloud9だけは別格です。テキストエディタすら立ち上げません。3割くらいの力でネタサービスを作るには最強の環境です。 オンラインIDEでは珍しく、ターミナルも叩けますので、普通にGitも
タイトルの通りなんですが、ドワンゴが運営する「N予備校」がやっている 【2017年度】プログラミング入門Webアプリ というコースがすばらしくてびびりました。前に書いた社員が自分ではじめていて、いいというのでぼくも試してみた。そしたら、あまりにもよかったので書いておく。 たとえば「第2章 準備しよう」の冒頭はこんな感じ。 いちばん上の「LinuxというOS」では、手元のPCに仮想環境をつくって、Linuxをインストールして、sshで使えるようにするセッティングを行う。 その後、基本的なLinuxの使い方から、TCP/IPのパケットを覗いてみたり、簡易チャットをつくったり、かんたんなbotをつくったり、Githubをつかったり、DBにさわったり、node.jsをつかったりする。ネットワーク時代のプログラミング入門として、非常によくできている。 いちおう、毎回2時間の動画をみながら学ぶ形式なん
サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
最近はあまり技術的な仕事をしていないんですが、実は私は元々DBエンジニアです。 OがつくDBとか、PがつくDBとか、mがつくDBとかをいじくって、クエリを書いたり、テーブルの設計をしたり、パフォーマンスのボトルネックをあれこれ調べて解消したり、INDEXヒントを総とっかえして頑迷なオプティマイザをぶん殴ったりすることが主なお仕事でした。今でもたまーにそういうことをします。 同業の方であればお分かりかと思うんですが、DBのパフォーマンスは凄く唐突に、かつ多くの場合極端に落ちます。そして、DBのパフォーマンスが落ちると物凄く広範囲に影響が及びます。 アプリケーションサーバ、重くなります。クライアント、ろくに動かなくなります。お客様、切れます。カスタマーサポートにはわんさか電話がかかってきます。 ただ「遅くなる」だけでも十分に影響は甚大なのですが、それ以上のトラブルが発生するとまあエラいこっちゃ
みずほ銀行で2021年8月20日、営業店の窓口業務が全面停止するトラブルが発生した。前日の19日午後8時53分ごろに営業店端末と勘定系システムをつなぐサブシステムで、データベース(DB)サーバーがディスク装置の故障をきっかけに停止したためだ。待機系DBサーバーへの切り替えも失敗、副データセンター(DC)に処理を切り替えた。副DCへの切り替えに着手するまで11時間超を要し、業務開始に間に合わなかった。 みずほ銀行で2021年8月20日、全463店舗で営業店端末や店頭のタブレット端末が使用不能になった。午前9時の開店から午前9時45分までは全ての店頭取引ができなくなり、その後も午前11時58分まで融資や外国為替(外為)の一部取引ができなくなった。営業店端末などと勘定系システム「MINORI」をつなぐサブシステム「業務チャネル統合基盤」が前日の8月19日午後8時53分ごろに停止したためだ。 業務
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く