TECH PLAY

株式会社LIFULL

株式会社LIFULL の技術ブログ

652

こんにちは!たからべです。通常業務ではデザインを担当しています。 今回の記事は、全くデザインの話ではありません。 有志で開催した社内イベント「おさんぽそん」が面白かったので、共有いたします! おさんぽそん? おさんぽそんとは、「おさんぽ」+「アイディアソン」を組み合わせた新しいイベントです。 弊社には「クリエイターの日」という業務時間の10%を利用して自由にものづくりができるという制度があり、よくWebサービス開発や技術検証に利用されています。 今回は「いつも社内の課題解決ツールを作ることが多いですが、もしかして社外に出たら他のアイデアも浮かぶのでは!?」 という仮説から、「クリエイターの日」のイベントの一環として開催しました。 当日の参加者は、社員5名 + 運営メンバー3名。 エンジニアやデザイナー、リサーチャー、サービス企画・・・職種も経験も違う多種多様の方々にご参加いただきました! 今回の記事では、そんな「おさんぽそん」を開催して面白かった気づきを共有いたします。 おさんぽそんの実施内容 2チームに分かれて、各テーマを決めておさんぽに向かいました。 行き先は、Aチームは「廃墟」、Bチームは「高輪ゲートウェイ」です。どちらも面白そうですね! まずはAチームからご紹介します。 Aチーム「廃墟」 ただ「廃墟にいきたい」という思いで、以下のスポットに行きました。 ・代々木会館:廃墟のようですが、現在もお店が開店しているらしい ・中野ブロードウェイ:かつてシャッター街になりかけたが、復活したらしい ・下谷小学校(上野):廃校になってから放置されているらしい ・虎ノ門五丁目:廃屋が連なっているらしい ※本当は中野ブロードウェイは予定されていなかったのですが、中野にあるお目当ての廃墟がなかったので急遽中野ブロードウェイに行きました! 代々木会館 見た目こそ廃墟ですが、数店舗は今も営業を続けていました。 飲食店の他に中国古書店もあるなど現代のショッピングモール的雰囲気があります。 どうして廃墟同然と化してしまったのか興味深い建物ですね。 活気あふれる中野ブロードウェイ サブカルチャーの象徴たる店舗がたくさん入っている中野ブロードウェイ。 実は中野ブロードウェイもかつては集客力の低下が進んでいたようですが、サブカルチャーの聖地として復活を遂げているそうです。平日昼にもかかわらず多くの人で賑わっていました。 この復活劇は非常に参考になりそうですね! THE・廃墟の数々 「下谷小学校(上野)」と「虎ノ門五丁目」は、現在も存在していました。 上野に関しては、廃墟と化した小学校と、周りのオフィスビルとの対比が印象的です。 虎ノ門五丁目は、これぞ廃墟と言わんばかりの廃墟が多く見受けられました。 中には取り壊し中の廃墟もありました。都心ですし、できるだけ土地を有効活用していく方針なのでしょうか。 ここでとある気づきが! 虎ノ門を始め、都心のような地価が高い土地では現状が廃墟でも壊せば買い手がつきますが、地価が低い土地はどうしていけばいいのでしょうか… Aチームは、この気づきについてアイデアを出すことにしました。 アイデア:廃墟の魅力を活用したお店を集約する ヒントは中野ブロードウェイと代々木会館から。 ◎中野ブロードウェイ:サブカルチャーの店舗が密集!→その場所自体に興味を持ってくれて人が集まる △代々木会館:テーマがバラバラ。というか1店舗しかない→人集まらない… 例えば、今回行った下谷小学校のように、閉校した学校を利活用するのであれば、 1教室ごとに店舗かまえるとか面白いんじゃないでしょうか。文化祭みたいで楽しそうですね! Bチーム「高輪ゲートウェイ」 お次は、Bチーム「高輪ゲートウェイ」です。 予想外の駅名に決定した高輪ゲートウェイ駅が建設予定の場所に向かいました。 あれ?全然盛り上がってない 「ニュースでもやってたし、反対運動とかやってそう」 「”高輪に新駅誕生!”とか垂れ幕かかってそう」 「地元のお店が、なにかと高輪ゲートウェイに絡んだ商品とか出してそう」 など、新駅フィーバーが起きていると予想しながら、新駅誕生予定地の品川⇔田町をおさんぽ。 しかし、何やら普通の景色… たまたま俳句会を楽しんでいた方々に聞き込みをしたところ 「ゲートウェイって語呂が悪くて詠みにくいのよ」とまで言われていました。 新駅ができれば、駅の周りには新しく商業施設も建ち、 今よりも便利・快適に住むことができるはずなのに、予想以上に盛り上がっていないのはなぜなのか? その盛り上がらなさをヒントに、何かアイデアに変えていこうという話になりました。 盛り上がらなさの要因、それは「遠さ」ではないか? これだけ世間を賑わせた「高輪ゲートウェイ駅」が近くで建設されているのにもかかわらず、あまり興味がわかないのは何が原因なのか。 それは「距離が遠いことによる進捗のわかりにくさ」ではないかと考えました。 図の通り、歩道から駅までは目算でおよそ100m。遠い!完成予定も2022年ごろ。遠い!! 遠すぎる+進捗がわからなすぎて、興味もなくなってしまうのも致し方ないですね…。 ここで気づきが! この、事象から遠いことによる興味のわかなさ…。 高輪ではさほど問題ではないかもしれませんが、オフィスではいかがでしょうか。 オフィスでの例 LIFULLの麹町オフィスは8F建てのオフィスビルで、3F〜8Fまでが執務スペースです。 おおまかには部署ごとに階が分かれているのですが、正直、階が違うと1つ1つの施策の進捗や結果は分からないというのが現状です。 定期的に施策共有会が開催されており施策共有の密度は高いのですが、1〜2ヶ月単位で開催されるので日常的には進捗がわかりません…。 そこで!利用するのは、オフィスの各階に設置されているサイネージ。 普段は全社的なお知らせや支社の様子が表示されています。 ここに「違う階の施策の進捗や結果」を表示すれば、「あそこのサービスめっちゃ成果出しているな〜!なんでなんだろ?」「あそこのサービスこの施策やって失敗しているなら、こういうのはどうなのかな?」など、他の階のことにも意識を向けることで、今よりも主体的に仕事ができるようになるのではないでしょうか! おさんぽそんを開催してみて 良かった点 廃墟チームは「廃墟を活かせる題材を決め、集約して活用すると良い」 高輪ゲートウェイチームは「遠いことによる当事者意識の欠如があるなら、進捗共有できるようにすると良い」という発見がありました。 通常、アイディアソンは、解決したい課題(例:街のごみ問題等)やテーマ(例:VRを使ってうんぬん!等)ありきで開催されると思うのですが、 今回のおさんぽそんは、あえて運営からテーマを設定せず好きなところに行って良い!という状態で参加していただきました。 そのため、そもそも課題を見つけられるかな?という不安もあったのですが、都心のおさんぽは色々ツッコミどころが多くこの記事で記載していること以外にも多くの発見があったようでした。 部署や職種が違う人たちとチームを組んでおさんぽに行ったことで、 同じものを見ても気づくことが違い、自分にはない視点で観察できたとのことでした。 見つかった気づきを元に、その課題を直接解決する方法ももちろんありますが、 その課題、同じようなところにある!(例:高輪ゲートウェイ→オフィス) という発想につながったのはすごく面白かったです。 改善できる点 一方で、次回から改善していきたい点も見つかりました。 想像すれば課題も解決策も思いつくようなテーマにしてしまうと、外に出ていく意味が薄れてしまいます。 今回は運営側では「おさんぽして見つけた課題から何かアイデアを出してみよう」としか伝えておらず、 後は各チームで、考えたいテーマ・行きたい場所を自由に決めてもらいましたが、次回からは、運営側と参加者側ですり合わせていこうと思います。 今回はアイデア出しにかける時間や方法も自由に行っていただきました。 当日の時間配分が見えず、アイデアを考える時間が足りない+疲労により、アイデア出しが消化不良になってしまった部分もあったかと思われます。 おさんぽして現地調査をすることも大切ですが、アイディアソンというからには最終的には何かしら解決するツールを考えることも楽しんでいただきたい… 参加者が無理することなく実現できるように、そういった仕組みのイベントを心がけていきたいですね。 おわりに LIFULLでは今回のおさんぽそん以外にも、社内外問わずクリエイター向けの社内イベントを開催しています。 ご興味ある方はぜひご覧ください! www.lifull.blog www.lifull.blog www.lifull.blog recruit.lifull.com
アバター
こんにちは!LIFULLでエンジニアをしている中(あたり)です。 2018/12/20(木)に弊社にて開催させていただきました、「Ltech#4 Dotfiles Casual Talks」についてレポートいたします。 Ltechとは Ltech(エルテック)とはLIFULLがお送りする技術欲をFULLにするイベントです。 特定の技術に偏らず様々な技術の話を展開していく予定です。 Ltech#4 Dotfiles Casual Talks Ltech#4 はLT形式だったり、その場で github の dotfiles ファイルを表示して語る形式だったりで発表していただきました。 そのときの内容をご紹介させていただきます。 まずは乾杯をしてから LTの 1 番手を私が努めさせていただきました。 資料 speakerdeck.com 日頃使っている .bashrc, .gitconfig, .vimプラグイン, setup.sh について話させていただきました。 .bashrc に記載している alias, PS1 について .gitconfig に記載している alias について vim の便利なプラグインについて setup.sh について このブログを読んでくださったかたの参考に少しでもなれば幸いです。 私の dotfiles はこちらにあります。 github.com nasa9084さん 次にnasa9084さんに 実際に dotfiles をプロジェクターに表示させながら語ってもらいました! peco や ghq の使い方や .gitconfig の alias などを紹介していただきました! .gitconfig について unstage = reset -q HEAD -- など覚えにくいコマンドを alias に設定している emacs を日頃使っており、ricty というフォントを使っている 矩形選択のやりかたにこだわりがある twitter も emacs でやっている 感想 peco や ghq について私はまだ使ったことがなかったので是非試してみたいと思いました! 覚えにくいコマンドを分かりやすい単語で alias を貼っているのはとても快適そうですね! emacs 使いはやはり、 twitter もエディタでやっちゃう人が多いのでしょうか笑 ミヒャエルさん 次にミヒャエルさんにも 実際に dotfiles をプロジェクターに表示させながら語ってもらいました! プロンプトをこだわっておりプロンプトに顔文字が表示されるようにしている 前回のコマンドが失敗していると顔文字が泣いている感じになる 成功するとシュッとする感じになるようにしている shell は fish を使っている ターミナルは、alacritty を使っている hammerspoon というツールを使っており Mac で GUI でしなければいけない操作をコマンドで使えるようにしている 例えばウィンドウを半分にするようなマウスを使わないといけない操作をコマンドでできるようにしている setup.sh を昔は書いていたが、Makefile の練習がてら Makefile で setup できるようにした 感想 プロンプトに顔文字が表示されているのはとても癒しですね! かつコマンドの実行結果が分かるのも便利だなと思いました! いろいろとご紹介いただいた中でも hammerspoon はぜひ私も使ってみたいなと思いました。 ウィンドウ半分割は、Windows ではデフォルトであるショートカットですが、 Mac ではなくて、少し不便に感じていたので、私も取り入れてみたいです! まいけるさん 次にまいけるさんにも 実際に dotfiles をプロジェクターに表示させながら語ってもらいました! ミヒャエルさん同様 alacritty を使っている 1年ぐらい前から使っているが日本語も問題なく使えている vim のレンダリングを早くしたいのでそういった理由でも使っている tmux の設定は GitHub - gpakosz/.tmux: 🇫🇷 Oh My Tmux! My pretty + versatile tmux configuration that just works (imho the best tmux configuration) これに良い感じの設定がたくさん入っており参考にしている tmux でこだわっている部分として 矩形選択モードと行モードで今どちらなのか分からないことがあったため、それが分かるようになる PR を投げてmerge してもらった vim-polyglot というのが便利 違う言語を触るたびにカラースキーマを設定するのが面倒ですが vim-polyglot はメジャーな言語のシンタックスハイライトをほとんどカバーしているので いちいち設定しなくてもよいので便利 感想 alacritty 使っている人が 2 連続で驚きました。 私も vimmer なので使ってみたい気持ちが高まりました。 tmux の矩形選択モードへのこだわりはすごいですね! 私も最近色々な言語を触る機会が増えてきたので vim-polyglot もぜひ使ってみたい気持ちになりました! LT会が終わって 私はもう数年 Dotfiles を更新しておらず現状の設定に満足していたのですが、 今回他の人の設定を教えてもらって、まだ知らない便利な機能が多くあることを知りました。 Dotfiles は極論言うとなくてもなくてもなんとかなるものですが あるととても便利なものであり、なかなか機会がないと更新しようという発想が出てこないものなので こうやって他者の設定を共有することは新たな気づきがありとても良いものだと思いました。 楽しい勉強会になり最後にみんなで写真を撮りました。 最後に 今後もLtechを積極的に開催していきますので、 ぜひ気になった方は、connpassでLIFULLのメンバー登録をよろしくお願いします! lifull.connpass.com
アバター
親戚のおじさんからのあだ名は「保土ケ谷スタイル」。 どうも、アプリディレクターのすけがわです。 普段はLIFULL HOME'SのAndroidアプリのプランニングと開発ディレクションを担当してますが、今回はAndroidアプリとは何の関係もありません。申し訳ございません。   雑談、得意ですか? 藪からスティックで恐縮ですが、みなさん雑談は得意ですか? 年末年始という季節柄、年に1度会うかどうかという親戚や旧友と再会する機会も多いと思います。 もしかしたら、「どんな話題を話したらいいかわからない…」、「いまいち盛り上がらない…」とお困りの方も少なくないかもしれません。   今回は不動産情報サービス「LIFULL HOME'S」のサービス担当者である私が太鼓判を押す、 絶対に盛り上がる雑談の話題「住まい」 について書いていきたいと思います。   なぜ「住まい」が鉄板の話題なのか?   ビジネスの現場でも活用されているから みなさん 「木戸に立ちかけせし衣食住」 ってご存知ですか?これは雑談の鉄板とされている話題の頭文字をつなげた造語です。 これらは主に商談やミーティングなどのビジネスの現場で、本題に入る前の「アイスブレイク」として活用されています。売上や生産性が厳しく求められる場面でも長年活用されている話題ですので、その効果と信頼性は非常に高いと言えるでしょう。   き:季節(気候) ど:道楽(趣味) に:ニュース(時節) た:旅(旅行) ち:知人(友人) か:家庭(家族・親戚) け:健康(病気・怪我) せ:世間(流行・社会情勢) し:仕事(職業・お金) 衣:衣服(ファッション・身なり) 食:食べ物(食生活・グルメ) 住:住まい(家・引越し)   私も自分自身の雑談を振り返ってみると、ほとんどの話題が上記のいずれかに該当することがわかります。これをさらに「し × 衣(仕事での身なりの話題)」、「け × 食(健康に良い食べ物の話題)」などのように組み合わせていくことで、話題のバリエーションが増やせていけそうですね。 そしてこの「木戸に立ちかけせし衣食 住 」に 「住まい」もしっかりとランクイン しております。「住まい」の話題はビジネスの現場でもよく話されているんですね。   住まいの話題は広げやすい 雑談の基本は連想ゲーム ( いわゆるマジカルバナナ)が基本です。「住まい→引越し→住まい探し→理想の住まい→譲れない条件→おすすめのエリア→そのエリアでの思い出」と言うように無理なくリレーをしていければ、お互いに気持ちよく雑談することができるでしょう。 住まいの話題は、話題自体に多くの連想ワードが含まれます。また、連想されるワード自体も、さらに連想を生みやすいワードとなっており、雑談の連想ゲームが途切れづらい傾向にあります。 あくまで1例ですが、以下に住まいから連想できる事柄や話題を書き出してみました。 カテゴリ 関連する事柄 家 家賃、間取り、築年数、その他スペック 地域・エリア 雰囲気、自治体の制度 引越し 住まい探しの条件・Chips 最寄り駅 乗り入れてる路線、ターミナル駅へのアクセス よく行く場所 買い物、遊ぶ場所 通勤・通学 電車や車の乗車時間、混み具合 生活リズム 起床時間、就寝時間、ルーチン 近所付き合い お隣さん情報、ゴミ捨て事情 実家との距離 帰省の頻度、所要時間 現在の住まい 良いところ、悪いところ 理想の住まい 10億円当たったら? 過去の居住遍歴 生まれてからこれまでに住んだ家・地域 どうでしょう? ざっと書き出した話題だけでも、全てについて触れようと思ったら1時間や2時間では全然足りないと思います。 「雑談ですぐに間が持たなくなってしまう…」という方は、上記に書き出した事柄について、自分の話と相手の話を50:50の割合で話す(聞く)ようにすれば、きっと上手く間をつなぐことができますよ。   ちなみに私は、妻のご両親との初めての顔合わせで、大いに活用しました。 普段から雑談は「めちゃめちゃ得意!」というタイプではないのですが、最初のご挨拶からお別れまで、終始楽しくお話することができたことを覚えています。ありがとう!住まい! 普段の雑談でも活用できていて、「横浜に引越してびっくりした東横線あるある」は、私の中でも1,2を争う鉄板です。ついつい何度も話してしまいます。   「住まい」の話題をチョイスすることで、思わぬ副産物も 「住まい」に関する雑談は多くの人が共感しやすく、盛り上がりやすい話題ではありますが、引越しや住み替えという切り口で考えると、人生でそう何度も経験できることではありません。 物件の購入となれば、一般的には一生に1度でしょうし、引越しの回数で考えても、恐らく片手で数えられる人がほとんどではないでしょうか?   もしあなたが、直近1年くらいで引越しや住み替えを検討されているのでしたら、周囲の人と雑談を通して思わぬ情報が得られるかもしれません。 その土地土地の住み心地や、住まい探しで重視すべき条件、契約での失敗談などは聞いておいて損はないと思います。 特に自分よりも年上の人の経験談は非常に参考になると思いますので、年末年始で親戚に久しぶりに会うという方は、ぜひ   と、積極的に話を切り出してみてください。 きっと次回の住み替えがより良いものになるはずです。   私自身も、親戚のおじさんと会ったときにはよく現在住んでいる家やエリア(横浜市の保土ケ谷区)の話題になります。話しすぎて、何故か私のあだ名が「保土ケ谷スタイル」になってしまうほどです。(今では髪をバッサリ切ると「よ!保土ケ谷スタイル!」と煽られます…) 逆におじさんからも、家のリフォームの話やDIYの話、家を買った(建てた)時の話など沢山のお話を聞いています。 そろそろ物件の購入も検討しようかな?と考えている私としては、雑談として楽しいだけでなく、1つの人生の教訓として参考にさせてもらっています。   なお「住まい」に関する雑談をしていて、「引越ししたいな!」という気持ちが高まったら、ぜひLIFULL HOME'Sを利用してみてください 手前味噌ですが、Webサイトもスマホアプリもどちらも物件数が豊富で使いやすいですよ。   LIFULL HOME'S Webサイト http://www.homes.co.jp LIFULL HOME'S PCサイト スマートフォンアプリ iPhone / iPad お部屋探しならライフルホームズ 不動産物件検索アプリ LIFULL Co., Ltd ナビゲーション 無料   Android play.google.com 家賃や購入価格の相場感を掴むのにも活用できるので、LIFULL HOME'Sで情報収集すれば、さらに雑談を盛り上げるネタが見つかるかも? 「住まい」の話題のリスクと対処法 どんな話題にもリスクがあります。人によっては、住まいに関連する話題で触れてほしくない事柄もあるでしょう。 例えば、離婚やストーカー被害などネガティブな理由からやむを得ず住み替えをした場合などです。 これらは当事者自身がすでに消化済みで笑い話にできるくらいであれば問題ないと思いますが、少しでも話しづらそうな雰囲気を感じたらあまり深掘りはせず、関連する別の話題にシフトするのが得策でしょう。   何度も言うように、 「住まい」の話題の利点は関連する事柄の多さ です。急に話題をシフトしたとしても無理矢理感は比較的発生しづらいので、臆せずシフトしましょう。 他の事柄にも共通しますが、「思い切りの良さ」は「気持ちよさ」に繋がります。思い切りが重要です。   もし、本当にどうしようもない状況になってしまったら、全力で笑いましょう。最終的には笑顔です。大丈夫、何とかなります。 まとめ いかがでしたでしょうか? いかに雑談において「住まい」の話題が鉄板で、年末年始にフィットした話題であるかがご理解いただけたかと思います。 今回は「住まい」という話題にフォーカスしてみましたが、みなさんは鉄板の話題はありますか?もし「〇〇は絶対に雑談盛り上がるぜ~」ってのがあれば、Twitter等のSNSでぜひシェアしてくださると嬉しいです。   それではみなさん、良いお年を! ※この記事はあくまで1例のご紹介となります。活用した際の結果については一切責任はとれませんので、予めご了承ください。
アバター
どうもみなさんこんにちは!まっつんといいます。 LIFULL HOME'S 賃貸事業部のWebディレクター兼プランナーです。 普段はサイトの分析や改善施策立案などの業務をしております。 チバさんが Day1の記事 を投稿されたのに続き、僕もDay2のレポートを書かせていただきます! 各セッション内容ごとにスライド資料や参加者のコメントのリンクも貼りましたので、適宜ご覧ください。 「プロダクトマネージャー・カンファレンス 2018 - 愛されるプロダクトを創ろう」の参加レポート [ day2 ]です! 2018.pmconf.jp ※忙しい方は一番下の感想をお読みください! セッション内容ごとのまとめ [07-01] Welcome Talk 関 満徳 グロースエクスパートナーズ株式会社(ITコンサル会社) このイベントのコンセプトになっている「愛されるプロダクトを作る」。 これについての解説でした。 「PMがプロダクトを愛しているのは当然だが、メンバーも関われてうれしい楽しい誇らしいという最高の状態に持っていく必要がある。」 「自分のやりたいことを関係者を巻き込んで作る。」 「そのために何を考えてどうしていくのかに触れていきたい。」 愛されるプロダクトは、愛されるゆえにいろんな人を巻き込める。 そういうものづくりこそ、あらゆるLIFEをFULLにできるわけですね~ [07-02] 巨大なFinTech事業開発におけるプロダクトマネジメント 甲斐 真一郎 株式会社FOLIO 代表取締役 CEO 最も印象に残っているのは、 「PMとは一人一人がプチ社長である」 という言葉。 かつてLINEは災害時のためにプロダクトをたった2週間で開発し、開発者が社長になりました。 社長になる気はなくても、社長になれる商品にできる可能性はあるので、 良い商品を作れるかどうかはPM次第ということです。 甲斐さんの経験で、関連する3つのサービスを同時に作る時の苦労が面白かったです。 3つともKPIが 異なる フロントとバックは共通リソース インターフェースのデザインは統一しつつも機能は全く別 結果として、兼務が生じてリソースの取り合いになったり、要件の優先度が入れ替わったりと、 現場がかなり混乱したらしいです。 そこで見出した解決策が、先ほどの 「一人一人がプチ社長」 でした。 プロダクト境界の明確化と、そのための組織境界及びミッションの明確化によって、 それぞれが主体的かつ独立に最善を追求できるようになったのが、成果につながったそうです。 それぐらいの高い視座を持ってものづくりがしたいですね! 2018.pmconf.jp [07-03] C向けアプリのPM経験者から見た、B2B Saasのプロダクトマネジメント 今井 義人 株式会社マネーフォワード MFクラウド経費本部 本部長 プロダクトオーナー マネーフォワードのPMさんです。 この講演では、B2CとSaasのビジネスモデルにおけるPMの役割の違いについてお話いただきました。 Saasは色々な面でやりやすそうなことが分かりました。 Saasとは簡単にいうと、プロバイダ側のコンピューターでソフトウェアを立ち上げ、それをネットワーク経由で使わせてもらう仕組みのようです。 なるほど僕のような新人にはよく分からんですね。 Saasの良いところ(対BtoB) 課金してもらえれば収益が入り続ける 製作の傍らで営業が稼いでくれる。同時稼働。 明らかな課題を1個1個確実につぶしていける 2018.pmconf.jp [07-04] 気がついたらプロダクトマネージャーになっていた(仮) 塩出 晴海 Nature株式会社 代表取締役 CEO ネイチャーリモという、スマホをリモコン代わりにできるIoT製品のPMさん。 そのネイチャーリモの開発ストーリーを説明していただきました。 その苦労話から学んだことは下記 プロダクト開発の過程において、失敗は避けられない。だからこそ、最悪のパターンを想定し、そのリスクを取れると判断したなら、 失敗を恐れず進む べき。 顧客の声を聴いて開発・改善 を行う。 フレームワークを使わず、 自分の頭で考えて判断 する。 PJの成功が目的である以上、 できることは何でもやる 。 塩出さんは数々の苦労を乗り越えて、常に顧客目線で良い製品を作った方です。 顧客のために何でもやる姿勢が大事なのだと思いました。 2018.pmconf.jp [07-05] リクルートの横断組織で考えるプロダクトマネジメント(仮) 宮里 裕樹 株式会社リクルートコミュニケーションズ ICTソリューション局 アドバンスドプロダクト開発部 部長 PMが活躍する組織のお話でした。 PMの資質は下記4つに分かれており、それぞれに合わせた成長機会を持つことが大事とのことです。 ビジネスプロデュース プロダクトマネジメント プロダクトリード ITディレクション 自分はどの資質があるのかなと思いました。 2018.pmconf.jp [07-06] 顧客、会社、チームをHappyにするプロダクトマネジメント ~観点・プロセス・レバレッジ~ 山下 徹朗 楽天株式会社 Vice Senior Manager プロダクト開発の成功へ導く観点とプロセスについてご教示いただきました。 以下の3つの本質的な問いを常に持ち、それぞれに担当者をつけてPMがリードする   A.Business: 会社にとってどんな意義を作るのか   B.UX: どんな嬉しい経験、習慣にするのか   C.Marketing: どんな風に惹きつけるのか PMの仕事は常に本質を問い続けること だ、というお話が印象的でした。 その本質に基づいてチームをリードし、メンバーや会社の強みを最大限活かすことで、 よい製品づくりに繋がるのだろうと思いました。 2018.pmconf.jp [07-07] Build Narrative in Product 池田 明啓 株式会社ドワンゴ サービス開発本部 副本部長 ユーザーストーリーを理解することの重要性をご教示いただきました。 PMとはプロダクトが社会貢献するまでのストーリーを構築する人 であり、ユーザーが活用するストーリーを理解する人である。 ストーリーを理解できていないと、量でごまかそうとしてしまう。 その結果使われない機能が増えてしまう。 スターエンジニアに頼ってしまうと、抜けた際の学習コストがネック になる ドワンゴにはプロダクト開発の7つのステップがあり、それぞれに責任者を置いて開発を進めている ライブコーディングやライブシェアなど、学習をより手軽にする方法を導入 ドワンゴはプロダクト開発の手順が体系化されている印象を受けました。 ストーリーを組み立て、それに基づいて開発を行うケーススタディがプレゼン資料にまとめられているので、 是非ご覧ください! 2018.pmconf.jp [07-09] The mindset of building the product that user will love Jasper WU 株式会社メルカリ UX consultant PMのためのデザインシンキングのお話でした。 導入はubarと自転車の話です。 目的地に行こうとubarを利用したかったが、実は自転車の方が早かった。 この場合、自分にとっては、その目的地に早くいくことが大事だったことになります。 同じように、PMが考えなければならないのは、 誰にために、何をするか ということです。 そこでPMは下記3つのことを常に頭に置いておく必要があります。 1.Understanding  ユーザーを理解すること。ユーザーには次の4タイプあり、それぞれとの接点を持つことが大事  Targetユーザー:ターゲット  Indirectユーザー:直接のターゲットではないが、その周りに関係性を築ける人々  Extremeユーザー:製品が極端に愛され、または嫌われる理由を知ることがヒントになる  Descendantユーザー:未来に与える影響を考える 2.Teamwork  開発の過程を考え、多様なバックグラウンドを持つメンバーと話す 3.Fail fast  早く失敗することが最も早く勉強する方法。  アジャイルを回してとにかく失敗→改善を繰り返すこと。 WEBの仕事をしていると、なかなかユーザーの生の声に触れる機会がありません。 しかし、 ユーザーの幸せを願って製品を作る以上、その声を聴く機会を作っていくことが重要 だと思いました。 メルカリのように、ユーザーを集めて交流したり、イベントを開催したり。 うちの組織でもできることかと思います。 2018.pmconf.jp [07-10] 北米・アジア・欧州のプロダクトマネジメントとスマートニュースのプロダクトマネジメント 宮田 善孝 スマートニュース株式会社 プロダクトマネージャ スマートニュースではチームが遠隔で共同作業をするそうで、年に一回世界中の社員を集めてカンファレンスを行っています。 この講義では北米・アジア・欧州のPMの事例と、スマートニュースの事例をご紹介いただきました。 北米:General Assembly 概念の紹介といった講義と、チームプレゼンとフィードバック。一般的。 アジア:Product management festival カンファレンス方式。PMの責任と役割について。 プロダクトマネージャーVSシニアリーダーになることがあるが、それぞれの役割は下記。分担しよう。 PM→製品に責任を持ち、ヴァーチャルなチームを動かしていく。 SL→組織的チームを持ち、指揮命令だけでなくメンタリング等も行いチームのパフォーマンスを向上させる 欧米:Turning Fest プロダクト開発の各機能とのつながりについて。 良いチーム→AutonomyとAlignmentが高い状態。 Alignment: 一つの目標に迎える状態。 Autonomy: 個々のメンバーが高いパフォーマンスを発揮する状態。 PMの役割は目標を示すことであり、メンバーのやり方にいちいち口出しはしない その後スマートニュースの事例をご紹介いただきましたが、その中で特に理想のチームのお話が興味深かったです。 PMの仕事はビジョンを設定することであり、メンバーに命令したりオーナーシップを取ることではない。 立ち上げ時は何時間も議論し、認識を合わせるが、後は進捗確認を30分行う程度。 みんながファンクションごとに責任を持っていればアメーバ状に動く AutonomyやAlignmentを高めるのがPMの仕事 なのだと思いました。 2018.pmconf.jp [07-11] 中国のプロダクトマネジメントのリアル 陈兆伟 (Chen Zhaowei) バイドゥ株式会社 プロダクトマネージャ 中国のプロダクトマネジメントは今どうなっているのかを共有いただきました。 大きな流れとして、アメリカに倣ったPMの育成やプロダクト開発から、自国向けに最適化するイノベーションが進んでいるようです。 アリババ、WeChatなどが最たる例ですね。 今や中国はスマホ普及率70%、利用者数は10億人。 中国でイノベーションが進んだ要因は2つあるようです。 1.貧富のギャップ 農村での4G回線が使えて、安くて速いサービスのニーズが極めて大きかったこと。 2.ITと各産業とのコラボ どこでも電子決済が可能で。病院の診断結果もスマホで確認できる。 新しいビジネスチャンスがどんどん生まれています。 また、中国のPMとアメリカのPMとの違いも面白かったです。 1.アメリカのPMは技術とMBAが必要ですが、中国のPMは社会のニーズとビジネスに詳しければ大丈夫。 2.アメリカは優秀なPMに権力を集中させるが、中国はPMの下にPMがついて細かくミッションを設定する。 お話を聞いていて、 ビジネスチャンスのあるところにPMが必要になる のだと思いました。 ビジネスの機会を創っていくこと、そしてそこでニーズに応えられる商品開発力を持つこと。 それが日本のPMにおいても重要だと思いました。 2018.pmconf.jp [07-12] Anycaにおけるプロダクトマネジメント 馬場 光 株式会社ディー・エヌ・エー オートモーティブ事業本部 Anyca事業責任者 PMに必要な能力についてお話しいただきました。 それは姿勢と責任に分けられる、下記の7つです。 姿勢 リーダーシップ・パッション ユーザーへの誠実さ 目的思考 責任 インサイト発見・目標設定 長期目線・プライオリティ 判断・説明 コミュニケーション これらについてエニカの事例をご紹介いただきました。 目標はぶれないように固めること、役割を分担すること、ユーザー接点を作ること、などなど。 興味深かったのは課題抽出のお話で、新機能がユーザーに使われなかったとき、どのようにクローズ判断をしたかということです。単に使われていないだけで切り捨てるのではなく、解決すべき課題が無いか、どこか別の場所で効果が出ていないか、など考えた末に判断するそうです。 機能を作ることより、無くす判断の方が難しい のだろうと思います。 2018.pmconf.jp [07-13] [ワークショップ] 日本のプロダクトマネージャーは今何をすべきか 最後に参加者を巻き込んで、「なぜ愛されるプロダクトを作らなければいけないのか」をテーマに議論をしました。 ビジネスモデル的には以下の3つがあります。 顧客生涯価値LTVの増加 広告宣伝からSNSへの移行 顧客獲得コストの最小化 しかしそれら外向きな理由ばかりではありません。 まずはプロダクトを作る 自分たちがそのプロダクトを愛する こと 愛されるプロダクトを作ることで、 自分たちも幸せになる ものづくりをすること それにより、 ものづくりが社会に幸せをもたらす ものにすること それが愛されるプロダクトを作る理由なのだと思います。 2018.pmconf.jp 参加してみた感想 入社して初めてPMという言葉を知った僕には、大変刺激的な内容でした。 スピーカーのみなさんのお話を聞いて、PMとして重要なのは下記事項だと思いました。 常に目的を掲げ、 本質を追い求める こと チームワークを築き、 ビジョンを示し認識を合わせる こと ユーザーとの接点を作り、 ユーザーの声を聴いて開発 をすること ユーザーのストーリー を描き、真に求められるプロダクトを作ること 成功のためには主体的に何でもやり、 どんどん失敗する こと そして何より、PMとして最も大事なことは、 そのプロダクトを誰よりも愛すること だと思いました。 誰かに愛されるプロダクトを作るためには、まず自分が愛せるものでなくてはならない。そんなプロダクトを、LIFULLというチームで作っていけたら、楽しいなと思います。
アバター
こんにちは!Ltech運営チームの井坪(いつぼ)です。 12/11(火)に弊社にて開催させていただきました「Ltech#3 【podcast × IT】LT Night!」についてレポートいたします。 Ltechとは Ltech(エルテック)とは、LIFULLがお送りする、技術欲をFULLにするイベントです。 特定の技術に偏らず、様々な技術の話を展開していく予定です。 Ltech#3 【podcast × IT】LT Night! Ltech#3はLT形式で発表していただきました。 そのときの資料をご紹介させていただきます。 docs.google.com Podcastを聴く場所は人それぞれだと思いますが、泳ぎながら聴いたりサウナで聴くのは独特ですね! speakerdeck.com 普段触れない領域の話を聴くことで知識を得るきっかけになり勉強になっているそうです。参考になりました! speakerdeck.com 聴いているPodcastを分析するなんてデータサイエンティストならで面白い発表でした! speakerdeck.com 業務等でも他職種について理解するのは大事なので、お互いの知らないことを理解できるのはとても良いですね! www.slideshare.net 社内の方と社内向けPodcastは取り組んでいるプロジェクトの共有や他部署との交流、宣伝などメリットは多いそうです! qiita.com 限られた時間内や定期的に配信するとなると難しそうですね。 社内向けPodcastをやってみようと考えている方は参考にしてみて下さい! 懇親会の様子 今回もLtech名物の「からあげ」をご用意いたしました。 からあげを食べならPodcastネタを中心に技術系の情報交換ができ盛り上がっていました! ご参加いただきました皆様、ありがとうございました。 最後に 12/20(木)に「Ltech#4 Dotfiles Casual Talks」を開催いたします。 皆様のご参加お待ちしております。参加方法は以下のconnpassからお申し込み下さい。 lifull.connpass.com 今後もLtechを積極的に開催していきますので、 ぜひ気になった方はconnpassでLIFULLのメンバー登録をよろしくお願いします! lifull.connpass.com
アバター
こんにちは、技術開発部の相原です。 この記事は LIFULLアドベントカレンダー の16日目です。 LIFULL では アプリケーション実行基盤を刷新すべく、Istio がバージョン 0.2.0 の頃から検証を開始し、現在 1.0.4 を利用しています。 AWS 上で kops を利用して Kubernetes を構築しその上に Istio を展開するという構成です。 EKS は利用していません。 ここに至るまでそれなりにハマりどころ、考慮すべき点に遭遇したので今回はそのことについて書きたいと思います。 以下の文章は kops 1.10.0 Kubernetes 1.10.11 Istio 1.0.4 を前提としていることをご了承ください。 はじめに 本番導入までの障壁 istio-proxy のオーバーヘッド Resource Quota を有効化した時に Istio の Sidecar が Inject できない Istio コンポーネントの HPA がうまく動かない Istio コンポーネントの可用性を上げる Kubernetes クラスタを Production Ready に近づける CNI plugin を変更する kops でデプロイしたインスタンスで ext4 のハードリンクが枯れる externalTraffic: Local の罠 fluentd-kubernetes-daemonset で文字コードでハマる おわりに はじめに LIFULL HOME'S サービス開始から20年が経ち、コードベースも次第に巨大になってきました。 そしてコードベースが巨大になるにつれて、デプロイ速度の鈍化やメンテナンス性の低下が目立つようになり、開発速度が低下していきました。 そうした変化を受けて LIFULL では、数年前のオンプレミスからの AWS 移行を契機にマイクロサービス化に踏み切ります。 サービスを適切な単位で切り分けてデプロイを独立化し、開発チームに権限を移譲することで分業化に成功しました。 しかし、年月が経ち新たな課題が見え始めました。 それはマイクロサービス化による車輪の再発明と分散システムとしての難しさです。 それぞれのチームがロギング・監視基盤やデプロイフローを個別に構築したり、各アプリケーションごとに Retrying や Timeout を実装することにより、従来の体制と比較して重複する機能が多くなってしまいました。 加えて、下流のサービスに巻き込まれる形での障害も目立つようになり、分散したアプリケーションをうまく運用するという難しさにも直面することになったのです。 そこで我々がとった選択肢が Kubernetes の導入によるアプリケーション実行基盤の統一と、 Service Mesh である Istio 導入によるマイクロサービスに必要な機能の一貫した提供でした。 Istio は Retrying, Timeout や Rate Limitting に加え、CircuitBreaker のようなマイクロサービスに必要な機能を提供するソフトウェアです。 Kubernetes の導入によって開発者への権限の移譲はそのままにロギング・監視基盤やデプロイフローをアプリケーション間で流用した上で、その Istio を導入して開発コストの削減と分散システムとしての信頼性の向上を狙いました。 トラフィックの質が違う複数のアプリケーションを同じインスタンスに同居させることでコストの最適化にも繋がりますし、アプリケーション間のネットワークの距離も縮まるためパフォーマンスへのインパクトも期待できるはずです。( KEP: Topology-aware service routing として可能な限り距離の近い Pod にルーティングする仕様が提案されています) github.com 加えて、ベンダーロックインからの解放も期待できるということで熟考の上決断に踏み切りました。 本番導入までの障壁 ここからは実際に本番導入に至るまでの障壁について紹介します。 istio-proxy のオーバーヘッド Retrying, CircuitBreaker, Rate Limitting など様々な機能を実現する istio-proxy ですが当然そのパフォーマンスへのオーバーヘッドは 0 ではありません。 導入するアプリケーションの性質に応じて慎重に導入の是非を考慮すべきです。 istio-proxy によるオーバーヘッドについてはドキュメントにあるのでそちらをご参照ください。 istio.io ドキュメントにあるように istio-proxy では 1 リクエストにつき概ね 10ms 程度のオーバーヘッドが生じます。 手元の環境でのパフォーマンステスト結果としてもほとんど同様の結果が得られました。 10ms と言われるとアプリケーションの性質によっては微々たるもののように感じますが、仮に対象のアプリケーションが直列で他の API に対して複数回リクエストするとき、そのリクエスト数分だけこのオーバーヘッドが生じることになります。 istio-proxy はその性質上、OUTBOUND のトラフィックに対する処理の比重が大きいという特徴があります。 VirtualService によって実現される Retrying, Routing は OUTBOUND トラフィックに対して発生しますし、CircuitBreaker, Connection Pooling を司る DestinationPolicy に関してもそうです。 一方で INBOUND のトラフィックでの主な処理は Rate Limitting くらいなもので、これはつまりリクエスト元に対する Sidecar の Inject さえやめればパフォーマンスが大きく改善するということを意味します。 深刻なオーバーヘッドが生じた場合はこのような観点から Sidecar の取捨選択を行うべきです。 当然同様の機能をアプリケーション内に実装することに比べれば、多くのケースにおいて istio-proxy でやる方が高速ですし、機能の標準化の観点からも有意義ですが、Sidecar の有無に関してはアプリケーションの性質に応じて慎重に判断する必要があるでしょう。 Resource Quota を有効化した時に Istio の Sidecar が Inject できない Kubernetes には Resource Quotas という namespace ごとにデプロイ可能なリソース量を制限する機能があります。 これを namespace に対して有効化すると Container に対してリクエストするリソース量、上限まで利用できるリソース量を指定することが義務付けられるというものです。 ある namespace にリソースを際限なく消費されると困るので一般的にこれを使って制限をかけることになります。 通常、LimitRange で default, defaultRequests を指定することで各 Container にデフォルトのリソース量を設定することが可能なので特に気にしませんが、Istio の Sidecar の Inject はこの LimitRange の前に実行されてしまうため 1.0.4 現在ではこれに対して別途対応が必要です。 まず、Sidecar である istio-proxy です。 istio-proxy のリソースは values.yaml から指定できるので以下のようにパッチを当てます。 当然 CPU の利用量はリクエストに応じて増加するためここは随時調整します。 --- install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:47.590948200 +0900 +++ install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:33.263144300 +0900 @@ -28,10 +28,10 @@ global: resources: requests: cpu: 10m - # memory: 128Mi - # limits: - # cpu: 100m - # memory: 128Mi + memory: 128Mi + limits: + cpu: 1000m + memory: 128Mi # Controls number of Proxy worker threads. # If set to 0 (default), then start worker thread for each CPU thread/core. しかしこれだけではまだデプロイは成功しません。 実は Istio の Sidecar をデプロイしようとすると istio-init という iptables などの設定を行う initContainer が起動します。 Resouce Quota を設定した namespace では initContainer にもリソース指定が義務付けられるためこちらも対応する必要があります。 しかし istio-init 用の設定は values.yaml にないためこちらは少々ハックが必要です。 これは Istio 1.1.0 でリリース予定です github.com まず、Sidecar を Inject するためのコンポーネントである istio-sidecar-injector の設定ファイルに値を渡せるように sidecar-injector-configmap.yaml にパッチを当てましょう --- install/kubernetes/helm/istio/templates/sidecar-injector-configmap.yaml 2018-12-16 05:17:35.419691832 +0000 +++ install/kubernetes/helm/istio/templates/sidecar-injector-configmap.yaml 2018-12-16 05:19:11.799894444 +0000 @@ -43,6 +43,8 @@ data: - NET_ADMIN privileged: true restartPolicy: Always + resources: +{{ toYaml .Values.global.proxy_init.resources | indent 10 }} {{- if .Values.global.proxy.enableCoreDump }} - args: - -c これで sidecar-injector-configmap.yaml が values.yaml の内容を解釈できるようになりました。 あとは先ほどの istio-proxy と同じようにリソースを指定するのみです。 こちらは初期化処理をするためだけのコンテナなのでリソースを多く必要としません。 --- install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:47.590948200 +0900 +++ install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:45.304157200 +0900 @@ -99,6 +99,13 @@ global: proxy_init: # Base name for the proxy_init container, used to configure iptables. image: proxy_init + resources: + requests: + cpu: 10m + memory: 128Mi + limits: + cpu: 10m + memory: 128Mi # imagePullPolicy is applied to istio control plane components. # local tests require IfNotPresent, to avoid uploading to dockerhub. これで晴れて Sidecar をデプロイできるようになりました。 Istio コンポーネントの HPA がうまく動かない istio-ingressgateway, istio-policy などのコンポーネントはリクエスト量によってスケールする必要があるためあらかじめ HPA が用意されています。 しかし何も設定しないままデプロイしてしまうと、istio-pilot などの一部のコンポーネントには適切なリソースが確保されますが、その他のコンポーネントはデフォルトのリソース確保量が小さすぎるため常にスケールのトリガーが発火してしまい HPA が期待通りの動きをしません。 Istio コンポーネントにおけるデフォルトのリソース確保量を設定する項目があるのでそちらを調整して解決します。 --- install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:47.590948200 +0900 +++ install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:16.539089300 +0900 @@ -163,8 +163,8 @@ global: # block in the relevant section below and setting the desired resources values. defaultResources: requests: - cpu: 10m - # memory: 128Mi + cpu: 100m + memory: 128Mi # limits: # cpu: 100m # memory: 128Mi これで HPA が適切に動作するはずです。 Istio コンポーネントの可用性を上げる Istio コンポーネントの HPA はまだ十分ではありません。 デフォルトの設定ではそれぞれのコンポーネントが1台ずつデプロイされるのみで、最大でも5台にまでしかスケールしません。 これでは可用性に欠けるため適切な設定を施します。 数が多いためすべての設定はしませんが以下のようなパッチを当てて台数を調整しましょう。 --- install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:47.590948200 +0900 +++ install/kubernetes/helm/istio/values.yaml 2018-12-16 00:00:50.688467300 +0900 @@ -226,9 +226,9 @@ gateways: labels: app: istio-ingressgateway istio: ingressgateway - replicaCount: 1 - autoscaleMin: 1 - autoscaleMax: 5 + replicaCount: 3 + autoscaleMin: 3 + autoscaleMax: 10 resources: {} # limits: # cpu: 100m Kubernetes クラスタを Production Ready に近づける 単に kops で Kubernetes を AWS に構築しただけでは、そのまま運用を始めるには心許ないです。 Node, Pod のスケールアウトもできなければ、運用に必要なメトリクスも不足しているという状況です。 Kubernetes コミュニティにはそれらを補うための素晴らしいソフトウェアがあるのでそれを利用しましょう。 まずは Node のオートスケールの実現です。 これに関しては kops が addon を提供してくれているので素直にそれを利用しましょう。 github.com これを利用することで Pod のスケールアウト時にリソースが必要なタイミングで新たな Node が起動します。 次は Pod です。 以前から利用されていた heapster は 1.11 で deprecated となり、代替のソフトウェアとして kubernetes-incubator/metrics-server が開発されています。 github.com HPA はこれらのソフトウェアから取得できるメトリクスに依存しているため導入しましょう。 更に、監視という観点では Pod ごとのメトリクスが取得できているのみでは不足に感じることがあります。 本来必要となるメトリクスは Deployment などの Kubernetes リソースごとの抽象化されたメトリクスです。 Kubernetes は標準でそのような機能を持ち合わせていないため、そのためのソフトウェアである kubernetes/kube-state-metrics を導入してその要求を実現しましょう。 github.com Node の異常を Events の形式で通知してくれる kubernetes/node-problem-detector も監視の役に立ちます。 github.com Kubernetes の Events は CrashLoopBackOff や FailedScheduling などの監視に有意義な情報を取得できるものですが、ここで取得できるのはあくまで Kubernetes 内で起きていることのみです。 しかし、 kubernetes/node-problem-detector を利用することで Node 内におけるカーネルのデッドロックや OOMKiller の発生をその Events に統合して通知してくれます。 これにより運用に必要な情報は揃ったはずです。 最後は認可の部分です。 Kubernetes はデフォルトで認証認可の仕組みがありますが、AWS を利用している場合 IAM を認可と紐付けたいと考えるでしょう。 その場合は kubernetes-sigs/aws-iam-authenticator (旧 heptio/authenticator) が役に立ちます。 github.com これを導入することで IAM Role ごとに権限を管理することができるので、開発チームへの権限委譲がスムーズになるでしょう。 CNI plugin を変更する kops で デプロイした時にデフォルトで利用される kubenet という方式ではルーティングに AWS のルートテーブルを用いる関係上、クラスタ内のノード数が 50 に制限されてしまいます。 これを解決するために様々な CNI plugin がありますが、AWS の場合は VPC のセカンダリ IP を用いる amazon-vpc-routed-eni が素直な選択肢に思えます。 ですが私達は移植性を考慮して、手に馴染んだソフトウェアでもある、クラスタ内に仮想の L3 ネットワークを構築する Project Calico を採用しました。 www.projectcalico.org 影響範囲が大きく安易な選択をできない部分ですが、少なくともデフォルトの状態では今後のスケールに対応できないため、慎重に選択する必要があります。 kops でデプロイしたインスタンスで ext4 のハードリンクが枯れる kops は AWS に Production Ready な Kubernetes クラスタをデプロイするための素晴らしいツールです。 しかし、現時点ではそのまま運用するためには多少の問題点があるのでそちらについて説明しましょう。 kops ではドキュメントにあるように Debian を Tier 1 サポートとしています。 github.com ここで注意すべきなのはこの Debian にインストールされている Docker Daemon のバージョンです。 この Debian にインストールされているのはバージョン 17.03.2 の Docker Daemon で、残念なことにこのバージョンの Docker Daemon のストレージドライバは overlay です。 overlayfs はレイヤー内のオブジェクトをハードリンクとして親のレイヤーと共有することで知られています。 その性質のため overlayfs では非常に多くのハードリンクが使用されるという特徴があります。 しかし、ext4 におけるハードリンクの上限は 65000 です。 overlayfs を利用するインスタンスを長期に渡って運用していると必ずこの上限に引っかかる時が来るでしょう。 これを解決する最も単純な解決策は kops edit cluster にて以下のサービスをクラスタ内で有効化することです。 このサービスを有効化することで Container から参照されていないイメージが定期的に削除されます。 - name: prune-images.service roles: - Master - Node manifest: | [Unit] Description=prune images [Service] Type=oneshot ExecStart=/usr/bin/docker image prune -a -f - name: prune-images.timer roles: - Master - Node manifest: | [Unit] Description=prune images [Timer] OnCalendar=*-*-* 23:59 Persistent=true [Install] WantedBy=timers.target そして最もよい解決方法は overlay2 にストレージドライバを切り替えることです。 幸い kops は overlay2 を利用する Ubuntu のイメージもサポートしているためそちらに切り替えることでこの症状を大幅に改善することができます。 しかし Ubuntu は kops コミュニティから Tier 1 サポートを受けておらず、安定性とはトレードオフになります。 また、Debian では NVMe のインスタンスがサポートされていないという問題点もあります。(以前は Validation エラーが出なかったためハマりどころだった) c.f. github.com externalTraffic: Local の罠 Kubernetes で Service を Type: NodePort でデプロイする時、デフォルトで設定される externalTraffic: Cluster では kube-proxy がそれぞれの Pod に平等にトラフィックを振り分ける関係上、Source IP がその kube-proxy が稼働しているインスタンスの IP になってしまうという問題があります。 これを解決するための手段として externalTraffic: Local を設定するというものがありますが、現在 AWS でこれを実現するためには Type: LoadBalancer な Service に service.beta.kubernetes.io/aws-load-balancer-type: "nlb" を設定してデフォルトで利用される Classic Load Balancer の代わりに Network Load Balancer を利用する必要があります。 本来であればこれで externalTraffic: Local による Source IP の保持が可能になりますが、Network Load Balancer のサポートはまだ beta のため致命的なバグが存在します。 それは VPC の DHCP Options Set の domain-name に依存しているというものです。 この問題に関しては以下の Issue で触れられています。 github.com domain-name が設定されていない場合、kube-proxy が localEndpoints を見つけることができずロードバランシングされなくなります。 この問題は Kubernetes 1.13 で解消する見込みです。 進捗は以下からトラッキングできます。 github.com fluentd-kubernetes-daemonset で文字コードでハマる AWS で Kubernetes を導入する場合、 fluent/fluentd-kubernetes-daemonset を用いて CloudWatch Logs にログを流すのが恐らく一番安上がりで簡単です。 github.com しかし、古き良き日本企業には一つ問題があります。そう、文字コード問題です。 fluent-plugins-nursery/fluent-plugin-cloudwatch-logs では CloudWatch Logs にログを流す際にログを JSON にエンコードしようとします。 しかしこの時、ASCII-8BIT な文字列が流れてきてしまうと UndefinedConversionError として JSON エンコードに失敗してしまいます。 こうなるとログの転送は停止しやがてバッファが溢れてしまうので手を打つ必要があります。 これを解決するには repeatedly/fluent-plugin-record-modifier を使うのがいいでしょう。 github.com Container の command や lifecycle によるハックでプラグインを追加することも可能ですが、新たにイメージをビルドする方が素直だと思います。 プラグインを追加したら以下の filter を fluent/fluentd-kubernetes-daemonset の ConfigMap に追加すれば解消するはずです。 <filter **> type record_modifier char_encoding utf-8 </filter> おわりに まだ枯れているとは言えない領域でそれなりにハマりどころはありましたが、適宜コミュニティへのコントリビューションをしつつ今のところ致命的な問題に遭遇せず運用できています。 Istio を導入することで、今まで車輪の再発明をしていた Retrying, Timeout や Rate Limitting を実行基盤側からアプリケーションに提供することができるようになり、アプリケーションの開発速度向上に寄与することができました。 加えて、CircuitBreaker による障害影響の局所化や、Fault Injection をはじめとした Chaos Engineering に着手する準備も整い、さらなるアプリケーション実行基盤の改善が期待できそうです。 今回 Kubernetes, Istio の導入と共にロギング・監視基盤やデプロイフローの刷新などにも着手していて、LIFULL の技術開発部では分散したアプリケーションをいかにうまく運用するかという点に注力しています。 もしこの辺りに興味のある方がいればまずはカジュアル面談からいかがでしょうか。 https://hrmos.co/pages/lifull/jobs/011 hrmos.co デリバリープラットフォームとして利用している Spinnaker の導入に際して、AWS で Spinnaker の Kubernetes V2 Provider を利用するのにも多少のハックが必要でしたがそれはまたの機会に。
アバター
はろーはろー!チバです。 LIFULL HOME'S 賃貸事業部のWebディレクター兼プランナーです。 普段はKPI可視化やサイト改善施策を手掛けるといった業務をしているので、「 プロダクトマネージャーに求められること」や「ユーザーと両想いになるサービスを作るには」を考え抜くことが必要です。 もちろん社内での知見共有も活発におこなわれていますが、今回はメンティのまっつんと2人で会社を飛び出して業界の先輩方の 「愛されるプロダクト」の事例 を聴くために参加してきました! 「 プロダクトマネージャー・カンファレンス 2018 - 愛されるプロダクトを創ろう」の 参加レポート [ day1 ] です! 2018.pmconf.jp ※写真撮影していなかったため文字ばかりです ※公開されている関連資料、記事のリンクを貼っているので詳細はそちらを参照ください セッション内容ごとのまとめ [06-01] Welcome Talk 関 満徳(プロダクトマネージャー・カンファレンス 実行委員長) fullvirtue (@fullvirtue) | Twitter もう一つの基調講演のような感じでした。 「自分たちが作り上げたプロダクトが愛されるためにどういうことをしてきたか、どういうことをしていきたいかについて話してください」 このときの関さんの言葉を聞けたので、今日の講演はどういった目線で聴けばいいんだろうを意識できたように思えます。 [06-02] 基調講演: プロダクトマネージャーとは 丹野 瑞紀(プロダクトマネージャー・カンファレンス 実行委員) twitter.com 基調講演であることから、「(PM1年生向け)プロダクトマネージャーの役割」を主軸としたお話。 プロダクトマネージャーの役割の基本のキ 事業目標を達成するためのもっとも効果的な打ち手を考えるのがプロダクトマネージャーだ と言い切られたときに、プロダクトマネージャーは事業会社の組織における課長や部長のような立場の方がなるのかな?と思いました。 事業目標ができたら、まず作る機能を決めるのがプロダクトマネージャーの役割。 具体的には、「売上前年比50%増」といった事業目標(KGI)に対して適切な重要成功要因(CSF)を設定し、機能提案(PRD)をすること。 ただし、機能提案(PRD)とプロダクトの間には大きな溝がある。 プロダクトの機能と事業目標の間には”大きな溝"がある。その溝をエンジニア・デザイナーと協働しながら埋めていくのがプロダクトマネージャー。 ここまで聞いたところで、冒頭で理解した「課長や部長のような立場の方がなる」の理解が誤っていたことに気づきました。 今回のプロダクトマネージャーはRollのひとつとして語られているんですね。 LIFULLでいうところの、サービス企画職がそういった役割になることが多いです。 「行動≠購入」AIDMAの意味が変わった 「AIDMA」モデルの提唱が始まったのは、1920年代。 そのときと比べて、コンシューマーの行動原理が変わっている。 つまり、”A"ctionは ❌行動≠購入 ⭕行動=利用開始 の方が適しているのではないか、ということ。 「AARRR」モデルの登場 では、利用開始→購入はどういったモデルなんですか?というところで、「AARRR」モデルの登場です。 収益化までつなぐには愛が必要。 「継続利用」が「新規ユーザー獲得」への新たな動線を紡いでくれる。 「継続利用」する人は「紹介」をする。「紹介」してもらうには、「顧客に愛される」ことが必須。 「顧客に愛される」の指標と成り得るのは、「友達に勧める可能性はどれくらいですか?」 。 これまでは推奨度をNPSなどで測っていたが、プロダクトによってはLTRが向いている。 medium.com 関連資料、記事 pmconf2018 keynote speech - Speaker Deck #pmconfjp 2018 まとめ Part.1 「Welcome Talk」〜「基調講演: 愛されるプロダクトを創るべき「3つの理由」」 - Togetter [06-03] FiNCのこれまでの苦悩と今、それとこれから 犬飼 敏貴(株式会社FiNC) twitter.com ヘルスケアの大きな課題「続けたいけど続けられない」がペインポイント 。 「三日坊主」の発生理由は、未来に獲得できるメリットを現時点において実感して信じることができないから。 「ヘルスケアリテラシー」が高い人ほど行動ニーズが高いが、 利用者を増やすには、「ヘルスケアリテラシー」が低く、弱いユーザーにこそヘルスケアサービスが必要。 つまり、 行動ニーズが弱い人に愛してもらえないと長期的に愛してもらえるプロダクトにはできない ! 「リテラシーが低い人ほど行動ニーズは低い」 こういう構造は他の領域でも言える な〜と思いながら聴いてました。 継続10のファクター 「継続10のファクター」はいわゆる「お約束」となり得るもののこと。 「継続10のファクター」が指標となり、それをユーザーの利用状況にあてはめて○△✕-の四段階で評価した ことで、プロダクトの価値理解や整理が共通認識化できた。 ニーズ育成のための0ベース思考 0ベースを怖がらず、ユーザーバリューの本質を提供する。 プロダクトから本当にユーザーが幸せになるための価値を伝え、ユーザーの新しい行動ニーズとなるように育成していく。 もっとも障害となるのが「一瞬で理解できないUI」。文字の説明を使わずに、情報の優先度やデザイン構成で価値を伝えることにチャレンジしている。 高効率PDCA 高速ではなく高効率 → 精度の高い仮説立案 をしている。 明確な目的・現状把握・変数理解・複数手段が簡潔に正確に伝わるように、会議フォーマットが定義されており 意思決定をスマートに されているとのこと。 精度の高い仮説とは、こうした立案者の考慮+レビュー体制を整えている状態で立案できる ってことなんですね。 やみくもにPDCAを回すと方向を誤ったまま進んでしまうことに気をつけましょう、といったお話でした。 関連資料、記事 未来を作るプロダクトづくりへの挑戦 - Speaker Deck #pmconfjp 2018 まとめ Part.2 「未来を変えるプロダクト作りへの挑戦 ~FiNCの今までとこれから~」 - Togetter [06-04] 世界で愛されるプロダクトを作ろう 熊谷 亘太郎(楽天株式会社) 海外から日本への旅行者が増えた結果、Booking.comが楽天トラベルの半分の売り上げ規模になってきてる。(まじかと思ってBooking.com使ってみたけどなるほど使い勝手いいしゲストハウスの掲載も多いですね) 世界で通用するプロダクトは、最初からGeneralizeを視野に入れている 。 日本に閉じず、世界で求められる要件をはっきり理解することが、世界に出ていくプロダクトをつくるうえで重要。だから刷新をきめた。 PMとしてのコミュニケーションで大事なこと posivive *問題は必ず解決できるという態度 positiveな態度を取っていると、人がついてくる open communication issueを深く掘り下げて最適な解決策を提供 バグトリアージで、プロダクトマネージャーだけが言えること cut feature 「機能を削ろう」 won't fix 「これはやらない(改修しない)」 発生したbugはすべて直すべきかというとそうじゃないっていうのが人によって認識ずれがち 。 重要度と緊急度から判断して、そもそも機能自体を失くそうという判断もあるし、影響小さくエッジケースなのでいったん直さずに置いておく判断もある。 それの判断をPMができる。限られた時間をいかにに重要な部分に使えるかが鍵! 関連資料、記事 #pmconfjp 2018 まとめ Part.3 「世界で愛されるプロダクトを作ろう」 - Togetter [06-05] [対談] 食文化を支えるプロダクトマネージャーの仕事術 荒井 茂太(株式会社ノンピ 取締役)/及川 卓也(プロダクトマネージャー・カンファレンス 実行委員) 多様性溢れる組織になったことなどのお話全般為になりましたが、特にプロダクトにも通ずると思ったメモを共有します。 グーグル社食(無料のカフェテリア)での食べ残し問題を解決する為にやったこと サラダバーをセルフサービスで盛れるようにしている。 「美味しかったから、今回はもっと食べよう」といって過剰な量をとってしまいがち 。 それにより、食べ残しが問題となっていた。 そこで2つの試みを実施した。 社員が下げ膳する際に、スタッフが「お口に合いませんでしたか?」「体調悪いですか?」と声をかけた 食べ残しの処分も自分たちでさせた。捨てさせることで捨てられている量を可視化させて自分が食べる限界量を学習してもらった 以上2つの試みで食べ残しが減少した件、Webサービスへも活用できる事例となりそうと感じました。 関連資料、記事 食文化を支える プロダクトマネージャーの仕事術 #pmconfjp #pmconfjp 2018 まとめ Part.4 「[対談]食文化を支えるプロダクトマネージャーの仕事術」 - Togetter [06-06] クチコミサイトからプラットフォームへの挑戦プロセス 吉松 徹郎(株式会社アイスタイル) 皆知ってる@cosmeのお話。 実は、 口コミの多い人気商品と、実売データ(POS)は連動性が薄い 。 メーカーにとっては、 * コンシューマー→消費者 * カスタマー→小売店 なので小売店の仕入れ量を変えることが必要。 メーカーは消費者データを持っていないが、@cosmeは膨大な量のユーザーデータを持っているから今後はそれを活用したプラットフォームの構築を強化していきたい。 関連資料、記事 20181106 istyle pm coference #pmconfjp 2018 まとめ Part.5 「クチコミサイトからプラットフォームへの挑戦プロセス」 - Togetter [06-07] プロダクトマネージャーにもコーチは必要だ 鈴木 雄介(グロース・アーキテクチャ&チームス株式会社) 成長するとコミュニケーションは増える。 顧客からの機能要望 技術的な課題とコスト/スケジュール 会社の方向性とプロダクトの方向性 運営を効率的に回すための要望 増えたぶん、もちろんコミュニケーションの偏りと認識齟齬が生まれる。 そこで、 スーパープロダクトマネージャーを求めるのではなく、組織としてプロダクトマネージメントに取り組むべき ことを必要と説く! 共有するから自律的に動けるのであり、そうすることによって組織としてプロダクトマネジメントに取り組むことができる。 例えば、 リードタイム、リリースサイクル、プロセスなどの【リズムの共有】 アイデア段階、検討中、実装可能などの【ステータスの共有】 売上、コスト、フィードバックなどの【KPIの共有】 以上を共有せずにプロダクトマネージャーとしての振る舞いは求められない。 これらのコーチングが必要であればご相談ください、とのこと。 関連資料、記事 プロダクトマネージャーにもコーチが必要だ - #pmconfjp 2018 #pmconfjp 2018 まとめ Part.6 「プロダクトマネージャーにもコーチは必要だ」 - Togetter [06-08] ユーザーと両想いになるサービスの作り方 金田 悠希(株式会社エウレカ) twitter.com リリース前、リリース後、拡大期の各フェーズで戦略が違う。 1. リリース前:先行プレイヤーとどう価値を分けるべきか 先行事例の観察と、うまく行ってるタイプの満たしている価値の言語化。 これは満たさなきゃダメだよねって軸探し(当たり前クオリティの追求かな?)。 2. リリース直後:価値をどのように拡げていくか 市場でNo.1でないと意味がない、ユーザーは覚えていてくれない。 また、ネットで出会うということへの不安が強い日本。「安心」であることは常に重要な価値として守りながら成長を目指した。 しかしあるとき、 女子大生「Pairsって安心で利用できているのに、なんでああゆうクリエイティブ(局部を強調したような広告)を利用しているんですか?」 と言われてクリエイティブを守らなければダメだとあらためて意識。 3. 拡大期:市場を拡大しながら自分たちも成長する 現在やっていること * 幸せレポート:実際どう出会って結婚までいったのかを取り上げている * 実際のお客様に会いに行って利用してくれてありがとうを言いに行く * カスタマーサクセスに注力している * 競合の機能を追従するのでなく、ユーザーの変化と向き合う 関連資料、記事 ユーザーと両想いになるサービスの作り方 - Speaker Deck #pmconfjp 2018 まとめ Part.7 「ユーザーと両想いになるサービスの作り方」 - Togetter [06-09] インターネットテレビ局「AbemaTV」プロダクトの変遷 長瀬 慶重(株式会社サイバーエージェント) twitter.com プロダクトマネージャーとは マネージャー:組織成果を最大化させる プロダクトマネージャー:プロダクトの成果を最大化させる 「オンデマンド」ではなく「リニア」よりに作ったのは、テレビのように受け身で情報や娯楽を得られることが、「ネットからマスメディアを作る」に近いと感じたから。 流入に成功した施策 AbemaTVのコメントtwitterシェア機能は、Abemaでコメントするとその前後10秒くらいの動画がTwitterに投稿できる(Twitterカードの仕組みのことかな?)。 インフィードが当たり前になってきており、ユーザー的にもTwitter上で広告動画が再生されることは当たり前になっている。 そういった、 ユーザーを取り巻く「当たり前の事象」を逃さず に利用する。 話題を絶やさない工夫 事業を加速させる開発も優先しがちだが、 ある一定のタイミングで話題性を埋める・技術的チャレンジができるローンチ をかけている。 そうなると、その分野は エンジニアからのアイデアや発想が必要不可欠 。 リニア・オンデマンドを分けなかった理由 リニアとオンデマンドの共存(オンデマンドのナビゲーションをどこに配置するかに2年かかった)を決断した事象は、 「見逃し録画機能」がユーザーの当たり前 になっていたことから。 「テレビといえばビデオ録画だよね。入れないとね」といった 当たり前 は採用していく。 関連資料、記事 インターネットテレビ局「AbemaTV」プロダクトの変遷 #pmconfjp 2018 まとめ Part.8 「インターネットテレビ局「AbemaTV」プロダクトの変遷」 - Togetter 500億の先行投資をしている「AbemaTV」のGrowth戦略とは? | 株式会社AbemaTV [06-10] 事業ドメインを絞り込むことで磨かれるプロダクトマネジメントの手法 清水 智雄(ピクシブ株式会) 短期間で多数のサービスをリリースできた理由 事業ドメインを絞ると、社員全員が同じドメインにいることとなる。 そのため、 体制変更が柔軟・高速に行えるし技術の統一やドメイン知識が高いレベルで共有される 。 仕事をしていく中で自然と知見が蓄積されるし、場合によっては 技術の応用が効くのでより高速でのリリースが可能。 ユーザーの理解者 プロダクトマネージャーは特定領域(ドメイン)のプロフェッショナルになることが重要 。 誰よりも その領域について理解し、流れを把握し、考え、未来を描くことができ れば、誰よりも一歩先を歩み続けることができる。 例えば、ピクシブは「創作活動」にまつわるドメインにおいては世界中の誰よりも理解し、考え続けることができる。 理解者であることがユーザーに伝わると、ユーザーからも次第に愛されていくプロダクトとなる。 関連資料、記事 事業ドメインを絞り込むことで磨かれるプロダクトマネジメント - Speaker Deck #pmconfjp 2018 まとめ Part.9 「事業ドメインを絞り込むことで磨かれるプロダクトマネジメント」 - Togetter [06-11] 愛されるプロダクトマネージャーのプロダクトマネジメント~愛されるためにまずは成果を残す~ 金山 裕樹(株式会社ZOZOテクノロジーズ) twitter.com プロダクトマネージャーチームの結成のためにリクルーティングを開始。 採用専任チームはなく、1年以内に数字が必要であり、社内にロールモデルとなるPMがいない…といった不利状況があったため、自らがダイレクトリクルーティングすることとした。 リクルーティングのMUST条件 失敗を恐れず挑戦できる:U30 若手寄りであること 行動から学びを得ることができる:教育バックグラウンド(出身高校偏差値65以上) 学ぶ習慣や学び方を知っている・経験したことがあるであろうフィルタのひとつ チームから尊敬を勝ち取れる:ネット業界在籍 必ずしも有名人でなくともいいが、ネット業界における経歴を持っている人 オンボーディング施策「花を持たす」 優秀な人を採用しても「あとよろしく〜」はできない。 入社までではなく、活躍させられるところまでが採用 。 入社前にトップ、PM間で入社3ヶ月以内に達成する成果を明確にする トップがその成果にコミットし達成する 成果を社内に大きくアナウンスする 花をもたせて信頼を得ることができ、 花をもたせることでその人の振る舞いは変わる。優秀な人がさらに成果を出してくれる状態に できる。 関連資料、記事 愛されるプロダクトマネージャーの プロダクトマネジメント - Speaker Deck #pmconfjp 2018 まとめ Part.10 「愛されるプロダクトマネージャーのプロダクトマネジメント~愛されるためにまずは成果を残す~」 - Togetter [06-12] LINE開発の舞台裏とプロダクトマネージャー 入江 和孝(LINE株式会社) twitter.com プロダクトマネージャーは「愛され」なくなることも往々にしてあるので、「愛され」はじめることがとにかく重要という語り出し。 PMの仕事は成果でしか見えることが出来ない 意思決定や部門間調整が多く仕事をしていないように見えちゃう 上流の業務にいたり頻繁な意思決定の変更が多いので警戒されやすい LINEのプロダクトマネージャーに求められること 目に見える数値の変化だけでなく、 文化の違いや変化を理解し続ける努力 意見を尊重した上で結論を出す 決断力 &時には自分の意見を曲げる 柔軟性 熱量の高い市場の声に耐えながら、 本質と向き合い続けるタフさ 多くのユーザーフィードバック ほんの一部のユーザーが騒いだら炎上 ユーザー像やペルソナ像が絞れない ユーザーのITリテラシーに下限がない ユーザーリサーチ(ゲリラリサーチ)やってみた 日本人「LINEトーク画面にクリスマスで雪降らせるのは北半球だけでええやろ」 タイ人「うちにも降らせて!」 日本人「は?(現地へ行ってみる)」 タイの街並みは、クリスマスシーズンには雪モチーフのイルミネーションで溢れてる。 日本人「なるほど。 思い込みでユーザを取り巻く環境を決めつけていた のか」 関連資料、記事 LINE開発の舞台裏とプロダクトマネージャー #pmconfjp 2018 まとめ Part.11 「LINE開発の舞台裏とプロダクトマネージャー」 - Togetter LINE開発の舞台裏について話してきたこと|Kazutaka Irie|note [06-13] 失敗をデザインする 泉 雄介(ラクスル株式会社) 何を開発するかを決めていないと莫大な予算がかかってしまう。 よく誤解されがちなのが、「ソフトウェア開発は安い」と思われていること。むしろ莫大なお金がかかる! 六本木ヒルズの建設費は2,600億規模だが、みずほ銀行のシステムは4,000億規模 と言われている。 リリースしてから失敗に気づいても遅い。 だからリリースする前に失敗をたくさんする。失敗する前提でプロセスを組む。 例えば、 ラグビー選手は雨が降るとパスが狂うので、雨が降った想定でボールに石鹸を塗って練習する などしている。 同じ失敗に気づくのであれば、安く作ったもので失敗したほうが損も少ない。失敗に備えろ! プロトタイプを作って→ユーザーテストして→プロトタイプ作って→ユーザーテストして…の繰り返し。 その際、 ユーザーテストから仮説ではなくFactを探す、「実際何に困ったのか?」 を。それをユーザーインタビュー対象者そのものを意識して、「石川さんはこういった状況のときにこういった操作ができずに困り〜」などの文脈で話す。 仮説が正しいかどうかを検証し、学ぶことを仕事にする。 関連資料、記事 https://2018.pmconf.jp/assets/files/speakers-contents/pmconfjp2018_raksul.pdf #pmconfjp 2018 まとめ Part.12 「失敗をデザインする」 - Togetter [06-14] クロージング 関 満徳(プロダクトマネージャー・カンファレンス 実行委員長) twitter.com 【感想】参加してみて 昨年参加できずに悔しい思いをしたので、今年こそは!とカンファレンスサイトのオープンを待ち焦がれていました。 それぞれのスピーカーによってプロダクトマネージャーの定義が異なっていましたが、組織の規模やプロダクトのステージによって話は変わるかとも思うので、結果的によかったと思っています。 また、“プロダクト”マネージャーの話だったので、他のカンファレンスと比べても ユーザーへ価値を届けることに対する話題へ熱量が集まっていた ように感じられました。 テーマが「愛されるプロダクトを創ろう」なので、より熱さを感じたのかもしれません。 今回参加したことで、 顕在ユーザーに今以上に愛されるLIFULL HOME'Sにしたい 、 潜在ユーザーにLIFULL HOME'Sを選んでもらいたい!愛されたい! と思える熱量がより高まりました。 すぐにでも試してみたいといった事例も多く、本当に参加してよかったです。 さっそく社内でも共有していきたいと思います。 今後の参加レポ投稿予定 あと2つほど、プロダクトマネージャーConference2018で記事を公開する予定です。 day 2参加レポート(メンティのまっつんが後日公開してくれる予定) 総まとめ座談会(2人で全2日間のセッション内容について得た学びをフリートークする予定) 乞うご期待ください! チバ
アバター
こんにちは。 木村 修平@LIFULLジンジニア(エンジニア人事) (@kimkimniyans) | Twitter です。 昨今エンジニア経験者が開発部門以外のポジションで仕事することも増えてますね。 そんなエンジニアあるあるで、 ちょっとスクリプト書くだけで周りから魔法使いか神扱いされる っていうのがありまして。 例に漏れずそんなことがあって大変うれしいのですが、悦に浸るだけではもったいないので何したか吐き出しておきます。 GAS初学者の方にもお役に立てれば。     お題は、『インフルエンザ予防接種の希望日程を申し込むフォーム』です。 これまでは希望に応じて日程ごとに振り分けを手作業でやっていたそうで、すごい時間かかっていたようです。     画面イメージとざっくり仕様   回答送信時に、希望日程ごとの定員上限数と突き合わせして定員上限に達していればフォームから選択肢削除。 例)11/1(木)15:00-16:00、11/1(木)16:00-17:00、11/1(木)17:00-18:00、11/2(金)15:00-16:00、11/2(金)16:00-17:00、11/2(金)17:00-18:00 設問は日程の選択肢プルダウンとその他リクエストのテキストで両方非必須。 選択肢から削除された場合、削除された旨をchatwork(専用のグループチャット)に通知。 すべての選択肢が削除された場合、全日程満員である旨と次の設問にリクエストを記載してほしい旨の選択肢を追加。その選択肢の定員数上限はもちろんなし。 今回は送信タイミングでの回答数チェックはしていません。なので厳密には上限を超えることがあります。 FormApp使ってガシガシっと いくつかの.gsファイルに分割したのでそれごとにコメントで説明します。 片手間タスクだったのでレビューも受けてないし雑でごめんなさい。 公式リファレンスは こちら です。 main.gs グローバル変数である必要ないけどまとめて記載。global領域だとconstで定数宣言できない(?)みたいです。 var ROOM_MAXIM = 40; // 日程ごとの最大人数 var ARY_CHOICE_VAL = [ "11/1(木)15:00-16:00" , "11/1(木)16:00-17:00" , "11/1(木)17:00-18:00" , "11/2(金)15:00-16:00" , "11/2(金)16:00-17:00" , "11/2(金)17:00-18:00" ] ; // 選択肢VALUEを配列に確保 var CHOICE_LENGTH = ARY_CHOICE_VAL.length; // 選択肢の数 var TMP_NEW_CHOICE_VAL = "全日程満員です。次の設問で希望の日程を入力してください" ; // 通常選択肢が全て無くなった後に追加する選択肢VALUE var STR_TARGET_TITLE = "希望日程" ; // 処理の対象とする質問タイトル名 /** * フォーム送信時イベント(初期処理) */ function onSend(e) { reBuildItem(e.response.getItemResponses()); //functionの引数eからイベント発生時の回答時のレスポンス取得して受け渡し } onSendメソッドをプロジェクトのトリガー(フォーム送信時イベント)に設定しています。 編集タブ→「現在のプロジェクトのトリガー」で設定できます。 ui.gs 回答データとの突き合わせとUI項目の操作。前者は別メソッドにしたいっちゃしたいけどまぁいいです。回答データの取得もここでコールしてます。 /** * 選択肢の再構築 * * @param {array} 選択肢ごとの回答カウントデータ配列 */ function reBuildItem(rAnswer) { var form = FormApp.getActiveForm();  //アクティブなformオブジェクトを取得 var items = form.getItems(); // フォームのUI項目を取得 var allAnswer = getAnswer(); // 全回答の取得 // 今回の回答を取得(※プルダウンUIで未選択の場合は回答データに含まれない模様です※) var nowAnswerVal = rAnswer [ 0 ] .getResponse(); var nowAnswerTitle = rAnswer [ 0 ] .getItem().getTitle(); if (nowAnswerTitle == STR_TARGET_TITLE) { // 「希望日程」プルダウンで未選択の場合は何もしない(項目タイトルで判断) for ( var i = 0; i < items.length; i++) { // UI項目分ループ var item = items [ i ] ; var itemTitle = String (item.getTitle()); var itemType = String (item.getType()); // UI項目のタイプ if (itemType == "LIST" && itemTitle == STR_TARGET_TITLE) { // リストボックスかつ項目タイトルが対象の場合 var choiceArray = [] ; var arrayCount = 0 var flgChoiceNone = false ; // 回答突き合わせ後選択肢が残るか否かのフラグ for ( var j = 0; j < CHOICE_LENGTH; j++) { // リスト選択肢分ループ var choiceVal = ARY_CHOICE_VAL [ j ] ; var flgSet = false ; // 上限内か否かのフラグ if (flgChoiceNone == false ) { // 選択肢がまだ残っている場合 if (j == 0 && nowAnswerVal == TMP_NEW_CHOICE_VAL) { // 選択肢が全て無くなった後の追加選択肢のチェックはスルーする flgChoiceNone = true ; } else { if (allAnswer [ j ] < ROOM_MAXIM) { // 回答上限チェック flgSet = true ; } } } if (flgSet == true ) { // 回答上限に達してない選択肢は退避 choiceArray [ arrayCount ] = choiceVal; arrayCount++; } else { if (choiceVal == nowAnswerVal) { // 今回の回答だった場合 sendChatwork(nowAnswerVal); // 満枠になったことをchatwork通知する } } } if (arrayCount == 0) { // 選択肢が全てなくなった場合 choiceArray [ arrayCount ] = TMP_NEW_CHOICE_VAL; // 追加選択肢をセット } // リストボックス作り直し item.asListItem().setChoiceValues(choiceArray); } } } }   ちなみに、''Logger.log(hoge);''でログ出力できます。デバッグに必須です。 実行後、表示タブ→ログから確認できます。 answer.gs 回答データの全取得と選択肢ごとにカウントして返します。 /** * 回答データの取得 * 回答データが取得できない(例外の場合)エラースロー * * @return {array} 選択肢ごとの回答カウントデータ配列 */ function getAnswer() { var form = FormApp.getActiveForm(); var formResponses = form.getResponses(); // 全回答内容を取得 var aryAnswerCount = [] ; // 選択肢分配列定義 for ( var k = 0; k < CHOICE_LENGTH; k++) { // 配列をゼロで初期化(fillメソッド使えないので) aryAnswerCount [ k ] = 0; } var flgAnswer = false ; for ( var i = 0; i < formResponses.length; i++) { flgAnswer = true ; var formResponse = formResponses [ i ] ; // 回答ひとつ分を取得 var itemResponses = formResponse.getItemResponses(); // 質問項目を取得 for ( var j = 0; j < itemResponses.length; j++) {   // 回答内容をひとつずつチェック var itemResponse = itemResponses [ j ] ; var question = itemResponse.getItem().getTitle(); var answer = itemResponse.getResponse(); if (question == STR_TARGET_TITLE) { // 項目タイトルが対象の場合 var x = ARY_CHOICE_VAL.indexOf(answer); if (x != -1) { // 選択肢ごとに回答数カウント aryAnswerCount [ x ] ++; } } } } if (flgAnswer == false ) { // 例外:回答がまだなければエラー吐いて終了 throw new Error( "not Answer" ); } else { return aryAnswerCount; } } chatwork.gs バックオフィスも含めて弊社公式に採用しているchatworkのとあるグループチャットに満枠になったら通知するメソッドです。 chatwork通知の方法はググったらすぐ出てくるので詳細は割愛します。 chatwork通知例 /** * chatwork通知処理 * * @param {string} 回答した選択肢タイトル */ function sendChatwork(rChoiceVal) { const CW_TOKEN = "hogehoge" ; //チャットワークトークン const CW_ROOM = 1111111; // 通知先のチャットルームID var client = ChatWorkClient.factory( { token: CW_TOKEN } ); // チャットワークAPI var strBody = "[info][title]Googleフォームから通知[/title]インフルエンザ予防接種で以下の日程が満席になりました。 \n " + rChoiceVal + " \n " + "[編集用URLでも記載するといいと思います]" + "[/info]" ; client.sendMessage( { //チャットワークに送る room_id: CW_ROOM, body: strBody } ); }   結論 色々できそうでできなかったり もっとちゃんと考えればやれることとか違うやり方とかあるんでしょうけど、GASでのフォーム操作は結構なパワープレイな感じでオススメしません。 要件がシンプルな場合はいいかと思います。 とはいえ、特に今回のようなバックオフィスタスクの負荷軽減には役に立つと思うのでちょっとのjsスキルと利他の気持ちでパパっとやれるのはいいですね。 LIFULLでは当たり前のようにこういった周囲へのサポートがあります。 よかったら参考にしてください。
アバター
こんにちは!  木村 修平@LIFULLジンジニア(エンジニア人事) (@kimkimniyans) | Twitter です。 今年も残すところあと僅か。2018年やり残したことはないですか? 12月は皆さん仕事に遊びに忙しいと思いますが、LIFULLも精力的に活動しています! 皆さんにお知らせしたいことがたくさんあるので紹介しちゃいます。   Ltech #3 & #4 12/11(火)に Ltech#3 【podcast × IT】LT Night ! を開催いたします! lifull.connpass.com 昨今盛り上がっている技術系Podcastをネタにライトニングトークする、年末らしくワイワイ楽しい会にしたいと思います。 ちょっとしたおつまみやドリンクもご用意しております。 また、参加者全員投票で選出されたベストスピーカーにはちょっとした景品をご用意しております。 LT枠まだご応募可能ですのでご応募お待ちしております! そして、 12/20(木)には、Ltech#4 Dotfiles Casual Talks を開催予定です! lifull.connpass.com こちらもご参加登録お待ちしております! 奮ってご参加ください。 CTO 長沢 翼のキャリアインタビュー記事のご紹介 エンジニア@type 様にCTOの長沢 翼( Tsubasa Nagasawa (@nagasawatsubasa) | Twitter )のキャリアをテーマにしたインタビュー記事が公開されました。 type.jp 新卒入社からCTOに就任したキャリアの秘訣を熱く語っています! ぜひ御覧ください。 LIFULL job talk データサイエンティストや機械学習エンジニア向けに、 この秋新設しました『AI戦略室』の戦略やエンジニアリングについてお伝えするイベントを12/17(月)に開催します! lifull.connpass.com 過去から積極的に機械学習などの技術を積極的に利用・研究しておりましたが、新たに部署を構え更に注力していきます。 ご好評で既に満枠となっておりますが、今後、追加開催も検討しておりますのでご期待ください。 PHP Conference 2018 いよいよ開催が迫ってきましたPHP Conference 2018にスポンサー&ブース出展の予定です。 【告知】PHP Conference 2018にスポンサーします! - LIFULL Creators Blog 新ノベルティも出来上がってきましたのでぜひブースに遊びにきてください! ホームズくんのカワイイクッキーや新ステッカーをご用意していますよ。 Advent Calendar 2018 そして12月といえばAdvent Calendarですね! LIFULLもQiitaで公開していますのでぜひご覧になってください。 今年もLIFULL Advent Calendar 2018をよろしくお願いします - LIFULL Creators Blog     最後までご覧いただきありがとうございました。 2018年最後の一ヶ月、楽しんでいきましょー!   Information LIFULLでは、一緒に働くメンバーを募集しています! ご興味がある方ぜひご覧いただきご応募ください。 hrmos.co
アバター
こんにちは。クリエイターの日運営委員のおおばです。 今回は、社内のモノづくりイベント『創民祭』が開催されましたので、その様子を共有させていただきます。 2015年から始まった創民祭も早いもので、7回目の開催になりました。 創民祭とは 創民祭(そうみんさい)とは、LIFULLで半年に1回開催される社内展示会です。 お酒を飲んだり、ピザを食べながら、業務の成果や「クリエイターの日」、プライベートで創ったものをお披露目するイベントです。 前回の様子はこちら。 www.lifull.blog 今回のテーマ せっかく足を運んでもらうので、よりLIVE感を大切に!と企画を進めました。 そして、今回もたくさん魅力的なブースが展示されました。 今までのブース出展に加え、今回からの初企画!「ライブコーディング対決」や「にがおえやさん」などのイベントも開催し、有志による「コーヒーやさん」、「スムージーやさん」も出展してもらえました。   展示内容 今回、過去最多の13ブースです! 内容もWebに限らず色々なクリエイティブが出展されるようになってきています。 当日、出展されたいくつかのプロダクトを紹介していきます。 イラストレーターさんがで描いてくれる!『にがおえやさん』 創民祭に来場した人を、その場で似顔絵をかく、そのまんま「にがおえやさん」! 弊社デザイナー + エンジニア の計4名が協力して描いてくれました。 お客さんの特徴を捉え、わずか数分で仕上げていく、イラスト力が光ります。 若手 vs 若手のペアプロバトル!『ライブコーディング対決』 お題に沿ってペアで開発していく、そしてその様子が実況されていく、その名も…「ライブコーディング」イベント! 新卒3年目エンジニアの2人 vs 新卒2年目エンジニア + デザイナーの対決でした。 進捗を実況解説されるプレッシャーの中で、黙々と実装を進める面々。最後はベテランエンジニアが審査をします。 今回はVue.jsを使って、機能面にこだわった3年目チームの勝利!!2年目チームはリベンジマッチを決意しました。 廃棄野菜を再利用したスムージー『Clean smoothie』 写真はすごい緑で野菜の味がしそうですが…飲んでみると冷たくて美味しいです!野菜嫌いでもおいしくいただけました。 実はこのスムージー、弊社の事業提案制度で生まれた「Clean smoothie」というサービスです。 Instagramやってます。( http://picdeer.com/clean_smoothie_ ) オフィス向けに廃棄野菜や規格外野菜を買い取ってスムージーを作り、農家もオフィスワーカーも、みんな元気な社会を目指してるとのことです。 導入企業、仕入先農家両方を絶賛募集中ですので、気になる方はご連絡を! 弊社ではもうおなじみ『コーヒーやさん』 弊社では水曜15時にコーヒーやさんがきます。正確には、コーヒーが趣味の社員がリフレッシュルームでコーヒーを振る舞ってくれます! 今回は出張コーヒーやさんで、創民祭でも美味しいコーヒーを淹れてくれました。 今回は特別な豆を使ってくださったらしい…!どうやら豆ごとに最適な淹れ方があるらしく、贅沢な一時でした。 趣味で作成したandroidアプリ『割り勘オンライン』 趣味で作成されたという会計アプリ! 飲み会などで誰かが立て替えた後、自分の返すお金を計算してくれるアプリ。 カラオケ、二次会…とイベント別で勘定するのではなく、まとめて一人何円です!と計算してくれる機能。 忙しいときでも手早く計算できて、実用的ですよね。 『ジオラマ作品展示』 創民祭は過去、アプリやWebサービスが多かったのですが、、、初!ジオラマの展示になります! 実は過去、様々なコンテストでも入賞経験があるという実力者! 『単に景色を切り取るのではなく、作品の中にストーリーを感じられる。』そんな作品づくりを心がけているそうです。 「模型大好き!」( http://www.mokeidaisuki.com/ )というサイトでも、ジオラマの様子が公開されていますので、気になった方はそちらもチェックしてみてください!   ちょっと不思議で怖い、でも可愛いイラスト『Gothic Gallery』 プライベートでイラスト制作を行っている方の展示です! 「あなたの日常に毒とスパイスを」をコンセプトに、ちょっと不思議で怖い、でも可愛い…そんなイラストです。 コピックペンで描いたあと、PCで色塗りや仕上げをしているとのこと! 丁寧な仕上がりでとても可愛いイラストばかりでした! 『オンラインブレスト』 オンラインでブレストができる「オンラインブレスト」! 以前の創民祭でプロトタイプが出展されていましたが、パワーアップして再登場! こちらも事業提案制度から生まれたプロダクトなのですが、実際に他社でも利用が開始しています。 創民祭の間も、「こんなものづくりイベントやってほしい!」というテーマで実際にブレストが繰り広げられていました。 公開中のオンラインブレストサイトはこちらです。 https://brest.nabimoon.com/ 手書きもいいけどメールでも感謝を伝えよう『サンクスカード Web』 弊社には「サンクスカード」という、感謝を伝えたい人にメッセージカードを渡す文化があります。 これまでは名刺サイズのカードに筆記する形だったのですが、有志によりついにWebサービス化されました! サイトにメッセージを入力すると、相手にメールが届きます。 クリエイターの日の活動で開発しており、裏側はサーバーレスで動いています。 その他 その他、LIFULL HOME'Sの新機能開発や、ハッカソンで開発したIoTのアプリケーション、街の雰囲気が分かる地図のアプリケーションなど、魅力的なプロダクトが出展されていました。 また、Lightning TalkではAIとレコメンドについてのお話を噛み砕いて伝えてくれたり、Sonic Piというライブコーディング可能なシンセサイザーを使った、エモすぎる発表も素敵でした。 最後に 第7回目の創民祭。 内容も回を追うごとにパワーアップしており、どんどん多様になってきています。 こういったイベントで刺激をうけると、モノづくりの楽しさを実感して、自分自身ももっと新しいことに挑戦していきたいと感化されますね! それでは! 次回、半年後の創民祭もご期待下さい! LIFULLでは、一緒に働くメンバーを募集しています!ご興味がある方ぜひご覧いただきご応募ください! hrmos.co
アバター
エンジニアの鈴木( Kentaro SUZUKI (@szk3) | Twitter )です。 ついに本日で re:Invent 2018は終了になりました。よって、参加レポートもこれで最後になります。 すこしre:Playに触れた後に、総括していきます。 re:Play 昨晩 Keynote 2日目の夜は、re:Playというパーティーが開催されました。 reinvent.awsevents.com 自分も参加してきましたが、昨年以上にド派手で楽しい思い出になりました。 Twitterなどで探すと、動画を上げてらっしゃる方が多いので是非一度ご覧頂きたいと思います。 翌朝、re:Playも明け最終日を迎えた会場は人も少なくなり 会場全体が撤収モード になります。 そんな光景を見ていると、「あー、今年も終わっちゃった...」と実感が湧いてきます。 では、 re:Invent 2018 総括 です。 re:Invent 2018 を振り返る 参加期間中は、この記事 + Qiitaを含め合計8つのフィードバックを出すことができました。 総括としてブログを振り返っていきます。 参加レポート1 この記事では、「なぜre:Inventに参加するのか?」について自分なりの答えをシェアしています。 カンファレンスが始まる前に、現場にいる方に読んでもらいたく投稿しました。 www.lifull.blog 参加レポート2 新しく発表されたRoboMakerについてハンズオンした内容になります。 まさかRobot来るとは思わなかったわー。 www.lifull.blog 参加レポート3 - The Quad / Chalk Talk re:Inventは聞く一方だけではありません、体験したり、ディスカッションする場も設けられています。 www.lifull.blog 参加レポート4 - Keynote AWS CEO Andy JassyのKeynoteを受け、思うことをまとめました。 (なので紹介されたサービスについては記述されてません!) www.lifull.blog 参加レポート5 - DeepRacer ML学習環境としてのDeepRacerは、大人も子供楽しめるので要チェックですね。 www.lifull.blog 参加レポート6 - AWS SDK for JavaScript (TypeScript) 新しいJSの AWS SDK は TypeScript で書き直されています。それについてのChalk Talkに参加してきた内容のフィードバックです。 www.lifull.blog まとめ 自分は、今回で3回目の参加になります。 1回目も2回目も、かなり刺激が強かったのですが、3回目でも昨年と違うブレイクスルーを実感できるのは、 それだけ心を揺さぶられる振り幅が大きいからだと感じています。 同じ場所、同じ空気、同じタイミングで re:Inventに参加するという共通項が、世界中の開発者が楽しそうに参加してくる大きな理由のひとつ だと毎年感じます。 新しい出会いもたくさんありました。 企業同士で具体的なテーマについてディスカッションさせて頂いたり、 近くで生バンドが爆音で演奏している中、組織や抱える課題についてお話させていただいたり、 DeepRacerのWorkshopで同じテーブルになった方と一緒にレース場に行ったり、 re:PlayではAWSの中の方とお話させていただくことができました。 また、Facebookでのre:Invent 2018 コミュニティーグループには何度となく助けていただきました。 皆様の素晴らしいホスピタリティにはかなり支えていただきました。ありがとうございました。 今年もre:Inventに参加することができて本当にうれしく思います。 送り出してくれた、家族・会社・同僚には感謝しかありません。 次のアクションは、このre:Inventの経験や出来事をどう活かすかです。 帰国したら自分にできることで、社内外に貢献し続けていきたいと思います。 コミュニティグループ含め、現地でお話させていただきました皆様ありがとうございました。 re:Cap等ご予定あって、登壇者に困っている方は Kentaro SUZUKI (@szk3) | Twitter までお気軽にご連絡ください! いろんな視点でフィードバックできます! ひきつづき頑張るよー
アバター
お疲れ様です。基盤Gの今井です。 Hands-on Labsに参加してきたので、所感を記載いたします。 Hands-on Labsとは  検証用のサンドボックス環境で実際にAWSサービスを実習を行います。  カタログから、実習対象サービスと内容を選択し、シナリオに沿って自分のペースで学習が可能です。  また、申込み予約が不要で、席が空き次第、実施可能なのもありがたかったです。(回転が早いため、ほぼ待つことなく参加できました。)   開催場所  The Venetian(主要会場)にて、開催されます。 開催時間  登録用の初日と、最終日を除き、毎日以下の時間で参加可能でした。 11/26 08:00 ~ 16:00 11/27 08:00 ~ 16:00 11/28 08:00 ~ 16:00 11/29 08:00 ~ 16:00 参加に関して  ラボ参加に関して、最初にアカウント作成が求められます。登録時のメールアドレスがアカウントになりますが、登録後に対象メールアドレス宛にアカウント認証用メールが送信されます。その為、即時、確認が可能なメールアドレスで登録されることをお勧めいたします。  また、シナリオは全て英語でしたが、何をすれば良いのかが分かりやすく、手順を間違うことはありませんでしたので、英語初心者&専門知識無しでも、安心して参加できました。 各Hands-on Labs内容と感想 Introduction to Amazon EC2 Auto Scaling  AWS EC2 Autoscallingを1から構築する手順が、分かり易く纏められていました。 Introduction to Amazon Machine Learning  機械学習を用いたクラス分類の精度評価のための混同行列を学びつつ、機械学習の初期導入が学べました。  上記Auto Scalingと同様に、こちらも1から構築する手順が、分かり易く纏められており、導入・学習としては良かったです。  また、Machine Learning(※AWSサービス名)が必要な設定を任意で対応してくれるため、初心者でも機械学習がやりやすかったです。
アバター
お疲れ様です。基盤Gの今井です。 各Keynoteに参加してきたので、所感を記載いたします。 Keynoteとは  AWSに関する基調講演となり、AWS全体に関する内容が発表されます。今年も、11/28(火)、11/29(水)、11/30(木)と計3回開催されました。  新機能・サービスも併せて公開され、発表された機能・サービスのセッションが即時公開されるため、注意が必要とのことです。今回は、11/28にAWS DeepRacer発表後にMGMでWorkshopが公開されていました。 開催場所  The Venetian(主要会場)にて、開催されます。 但し、その他の会場(ARIA、Bellage、Mirage、MGM)と公式アプリでライブ公開され、視聴可能です。発表後1時間程度の遅れはありますが、以下のYoutubeチャネルでも視聴可能となります。 www.youtube.com 開催時間  大体、08:30 開始で約2時間 ~ 2時間半の間で開催されます。主要会場での参加人数がかなり多いため、参加するなら開始1時間前から並ぶか、ライブ配信で閲覧されるのも1つの手だと思われます。 アプリ  Keynoteでは、同時通訳で行われ、以下のアプリをスマホにインストールし、告知されるWIFIに接続するか、Keynote会場時に入口左側のTranslation Table でヘッドセットを借りることで、通訳された内容を公聴可能でした。 Hearing Hotspot Williams Sound, LLC Productivity Free play.google.com 各Keynote内容 11/27(火)  AWSパートナーのためのエコシステムやglobal allianceでした。(次のセッションがあったため、あまり聞けなかった) 11/28(水)  Keynoteとしては、さすがメインだけあって、今回も大量の新サービスが公開されていましたが、個人的に気になるのは以下のサービスでした。  ※各コンテンツの概要は、 AWS re:Invent 2018 で発表された新サービスと機能 | AWS で確認できます。 AWS Control Tower AWS Security Hub AWS Managed Blockchain AWS Lake Formation Amazon Timestream SageMaker Ground Truth Amazon SageMaker RL Marketplace for machine learning Amazon Elastic Inference 11/29(木)  前日が完全新規サービスが多かったのに対して、この日は既存サービスの拡張が多めでした。その中でも、個人的に気になるのは以下のサービスでした。 ALBでLambda functionをターゲットとして、選択可能 LambdaでのCustom Runtime の利用可能 参加した感想  昨日のDevSecOps関連システムインフラ系のセッションなどでも感じましたが、システムを代替しうるマネージドサービス公開の可能性を考慮し、システムを単一機能で、システム間を疎結合にて構築し、構造をシンプルかつフレキシブルに変更可能に設計する事が今以上に必要になってきたと考えています。
アバター
お疲れ様です。基盤Gの今井です。 Japan Nigthtに参加してきたので、所感を記載いたします。 Japan Night Japan Nightとは  日本からのre:Invent参加者限定のパーティーです。 登録  登録は、AWS re:Invent 2018 japanのサイトにて登録可能です。Japan Night単独でも大丈夫でした。 開催場所・日時  今回は、ARIA で11/27(火) 18:45 開始。 当日参加に必要なもの  以下のものが必要でした。 プリントした参加チケット パスポート 参加ノベルティ 参加した感想  今回は800人以上の方が参加され、かなり混んでいました。が、いろんな方々と交流することができ、楽しかったです!!
アバター
エンジニアの鈴木( Kentaro SUZUKI (@szk3) | Twitter )です。 Amazon.com CTO Werner Vogels が登壇するKeynoteでは、Serverless関連の大型アップデート・新サービスが大量に発表されました。 Wernerの動画はコンテンツも良いのですが、AWS CEO のAndyと同様にプレゼンの勉強になるのでオススメです! www.youtube.com どうしても派手なアップデートに目が行きがちな re:Invent ですが、 各会場で行われるセッションでは、re:Invent前に発表された 地味だけど嬉しいアップデート についても紹介されます。 今回は AWS SDK for JavaScript の Version 3についての Chalk Talk に参加してきたのでレポートします。 Introduction to Version 3 of the AWS SDK for JavaScript (TypeScript) … Introduction to Version 3 of the AWS SDK for JavaScript (TypeScript) Chalk Talkでディスカッションする内容は、約10日くらい前にアナウンスされた新しいAWS SDK のものです。 aws.amazon.com AWS SDK for JavaScriptは現在v2ですが、開発者プレビューのversion3が公開されています。 リポジトリはこちらになります。 github.com version3の特徴を見ていきましょう。 TypeScript 一番の変更点ですが、 TypeScript で書かれています。 TypeScriptによる恩恵は、エディタによる補完や型推論などを通じて開発効率に現れます。 Google社内でも公式言語として採用されていますし、 www.publickey1.jp かの有名なVSCodeもTypeScriptで書かれています。 github.com ちょっと話がそれますが、VSCodeは re:Inventで発表されたAWS Toolkitsの対応エディタ(現時点ではpreview)のひとつに選ばれるくらい人気があります。 New – AWS Toolkits for PyCharm, IntelliJ (Preview), and Visual Studio Code (Preview) | AWS News Blog VSCodeを触ったことがなく興味のある方は、以前まとめた記事が参考になるかもしれません。 よろしければご覧ください。 qiita.com モジュール化 aws-sdk v2がモノリシックな設計だったのに対し、 v3ではモジュール化を意識した設計 になっています。 そのため、v2に比べていくらかサイズが小さくなっています。 SDKのサイズが小さいことはダウンロードやアップロード時間も短くなるので良いことですね。 一般的なWebにおいては、 速さは正義 です。 v2の特徴としては、使わないAWS Serviceのクライアントなどもまるっとインクルードされていた為、サービスクライアントを個別にインポートする必要はありませんでした。 しかし、それは本当に便利だったのでしょうか? たとえば、S3のサービスクライアントしか使わないようなアプリに対して、EC2やEMRなどのサービスクライアントは不要だと思います。 なので、各ソースコードで必要最低限のサービスクライアントをインポートすることでコードの軽量化を含め多くの恩恵が受けられるようになることは、自然な流れだと思いました。 また、ブラウザ側とnode.js側のSDKを分けることで影響範囲を少なくすることにも成功しています。 たとえば、StreamなどNode.jsとブラウザでインターフェイスが違うようなものに関しても、両方のパッケージで適切に処理することができます。 いい感じですね、モジュール化。 プロミス化 各サービスクライアントの非同期的なAPI呼び出しは、コールバックからプロミスに変更されました。 (v2でもAWS Requestオブジェクトのpromise()関数からPromiseオブジェクトを取得することはできます) いままでは、Promiseオブジェクトを取得する際はpromise()関数を呼び出す必要がありました。 v3ではpromise()関数を経由せずにPromiseオブジェクトが取得できるため、スッキリかけそうです。 さらに aync/await で 統一されていると可読性も高くて嬉しい ですね。 グローバルな設定の廃止 v2では各クライアントのコンストラクタに設定を渡すと、グローバルな設定とマージされるような挙動をします。 そのため、この機能が一部の状態下において混乱のもとになっていました。 そのようなフィードバックを元に、 v3からは各サービスクライアントごとに設定することになります。 これは個人的にはすごく良い変更だと思っていて、昨今のアーキテクチャではマルチリージョンで運用するサービス増えているし、 状態としてサービスクライアントに閉じ込めるのはとても自然に感じます。 質問 Chalk Talkだったので、テスト周辺モジュールについて直接質問してみました。 Q「aws sdkってテストがめんどくさいんだけど、mock とか stubとかそういう機能をオフィシャルにサポートする無いの?やっぱりsinonとかproxyquire使ったほうがいい? 」 A「そういう予定はないけど、aws-mockとかあるから使ってみたら。あと○xklsjfwfkj....」 ... ふむ。なるほど。 わからん。。。 残念ながら英語力不足で最後のセンテンスを聞き取れませんでした。 反省としては、会話の中のaws-mockというキーワードを得ることで満足してしまったところです。 遠慮せずに、「もっとゆっくり話して」って言えばよかったですね。。。 多様な英語に触れてコミュニケーションの経験値を積んで行こうと思います。 ちなみに、その後、ホテルに戻ってきてリポジトリのソースコードを読んでると、テストコードではMockはjestを使っているようでした。 jestjs.io まとめ このChalk Talkの参加人数は、ざっくり約30人くらいでした。 他のセッションと比べると圧倒的に会場も小さく、人も少ないです。 ですが、小さい会場において、 手を伸ばせばすぐ届く距離感だからこそ、登壇者の勢いや伝えたい箇所が強く伝わって来るような気がします。 前回のChalk Talkと比べて、登壇者とリスナーが新しいSDKについて積極的にディスカッションしていたのも印象的でしたね。 個人的な参加目的のひとつとして「AWSのエンジニアに 技術的な質問を英語でする 」という ミッションをひとつを達成できたので、一歩前進 という意味でも満足したChalk Talkになりました。 Chalk Talkのような小さいセッションでも手を抜かないのが、re:Inventのいいところ ですね。 次回は、re:Invent 2018 の総括です。
アバター
エンジニアの鈴木( Kentaro SUZUKI (@szk3) | Twitter )です。 AWS のカンファレンス re:Invent に来ています! これでもかというくらい新サービスが発表されるので、嬉しい悲鳴とはいえキャッチアップが結構大変です。 そんな人に向けて、これはスゴい!と思うサービスを厳選した記事をQiitaに投稿していますので、ご覧いただければ幸いです。 qiita.com さて、本記事では先日発表された DeepRacerについてのレポート です。 https://aws.amazon.com/jp/deepracer/ より引用 aws.amazon.com AWS DeepRacer DeepRacerは、Keynote 1日目の中で発表されました。 機械学習を学ぶための取っ掛かりとして、こんなに面白そうなものがでてきたのは自分が知る限り初めてです。 Keynote最中に、amazon.comでの販売が発表されたので、即カートにいれました。 決済のタイミングで、去年のDeepLensのことが頭をよぎります。 これは、もしや。。。 ビンゴ、 日本には発送できない とのこと。残念すぎる。。。 そして、Keynoteを最後まで見た後は次のセッションに向かう為にバスに乗りました。 Workshop 弊社CTO 長沢( Tsubasa Nagasawa@LIFULL CTO (@nagasawatsubasa) | Twitter )と「Workshopが追加されたら行ってみよう」みたいな談笑をしながら、 re:Inventアプリでスケジュールをチェックしていると、なんと! Workshopある じゃん! 次のセッションをキャンセルしてDeepRacerのWorkshopに向かうことにしました。 当初の予定から フレキシブルに予定を変えられるのも、re:Inventの楽しみ方のひとつ ですね。 しかし、ふたりがかりでチャレンジしても 一向に予約が取れません 。かなりの数のリピートセッションが表示されてるにもかかわらず全部ダメそう。。。 しかたがないので、ダメ元でWalk-up(予約できなかった人)の列に並ぶことにします。 バスが会場に付き、足早にWorkshopの開催される場所に向かうと、もうすでにかなりの行列が。。。 最後尾に並び、あとは入れることを祈るのみです。 Workshop開催10分前ぐらいになると、Walk-upに並んでいた人が部屋に案内されていきました。 もっと全然ダメかと思いきや、意外とすんなりとテーブルに付くことができました。 運がいい 。 さぁ、いよいよWorkshopが始まります。ワクワクしてきました! Workshopの内容は、以下のリポジトリに沿って行われました。 github.com やることを簡単に説明すると、サーキットのコースをよく早くゴールに辿り着けるように機械学習させたモデルを作ってみようという内容です。 そのモデルの学習経過とシミュレーション内容は、AWSのWebコンソール上で全て確認できるようになっています。 ここにも、 昨日 レポート したRoboMakerのシミュレーション技術 が使われているようでした。 各自自分のペースで資料に沿って、Workshopを進めていきます。 学習が終わるのを待つ間に、Workshopでは同じテーブルの参加者同士でどうやったら精度があがるのか?みたいな会話をしました。 結局、学習に時間がかかりLab1までしか終わりませんでしたが、Workshopの終わりにサプライズが。 DeepRacer キタ━━━━(゚∀゚)━━━━!! ファシリテーターの方が、講演台の下から取り出したのは紛れもなく 実物のDeepRacer!!! また、Workshopで作ったモデルを特設会場のDeepRacerにデプロイして走らせることが可能で、Workshop参加者はDeepRacerが頂けるとのことでした! Amazing (っていうか一体いくらかけてるの???)すぎる。 MGM Speedway 特設会場はめちゃくちゃ広く、本気の遊び心に溢れています。 このサーキットは観客としてみることもできるので、ナレーターがレースの様子をレポートしたり、参加者へのインタビューを行ったりしていました。 本格的過ぎますね。 まとめ 自分もWorkshop後日にサーキットに行きましたが、残念ながら自分のモデルで走らせることはできませんでした。 その時間帯は参加者が多く、次のセッションにどうしても出たかった都合上、自分の順番が回ってくるまえにその場を離れることになったからです。 DeepRacerは、大人向けだけでなく子供向け(むしろこっちがターゲット?)としてもかなり有益だと思います。 こういう体験でテクノロジーを学び、そのテクノロジーを使って世界を変えていく。 DeepRacerを通じて、そんなループを回す子供たちがたくさん出てきそうな予感がしました!
アバター
エンジニアの鈴木( Kentaro SUZUKI (@szk3) | Twitter )です。 AWS のカンファレンス re:Invent 2018もいよいよピークを迎えます! 本日は、 AWS CEO Andy Jassy による Keynote のレポート をします。 昨今では日本にいてもリアルタイムで最新の情報が手に入るようになりました。 ですが、このKeynoteを同じ場所、同じ時間で共有する感覚はラスベガスでしか味わえません。 毎年のことながら、今年も 圧倒的 でした! Keynote 眠い目をこすりつつ、Keynote会場へ向かうために少し早起きします。 ラスベガスの朝は気持ちのいい肌寒さで、嫌な感じはあまりしません。 Keynoteは午前8時スタートです。 昨晩の交流会で「7時には行ってないと会場に入れなくなるかも」という情報を頂いたので、ほぼ7時くらいに会場に付くように行きました。 するとやはり、 先頭が遠い。。。 約待つこと20分後、ゆっくり列が動き出します。 扉の中は、ガンガンに音楽がかかっており、完全にクラブのような状態。 朝7時過ぎからテンションが上がりまくりです。 誘導者に促されるまま着席し、Keynoteが始まるまでそわそわしながら待ちます。 そして、会場のバンドによる生演奏に送り出され、 Andyが登場 します。 会場の大きな歓声とともに、Keynoteスタートです。 プレゼンはシンプルで力強く流れもすばらしいので、是非公式の動画でご覧頂きたく思います。 www.youtube.com 今回のKeynoteで発表された新サービスは、わかりやすくインパクトが強いものが多かったです。 「セキュリティ」、「ファイルシステム」、「ブロックチェーン」、「AI/ML系サービスの強化」、「ロボティクス」。 その根底には「エンタープライズドリブン」な強い意思が垣間見えました。 徹底的なカスタマー目線から生まれるサービス群 。これがAmazonの強さであり、AWSの強さであると感じました。 気がつけばあっという間の2時間45分でした。 明日のAWS CTO Werner Vogels' の Keynoteも楽しみです!! まとめ https://www.youtube.com/watch?v=ZOIkOnW640A より引用 Here you help you build Keynoteの締めで出てくるセンテンスです。 サービス提供側として、自分たちもこういう気持ちを忘れずに、 ユーザーとクライアントに期待を超える価値を還元できる存在でいたい と改めて思いました。
アバター
こんにちわ、エンジニアの鈴木( Kentaro SUZUKI (@szk3) | Twitter )です。 AWS のカンファレンス re:Invent に来ています! 本日は2日目ということで、午前中にKeynoteがあり、たくさんのサービスが発表されました。 特にすごいのがコレ、AWS Ground Stationです。 フルマネージドの衛星通信基地局 のサービスなります。 オンデマンドで調達するサービスの常識を覆しています。 aws.amazon.com 今年もヤバいの来たなー。 ということで、本日の参加レポートです。 The Quad Ariaという会場のひとつで、 The Quad というコンテンツラウンジが開催 されました。 コンテンツとして、スタートアップ、スポンサーブースの展示、ビルダーズフェアなどがありました。 そして、昨年と同様、完成度の高いレゴのピタゴラスイッチも展示されていました。 とても良くできているので見てても全然飽きません。 ここにに来ると 勢いを感じて刺激になります ね。 Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing the Scene FreeRTOSという組込み用のリアルタイムオペレーティングシステムについての Chalk Talkに参加 してきました。 Chalk Talk とは、少人数で与えられたお題に対してディスカッションするという 参加型のセッションになる と聞いていましたので、正直ちょっと緊張していました。 Chalk Talk が始まり、そんな気持ちではじめの20分くらいを過ごしたところで、「あれ?なんかディスカッション始まらないな...」思っているうちに、あっという間に40分。結局そのまま最後まで小さなセッションのような形での開催となりました。 ですが、このChalk Talkでは、FreeRTOSがどんなことを課題とし、どのように解決してきたのかをかなり近い位置で聴講することができました。 エッジとしてのFreeRTOSが数千台になった時の管理や、エッジとして求められる起動時間の短さなど、普段考慮しにくい運用面に視野が広げることができました。 まとめ 今日は、「The Quad」と「Chalk Talk」について紹介しました。 re:Inventはただ聴講するだけでなく、このようなインタラクティブなコミュニケーションをする機会もたくさんあります。 そういった機会を通して、自分の成長に繋げられればと思います。 明日は、いよいよAWS CEO Andy JassyによるKeynoteです。 楽しみですねー
アバター
お疲れ様です。基盤Gの今井です。 初日のセッションに参加してきたので、各所感を記載いたします。 セッション 〇 セッションの取り方や間隔  通常セッションやoverflowとよばれる予約なしのリモートセッションは席があまっているので、walk-up(その場での参加登録)でも参加可能な感じです。  但し、その他のBuilders SessionsやChalk Talks、Workshopsなどは、公開から埋まるのがメチャクチャ早くwalk-upで当日参加しても基本的には参加不可でした。  また、セッション間は最低30分は間隔を空けないと、移動時間の関係上、登録不可のため、その時間を調整するか、各日の参加セッション1つの会場内にまとめておくのがベターでした。 〇 受けたセッション operational excelence with containerized worlkloads using aws fargate aws secrets managr best for managing, retrieving, And Rotatig secrets at scale Data privacy an d govenance in the age of Big data Running lean architectures AWS Security in Your Sleep Data Lake Implementaion  当たり前ですが、AWSマネージドサービスを使って効率化・自動化しようぜ!!ってのがどのセッションでもメインでした。  その上での所管が以下です。 システム主体がEC2からコンテナに移り変わっている途中かなと。 セキュリティについても、マネージドサービスを利用することで、人力作業を無くす方向に向き、結果の分析や次のアクションの決定がメインになっていくように思われます。 また、外部のSaasやmarketplaceもうまく活用するが重要で、上記のシステム構成と合わせて、コア部分(自身のサービスロジック)を自分たちで、それ以外の部分を外部を利用して、がデフォルトって感じをうけました。 あと、タグを有効活用することで、システム、インスタンス内に何が稼働しているかをわかりやすくしているのは参考になりました。 人が多い&常に流れている  町全体でre:Inventの人が多く、各会場でも常に人が流れています。    また、会場内のフリースペース(特にコンセント有のところ)は、常に人が埋まっており電源確保が困難なため、モバイルバッテリーも持ち歩くのが推奨。その日の終わりには充電しておくのがベストでした。 食事 〇 昼食  昼食は無料で提供されるのですが、売り切れ?るのが早く、12時ごろに行かないと受付で、もうないって言われます。  ただ、別会場では食べれていたそうなので、会場によって変わるのかもしれません。 〇 軽食  15時ぐらいのセッションが終わったぐらいで、飲み物と軽食が提供され、こちらは頂くことができました。   その他  会場間はバスが回っていますが、一部の会場(MGM)以外は、徒歩での移動可能範囲でした。というか、バスにのると交通量が多く、思うように進まないためあまりお勧めはできません。
アバター
お疲れ様です。基盤Gに在籍している今井です。 11/25 ~ 12/1まで実施される AWS re:Invent2018に参加してきましたので次回以降に参加される方の参考になればと思い、 レポートを記載いたします。 海外イベントに参加にあたって準備したもの 〇 必須 パスポート ESTA登録(アメリカ渡航にはVISA申請の代わりにESTAへの登録が求められます) re:inventへの登録 re:invent用アプリのインストール   iOS: https://itunes.apple.com/jp/app/aws-re-invent/id1290295824?mt=8   Android: https://play.google.com/store/apps/details?id=com.mobiquityinc.reinvent 上記アプリへの写真登録 ※会場での登録時に必須となります 〇 推奨 Japan Nightへの登録 ※10月中旬にしておくと モバイルバッテリー モバイルwifi ラスベガスへの道のり 今回は羽田 → LosAngels → LasVegas での経路で現地に到着いたしました。 各時間としてはこんな感じでした。 11/24(土) 19:20(羽田発) ~ 11/24(土)12:49(ロサンゼルス) 計:10h 29m 11/24(土) 17:30(ロサンゼルス) ~ 18:45(ラスベガス) 計:1h 15min 空港 ~ 現地ホテル(タクシー)で到着したのが、19:30頃 0day(11/25)  本日は、カンファレンスへの登録と、私の場合、各カンファレンス場所の確認が主なタスクでした。(本日が一番時間に自由が利くので、各会場の位置関係を把握しておきました。)  今年のレジストは、昨年と異なり、バイオレットカラーになっており、おしゃれな感じがします。    登録は、上記で準備したアプリのQRコードとパスポート提示のみだったので、予想よりさくっと終わった感じです。  登録が終わった後、同会場内のSWAGではグレーパーカーがもらえました(サイズ的に、日本よりもワンサイズ小さいサイズ選ぶと、サイズマッチするようです)   まとめ  海外カンファレンス&re:Invent&ブログ公開も全てが初参加なので、つたないかもしれませんが、なにとぞよろしくお願いいたします。
アバター