日々の色々

そのときやってることはまってることについて書いてくよ

SRE Lounge #9 参加レポ

SRE Lounge #9 とは

https://sre-lounge.connpass.com/event/129214/

講演内容

1. DIPのSREの活動とこれから @bayashi_ok

SREのスタート

エンジニア110名(内インフラエンジニア8名)
まずは自動化(Ansible)と可視化を導入した.

自動化

□ 自動化を根付かせるために

  • コード化するメリットを教える
  • 効率性を意識させる(リリースにかかる時間等)
  • 他社事例紹介
  • 何度でも粘り強く教える
  • 馴染みのある言葉で教える
  • 自動化の領域を広げる(頻度の高いものから変えていった)
  • SREチームがコードチェックする(コードに自由度が高いため)
可視化

可視化自体はすんなり進んだ
可視化したことで404が異様に多い,致命的なエラーがあるといったような問題が発覚

□ 可視化で得られたメリット

  • チームへの現状把握と問題の共有
  • コミュニケーションが広がり,エラーを拾えるように

SREのスタート地点に!!

速度改善の取り組み

上から検索上位に出すために速度改善がふってきた
画像最適化で貢献
fastlyを利用
結果,サイトスピードと応募率が改善
画像転送量も減り,料金的にも優しく

SREの現在と今後

Toilの削減
部署連携

Q&A

メンバーはシステム開発部から発足
本業とのバランスは本業7~6:SRE4~3ぐらいの割合

自動化したいと言う要望はもともとあったので,草の根活動をしながら導入していった

2. タップルSREの軌跡と描く未来 @genreaaaa

以前体験したチームの解散

プロダクトへのインパクトを求めすぎた
事業的に改善系は見えづらい

タップルでのSRE

足元課題はSLOの実現
中長期的な成長を見据える

タップルSREでやってきたこと

・ SLO ・リスクスコア
 リスクスコアを計算して100以下に保つようにしている

・オンボーディング
 アーキテクチャの管理

・障害対応
障害フローの整備 義務化のマインドセット  障害対応当番制の導入

・セキュリティーシート

・理想状態定義とロードマップ作成
 理想状態を技術ボードを中心に作成  SREとして理想状態に向けロードマップを作成

実現したい未来

事業に寄り添った形に加え,さらに信頼性に振り切った形にしたい
タップルのセキュアベースとなりたい

Q&A

  1. リスクスコア等の決め方は?
  2. 障害の問い合わせ件数で重要度を評価
    しきい値の決め方はエンジニアリーダーを中心に決定

  3. 眼の前の課題と中長期課題の2種類へのバランスは?

  4. SLOを使い,課題を満たしているうちは中長期課題をやっている

  5. リスクスコアの管理方法は?

  6. issueにはられたimpactのラベルをもとにDataDogで可視化している

  7. 「できる人がやる」から「みんなでやれるように」するためのコツ

  8. 当番制にすることで責任感をもたせつつ,運用中

3. エムスリーはどのようにしてSREを始めたか @tshohe1

SREチームについて

SREチームは横断組織として存在
インフラチームの配下組織として発足
リーダー1, メンバー4, セキュリティーチーム兼任1

従来のインフラチームの作業+SRE本に載っていること

SREチームの活動

・SLOの決定
小さなサービスから初めて広げていった

・SLIの決定
稼働率とレスポンスタイムから決定

・可視化
SLO/SLIを一覧できるKibanaダッシュボードを整備
SLO一覧からサッシュボードへリンク

・アラート
SLOに応じて一日ごとに測定・Slackへ通知

・SLOの定期的な見直し
各チームの開発陣とSREチームで3ヶ月に一度程度実施(昔は隔週だったが頻度は適宜変えている)

今後

SLO変更ルールを厳密に アラートがノイジーにならないように

感想

他の組織でどのような思想でどんなふうにSREを促進していったのかという知見を聴けてとても参考になった.
SREを詳しく知らない私でもわかりやすい発表が多く,初心者でも安心して聴きにこれる内容だった.
SLOの定期的な見直しを期日を決めてきちんと運用するのは,実行まで移すのはとても難しいと思うので, きっちり実施しているエムスリーさんすごい…
懇親会では他社でのSLOの決定のフローやマイクロサービス化の事例などを聞くことができ, 草の根活動の広め方などはとても参考になった.

Frontrend × Bonfire Frontend レポ

Frontrend × Bonfire Frontendについて

frontrend.connpass.com

公開するのを完全に忘れていた…

講演

新卒3年目、ヤフーで学んだ2年間を振り返る

濱田 唯 / ヤフー株式会社 メディアカンパニー マーケティングソリューションズ統括本部 (2017入社 エンジニア入社からフロントエンド)

エンジニアとして新卒入社しWebフロントエンドに触れてから丸2年、ヤフーのBtoBツール開発を通して学んだことを振り返ります。

2年間の流れ

  1. . 基礎技術研修
  2. . OJT
  3. . 本配属

振り返り

チーム開発の心構え

■ レビューは大事

読めるコードにする意識→他人の作業を止めないために 自分もレビュー最優先ぐらいの気持ちでやる

■ 設計

ルールが言語化 メンバーの合意

■ 新しい技術に対する意識

何を使うにしても,知らなければ議論にすらならない

AbemaTV 新卒1年目エンジニア実録

野口 直寛 @nodaguti / 株式会社AbemaTV 開発本部

2018年4月に新卒入社し研修を経て5月に AbemaTV へ配属されたエンジニアが,1年間をどのように駆け抜けてきたかについて赤裸々にお話しいたします.

振り返り

1年で560PR, 日に400行

■ 小さな機能

■ リコメンデーション機能 AbemaTVはReactと独自のFlux

■ Abema ビデオ視聴のモバイル対応 仕様からのタスク分解・見積もり

■ 見逃し視聴のモバイル対応 モバイルブラウザをプロダクトとしてどう伸ばすのか

■ モバイル視聴の改善タスク pretterの導入など

■ ある大型案件 仕様が曖昧 特定のタイミングでサーバーにリクエストが集中 他部署との連携なども学べた

■ 一年目のまとめ 機能開発をUXとKPIの2つの視点から見れるように

これから

・テックリードとして成長していく  →リーダーシップの発揮

・専門性 High performance website

・技術から事業に貢献できるエンジニアになる 自分がやりたいパフォーマンスチューニングをやっていけば事業も伸ばせるwin-winの関係を気づける

Webフロントエンド&デザインで学んだ2年間を総括

内藤 秀彦 / ヤフー株式会社 ショピング統括本部 (2017入社 デザイナー入社からフロントエンド)

3年目になる今、ヤフーショッピングのWebフロントエンド&デザインを担当して学んだ2年間を総括します。

OJT研修(ショッピング)

デザインによるサービス改善

2年目の終わりまで

CVRを伸ばすためにテストし,その結果から勝ち筋を見つける 勝ち筋を高い再現度で回していく

こえのブログでのPWA 〜開発現場編〜

原 一成 @herablog / 株式会社サイバーエージェント メディア統括本部

「こえのブログ」はアメブロに追加された音声配信機能です。本セッションでは、新機能開発における技術選定、開発フローやドキュメント作成など「開発現場」に焦点を当ててお話します。

こえのブログでやったこと

こえのブログとはしゃべるだけでブログを投稿できるサービス 本人の声でブログを投稿できるため,価値の向上が見込める(ex. 有名人の声付きのブログ Webアプリでもネイティブアプリのように動き、Client Side Renderingで高速なアプリを目指す

PRPL patternを利用

CDN活用 できるだけ長くCDNキャッシュするためにイベントドリブンで更新

コンポーネント指向で開発

Webでオーディオレコーディング

ブラウザのマイクを利用 データ量のためにクライアント上でWAVからMP3に変換

開発フロー

餅つき開発 最速でプロトタイプを作って,改善していく

最速でプロトタイプ  改善サイクルをまわせ、品質が向上  出戻りを恐れない

CAではPerformance Budgetの導入をすすめている

クレカがなくてもストレングスファインダー

アルバイト先でGallupのStrengthsFinderを受ける機会があったので、そのやり方について簡単に紹介します。 その前に、そもそもStrengthsFinderってなんだよ知らんわって人も多いと思います(私も今回はじめて知った)。 なので、先にStrengthFinderの説明おば(以下のURLはStrengthFinderの日本語サイト)

www.gallupstrengthscenter.com

StrengthsFinderとは

StrengthsFinderとは、一言でいうと自分の強みを探し教えてくれるシステムです(ドンッ!
そのまんまじゃねぇかって石投げないでくださいw

ちゃんと説明すると、StrengthsFindはアメリカの世論調査と組織コンサルティングを行うGallup社が「人は自分の弱みを改善するよりも、自分の強みに意識を向けそれを活かすことで最大の能力を発揮する」という考え方に基づき開発したツールだそうです。 具体的には、質問に答えていき、そこから自分の強みを見つけ、アドバイスをくれます。 ここまでの説明では、よくある診断システムの一種ですね。 しかし、StrengthsFinderは自分の強みに対して提示される圧倒的な情報量や、その後の行動計画を具体的に示してくれることなどが、一般的な診断システムとの違いです。 実にアメリカらしいサービスですね(偏見)。 まぁその代わりそこそこお金がかかるのですが、Top5についてだけみたいなら1000円程度で済み、見返りはそれ以上にあったと思うので、自分は気にならなかったです。

StrengthsFinderをやってみる

それでは、StrengthsFinderをやってみましょう。そしてやっと本題なのですが、StrengthsFinderはクレジットカードがあるならWebからすぐにできるのですが、ない場合は直ぐにできません。。。

そこで、appleandroidStrengthsFinderアプリをダウンロードし課金カードを利用してアプリ内課金を行うわけです。

手順としては、AppleStoreなりGooglePlayなりでStrengthsFinderと検索し、以下のアプリをダウンロードします。 アプリは、英語ですがテスト自体は日本語で受けることができるので安心して下さい。 f:id:ucchi_in:20160526064121p:plain

そして、アプリを開くとこんな画面が出てくると重います。

f:id:ucchi_in:20160526064327p:plain

この画面のGet Your Strengthsを押した後、Top5のところのpurchaseボタンを押します(34個全て見たい人は下の方を)。 そして進めていくとプロフィール欄がでてくるのでプロフィールを入れていって登録は完了です。 自分はこの後、PCからログインしてテストを受けましたが、勿論スマホからもテストは受けれるみたいです。

おわりに

私の強みはこんな感じでした。 f:id:ucchi_in:20160526122638p:plain

StrengthsFinderをやって自分の内面を見つめる良い機会となったと思います。 やってみて大変面白かったので、皆さんも是非やってみてください!!

ジャストシステムでのインターンシップ

人工無脳バトル

もうだいぶったってしまいましたが、12月12~13日にジャストシステムでのインターンシップに参加しました。人工無脳バトルということで、Twitterbotを開発してリプライ数などを競うといった内容で、時間的にもハッカソンのような開発大会といった感じでした。開発言語はPythonに決定しました。私が担当した部分としては、サンプルがRubyだったので、それをPythonに書き換えるといった部分と、APIに投げる形式に情報を整えるといった部分を担当しました。RubyPythonの両方を触ったことがあって良かったです。

JustTechTalk

1月15日にジャストシステムの勉強会JustTechTalkで人工無脳バトルについて発表を行いました。 社内見学やメンターの方とのお話などができて、将来のための実りのあるものとなりました。 また、勉強会では機械学習についての面白い話が聞けました。 勉強不足も感じたので、これからも一層努力していきたいと思います。

f:id:ucchi_in:20160115155256j:plain

エミーリアの祈り

教区長エミーリアの祈り

今回もブラッドボーンの記事で、日本語版になって聞き取れるようになったので、教区長エミーリアの祈りのセリフをテキストにおこしただけです。 祈りのセリフは以下の様なものです。

密かなる清潔に、血の乾きだけが我らを満たし、また我らを沈める。
清潔を得よ。だが人々は注意せよ。君たちは弱く、また幼い。
冒涜の獣は蜜を囁き、深みから誘うだろう。だから人々は注意せよ。
君たちは弱く、また幼い。恐れをなくせば、誰一人君を嘆くことはない。清潔を得よ。
祝福は望み、よく祈るのなら、拝領を与えられん。拝領を与えられん。

カレル文字にある通り、拝領は医療教会、あるいは医療者たちの象徴、つまり血です。 要するに、獣を恐れ獣の誘惑に負けなければ、医療協会の祝福の血を与えるってことかと考えてます。

教区長エーミリアは、目の前で獣化するし、獣化してもペンダント大事に持っていたり、妊娠してる説とかあったり、いろいろ考察しがいのある面白いボスですね。 それになにより、獣バージョンのデザインがとても良い。大鷲のトリコみたいに、教区長と旅したい...

f:id:ucchi_in:20160111073215p:plain

最後に

やっぱり英語版の方がしっくりくるけど、日本語版も雰囲気変わって面白いです。 手軽に切り替えできるので、日本語版も体験してみてください。 私は、声優陣の豪華さに驚き、アデラインに出会ったとき発狂ゲージが溜まりました…

Blooborneの人物相関図書いてみた

Blooborneの人物相関図書いてみた

今更ですが、やっとこさフロム・ソフトウェアさんのブラッドボーンのトロコンが終了し、一区切りつきました。 ブラッドボーンは、ソウルシリーズにはない疾走感・爽快感があり、新鮮な気持ちでプレイできました。(ソウルシリーズが懐かしくなってやりにいったりしちゃったけど) それでストーリー考察をしてみようってなった時に、登場キャラクター多くてわけわかんなくきたので、ざっくり登場人物の相関図を書いてみようと思った次第です。この相関図は筆者の主観と今まで見た考察の影響がもろに反映されています。そのため、正確なものとは言いがたいものですが、ご容赦ください。また、デュラやヴァルトール、ブラドーなど相関図に入ってない人もいて、申し訳ないです。もし、間違ってるところ等ありましたら、ご指摘いただけると幸いです。

<注> 人物相関図多くのネタバレを含みます、まだクリアしてない人は一応見ないことおすすめします f:id:ucchi_in:20160111090429p:plain

最後に、ブラッドボーンの公式サイトと参考にさせていただいた考察を載せておきます。

www.jp.playstation.com

Bloodborne (ブラッドボーン) 神攻略wiki / ストーリー考察

ストーリー考察 - Bloodborne設定考察 Wiki

ブラッドボーン:ストーリー&設定考察(最新版) | リュンポリス - 楽天ブログ

DLC考察 - Bloodborne設定考察 Wiki

デバイス機器を用いたプログラミング

はじめに

この記事はSLP KBIT Advent Calendar 2015 - Adventarの20日目の記事です。

LeapMotionを使用したプログラミング

今回は、LeaPresenの改良を行った際に、LeapMotionを使用することになりました。そのため、今回はLeapMotionでの開発の基礎みたいな記事を書いていきます。LeapMotion、ひいてはデバイスを使用したプログラミングに興味のある方は是非読んでいってください。もし、LeapMotion興味ないって人は最後の「デバイスを使ったプログラミングをしてみて」ってところだけでも読んでいただければ幸いです。

 

github.com

github.com

 

LeapMotionとはなんぞや

 LeapMotionとは、両手の指の動きを検知し、空中ジェスチャ操作を認識するNUI機器で、サイズは小さくポケットに入るほど小型なデバイスである。また、値段も一万円以下とNUI機器の中では安価な商品である。対応OSにはWindows, MacOS, Linuxと幅広く対応している。ただし、2015年12月現在ではWindows10には対応できていないようである。最近の傾向としては、UnityやVR機器との連携に力を入れているように感じる。

f:id:ucchi_in:20151219200511p:plain

 

実際に動かしてみよう

LeapMotionをPCに接続して、公式のセットアップから環境に合わせてソフトをダウンロードしよう。そして、LeapMotionを接続してApp Homeを開くとデフォルトで入っているアプリケーションで遊ぶことができる。また、LeapMotionのAppStoreがあるので、そこから無料のアプリをダウンロードすることもできる。これだけの説明じゃ分かんねぇよ!!って人は”LeapMotiton Setup”で検索検索ゥ

LeapMotionでの開発

それでは、次は環境構築の手順について説明します。最初に、この記事を書いているときの私の開発環境はこのようになっています。適宜、自分の環境に読み替えて見ていってください。

 LeapMotionSDKのインストール

公式の開発者のところから LeapMotionSDKのインストールを行います。そしてダウンロードされたLeapSDKを解凍した後、任意の場所においてください。(今回はCドライブ直下とします)

VisualStudioの設定

VisualStudioを起動したら、[ファイル][新規作成][プロジェクト][テンプレート][VisualC#]とすすみ、[コンソールアプリケーション]を作成します。(色を黒に変えているので見にくかったらスミマセン)

f:id:ucchi_in:20151219210413p:plain

プロジェクトができたら、LeapMotionを使うための設定を行います。[プロジェクト][参照の追加]、ボタンの[参照]とすすみ、[C:\LeapSDK\lib\Leap\LeapCSharp.NET4.0.dll]を追加します。

f:id:ucchi_in:20151219211108p:plain

最後に、[プロジェクト][プロパティ][ビルドイベント]とすすみ、ビルド後に実行するコマンドラインのところに、以下の文を追加します。

xcopy /yr "C:\LeapSDK\lib\x86\Leap.dll" "$(TargetDir)"

xcopy /yr "C:\LeapSDK\lib\x86\LeapCSharp.dll" "$(TargetDir)"

 

f:id:ucchi_in:20151219211719p:plain

アプリの実行

先ほどダウンロードした[C:\LeapSDK\samples\]にある[Sample.cs]の内容をコピペして実行します。結果が見えにくいですが、LeapMotion上に手をかざすとこんな感じになれば成功です。

f:id:ucchi_in:20151219220044p:plain

LeapMotionにできること

LeapMotionでは手のモーションや、伸ばしている指の検出など様々なことがが行えます。この辺を説明すると長くなるので、ここのサイトのサンプルと説明を見ればだいたい分かるので参考にしてください。(マル投げ)

もし、サンプルが動かなかったら、上記で行ったビルドイベントのところを確認してみてください。

www.buildinsider.net

デバイスを使ったプログラミングをしてみて

 今回は、LeapMotionを使用したアプリケーションを作成したので、その導入部分を紹介しました。デバイス機器を用いたプログラミングを行ってみて、まず動かなかったり、値が思ったように取れなかったり、座標がどのようになっているのかが分からなかったり、今まであまり苦戦したことがないことに苦労しました。しかし、外部機器を用いたプログラミングは面白く、見た目的にも映えるものを作りやすように感じます。昨今ではLeapMotionに限らず、OculusRiftやKinectなど様々なデバイス機器が安価になり手に入りやすくなってきています。皆さんもこれを期に様々なデバイスを利用したプログラミングを初めてみてはいかがですか? 

 

参考にさせていただいたサイト

Leap Motion Developer SDK で開発できる環境を整える(Windows C# 編) - Natural Software