タグ

ブックマーク / medium.com (249)

  • コンテナ技術を捨て、 WASIを試す

    こんにちは、NTTの藤田です。 Dockerfileを書くのに疲れた?イメージサイズの縮小で1日が終わった?コンテナの起動が遅すぎる?コンテナ技術と悪戦苦闘する皆様のための新技術、アーキテクチャに依存しないポータブルなバイナリフォーマットと数十μsで起動するsandbox環境を実現する、WebAssembly System Interface(WASI)を試してみました。 WebAssembly System InterfaceとはWASIは、 WebAssemblyWASM)をウェブブラウザ以外の環境で実行するため、 ホストのファイルやネットワークなどの資源に安全にアクセスさせるための仕様です。 具体的には、POSIXに似たAPIが定義されており、WASMのバイナリが、OSが管理する資源にアクセスできるようになります。 WASMは、ネイティブコードなみの速度で動作する、ポータブルなバイ

    コンテナ技術を捨て、 WASIを試す
  • Kubernetesでステートフルなゲームサーバを動かした思い出

    とあるスマートフォン向けMMORPGプロジェクトで、アプリケーションサーバをほぼすべてGKE(Google Kubernetes Engine)に乗っけて動かしていました。 このゲームは、モバイル向けながら、複数プレイヤ間でそこそこリアルタイム性の高い同時プレイができるものでした。同じフィールドを誰かが歩けば、自分が見ている画面でもほぼ同時にそいつが歩いて横切っていく、同じ敵と皆で一緒に戦えば、誰かが繰り出した攻撃が参加者全員の画面に即同期される、もちろんチャットもできる、そんな具合です。今ではさほど珍しくないのかもしれませんが、PCのオンラインゲームのような機能を搭載した、リアルタイム性の高いモバイルゲームでした。 さて、こうなってくると、オーソドックスなWebサーバのような、HTTP/1でリクエスト/リプライを捌く、というサーバだけでは要件を満たすことができません。 複数プレイヤ間で

    Kubernetesでステートフルなゲームサーバを動かした思い出
  • PostgreSQLでの透過的暗号化

    NTT OSSセンタの澤田です。NTT OSSセンタでは、PostgreSQLをより便利で強力なデータベースにするために、PostgreSQLコミュニティと連携してさまざまな開発を行っています。 近年PostgreSQLの適用領域が広がってきおり、金融系システムや、個人情報を扱うシステムにも適用したいという要望が高まってきています。NTT OSSセンタでは、PCI-DSS(クレジットカードセキュリティについて国際規約)等のよりセキュリティ要件の高い環境でもPostgreSQLを利用できるようにするために、セキュリティ機能の強化に取り組んでいます。その中でも、保存データの暗号化を行う「透過的暗号化機能」は最も注力して開発している機能の一つです。 記事では、開発中の透過的暗号化機能の概要や特徴について解説します。 PostgreSQLの暗号化における課題PostgreSQLはPGP暗号化関

    PostgreSQLでの透過的暗号化
  • A Netflix Web Performance Case Study – Dev Channel – Medium

    tl;dr: There are no silver bullets to web performance. Simple static pages benefit from being server-rendered with minimal JavaScript. Libraries can provide great value for complex pages when used with care. Netflix is one of the most popular video streaming services. Since launching globally in 2016, the company has found that many new users are not only signing up on mobile devices but are also

    A Netflix Web Performance Case Study – Dev Channel – Medium
  • 心理的安全性が高くアジャイルな組織設計

    心理的安全性の高いチームを作るためにサーバントマネージャーに徹する話などを聞くことがありますが、なんか大変そうだなーと考えてたら、これは組織設計の課題だと思ったわけです。 サーバントマネージャーは過渡期と割り切って、来の仕事である課題解決に時間を使えるようにしていったほうがいいです。 心理的安全性とは他者の反応に怯えたり羞恥心を感じることなく、自然体の自分を曝け出すことのできる環境や雰囲気のことを指します。 だそうです。失敗するかも…と早めに言えることはアジャイルな組織には必須です。 心理的安全性は1人のメンバーが日常的にコミュニケーションする相手との視座、視野、視点が近いと高くなると仮説を立ててみました。 視座、視野、視点の図 https://tech.drecom.co.jp/viewpoint-of-being-leader/視座が離れてる例:リーダーが超ベテランでメンバーが超若い

    心理的安全性が高くアジャイルな組織設計
  • VSM (Value Stream Mapping)を書いたらリリースリードタイムが約200時間も短縮できることがわかった話

    https://speakerdeck.com/i35_267/vsm-value-stream-mapping-wozuo-tutara-kai-fa-purosesugake-shi-hua-sarete-hui-falsehui-yi-de-yao-jian-ding-yi-kararirisumadewo268shi-jian-kara40shi-jian-ni-ridotaimuwoduan-suo-dekirukotogawakatutahua-fei-enziniademodekiruvsmzuo-cheng用語整理■ VSM (Value Stream Mapping) とは? VSM (Value Stream Mapping) とは、「価値の流れ」を可視化した**開発プロセスを可視化する**ための手法、活動になります。 — 詳しくは、 業務プロセス可視化 : VSM (

    VSM (Value Stream Mapping)を書いたらリリースリードタイムが約200時間も短縮できることがわかった話
  • It’s time! Migrating to Java 11

    Duke jumping to Java 11TL;DR;Describes the benefits of upgrading the application to Java 11.Migration can be done incrementally: run, compile, modularize.Full source code and related posts are available at the bottom. MotivationOracle JDK 8 will end its life in January, 2019 (153 days from now), stopping the release of public updates, so better start moving and stay up-to-date with latest JDK vers

    It’s time! Migrating to Java 11
  • GCP と OAuth2

    はじめにGCP のサービスにプログラムからアクセスするためには必ず認証・認可が必要ですが、以下のような様々なコマンドや概念が出てくるので少しとっつきにくい印象があります。 gcloud auth logingcloud auth application-default loginService AccountApplication Default Credentialsこれらの概念は認証・認可のベースとなっている OAuth2 の文脈で眺めてみると全体像が理解しやすくなるので、記事でまとめてみたいと思います。 GCP での認証・認可GCP の認証・認可は一部(*)を除いて全て OAuth2 ベースでやり取りされています。(* API Key) OAuth2 は三者間の手続きです。 3-Legged OAuth2Client が Resource Owner の代わりに Resource

    GCP と OAuth2
  • 3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium

    qsona (twitter) です。以前、7,600行のコードを安全にこの世から抹消した話 という記事を投稿しましたが、今回はそれよりもずっと泥臭い話を書きたいと思います。あまりテクニカルな話はありませんが、現場における取り組み・試行錯誤の経過を読んでいただければ幸いです。 たくさん消しました、がんばりました〜背景肥大化するRailsサービスFiNCはマイクロサービスを指向しており、主にRuby on Railsで書かれたサービスが30個ほど存在します。しかし、FiNCアプリのメインとなるRailsのサービスは、テーブル数800を超える大きなサービスになっています。 FiNCのサービスは2014年から書きはじめており、かなり初期の段階(2015年)からマイクロサービス化を意識してきました。にもかかわらず1つのサービスが肥大化している理由はいくつかあります。 最初の1〜2年ですでに大量のコ

    3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium
  • Designing the Future of Work

    At Google Cloud my job is to reimagine enterprise — the tools we build and how we design them. Traditional enterprise products don’t reflect how people work — our pain points, our tasks across the workday, our desire to stay a step ahead. They lack human-centered design. They lack AI. Before coming to Google, I spent much of my career wrestling with traditional software systems. They were meant to

    Designing the Future of Work
  • Cloud Spanner のハイレベルアーキテクチャ解説

    Last update: 2018/7/5 Google Cloud でゲーム担当をやっているサミールです。 日のトピックは私が大好きな Cloud Spanner となります。Cloud SpannerGCP のフルマネージド・グローバルスケール・リレーショナルデータベース・サービスです。Cloud Spanner は裏では NoSQL でよくある分散データベースですので、NoSQL の特性を提供しております。 HA (高可用性)水平方向のスケーラビリティ(動的にダウンタイムなしにノードの追加・削除が可能)なお MySQL のようなリレーショナルDB と同じ特性も提供しております。 スキーマ強整合性SQL クエリ(ANSI 2011)言い過ぎかもしれないが、マルチマスターの MySQL というイメージで良いと思います。 注意点:Cloud SpannerMySQL 互換では

    Cloud Spanner のハイレベルアーキテクチャ解説
  • Life: A secure, blazing-fast, cross-platform WebAssembly VM in Go.

    WebAssembly is a high-level instruction set enabling developers to easily design computationally heavy programs that may be securely run on web browsers. For many developers, it is a no-brainer that such a secure, high-level, yet performant instruction set has use cases in so many more places outside of the browser. Imagine writing blazing-fast WebAssembly programs running on your smart TVs/fridge

    Life: A secure, blazing-fast, cross-platform WebAssembly VM in Go.
  • Operationalizing Node.js for Server Side Rendering

    At Airbnb, we have spent years steadily migrating all Frontend code to a consistent architecture where entire web pages are written as a hierarchy of React components hydrated with data from our API. The role Ruby on Rails plays in getting the web to the browser is reduced every day. In fact, soon we will be transitioning to a new service that will deliver fully formed, server rendered web pages e

    Operationalizing Node.js for Server Side Rendering
  • FGO を支える負荷試験ツール

    これはアカツキとディライトワークスが共同で主催している “FGOなど大規模ゲームの課題から学ぶゲームサーバ・インフラ勉強会” での LT 発表資料です。こちらの資料に軽く補足を入れながら話をしていきます。 時雨堂では FGO の検証に利用するための負荷試験ツールを提供しています。 先日、大きめのメンテナンスが無事終わり、ほっとしています。 さて、メンテが無事終わって、FGO の中の人から以下のようなありがたいメッセージをもらいました。 負荷試験ツールなくしては今回の改修はなしえなかったと思いますので当にありがとうございました…。その負荷試験ツールがどんな仕組みで、どんなことを実現しているのかを書いていきます。時雨堂が負荷試験ツールで実現したことのみを書きます。 主に技術的な話というよりはこんなことやったよがほとんどです。 番データを利用した負荷試験利用されている負荷試験ツールは、時雨堂

  • TensorFlow XLA について. – SE Can’t Code. – Medium

    言わずと知れたTensorFlowというDeepLearningのOSSライブラリに、TensorFlow用のコンパイラであるTensorFlow XLAというものがある. 個人的にはDeepLearningや機械学習というものよりもコンパイラ周りの低レイヤのプログラミングに興味があるのでTensorFlowに最適化されたコンパイラはとても興味深い. DeepLearningは個人的な感覚として致命的に処理が遅いことと出力されるファイルサイズが巨大であることが扱いづらさのポイントであった. XLAはそれらの問題を解決するために特化したコンパイラであると言えると思う. TensorFlow XLAは一言で言うと、Linear Algebraのドメイン特化したコンパイラフレームワークである. 通常のTensorFlowは、TensorFlow Runtime上で動いているため、 TensorF

  • Coinbase式、最強の意思決定法

    In this post, I’ll share a framework we’ve developed at Coinbase that helps us make decisions more effectively. Our… この記事では、より効率的に意思決定を行うためにCoinbaseで開発されたフレームワークを紹介する。会社のコアバリューには「クリアなコミュニケーション」と「効率的な実行」というものがあり、紹介するフレームワークはこれらのコアバリューを可能にしている一例である。 以下のような意思決定の際に使用できる: 候補者を採用するかどうか商品開発のロードマップで何を優先するか他社の買収や自社の売却の是非プロダクトやチームをどう名付けるかなど。 もし困難な判断を迫られて、決定できずに延々と会議を続けていたり、気分が晴れなかったり、後悔するかもしれないと恐れている場合は、このフ

    Coinbase式、最強の意思決定法
  • How I write Go HTTP services after seven years

    UPDATE: You can watch a video of me giving this talk at Gophercon 2019:

  • https://link.medium.com/1jsAtPLA6T

    デザイン思考は、問題を探索・解決するための方法です。リーンは、私たちの信念を試し、適切な成果につなげる方法を学ぶためのフレームワークです。アジャイルは、ソフトウェアの変化していく状況に適応するための方法です。 デザイン思考は、能力と学習に関するものです。スタンフォードd.schoolのCarissa Carter主任は、デザイナーを高める能力について、素晴らしい記事を書いています。たとえば、曖昧さ、共感的学習、統合、実験などが、その能力として挙げられています。意味を生み出し、問題の枠組みを設定し、潜在的な解決策を探索する、デザイナーの能力が重要なのです。 『誰のためのデザイン?』の著者であるドナルド・ノーマンは「デザイナーは最初のアイデアに満足しない」と述べています。あなたも考えてみてください。最初のアイデアが最高のアイデアだったことはありますか?意味や新しいアイデアが生まれるのは、物事を

    https://link.medium.com/1jsAtPLA6T
  • 機械学習のためのGithub、CometMLを使ってみた - Liaro Engineering Blog - Medium

    CometMLとは開発をする際にGithubを使うことが多いと思いますが、機械学習のような開発段階でも実験を重ねる場合にはGithubは相性が良くないなと感じていました。 その課題を解決するサービスがCometMLです。やはり同じ課題を感じている人は多く、記事をシェアするだけで結構いいねが付きましたw このサービスは、機械学習の実験を管理するための様々な便利機能を提供しています。今回は簡単に使ってみた機能などを紹介しようと思います。 何が嬉しいのか、なぜ必要なのか機械学習プロダクトの開発工程は、一般的なソフトウェアの開発工程と異なる点が多いです。特に、構築したモデルを訓練し、その性能評価を行う「実験(Experiments)」は機械学習プロダクトの開発工程において重要なものです。 「実験」ではモデルの構造やハイパーパラメータなど、様々な条件や設定のもとで何度も行われます。どんな設定で行った

    機械学習のためのGithub、CometMLを使ってみた - Liaro Engineering Blog - Medium
  • 真面目な人を本気にさせる方法

    先日、他社の開発の方々が、アジャイルに関する相談ということで、弊社にいるアジャイルに詳しい髪の長いおじさんに訪ねてきた。その中で、実感駆動開発の話になって、久しぶりに「気(マジ)と真面目(マジメ)」の話を聞いた。 この話を聞いてから、人がプロダクトの価値について考えられるようになるにはどうしたらいいのか考えてみた。 TL;TRありきたりな回答だけれど、さっさとリリースして、さっさと使ってもらう。それをできるためのことを、もちろんリスクを下げつつ、できるようにするためのことを頑張ろう。 気と真面目 人はドキュメントを前にして真面目な態度を取るが、動くソフトウェアを前にして気になる。端的に言うと、人は仕様書などドキュメントを前にするとそれを徹底的に重箱の隅を突くようなレビュー(真面目)をしてしまうが、当に欲しかったことに対して考え始める(気)は実際のプロダクトを前にしてからという話だ

    真面目な人を本気にさせる方法