MacBook Pro 2016 Touch Bar搭載モデルのつらいところ
開発者のMac離れが進行中。移行先はLinuxか?TouchBar搭載モデル使ってるけど、だいぶ厳しくなってきた
2017/01/06 09:40
MacBook Pro 2016 Late、Touch Bar 搭載モデル(13")を購入して3週間ほど経ちました。
エンジニア観点で痒いところがそこそこ出てきたので、購入を検討する際の参考にしていただければ。
macOS/Windows10以外インストール不可
[現在のところMacBook Pro Late 2016にLinuxをインストールするのは難しいもよう。 | AAPL Ch.] 参照。
デバドラがサポートできなくなりつつあるとのことです。
自分がMacに乗り換えた理由の一つにWin/OSX/Linux全部直に使える、というのがあったのですが、その時代は終わってしまいました。
Gentoo入れてネイティブDockerでXしたり性能を持て余したりしたかったが残念...
BootCamp Hyper-V使用不可
厳密にはHyper-V プラットフォームを有効化→再起動するとブートが完了しなくなり、削除→再インストールするまで直らなくなります。
'15モデルから[CSM-BIOSがなくなり、UEFIのみになった]弊害でHyper-Vが使えなくなったとのこと。
'14モデルではBootCampからの再起動時にUEFIからBIOSに切り替える、ということをやっていたので有効だったとのこと。UEFIだと起動しない、という状況はHyper-V第2世代のUEFIサポートとは違う代物なのだろうか...?
現状これによってDocker for Windowsが使えない状況です。Hyper-V Container使いたかった...
Fキーが完全に無効になるタイミングがある
いまいち条件が把握できていないのですが、Fnキーを押してもTouch BarがFキーにならない状況があります。
文字入力の最中でも発生するので、カタカナ変換などが素直にできなくなり歯痒い思いをします。
常時Fキー表示オプションはアプリケーション単位でしか指定できず、網羅しようとするとかなり面倒です。
BootCamp BSOD時にFキーとEscが消える
BootCamp上のWindows10がひょんなことからブルースクリーンになり、その時F8キーでリカバリに入りたかったのですが
TouchBarが完全にブラックアウトしてFキーとEscキーどちらも入力できなくなっていました。
ハードウェアキーボードを繋げば認識するかもしれませんが、未確認です。
物理キーのありがたみを痛感して以来、左CtrlキーをEscにバインドしています。
心なしかCommand+Option+Touch BarのEscの強制終了ウィンドウ呼び出しも効いてない気がします。
TouchBarが規定以上のキーリピートでハングする
[vimやコマンドラインの効率を追求するため、Karabiner Elementsでキーリピート間隔を早めていた]のですが
この間隔がTouchBarのキーにも適用されるらしく、しかもハンドリングがお粗末なのか
標準以上に連打するとOS全体が固まって再起動する羽目に遭います。
TouchBarは高負荷時にはキーリリースのイベントも取りこぼすようで、ちょっと触っただけでホールド→リピート発生→虹...という理不尽な連携が簡単に決まってしまいます。
あまりにも厳しいのでキーリピートを標準に戻していますが、気を使いたくない...
Karabinerに代わるSandSツールが存在しない
MacBookというよりはmacOS Sierraにまつわる部分ですが、我々はKarabinerロスに長いこと悩まされています。
キーリピートや単純なリマップはKarabiner Elements、コマンドキーの英数/かな割当は⌘英かなでほぼ再現できますが、
SandS(Shift and Space)機能はKeyhac、Hammerspoonどちらもパフォーマンス的に限界があり、かなりの頻度でイベントを取りこぼしてしまいます。
これの代替を作るためだけにSwift macOSアプリを勉強中です。
ExcelとPhotoshopとAbleton Liveが使えるUNIXが出てきたら乗り換えを検討します。
GW中の抽象的な話題
父との対話
- パソコン通信から見続けている世代からすると、近年のパーソナライゼーションの流れは異様
- マイルドヤンキーは最初からいた
- 原体験にはかなわない
- テレビは大乗、プログラミングは上座部的
- 場を作る力で、金持ちになる以外に幸せになる手段を増やしてもらえれば
- NHKの名札を持って取材すると、インタビュイーが突っ込んだ話やアウトな話もどんどん喋ってくれる
- すごい仕事を続けていれば、見逃されない
- すごい仕事とは踏ん張ってやる仕事ではなく、普段の仕事のレベルが高い状態であること
- そういう人が踏ん張った時に天才の仕事と呼ばれることがある
- 野心を持ってやるとかよりは、目の前の仕事の質が高くあるかどうかの方が重要
- Skylakeに替えてみたらさっぱりソフトが対応してなくてつらい
芝居を見た帰り
- 例のアレタグがあんなにしぶといのは単に指差して笑える以外に何もぶら下がらないからなのでは?
- 何度n次創作の対象になっても、ただただ笑えることだけを目的にしてそれ以外が混ざらない気がする
- ホモと学ぶシリーズみたいに、もっと外から面白がってるコメントを眺めて楽しむ部分もある
- 一周して「知ってるだけで楽しめる」昔のサブカルの位置に居座っている感がある
- ビジネスでもアートでも、概ね手を動かせる人は面白いことを思いつけないことが多い
- 有名な人でも、頭一つ抜けるためには共作として別のベクトルの人と組んでいることがほとんど
- 手が動く人はだいたい人に指示することに慣れていないし、逆は名が知れることがない
- 独りで両方やっちゃってる人はそう遠くないうちに見つかって何か起きるのでは
- コミュニケーションが危うい人は周りの人が救いの手を差し伸べる傾向がある
- スキルが伴ってなくてもコミュニケーションがマトモなら勝手に学習するだろう、という雰囲気がある
- 技術職に限って言えば究極的には知ってる/わかる、だけで成立するので職能とは結びつかないけど、一緒に何かやる側としてのコストは雲泥の差がある
Wantedly API Gateway速習会
Wantedlyで各週で速習会をやっています
- 外部に公開していく、ということで社外の方にも参加してもらっています
講師
- Yohei Sugigami
- WantedlyでiOSエンジニアやってます
- Advent CalendarでServerless記事を書きました
環境準備5分、Lamba/API Gatewayの説明15分、ワークショップ20分、Serverless説明5分・WS40分
Lambdaとは
- クラウドコンピューティング
- 計算資源がネットの向こうにある
- Lambda Functionをデプロイするだけで動作
開発チームは本質的なプロダクトの開発にフォーカスできる
- 運用上のコストがコードだけに
利用可能言語
- node.js 0.10.36
- Java8
- Python2.7
制限
- 最大300秒
- 50MB
- 入出力6MB
- メモリ1.5GB
実行方法
- 1秒あたり数千リクエストまで自動スケール
- 無限呼び出し防止
- 同時実行数がデフォルト100で制限
- 変更可能
- Lambdaコードのロード
- 価格
- 処理時間×メモリ確保量+データ転送
- 100ms単位
- 128MB~1536MB
- RAMに比例してCPUもUP
- 128MB*100万回→0.2USD
- 1GB*100万回→1.68USD
- Hello worldのjsで30MBくらい
- 無料枠: 100万回・400000GB /月
- 1年たっても無料枠が消えない
- Pros
- 安価
- リクエスト単位なので、デプロイ自体はタダ
- 環境いくら用意してもかからない
- 運用メンテコストが低い
- 自動スケール、限界が高い
- Cons
- した2つはServerlessで解決できそう
- ユースケース
API Gateway
- 簡単にAPIの作成、配布、保守、監視、保護が行える
- プロキシみたいな
- 基本機能
- オプション
- 値段
- 100万回で4.25USD
- 10TB分まで0.14USD/GB、以降割引(CFと同じ)
- キャッシング(オプション) 0.5GBは0.2USD/月
Serverless
- '15 8月にJAWS
- '15 12月にissueを全部無視して、下位互換のないServerlessにリニューアル
- 3日前に0.1.0リリース、0.0系とのマイグレーションができないくらい破壊的変更があった
- 互換についてはかなりアグレッシブ
Project Structure
- _meta
- resources ... CFnテンプレート
- variables ... STG環境での設定など
- admin.env
- AWScreds
- package.json
- デプロイするときのライブラリ
- s-project.json
- Lambdaの設定 メモリ容量など
ロジック
- handler.jsでなく、lib/配下
- エンドポイント複数について、なるべくLambdaは同じ方がキャッシュが利きやすい
- データが大きすぎるとロードが長くなるのでバランスを見て
3818 2016-01-21 19:34 npm i -g serverless 3820 2016-01-21 19:37 serverless 3821 2016-01-21 19:37 serverless -v 3822 2016-01-21 20:03 serverless project create 3825 2016-01-21 20:04 mkdir serverless-study 3826 2016-01-21 20:04 cd serverless-study 3827 2016-01-21 20:04 serverless project create 3828 2016-01-21 20:07 cd serverless-2k0ri 3830 2016-01-21 20:09 serverless component create 3831 2016-01-21 20:10 serverless function run nodejscomponent/api/hello 3839 2016-01-21 20:12 serverless function create 3845 2016-01-21 20:18 serverless function run nodejscomponent/api/fetch 3846 2016-01-21 20:19 serverless function run nodejscomponent/api/hello 3848 2016-01-21 20:20 serverless dash deploy 3850 2016-01-21 20:21 serverless dash deploy 3851 2016-01-21 20:21 serverless env list 3853 2016-01-21 20:22 serverless env set 3854 2016-01-21 20:22 serverless env list 3856 2016-01-21 20:24 serverless run nodejscomponent/api/hello 3857 2016-01-21 20:24 serverless function run nodejscomponent/api/hello 3859 2016-01-21 20:24 serverless function run nodejscomponent/api/hello 3860 2016-01-21 20:25 serverless set env 3861 2016-01-21 20:25 serverless env list 3863 2016-01-21 20:25 serverless function run nodejscomponent/api/hello 3866 2016-01-21 20:26 serverless function run nodejscomponent/api/hello 3867 2016-01-21 20:26 serverless dash deploy 3870 2016-01-21 20:31 sls function run nodejscomponent/api/fetch 3872 2016-01-21 20:32 npm i benscholler/serverless-serve -S 3874 2016-01-21 20:33 sls serve start
- コケた時は
- LambdaかAPIGか、という切り分けからスタート
- エラーメッセージが少ない、"undefined"が返ることさえある
- まだまだServerlessはbreaking changeが起こり得る
- おもしろい技術なのでウォッチする価値はあり
こういう設計のAPIが今後出てくるのではないかなと
APIGはパブリックです
- EDoSを受けると多額の課金が発生する
- 消すか、スロットリング設定ををするか、limitをかけましょう
serverlessは今のところdestroyはなし
slsはAPIG抜きのLambdaだけのデプロイにも使える
- ちょっとでかい、という人はLambdaを送りつけるgulpを作ってる人もいる
対抗WAF:
apex/apex
- goも動くよ
- nodeからバイナリ実行させている
- 1300スターくらい付いてる
HHVM/Hack言語勉強会#1
HTML5 EXPERTSJP パフォーマンス・チューニング
- なかゆうすけ@HTML5 Experts.jp運営
中裕介
- @Tsukimikage
- JS/PHP/サーバインフラ構築
- HTML5Experts.jp 運営
実はあまりHHVMの話はしません...
- 実は置き換えるだけではハードル高くない
HTML5Experts.jp
- 会社の名前はほとんど出さずにやっているオウンドメディア
- 日本最高峰のWebエキスパートが記事を執筆
- 限りなく非営利
- 限りなく中立に
- すべての記事が永久保存版、を目指して
- 動機はいい技術者とのネットワーキングと、担当が好きでやってるから
- なぜこんなにパフォーマンスが悪いのか?
- 改善企画をやろう!自虐ネタはウケるよ、とスタート
- 竹洞陽一郎さんにアドバイスを仰ぐ
24/365 計測してますか?
- 場当たり的にやっても改善は意味が無い
- 継続してデータを取りつつ、本当の課題を導き出すのが重要
- 3ヶ月くらい計測していただきました
- ファースとバイトダウンロードタイム(TTFB)が遅い
- コンテンツが出始めるまでの時間
- 「50ms以内に収めろ」
- TCPを貼り直している
- パフォーマンストレンドが2秒を切れるように
- モバイル3Gからアクセスするとやはり時間がかかる
- モバイル向けの最適化
- スキャッタープロット(点グラフ)が下に固まってると安定的に配信できる
改善施策
- シェアボタン自作&キャッシュ
- 表示サイズより大きな画像の最適化
- マークアップの改善
- WordPressでキャッシュプログイン導入
- nginxの設定を変更しSafariで効くように改善
- php5-fpmからHHVMへ
- SPDY導入(SSLハンドシェイクのオーバーヘッドでパフォーマンスには悪影響が出ていた)
結果
- パフォーマンストレンド2秒未満達成
- スキャッタープロット改善(95パーセンタイルで2.5秒)
HHVMの導入
- ホスティングはCloundn FLAT Type, Cloudn RDB(MySQL SaaS)
- Ubuntu 14.04.4 LTS
- Nginx 1.8.0
- HHVM 3.11.0
- クリティカルなサービスではないのでわりとカジュアルに上がります
- Ansible, Serverspec, Jenkins
- 去年の5月頃は落ちまくっていたので、monitで落ちたら叩き起こすようにしていた
- 去年の夏頃からまったく落ちなくなりました
- バージョンは
apt-get update
で順調に上がっていっています
今後の課題
- 今後さらにガリガリチューニングしていくのか...?
- とはいえそれほど逼迫しているわけではない
HHVM/Hackでの転職サイト構築事例
- 吉元裕人
- 株式会社インテリジェンス/MIIDAS COMPANY所属
- サーバサイド・フロントエンド・インフラ
MIIDASをHackで構築した時の話
- 実際のエピソード多めで
- 入門
フロントエンド2名
- サーバサイド6名
- スマホアプリ2名
デザイン1名
'15 1月:仕様策定開始
- 3月 開発開始
7月 リリース
意識したこと
- 組織の成果とメンバーの挑戦、2つを高いレベルで両立すること
スタック
なぜHack?
- コアメンバーがPHPerだった
- 社内に多く、採用もしやすい
- 全く知らない言語よりもハードルが低く、なおかつチャレンジング
- いいものを作るために
- PHPよりパフォーマンスが高い
- 型の安心感
どうしてもダメな時はPHPでやりなおそう
WAFはFuelPHP
- 実は対応してない
- 最近はHHVMはWAFサポートを諦めて、「各自対応してくれ」スタンスだとか
- WAF自体はPHP製、触る部分から徐々にHack化できる
Hackの利点
開発ルールの統一
hh_client
学習の導入
- チュートリアル
- 言語仕様の確認
開発・運用して感じた点
- 負荷が高いとクラッシュすることがある
- Zabbixで監視→再起動をやっていた、最近は起きなくなった
- INIでメモリ使用量を調節を上げて改善した
- メールサーバのhostsを変えたタイミングで送るとエラーに
- HHVMがhostsをキャッシュしているっぽい
- PECLが使えない
- LevelDBとの連携のExtensionが動かない、代わりにHNIというものがある
- golangバッチで解決
CentOS6のサポート打ち切り
- 開発途中に急に打ち切り
- 速い代わりに大鉈を振られる
- 全サーバCentOS7に変更
頻繁なアップデート
- LTSでも48週間
- MIIDASは3.12にup予定、3.11で検証中
困っていること
HHVM on CentOS6 本番運用のうまみとつらみ
http://www.slideshare.net/K2ICE/hhvm-on-centos6
PHP7がリリースされた今、改めてHHVMについて考える
- 大谷祐司
- 株式会社インテリジェンス
- Hackの目指す所
- バグの無いコードを迅速に書けるように
- エンジニアがコーディング体験を楽しめる
- Hack/PHP7機能が比較
- タイプヒンティング
- functionの引数/戻り値がどの種別かを指定できる
- 7.0でようやくintやboolが使えるように
- PHP7のタイプヒンティングは2種類
- 弱い型指定: 自動キャスト
- 強い型指定: 厳密に比較
- Hackでは強い型指定のみがある
- mixedを使うと何でも入れられる
- null許容したいときは
?int
のように書く - Enumを使うとより強力に制約ができる
- 型を意識した大規模サービス向けの仕様
- コレクション
- Hackは3.11からNull合体演算子が使えるように
- PHP7の取り込みが始まっている
- Hackのみあるのがラムダ式、並列実行、Generics,Enum
- PHP7のみあるのが致命的エラーのハンドリング、defineで配列が呼べる
- hh_client
- タイプヒンティング
- 品質重視で開発するならHack
- スピード重視ならPHP7
- 棲み分けできてる気がする
- 個人的な印象
hhvm.php7.all = 1
- PHP7の後方互換のない機能を有効化する
- HHVMは5/7両方サポート、5→7への移行にも使えるかもしれない
- HackはPHPと同期して進化していく
- 7リリース後も、まだまだHackを選ぶ価値はある
- 大規模開発に効く
- PHPの生態系に新たな選択肢があるのは素晴らしい
クラウドごった煮#14 グッバイSSH
まずLT
- 各ベンダから7分ずつ
AWSJ 荒木さん
- 11月からADSJからAWSジャパンになりました
- AWS、いっぱいサービスが有ります、ほとんどSSHと関係ありません
- 関係ないサービスを選べば自ずとグッバイSSH
- サーバレスアーキテクチャ
- 温故知新
- '06 8/24、Amazon EC2発表
- この時点では大したことなかった
- 11/30、metadataが導入される
- デプロイ自動化
- 、に役立つサービス
- EB, CodeDeploy, OpsWorks, CFn
- EB登場時は「Google App Engineみたいなものです、いざとなったらSSHできます」と謳ってました
- 組み合わせも可能
- AWSのDockerユーザのうち相当な割合がEBのうえで動かしています
- AWS Management Portal for vCenter
- AWS Management Pack for Microsoft System Center
- '06 8/24、Amazon EC2発表
- SSHの次はグッバイEC2を目指しています
Microsoft 久森さん
- AzureでSSHとサヨナラする
- SSH, Chef, Puppet, Ansible...の流れでMSが出てくるのは時代ですね
- 結論:PaaSを使いましょう
- →VisualStudioを使いましょう
- 売りは一気通貫
- IaaSなんだけど、という方
- Azure Resource Manager
- jsonを書いて自動デプロイ
- CFn?
- Azure Automation
- PowerShellで自動管理
- Azure Resource Manager
- 違う、そんな極論と宣伝を聞きに来たんじゃない
- Linuxしかないし、今のサービスに適用したい
ここからが本編
- 複雑さを減らすな、仕事を減らせ
- 久森さん
- 半年前にジョイン、MS初心者
- クラウドや自動化が定時退社を与えてくれるわけではない
- Puppet, Chefはオンプレ向けプロダクト
- 1ノードごとに複数の役割を与えたい、それに応じてChef/Puppetは複雑なロール管理を備えた
- クラウドは雑に、柔軟に
- 複雑なセットアップは不要、複雑になっちゃうのはうまいこと分解できてないハズ
- Packerを使おう
- 結果として
- 監視は?
- 監視 as a Serviceが出てきてます
- セットアップ時にエージェント入れとけばOK
- MSはOMS(Operations Management Suite)というサービスが有ります
- 監視 as a Serviceが出てきてます
ニフティクラウド 竹内さん
- ニフティクラウドで実現する快眠度100%クラウドの作り方
- 竹内豪
- ぼくの睡眠状況
- 平均 5:59、快眠度65%
- 平均以上なのでエンジニアにしては快眠してると思う
- ニフティクラウドAutomation
- ニフティクラウドRDB
- RDS互換
- DRBD, MHA、チューニング、増設...
さくらインターネット 横田さん
- 横田真俊
- 2/3くらい同業者ですよね
- クラウド提供側の自動化
クラウド事業者にとって完全自動化は幻想
- クラウド(利用者側)は問題なくても、クラウド基盤(提供者)では問題がたくさん
- リソース増強
- ホストサーバ(実機)が必要
- もちろんリードタイム、スペック、根回しなどなどに気を使う
- サーバ以外にも買うものがある
- ネットワークストレージ
- アーカイブ用ストレージ
- NW機器
- Windowsライセンス
- ストレージ
- NW機器
- カタログスペックは幻想
- 検証時はとりあえず溢れさせる
- 機器をダウンさせるあらゆる方法を考える
- メーカ・ベンダのレスポンスも重要
- よくあるパターンはだいたい自動化出来ます
- 我々は出来るところから運用を自動化していってます
Cloudn 鈴木さん
- NTTコミュニケーションズ 鈴木大介
- '11入社、Cloudn開発チーム所属
- 電話がなる前に目が覚める生活をしていました
- Enterprise CloudとCloudn
- 前者はエンプラ基盤に対応、後者はAPIを整備
- '11入社、Cloudn開発チーム所属
- やってることはSSH
- Fabric
- トラブル対応
- 目指すのは完全自動化
- Enterprise Cloud 2.0での取り組み
- 拠点の海外展開のために自動化推進
IDCフロンティア 佐々木さん
- 「いつもSSHしてます」みたいな話をします
- 佐々木惇
- 数カ月前まで構築・運用
- 手作業の何がいけないか
- 作業ミスのリスク
- 知識・技術・権限が必要
- スケールしない
- エンジニアに負荷が集中、管理できる規模が限られる
- CloudStackの仮想ルータ
- 外部との接続のために必須
- 障害=サービス断
- 万単位で存在、勝手に増える、人手管理は不可能
- 放置したら数時間で通信不能に鳴る場合も...
- →監視と不具合対策を自動化
- 定期的なヘルスチェック、自動不具合修正
- 「自動化するしかない」ならある意味で楽
- 外部との接続のために必須
- キャパシティ監視
- 課題
- スクリプト書ける人が少ない、ワークフローめんどいなど
- 自動化によって大規模環境を技術・知識をあまり必要とせず
IBM Osonoiさん
- 拡大解釈します
- グッバイSSH
- エンジニアの幸せのためのクラウド
- エンジニアの幸せのための働き方
小薗井康志
いくつかのポイント
- オープンで標準的な技術をベースしましょう
- できればOSS、トレンドをつかんでおきましょう
- 会社の垣根を飛び越えて活動しましょう
- 社外コミュニティ
- 勉強会も各地であります
- できれば国境も
- デキる人と知り合おう
- やっぱり勉強会、コミュニティで
- オープンで標準的な技術をベースしましょう
-
- Open by design
- SoftLayerはOpenStack
- スケジューラを独自からHeatに
- BluemixはOpenFoundry, node.js
- "柔らさ層"でググるとSoftlayerの本が出てきます
- 透明性が高いです
- HW,NWの中身が公開されている
- 自前のPuppet,Chef,SaltStackを持ち込むユーザが多い
- 透明性が高いです
パネルディスカッション
- OUT: AWS / IN: VMware
- 内部基盤のバージョニングのロードマップなど、次何をしようとしてるのか?
- 独自はNiftyCloud、さくら、MS、VMware
- Softlayerはベアメタルなので仮想化レイヤからユーザに委ねられる
- 既存
- Cloudn: CloudStack、OpenStack
- Enterpriseの方はOpenStack寄り
- 個人的にはどっちに倒したい?
- 自分が運用しているのはCloudStackだけ
- IDCF: CloudStack
- Cloudn: CloudStack、OpenStack
- 独自
- クラウドを作る側?使う側?どっちに倒す?
- Nifty: 既存のオンプレ運用をいかにクラウドで再現するか、というとこころに苦心している人が多い
- Time as a Service(Cron as a Service)はかなりウケました
- 意外とNewRelicサワレナイ人が多い
- 思ったよりオンプレ運用を再現したい人が多い
- 要は定時退社できないから新しいことが覚えられていない、アプリが腐っていくのを見守るしか無い、という悪循環
- みなさんのお客さんはIaaS好きな方々ですか?
- VMwareはNWが自由にできるから入れたい、という需要が大なのではと伺ったのですが
- NSX使ってるとL2延伸100くらい出来る
- vSphereのHAは安定していて頼りしにている人が多い、ほかにvMotion
- ただ、それが付加価値になっているかどうか?という話
- Cloudn: 今あるものを動かしたい、プライベートクラウドから移行したいというケースが多い
- SoftLayer: ほぼほぼIaaSを触りたい人、という感じ
- Nifty, IDCF, さくらはスタートアップ半分、大企業半分みたいな感じ?
- 意外とPaaSは多くない、PaaSで超生産性を高めてる人もいる
- VisualStudioは素晴らしい
- 一般論として、どうしてPaaSは盛り上がらないのか
- 「〜〜〜 as a Service」の時点でSaaSだと思います
- 自分のアプリを作る上でデプロイとかを整備するもの、Herokuとか、をPaaSを呼ぶべきでは
- Microservicesのようなもの、単機能のものの寄せ集め、SpringBootとか...
- →SOAとは?という話になりそうなので中段
- 日本の場合はIaaS使いたい人が多い、その次にIBaaS、という感じ、まだまだそこからぬけ出せてないのでは
- EC2が出た頃はNWを想像してなかった
- ところがここ最近でNWが作れる、というの謳われだした
- NWを意識しなくてよかったのが再び意識されだしたのでは?
- さくらは意識させているように作っています、そして流行っているものは正しい
- AWSからVPCが出た時、VPCを作らないとEC2を作れないようになってちょっと悲しくなった
- AzureのWorker/Webがなくなった
- 既存の運用のセオリーを頭に持ってこないと使い方がわからなくなる、という部分がありそう
- ACLとSGが分離のしたのは最悪だったと思います
- でもどうせ全台にパブリックつけてるでしょ?という話なのでは
- さくらはほとんどそういうことはないです
- GWをがっつり提供しているからなのでは?
- VPC提供はクラックされるサーバが増えてきたからでは、というのがありそう
- 感覚的にはフラットだとクラウドネイティブっぽく、VPCがあると既存スタックを持ち寄る感覚が強い
- SoftLayerはスイッチ・ルータもベアメタル?
- NW周りで
- 個人的にはフラット+SGみたいなのがあればそれでいいのでは、と思うが学習コストの問題に落ち着くと思う
- クラスAが枯渇しそうな人?
- 今この状態を続けて幸せですか?
- IaaS寄り、学習コストの問題...
- 結局は見返りがあれば、という話になるのでは
- もしかしたら幸せな定時退社の世界があるのかもしれない、そのために頑張るというのは大いにありそう
- 学習コストが本当の敵?
- Nifty: 会社が認めてくれるかどうか、というのがほんとうによく聞く話
- IDCF: 周りの人がやりだした、時代の流れで変わってくる、というのも十分にある
- Cloudn: 結構クラウドやっていきましょう、となるが現場の意識の差はわりと大きいことがある、マインド
- さくら: 基本的には時代の流れ、EC2を始めるのにそんなにコストが高かっただろうか? いまNWが盛り返しているのはNWを触っている人たちがユーザになってきたとも言えるのでは
- MS: 先進的なユーザは気づいていて使っている、その時にどれくらいの情報が転がっていてどれくらい勉強させてくれるか次第 全体的な流れはまだまだIaaS
- VMware: 互換性から話をすると学習コストと検証コストを考えてIaaSを選ぶ人がやはり多そう、一方でアプリのアーキテクチャを変えないと価値が出ないというのも分かる人はわかっている
- Cloud Enabledになるために、次から作るアプリから検証されだすのでしょう
- 元クラウド事業者として...
- IaaSだからNWがくっついてきたのではないか?
- ブロードキャストを通るネットワークを持っているのはNifty, VMware
- 裏を返せば、世の中のほとんどのシステムは投資をする価値が無い、という経営判断がなされているとも言える
- 現場から経営を説得できていない
- 現状それを出来るとすればコスト削減がキモでしょう
- 小さな鉛筆でどうにかすることに慣れると、大きな鉛筆でやることが思いつかなくなってくる
- 定時退社の本当の問題は?
- 自分のやりたいことができないインフラエンジニアの敵は?
- ITインフラの人たちは社内がお客さんのことが多い
- SOR/SOEの話題が上がっている
- 運用の問題を解決するためにXaaSにシフトしていこう、というニーズがあんまりないのでは
- 経営で考えると、クラウドやるより減価償却したほうが圧倒的に安い
- それに打ち勝つためには人件費削減、定時退社はマストになる
- やはりグッバイSSHに話は戻る
- BSからPLに変わります、という話ではなく、こう人件費が浮きます、という話
- ハウジング・コロケーションを持っている事業者
- 答えのないところに問を求めてはいけない、というのが結論です
RCO Study Night #3 Spark・Scala勉強会
CET - Caputer Everything 全サービス横断リアルタイムデータ収集・分析基盤
- 吉田健二
- CETプロジェクト
- "Capture EveryThing"
- リクルータライフスタイルの全サービス横断でリアルタイムにデータ(システムログ、ユーザ行動、在校変動)の収集・分析
- リアルタイムデータ分析に必要な処理を一気通貫で
- エンジニア以外にビジネス系のディレクター、データサイエンティストも
- CETが解決する問題
- サービス・ビジネスに関するあらゆる情報の変化(ユーザ行動、在庫量の変動など)を我々サービス提供者がリアルタイムに把握できていない
- 状況に応じて最適な施策を打てるように
- サービス
- システム構成
- 可視化事例
- GCPの新しいサービス(Pub/Sub, CloudProc, BigTable)
- 何故?
- BigTable選定にあわせて更新系をGCPに置き換え
- EMR -> DataProc, Kinesis -> Pub/Sub
- Cloud Pub/Sub
- Apache Kafka, Amaon Kinesisみたいなやつ
- 2ヶ月運用していて、概ね不満はないがいくつか制限がある
- 1回のPublish上限が1000件まで、緩和はできないっぽい
- tdを並列に走らせたり、td側がで1000件ずつ分割させたりしている(自前でプラグイン書いた)
- Subscribe上限も1度に1000件まで
- ドキュメントに設定があるんだけど、1000件で頭打ちしちゃった
- 1000/回はやっぱりちょっと遅い、Sparkのレシーバクラス側をマルチスレッドでpullのリクエストを投げるように実装中です
- 1回のPublish上限が1000件まで、緩和はできないっぽい
- Spark Streaming + Cloud Pub/Subのサンプルが実用的でなかった
- Spark Streamingのレシーバクラスが必要なのだが独自実装で書かれてなかった
- Recieverクラスを自前で実装しました
- Cloud BigTable
- DataProc
今後検討していること
- 在庫変動データに基づいた、在庫売り切れ予測
- リアルタイム異常検知
Q&A
- リアルタイムUU算出ってどれくらいのパフォーマンス?BigTableは足引っ張ってる?
- near realtimeで出せてます
- BigTable側で変更を通知するAPIがある?
- 通知はしていない
- サービス側から定期的にポーリングをかけて、都度BigTableから持ってきている
- ハイブリッドクラウドの運用上の負荷は出た?
- Pub/SubとKinesisのコスト上の差異は
- 運用が違うが、現状Pub/Subの方が高くなってる
- Kinesisはストリームを作らないといけないが、Pub/Subはいらない
- 同じ量だとどうなんだろう、同じくらいかも...
- Cloud Dataflowにしなかった理由はありますか?
- ウィンドウ集計の要求があって、技術検証を兼ねてSparkを名指しで採用、Dataflowはあまり調べてなかったがもしかしたらソッチのほうがいいのかも
- ウィンドウ集計はどこかに永続化している?
- BigTableのみです
- リアルタイムUU算出ってどれくらいのパフォーマンス?BigTableは足引っ張ってる?
DSP開発におけるSpark MLlibの活用
- 棚橋耕太郎
- DIMSUM; 類似商品の高速な近似計算
- DSPにどう活用されている?
- 10万×10万でやるとやはりデカいので、分散処理したい
- ナイーブにMapReduceで内積を求めると
- MapReduceで気をつけるのはシャッフルサイズ
- ネットワークの計算複雑性
- m:行数、L:行あたりの非ゼロ要素の個数
- シャッフルサイズがO(mL2)に、行数mの増大で計算不可能にまで膨れる
- MapReduceで気をつけるのはシャッフルサイズ
- DIMSUM
- DIMSUMの照明
- Chernoff boundで証明しています
- Twitterでやってみた結果が論文にも乗っている、40%の計算量負荷軽減に
- ちょうどいいのはエラー10%以下、のγ=2logn/ε
- MLlibにおけるDIMSUM
val mat: RowMatrix = new RowMatrix(rows)
val sim= mat.columnsSimilarities(1000)
- word2vec; 単語の特徴ベクトル作成
- GoogleのMikolovさん
- 単語をベクトル化して便利になるツール
- アイテム特徴量の作成に使っている
- アイテムのwebページに含まれる単語の特徴ベクトルを示せる
- あるユーザについてすべて平均化するとユーザの特徴量が出せる
- CVとの関係を回帰学習させられる
- これをWebページについて行う試み
- ページ数3000万、ユーザ数7~8000万、 PV1.6億/日
- ->Spark使ってみました
- MLlibのword2vecはGoogleのC実装からの移植、制限が強い
- Skip gramの階層的なソフトマックスのみ
- ネガティブサンプリングを使いたかったので実装
- 頻出単語に強いです
- じつは単純で、似非ディープラーニング
- MLlibのword2vec cont'd
- ちゃんと動きません!
- 単語ベクトルが発散してしまう
- データシャードに分けて学習してReduceするときに、全部のパラメータを足しちゃう
- 単純平均にして、すべてのパラメータをパーティション数で割って計算させて劇的に改善しました
- 単純平均だと学習速度が低い
- parameter server型モデル
- '13の論文
- 1箇所(parameter server)にパラメータを置く
- ○パラメータ次元が大きくても分散保持できる、収束速度向上
- アドテク業界だとロジスティック回帰で10Bになったりするので、結構なアドバンテージです
- ✕sparkは非対応、通信コスト大
- ○パラメータ次元が大きくても分散保持できる、収束速度向上
- Sparkでparameter serverを使えるDist-MLをintelが出してるが、イマイチ早くならなかったです
- ちゃんと動きません!
- GoogleのMikolovさん
- Splash; 分散word2vec学習の高速化
- パラメータをノードでこべつに学習、重み付けすることで高い学習効率
- Splashの戦略
- Splashの収束性能
- SGDやL-BFGSに比べて非常に速い、100倍位早くなってるように見える
- まとめ
- DIMSUMなどの分散処理向けアルゴリズムをうまく使いこなしたい
- MLlibは便利だが、注意深く使わないと性能が発揮できない
- MLlib以外の選択肢も考慮にいれるといいかも
- 完成されたもの、というわけではない
- Q&A
- DIMSUM、以前やったら商品数/ユーザ数の増加に応じて加速度的にメモリ消費量が増えた、具体的な数字はありますか
- ノード数を増やすほど速くはなるが、EMRのm3.large上でエクゼキュータは4台、Sparkメモリサイズはあんまり大きくしていない
- ソートするときのほうが時間がかかっていた ←Driverのメモリに依存
- アイテム数などに応じた学習までの計算時間は、系統的なのは出せないが30分とか
- 協調フィルタリング以外の類似度を求めるアルゴリズムとくらべて結果でどれくらい差がでましたか
- cos類似度以外にはやってない、アイテムの類似度を使ってコンテンツを...とかはしてないです
- 汎用的に作るためにアイテムのコンテンツには着目していない、R社はめちゃくちゃなバリエーションなので...
- データが1回以上訪れられた時に、訪れられていたかどうかのカウント
- これは結構スパース、あるていど行列が抑えられていた状態で計算しているというイメージです
- 広告アイテムの推薦、のゴールは期待した値が出たらOK?何かしらのしきい値がある?
- 今回は実際に総当り計算した時との差です
- 最終的なゴールはcos類似度よりは実際のtop100とかとの差異を縮めていく方向
- DIMSUM、以前やったら商品数/ユーザ数の増加に応じて加速度的にメモリ消費量が増えた、具体的な数字はありますか
R使いがSparkを使ったら
- 早川敦士
- R言語のからみるSpark
- Strata Hadoop
- カンファレンスのメインテーマはSpark
- 行った後のぼく
- 時代はSparkだ!
- R言語ではさばけない大規模データをSparkで処理したい
- 馴染み深いDataFrameも使える!
- R言語ユーザにとってお馴染みのdata.frame
- SparkにおけるDataFrame
- Spark DataFrameとR言語の比較
- データの読み込み
- Rなら1コマンド、Sparkは自前パースか別のライブラリ
- 最初の?行
df %>% head(1)
df.limit(1)
- dataframeのhead()だと結果が帰ってこないのでlimit()じゃないと困る
- 列の選択はどちらもselect
- 条件に一致する行
df %>% filter(Sepal_Length > 5)
df.filter($"Sepal_Length".gt(5)
- groupByで行数カウント
- Sparkは
agg()
でまとめてもOK
- Sparkは
- ソート
- Rは
arrange
、Sparkはsort
- Rは
- ランク
- Rは
rank
、SparkはHiveContext
と書きながらSQLContext
を使わないと動かないようですalias()
とas()
はソースを見ると中身はほぼ一緒でした
- Rは
- partitionBy
df()
は$""
の方がイケてる、と先輩から突っ込まれました- rowNumber
- pgSQLはよく使うかも
- Rだと
n
に何行目か入っている - Sparkは
rowNumber
を呼ばないといけない
- 差分を求める
lag()
- 累積和
- Rは
cumsum()
- Sparkは
sum()
でイケるみたいです
- Rは
- inner join
- あらかじめデータ側でやってることが多そうですが
- R:
inner_join()
- Spark:
join().where($"..." === $"..." && $",,," === $",,,")
- データの読み込み
- 今後のSparkはRDDではなく、DataFrameがメインになっていく可能性が高いので、明日から使おう!!
- Q&A
- DataFrameにおいてRにあってSparkにない機能はありました?
- ドキュメントが揃ってなくて使いづらい以外は大丈夫かなと
- SparkRは今回は調べてないです
- DataFrameにおいてRにあってSparkにない機能はありました?
Ableton Meetup Tokyo #1
- 最近のAbletonトピック
- Ableton Loop
- 11/14 16:00
- Ableton Meetup Tokyo Special Session @RedBullStudio Toyo Hall
- 日本の認定トレーナー6人が全員集結します
- 無料、アルコール出ます
- 特にビール
フィンガードラムのTips紹介 / abletonでリアルドラマーに差をつけろ
- reona
- ドラマー、トラックメーカー、DJ '07~
- セットアップ
- Ableton
- Machine
- volca bass
- 生ドラムやっててストレスがたまる、サンプラーもあんまり楽しく叩けない
- Abletonで楽しむトピックス
- 今日の話はAbletonでドラムを叩く
- HWはMachine、しかしMIDIモード
- Machineモードだと運指が合わない
- 指ドラマーは運指を大事にしています
- Abletonのドラムラックで好きな運指に変えられる
- ドラムラックを通してマッピングを司る
- ドラムっぽさにはベロシティがとても重要
- リバーブをかけたい
- 以上、生ドラムっぽい話でした
- 一人で曲っぽくするあそび
- External InstrumentsでドラムラックをMachineのパッドに対応させている
- セミナーやってるとベロシティのことを知らない人が結構いる
- 感情的になるほど豊かになるアンサンブルという設計は面白い
- Q&A: レイテンシは
- あんまり気にならない、MIDI->ReactorのFINGERはMachineの別の軸(左手)で掛けている
- Utilityでパン振りのON/OFFをCCで切り替えている
- Reactor FINGERはlooperというよりはglitch
- あんまり気にならない、MIDI->ReactorのFINGERはMachineの別の軸(左手)で掛けている
- ミュートはMachineの液晶の上のボタンでミキサーOUTのON/OFFをMIDIマッピング
- 左上のキーで全ミュートにしているのはMasterに挟んだUtilityのON/OFFでマッピング
- マッピングはAbletonのプロジェクトを横断してパートごとに呼び出せる、プロジェクト内のMIDIごと持ってこれる
実験音楽とAbleton Liveの親和性 〜Ableton Liveはなんでも許してくれる〜
- 岡崎ぜったろう
- mammoth
- セットアップ、Live周りだけ
- あとは鳴らす
- MIDIコンでルーパーを共有したり、現場で録音したり
Masterに結構刺してます、雑にやってもそれなりにグリッドしたものになってくれるのがよいところ
かぶり気味の音を調整、各ラックのエフェクトの操作
- nanoKontrolの縦フェーダーをトグルスイッチとして使うとか
- ボタンはすぐに取り出したいエフェクトのトリガに、パンポットにディケイ、ビートリピート、パスフィルタなど
- これらのグリッチはすべてMasterに挿している
- 各人ヘッドホン無し、モニタはあえて捨てて迷子になりに行ってる感じ
- 構成はこういうジャンル(ノイズとか)はだいたい即興(インプロ)、我々楽譜も読めない
- エフェクタ共有はそれぞれの楽器に対して
- アナログシンセ、USB経由でMIDIを飛ばして鳴らすこともあればエフェクターのようにシグナルやCVごと流す
- ダレたときにこれみよがしにパッチングしたりしてます
- ドローンの音は作り方は我々もよくわかってないままいい感じになった時に残してってます
- 奇跡の集積です
Stemを使ったライブセットの構築/演奏
- Josh Bess
- How to bring original studio music to live stage performance
- Stem
- 個別のトラック
- ドラム、ベース、リズム、リード、ボーカル....
- Full Song
- すべてのトラック
- ライブの時は両方使う
- Stemsを書き出すときには「選択しているトラックのみ」出力するように
- トラックをタイムラインに並べる
- タイムライン側(アレンジメントビュー)でキューポイントを設置して、セッションビューでポイントをもとに展開を制御
- アレンジメントビューですべて選択して、ドラッグしながらTabでセッションに持ち込み
- 展開ごとの各パートのStemを時間×パートで自在に組み合わせられるように
- 2つのプロジェクトを同じセッションに斜めに並べて、各パーツを混在させられる
- Q&A: 前に出てくる音はどうやって作る?
- 使う音を選ぶ
- トランジェントをパキッと合わせる、タイミング重要
- 一斉に鳴るか
- 音源としてはexportするので途中から全部audioになります
- Q: サイドチェインのかかってる音はどうやってfreezeする?
- I never used.
- サイドチェインは使わない
- ユーティリティで人力でエンベロープを描いている
- キック起因のサイドチェインはキックとの対応しかできない、自力で描けばいくらでも表情の調整ができる
- freezeしてフラット化すれば音がまとまる
- Q: 曲同士のキーを揃えるには?
- DJプレイと同じく、キックから出して入れ替え
- クリップの末尾にキー書きますよね
- Q: コントローラは?