BT

Visual StudioによってNPMレジストリに障害が発生

| 作者: James Chesters フォローする 2 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2016年12月12日. 推定読書時間: 3 分 |

原文(投稿日:2016/11/08)へのリンク

MicrosoftがVS Code 1.7.1をローンチした。npmレジストリに障害を発生させた1.7に続くリリースだ。

VS Code 1.7は自動タイプ取得(ATA / Automatic Type Acquisition)を備えていた。これは開発者のpackage.jsonファイルを監視して,すべての依存関係に対する型定義をファイルシステム上のキャッシュに自動インストールすることにより,package.jsonの依存関係をIntelliSenseに反映する上で,開発者の手作業による型タイプ定義のインストールに頼らないようにすることを目的としたものだ。

プロジェクトマネージャのWade Anderson氏がMicrosoftの1.7 Rollback Incident Reportに記したところによると,チームがATAを1.7で出荷した後,

11月2日のPST午後4:12分,私たちはnpmからの連絡を受けました。彼らはレジストリアクティビティ上に,@typeスコープ下の存在しないパッケージにアクセスしようとするクライアントからの,非常に大きなスパイクを確認していました。ピーク時にはこれらの要求が全トラフィックの10%(豆知識: VS Codeユーザはインド国内からとほぼ同じ量のリクエストを送信していました)に達し,間もなく彼らのサービスを混乱させていたのです。

npmのDevOpsチームはこの意図しないDDoSに迅速に対応し,問題がVS Code 1.7リリースからのものであることを突き止めました。問題になったのは,存在しないパッケージに対する大量の要求だったのです。

Anderson氏は,アプリケーションキャッシュにないモジュールを追加するために@types/{module}でnpmに要求する前に,TypeScript言語サーバがpackage.jsonにリストされているモジュールとそのアプリケーションキャッシュを照合するべきだった,と説明している。

“新たなタイプ定義ファイルが@typesスコープに追加されることを見越して,存在しないモジュールに対する要求がプロジェクトあるいはフォルダをオープンする度に実行されて,npmが404応答を発生させる原因になっていました。@typesのスコープ下に存在しないモジュール数のため,短時間に発生した大量の404がnpmの可用性に影響を与えていたのです”,とAnderson氏は述べている。

ATAからの意図しないDDoSとは別に1.7リリースには,重要なアップデートが数多く提供されている。例えばHTML内のCSS補完では,開発者は以下の例で示すように,HTML内に埋め込まれたCSSのコード補完や検証,スタイルに関するカラーの注釈などを利用することができる。

Microsoftのブログ記事によると,今回のリリースには'マルチターゲットデバッグ’の初期実装も含まれており,VS Codeの単一インスタンス内で複数のデバッグセッションを同時に起動することができる。このアップデートによって,エクステンションおよびそのデバッグアダプタと,言語サーバとの同時デバッグ,クライアントとサーバを単一プロジェクトフォルダからデバッグ,クラスタ化されたプログラムのデバッグ,といった操作が可能になる。

1.7ではさらに,Node.jsのデバッグ機能,ほとんど変更されない属性を灰色で表示,使用頻度の少ない属性の削除,ドキュメントの書き直しと改善,コメントとオンラインドキュメントへのリンクの追加などが行われている。

VC CodeチームはTypeScriptチームの協力を得ながらATAの“納得できる修正”を検討中だ,とAnderson氏は述べている。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT