Gather-Tech.info #95: コンテナ技術との向き合い方
#95です。
先週はpolyglotな汎用仮想マシンGraalVMの1.0がついにリリースされ話題になっていました。以下を見るとどういったものか理解できると思います。
- オラクル、JavaやJavaScript、Ruby、Pythonなど多言語対応を単一ランタイムで実現する「GraalVM」をオープンソースで公開。Twitterが本番環境で採用 : Publickey
- Oracle Blogs 日本語のまとめ: [Java] Announcing GraalVM: Run Programs Faster Anywhere
また、コンテナ活用をテーマとしたイベントJapan Container Days v18.12が開催されていました。以下に資料等がまとめられています。
- Japan Container Days v18.04 の資料 : Yukotan – Medium
- 「Japan Container Days v18.04」に参加して1日中コンテナのことを考えていた : kakakakakku blog
今週のイチオシ
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法 : SlideShare
コンテナ技術の考え方について。コンテナ技術がツラい理由、PaaSやServerlessとコンテナ技術の関係性、CaaS/PaaS/FaaSそれぞれのメリット/デメリットなどについて。プラットフォームを選ぶのはただの手段なので目的=ビジネスを明確にして選ぶようにする。
コンテナ技術との向き合い方が分かりやすくまとめられています。システム要求だけでなくビジネスの状態等によっても選択する最適解が変わるということ、どれか1つの最適解があるわけではないということが伝わってくる資料です。
ニュース
Announcing NGINX Unit 1.0 : NGINX
NGINX Unitが正式リリース。設定変更やアプリの入れ替えを再起動することなく行える。現状、Python、PHP、Ruby、Perl、Goを実行可能。
Google Cloud Platform Japan 公式ブログ: 東京 GCP リージョンで BigQuery の提供開始
BigQueryが東京リージョンでの提供を開始した。
Hello wasm-pack! : Mozilla Hacks – the Web developer blog
MozillaがRustでWebAssemblyの開発ができるwasm-packを公開した。作ったパッケージはそのままnpmにパブリッシュできる。
アーティクル
ファシリテーション時の「頭の中の枠」と「ボードの中の枠」 : Holidays in the Sun
ファシリテーションするときに意識することが書かれている。Open−Narrow−Closeモデルを意識する、議論の生産性を意識するなど。議論のアウトプットは高次の合意形成=((納得感×人数)+ 共創性)と考える。
electronでリリース用パッケージを作る : PartyIX
Electronのパッケージ作成方法について。アイコンの作り方、音声ファイルの埋め込み方、ビルド方法など。ビルドツールはelectron-packagerではなくelectron-builderを使ったほうがよい。
Use Markdown document on brand new PyPI : Aki Ariga – Medium
PyPIのサイトがリニューアルされた。ドキュメントはreStructuredTextだけでなくMarkdownも使用できるように。
I built a PWA and published it in 3 app stores. Here’s what I learned. : Debugger.Break()
音楽プレイヤーをPWAで作ったが再生の不具合等があったのでストアアプリ化した話。App Store、Google Play、Window Store向けにパッケージ化して得た知見がまとめられている。
Distributed architecture concepts I learned while building a large payments system
Uberの大規模な決済の分散システムを開発して得られた知見が書かれている。SAL、一貫性、データ耐久性、メッセージの永続性と耐久性などについて。
Titus, the Netflix container management platform, is now open source
Netflixのコンテナ管理プラットフォームがOSS化されたとのこと。Apache Mesos上で動くよう作られている。AWSの各機能とシームレスに統合されている。
スライド、ビデオ
grapi: Bulding JSON API server with grpc-gateway for microservices : Speaker Deck
grapiというGoでgRPCを利用するためのツールについて。gRPCを使うときの前準備などを生成してくれる。GoでのWeb APIを作る上での大変さ、それを解決するためのgRPCの利用、gRPCを使うときの大変さを段階的に説明していてgrapiが何を解決しようとしているのか分かりやすい。
Dgraph - A high performance graph database written in pure Go : Speaker Deck
Go製のグラフデータベースDgraphについて。グラフデータベースを使う理由、既存のグラフデータベースの問題点、Dgraphの特徴が書かれている。
vgo(Versioned Go Prototype) #golangtokyo : Speaker Deck
goコマンドに入る予定のパッケージ管理機能vgoについて。vendorディレクトリの廃止により$GOPATHから解放される、可能な限り古いバージョンが選択されるなど。
go-selfupdate-github で ツールを自己アップデートする : Speaker Deck
GoのCLIツールのアップデート方法の種類とそれぞれの問題点、それを解決するためにgo-selfupdate-githubを使って自己アップデートを組み込む方法について。
ツール、ライブラリ
VuePress
Vue.jsの静的サイトジェネレーター。Vue公式。
alberthier/git-webui: GitHub
WebベースのGitクライアント。ログ表示、コミットなど基本的な操作が可能。
azu/hatebupwa: GitHub
はてなブックマーク検索アプリ。オフライン検索も可能。実装方法などが以下で書かれている。
riktar/jkanban: GitHub
カンバンボードを表現できるJavaScriptのUIライブラリ。
Stetho
Androidアプリ用のデバッグツール。Chrome DevToolsでAndroidアプリのデバッグができる。
Canner/slate-md-editor: GitHub
Markdownを編集しながらリアルタイムレンダリングができるJavaScriptライブラリ。
サービス、アプリ
Hacker Daily - Daily podcast for hackers
Hacker Newsのデイリーダイジェストを配信してくれるポッドキャスト。
Zulip
Slackライクなグループチャット。スレッドモデルを採用。インテグレーションもAPIもある。
Learn to Code for Free – Grasshopper
コーディングが学べるiOSとAndroidアプリ。
GitHub Learning Lab
GitHubの使い方が学べるGitHubアプリ。実際に操作しながら学べる。途中でフォーラムに質問も可能。