プロダクト拡大フェーズでプロダクト検証サイクル効率化を目指す過程で見えたもの / Streamlining Product Validation in Growth Phase
![TLS1.3とは何か?](https://cdn-ak-scissors.b.st-hatena.com/image/square/d166bd9148d0bed0e3c0d4aca22d0596a0f583d9/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F7e136b177d644686a21a1a73c91eb8c9%2Fslide_0.jpg%3F6165230)
プロダクト拡大フェーズでプロダクト検証サイクル効率化を目指す過程で見えたもの / Streamlining Product Validation in Growth Phase
NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を
デブサミ2016登壇資料。サーバ技術の評価軸、HTTP/2、サーバプッシュ、HTTPS化の負荷、Brotli、サーバ内スクリプティングを俯瞰
HTTPS化もHTTP/2にすれば負荷を下げられる~奥一穂氏による「HTTPとサーバ技術の最新動向」(後編)。Developers Summit 2016 HTTP/2の登場を背景に、いまHTTPとWebサーバの技術がどのように進化しているのか、Developers Summit 2016で行われた同氏のセッション「HTTP とサーバ技術の最新動向」の内容をダイジェストで紹介します。 記事は3部に分かれています。いまお読みの記事は後編です。 (前編)レイテンシに負けないプロトコルとして登場したHTTP/2 (中編)リクエストを待たずに送信を開始する「サーバプッシュ」 (後編)HTTPS化もHTTP/2にすれば負荷を下げられる HTTP/2だとパケットをまとめられるので負荷が下がる 次はHTTPSとサーバ負荷についての話です。 多くの方が、HTTPS化するとWebサーバの負荷が上がるんじゃな
リクエストを待たずに送信を開始する「サーバプッシュ」~奥一穂氏による「HTTPとサーバ技術の最新動向」(中編)。Developers Summit 2016 WebサーバはWebの誕生と同時に登場したソフトウェアですが、「HTTPとサーバの技術はまだ進化中」と説明するのは、新しいWebサーバの実装「H2O」の開発者であるディー・エヌ・エーの奥一穂氏。 HTTP/2の登場を背景に、いまHTTPとWebサーバの技術がどのように進化しているのか、Developers Summit 2016で行われた同氏のセッション「HTTP とサーバ技術の最新動向」の内容をダイジェストで紹介します。 記事は3部に分かれています。いまお読みの記事は中編です。 (前編)レイテンシに負けないプロトコルとして登場したHTTP/2 (中編)リクエストを待たずに送信を開始する「サーバプッシュ」 (後編)HTTPS化もHTT
私はWeb関連の基盤技術を20年くらいやっています。 最近の仕事としてはディー・エヌ・エーで「H2O」というWebサーバを開発していて、2016年2月に1.7.0をリリースしました。HTTP/2対応のWebサーバとしてはおそらく世界最速で洗練された実装だろうという評価をいただいています。 本日はサーバ技術をそもそもどういう評価軸でわれわれが見ているのか、HTTP/2の特長。そしてサーバプッシュとはなにか、HTTPS化はどれだけサーバ負荷が上がるのかについてのわれわれの見解。Webサーバ内でのスクリプト実行がどう変わってきているのか、といった話をしていきます。 サーバ技術の評価軸 サーバ技術の評価軸をどう考えているかですが、大きく分けて4つの項目で考えています。 サーバ負荷 転送データ量 応答性 設定・運用コスト まず「サーバ負荷」です。小規模なWebサイトではサーバ負荷はそれほど問題にはな
1 はじめに 前回も紹介しましたが、Visual Studio Code(以下VS Code)でJavaScriptを書く場合に、型情報をうまく認識させると、格段に使い勝手が向上します。 公開当初、VS Codeでは、tsdを使用して型情報を取り込み、下記のようなリファレンスをコードに挿入する方法が取られてました。 /// <reference path="node/node.d.ts" /> このため、今でも、この方法を解説するドキュメントが多数公開されています。 しかし、Version 0.5.0 以降では、jsconfig.jsonを置くことで、上記のような挿入は必要なくなっています。 また、型情報の取得も、公式ドキュメントでは、tsdからtypingsにさらと変更されています。 Node.js Applications with VS Code 公式ページのビデオで紹介されている、
はじめに 藤本です。 最近、仕事じゃないことでGo言語を書く機会が増えています。 業務上、プログラムを触ることがそんなに多くないせいか、記憶力が弱いせいか、基本的にプログラミングはIDEがないと辛いです。 私がIDEに特に期待することは、以下となります。 自動補完 デバッグ ジャンプ(というのかな?EclipseでCtrl + Clickで飛ぶやつ) IntelliJ IDEAやEclipseのGo言語Pluginを試してみましたが、EclipseによるJava開発やPyCharmによるPython開発のような感動は得られず、Atomエディタで開発していました。 そんな中、Visual Studio CodeでGo言語Extensionがあり、使い易いとの噂を聞いて、早速試してみました。結果、今のところはあまり不満ありません。 Visual Studio Codeについては下記記事をご参照
1 はじめに 約1年前、アルファ版として登場した、Visual Studio Code(以下VS Code)ですが、昨年11月には、ベータ版となり、またオープンソースとしてコードも公開されました。 公開以来、毎月のように更新・強化されており、使用方法も微妙に変化して来ていますので、今回、改めて基本的な使用方法をまとめてみました。 本記事は、VS Codeがインストールされており、下記のコマンドで、起動できるようになっている事を前提に始めます。 $ code . もし、まだ、インストールされていない場合は、下記をご参照ください。 Setting up Visual Studio Code また、Node.jsについてもインストールが完了しているものとします。 $ node -v v5.9.0 2 簡単なサーバープログラムの作成 (1) プロジェクトの作成 プロジェクト名をSampleAppと
All slide content and descriptions are owned by their creators.
Welkom bij Pelletkachels.nl, jouw ultieme bron voor alles wat met pelletkachels te maken heeft! Maar we zijn meer dan alleen een platform voor het bespreken van warmtebronnen. Bij Pelletkachels.nl geloven we dat het delen van kennis en ervaringen over bedrijven en gebeurtenissen ook essentieel is voor het creëren van een betrokken en geïnformeerde gemeenschap. In dit blog duiken we dieper in de we
一次ソースはこちら→ https://github.com/golang/proposal/blob/master/design/12416-cgo-pointers.md そのうち誰かが訳してくれると信じています 前提 この記事では、Goで確保されたメモリへのポインタをGoポインタとする1 この記事を書いている時点では、Go1.6はbeta2のため、まだ変わるかもしれない Goで確保されたメモリはGCされたり、将来的には自動で移動するようになるかもしれない2 C側で確保されたメモリはGCされない。将来的な自動移動も行われない Go1.6からどうなるか Goポインタをcgoの関数へ引数として渡すと、そのcgoの関数から返ってくるまでそのポインタが指すメモリは保護3されGCされたり移動したりしなくなる そのため、下記の点を注意する必要があります cgoの関数の引数経由以外の方法でGoポインタ
If you prefer video over blog posts, here is my talk on this at GopherCon 2016: https://www.youtube.com/watch?v=KyuFeiG3Y60 One of the strongest sides of Go programming language is a built-in concurrency based on Tony Hoare’s CSP paper. Go is designed with concurrency in mind and allows us to build complex concurrent pipelines. But have you ever wondered - how various concurrency patterns look lik
Webサービス事業者として僕が先行して調査したり研究・開発している技術の中で、Webサーバ設定におけるHTTP/2とそのmruby活用についてや、PFS(Perfect Foward Secrecy)を考慮したTLS設定と大量証明書設定の効率化について、社内のインフラエンジニア向けに技術共有を行いました。 内容としては、まずはざっくりと知ってもらう事を目的に、細かい要素技術について深く立ち入り過ぎない程度に、今後弊社でのWebサービスのインフラ技術周りのアーキテクチャを考える上で必要になりそうな事を中心にお話しましたので、少し汎用性に欠けるかもしれません。 特に技術的に見せられないような話ではないので、参考程度に公開しておきます。どこかで喋って欲しいみたいな依頼は随時受け付けておりますので、お気軽にお問い合わせ下さい。 以下の二本立てです。 HTTP/2とmrubyの活用 HTTP/2時代
Goらしいコードの書き方(ミニ) Go 1.6 Release Party 17 February 2016 鵜飼文敏 Fumitoshi Ukai Google Software Engineer - Chrome Infra team 巻末付録「Goらしいコードの書き方」を書きました。 Ebook is now available! 2 Go 1.6 言語仕様の変更 -> なし! Goらしいコードの書き方は基本的にかわっていない。 golang.org/doc/effective_go.html github.com/golang/go/wiki/CodeReviewComments 3 Effective Go Go is a new language. Although it borrows ideas from existing languages, it has unusual
Jeff Deanとは GoogleのSenior Fellow. Googleの基盤となる分散システムのほぼ全てに中心的に関わり、圧倒的なエンジニアリング能力を発揮したらしい。あまりにも尊敬されているため、IT業界において全盛期のイチロー伝説のような破天荒なホラ話のネタにされている人。 日本語での紹介がなさそうだったので意訳してみました。 元ネタはこちら。多すぎるのでGoogle社員じゃない人には面白みがわかりにくそうなもの、面白みが被っていると私が判断したものなどは省いてあります。 NP問題 Jeff DeanがGoogleの採用面接を受けたときに、もしP=NPが成り立つとしたらどうなるかを問われて"P=0かN=1ですね"と答えた。試験官が笑い終わりさえしないうちに彼はGoogleのpublic keyを突き止め、private keyをホワイトボードに書き終わった。 Jeff Dea
今回はTwitterの技術面のお話です。Twitterの広告サービスの裏にあるシステムをご紹介します。 人気のイベントやニュース速報、そのほか世界のどこかで事件が起こると、何億もの人々が Twitter を訪れ、大量のトラッフィクが発生します。ほとんどの場合これは予測不可能です。広告主の方々は、それぞれがターゲットとする利用者の方々にリーチするために、このような機会に迅速に反応します。その結果として、Twitter の広告の需要が急増します。このように変動する環境の中で収益を生む Twitter の広告配信システムは、広告のマッチング、スコア付け、そして配信を、巨大な規模で実現しています。私たちの広告配信システムの目標は、負荷が急上昇した時にも Twitter スケールのクエリをスムーズに処理し、すべてのクエリに対して最適な広告を見つけ出し、コンピューティングリソース使用量を常に最適なレベ
cgoを用いるとCのライブラリをGoバイナリにリンクしたり、Goパッケージの一部をCで書いたりできる。更にGo 1.5以降では、GoのパッケージをC用の静的ライブラリまたは動的ライブラリにまとめておいて、Cからリンクすることもできる。 これらの機能はすべてgo buildコマンドに統合されているので、普段は特にcgoを使っていることを意識することは少ない。しかし、pure goのコードのビルドにしたところでその裏側ではコンパイラ、アセンブラ、リンカが走っているわけである。ではcgoの場合をこの水準で見るとどのような処理が行われているのだろうか。 要は、gcc(1)の裏ではcc1, as, collect2なんかが走ってるよね、cgoではどうなってるの? という話が本稿の話題である。 なお、Goのオブジェクトファイルがプラットフォーム独立な(ELFとかではない)フォーマットであることや、Go
Writing High Performance Go GopherChina 17 April 2016 Dave Cheney Welcome 您好! Thank you for coming to my talk. Thank you also to the GopherChina organisers for inviting me to speak. My name is David. I'm a Go programmer from Sydney, Australia. I'm a contributor to the Go project and I run the Sydney Go Users' group. 2 Agenda This talk is aimed at development teams who are building production Go ap
Write and serve anywhere. Write your backend with iris web framework. Host it at any machine. Iris is written with Go, you can run Iris from mobile, raspberry pi or a desktop with the minimum machine power. Broad os support, baby. All major operating systems are supported including linux, bsd, android, macOS, windows. It’s gonna work good on all devices. Iris is written with Go programming languag
GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん
HTTPステータスコードを返すというのはとても単純なことです。ページがレンダリングできた?よし、それなら 200 を返しましょう。ページが存在しない?それなら 404 です。他のページにユーザをリダイレクトしたい? 302 、あるいは 301 かもしれません。 I like to imagine that HTTP status codes are like CB 10 codes. "Breaker breaker, this is White Chocolate Thunder. We've got a 200 OK here." — Aaron Patterson (@tenderlove) 2015, 10月 7 訳:HTTPのステータスコードのことは、市民ラジオの10コードみたいなものだと考えるのが好きです。「ブレーカー、ブレーカー、こちらホワイト・チョコレート・サンダー。200
私は大学時代に、興味本位でJavaScriptを始めて、それ以来ウェブページを幾つか作成してきました。JavaScriptは常にC言語やJavaの合間の楽しい息抜きでしたが、アニメーションや、ユーザをあっと言わせるようなちょっとしたことを提供するといった、特殊な目的にかなり限られた言語だと考えていました。JavaScriptは覚えやすく、開発者に具体的な結果をすぐにもたらしてくれるので、コーディングする方法を学びたいと思っている人に私が教えた最初の言語でした。JavaScriptにHTMLとCSSを少し組み合わせれば、ウェブページが出来上がります。プログラミング初心者には喜ばれます。 その後、あることが2年前に起こりました。当時、私は、主にサーバーサイドのコードとAndroid用のアプリのプロトタイプに取り組む研究職に近い立場にいました。すぐにNode.jsの存在が目に留まりました。バック
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはcpanクライアントApp::cpmの開発などで知られる鍛治匠一さんで、テーマは「Perlによる内部DSLの作り方」です。 DSLとは DSL(Domain Specific Language、ドメイン特化言語)とは、ある特定の問題領域に特化したコンピュータ言語のことで、汎用的なコンピュータ言語と対比されます。たとえば、 リレーショナルデータベースへの問い合わせに特化したSQL ビルド手順記述に特化したMakefile cpanモジュール依存記述に特化したcpanfile などがDSLです。 DSLの利点 ではDSLの利点は何でしょうか。次の点が挙げられると思います。 簡潔である 適切なDSLを用いれば、問題を簡潔に記述できます。その結果わかりやすくなり、その問題の重要な部分に集中できます。 クールである 簡潔
前回の(1)はこちらから。 Mojoliciousから見る内部DSLの利点と欠点 まず、Mojoliciousのルーティング定義を通してPerlの内部DSLの一例を紹介し、DSLを使わなかった場合との比較を行います。 Mojoliciousは人気のあるPerlのWebアプリケーションフレームワークです[1]。ルーティング定義の方法として、 routesオブジェクトにルーティングを定義していくオブジェクト指向的なやり方 RubyのSinatraに端を発した簡潔な内部DSLで定義するやり方 の2種類をサポートしています。それぞれの方法で定義したものが以下です。 オブジェクト指向版 { package MyApp; use Mojo::Base 'Mojolicious'; sub startup { my $self = shift; my $routes = $self->routes;
(1)はこちら、(2)はこちらから。 Plack::Builder から見る内部DSLを作るテクニック それでは、Plack::Builderのコードを通して、Perlで内部DSLを作るうえでのテクニックを紹介していきます。Plack::BuilderはPlackディストリビューションの一部で、PSGI(Perl Web Server Gateway Interface)アプリケーションを定義するためのDSLが書かれています。 PSGIは、いまやPerl界のデファクトスタンダードとなったWebサーバとWebアプリケーションフレームワークをつなぐ仕様であり、Plackはその実装です。このように大成功したPSGI/Plackの中でDSLがまさに効果的に使用されています。ぜひ、この活きた例からDSLの使いどころとそれを実現するためのテクニックを習得してください。 Plack::Builderの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く