ルクア大阪のキッチン&マーケットが最高だった

昨日行ってきた。最高だった。

www.lucua.jp

とりあえずフロアをうろうろしてあいてる席を見つけて、んでフロアをうろうろして好きなお店で食べ物や飲み物を買って、席に持ち寄ってわいわい楽しむ感じ。ピザ屋とかパスタ屋とかみたいなのもあれば、お惣菜エリアみたいにスーパーのようなとこもあったりで、色々。

焼きたてのピザうまーやった。

飲み物は、フードのお店にも生とかハイボールとかあったけど、酒屋さんもあったから、そこで瓶のブルームーン買ったり、箕面ビール買ったりしてうまかった。ワインとかもいっぱい売ってたな。あと、途中でペットボトルの水を買って休憩したりしてた。

あとは、お惣菜やさんで厚切りローストビーフ買ったり、お菓子コーナーでお菓子買ってきたりして。楽しかった!

(バルチカだと思ってたけどキッチン&マーケットだった。バルチカは隣のエリアのことだった!)

別のテーブルの人は、惣菜コーナーのサラダとか寿司とかをつまみながらスパークリングワイン?のんでたなー。そういうのもいいなー。

安いし、色々選べるしで最高だった。あと、すぐ大阪駅なのも良い。また行こう。

たまに「スクラムが難しい」って相談があって見に行ったりする。

「プロダクトオーナーとしてやることはしっかりやってるんです」

「もちろんバックログがあります。そして、ストーリーが優先順にならべられています」

「MVP(Minimum Viable Product)も考えていて、ここまでが必須だと考えています」

「そしてこのMVPをこの日までにリリースしたいと考えているんです」

いいですね。

でも、ストーリーポイントを見たところ難しそうですね。

「そうなんです。もうプロダクトオーナーとして自分ができることは全てやりましたから、あとは開発チームに、この日までにリリースできるようになんとか頑張ってもらうしかないと思っています。スクラムではこういうときどうしますか?」

そうですね・・・。まずは、実現できないということを受け止めましょう。

「え?」

そして、ここで頑張るのは開発チームではなくてプロダクトオーナーですね。

「もう自分のできることは全てやっていますよ?」

MVPの中から何かを諦めて、本当のMVPを見つけてください。

「もう最小限です。これ以上削ることはできません」

では、リリース日を諦めてください。

「それも難しいです」

でも、それではリリースができませんよね。

「はい・・・」

例えば、この部分をこういう風に分けることで、後からリリースできそうですね。

最初の目的を達成するにはこの部分だけで良さそうです。

「確かに・・・でも、それだとユーザーにとって見た目が良くないものになってしまいます」

そうですね。

「それに、それだと全部一気にやるよりもトータルで時間がかかってしまいます」

そうですね。

ですので、選んでください。

開発チームに根性でなんとかしてもらおう、ではなくて、まずは現実的な道を見つけてください。技術的な視点も必要ですから、開発チームに相談しながら一緒に探す必要があると思います。

そしてプロダクトオーナーとして決断をしてください。何を選んで、何を選ばないのかを。


みたいな話。

スクラムをやるのが難しいということではなくて。

単にもともと抱えてる問題が難しくて、なのに、それを見ずにどこかに押しやってしまっていて。

でも、スクラムがそれをテーブルの上にのせてしまうから、正面から向き合って解決していくのが難しいってことなんじゃないかな。

と思ったりした。

おなかいっぱいすぎる・・・DockerCon SF 18に行ってきた

ということでDockerCon本編のログ。

f:id:bufferings:20180616005745j:plain

前日までのお話はここ。

bufferings.hatenablog.com

最初に感想

あくまでも僕の感想だけど、こんな風に感じた:

  • Dockerを取り巻くエコシステムの活気がすごい
  • でも、その中心はDockerからKubernetesに移ってるように感じた
  • そんな中で、Microsoftが存在感を出していて強いなぁって思った
  • そして、また2,3年でKubernetesの次がやってるくるんだろうなって想像した

Dockerを取り巻くエコシステムの活気がすごい

前回の記事でも触れたけど、Dockerを取り巻くエコシステムとして、モニタリング、プラットフォーム、セキュリティ、MLそれとIoTなどに取り組んでいる会社がほんとに沢山あって活気がすごい。

でも、その中心はDockerからKubernetesに移ってるように感じた

何年か前まではDockerは使えるのか?どんな風に活用できるか?どんなツールが周りにあればいいか?みたいにDockerが中心にいた感じだったけど、今はもうDockerは当然のものになってて、Kubernetesの方にその熱狂の中心は移っているように感じた。

そんな中で、Microsoftが存在感を出していて強いなぁって思った

キーノートでも発表があったけど、MicrosoftWindowsとDockerとKubernetesの連携をコミュニティをサポートしながらどんどん強化していってるし、DockerCon全体を通して色んなところでWindowsが存在感を示していてすごいなーって感じたのだった。これはただの僕の妄想なんだけど、いつかMicrosoftがDockerを飲み込んでしまうのもなくはないのかもなーと思った。それも面白いかもー。

そして、また2,3年でKubernetesの次がやってるくるんだろうなって想像した

Kubernetesが中心に居るのも、あと2,3年なのかなぁってぼんやり想像した。IstioみたいなサービスメッシュとかGlooみたいなゲートウェイサービスが組み込まれたオーケストレーションツールが出てきたり、Dockerに変わってかゆいところに手が届くコンテナ技術が出てきたりするのかなって。

Keynotes

キーノート。もうYoutubeに動画があがってるすね。

Day 1 General Session

blog.docker.com

参加者5000人いるって言ってたなー。多っ。The Docker Promiseとして、Choice/Agility/Securityの3つを強調してた。特に「Choice」。

Dockerは特定の技術やプラットフォームにロックインするんじゃなくて、選択の自由をみんなに提供するよって。言語もそうだし、AzureでもAWSでもGCPでも好きなのを選べるし、KubernetesでもSwarmでも。だから心配せずに使って良いよっていうメッセージなのかな。あと、今の状況に合わせたのを選べるよってのもあるか。組織のTransformをしたい場合とか。

ビジネス的には、Dockerでソフトウェアイノベーションをドライブすることができるんじゃよって言ってた。その後は、Docker Desktopでポチポチしたら作れるよって話と、Docker EEでWindows ServerにKubernetesのサポートが加わったよって話と、オンプレミス環境も含めてマルチクラウドを一元管理できるよって話があったけど、僕はどれも、へーそうなんだーってくらいだったな。Windowsコンテナを使ってる人が結構いるってのは意外だったなー。そうなのかー。

Day 2 General Session

DockerCon 2018 SF - Day 2 General Session - June 14, 2018 - YouTube

2日目の朝。んー。技術とイノベーションで色々なものが変わっていくよって話だったなー。

Day 2 Cool Hacks

blog.docker.com

2日目の最後にあったクロージングキーノート。ゲストスピーカーの話がどれも面白かった!

Automated Hardware Testing Using Docker for Space

最初は、NASADART(Double Asteroid Redirection Test)の話。

www.nasa.gov

小惑星の動きを変えて、地球を守るプロジェクトみたい。ちょっと急にスケールがでかい。

  • Step 1 スペースクラフトを作ります
  • Step 2 対象にぶつけます
  • Step 3 地球を救います

やっぱりでかいww。で、そのソフトウェアのテストをDocker Composeを使ってやってて、X11を入れてVNCでつなげられるようにしてるんだって。

Cloud Native ML with Docker EE

KubeFlowの話。ML全然知らないけど、なんか便利で面白そうだった。

github.com

solo.io

https://www.solo.io/

solo.ioのGlooとSquashとQLooの話。

  • Glooは複数の環境をひとつにつないで、ルーティング、セキュリティ、モニタリングをコントロールする。デモでは、レガシーモノリスに対して特定のパスだけをFunctionのMicroserviceにルーティングしてた。
  • Squashはコンテナで実行してるMicroserviceに対してIDEデバッグできるようにするツールみたい。
  • QLooはGloo上で、GraphQLを使って複数のFunctionを組み合わせて呼び出す?のを設定なしでできるっぽい。

どれも面白そう!

セッション

セッションがいっぱいあって、どれを見ようか悩んだりしつつ。印象に残ったのはこの辺

5 patterns for success for application transformation

既存のレガシーアプリのソースコードを触らずにコンテナに載せ替える方法。

https://github.com/sixeyed/presentations/tree/master/dockercon/2018-sanfrancisco

  1. Logging
  2. Config
  3. Dependencies
  4. Health
  5. Monitoring

なるほどなーって思いながら聞いてた。ログファイルをtailするのをstartup.shに書くとか、色々。Youtubeに参考ビデオがあるみたいなので見ときたいな。

Modernizing Java Apps for IT Pros - YouTube

Developer Productivity with Google Container Tools

コンテナ使って開発するとき用のGoogleContainerToolsの紹介。

Skaffold (https://github.com/GoogleContainerTools/skaffold)

  • コードを修正したら、コミットしてタグをつけてデプロイする、みたいなよくやる一連の作業をまとめてくれるツール。便利そう。

Distroless (https://github.com/GoogleContainerTools/distroless)

  • あ、全然覚えてない。Bazel (https://bazel.build/)ってのも出てきた。Distrolessは要らないものが入ってないイメージだったっけ。

Kaniko (https://github.com/GoogleContainerTools/kaniko)

Deep Dive in Container Service Discovery

Kubernetesがどんな風にiptablesを使ってサービスディスカバリーを実現してるかって話。面白かった。資料が公開されたらチェックしなきゃ!

他にも

とかとかで、お腹いっぱい!そういえば、結局前日に気にしてた満席問題は、部屋が広かったので全然問題なかった。みんな見たいやつを見られたんじゃないかな。あの予約システムは次回には改善されてるといいな。

気に入ったやつ

CNCFのブースでもらった。Cloud Native Landscape。

https://github.com/cncf/landscape/blob/master/README.md#trail-map

https://raw.githubusercontent.com/cncf/landscape/master/trail_map/CNCF_TrailMap_latest.png

来年もし自分が参加するならこういうアドバイス

  • 今回の早いもの勝ちの事前登録みたいなことがあったりするので、メールをちゃんと読んだ方がいい
  • Slackとかスマホアプリとか全部のチャンネルに早めに登録しておいた方がいい。そこでしか流れない情報があるから
  • 事前にEventBriteでその週にあるmeetupをチェックしておくといいと思う。気づいたときにはもう満席のやつとかあった。
  • 英語で参加者と会話できるといいけど、会話できなくても色んなキーワードや雰囲気に触れるだけでも楽しいから良いと思う。
  • Tシャツはもらえるから持ってこなくても良いかもしれない。
  • 寒い。日本が暑かったから何も考えずにTシャツ短パンサンダルで来たけど、今日は14度くらいで、Dockerパーカー買ったやつを着てたけどそれでも寒かった。ちゃんと気温チェックしたほうがいいね。

Conference Partyは、船上だった。豪華だなー。びっくり。

f:id:bufferings:20180616193302j:plain:w600

f:id:bufferings:20180616193329j:plain:w600

あと、After PartyがGithubで開催されたので、EventBriteで登録して行ってきた。

f:id:bufferings:20180616193350j:plain:w600

だらだらと書いてしまったー。英語喋れるように頑張ろうと思う。

さてー。日本に帰るー。

サンフランシスコをうろうろ。 #Dockercon のDay 0でもうろうろ。

サンフランシスコで開催されてるDockerconに来てます(∩´∀`)∩ワーイ

今日は前夜祭があって、明日からいよいよメインが始まるとこ。今日の記事は技術成分薄め。

https://2018.dockercon.com/

f:id:bufferings:20180613150948j:plain:w300

目的

は、久しぶりにサンフランシスコに行きたいなと思って

  • みんなどんな風にDockerやk8sを使ってるのか
  • その周りにどんな技術やトレンドがあるのか
  • コンテナ周りが、どこに向かおうとしてるのか

などを知りたいなと思って。あとは、

  • 英語でちゃんとコミュニケーションが取れるようになりたいなーっていうモチベーションアップ

もある。

で日本に帰った後は、なんでもかんでもDockerをおすすめするわけじゃなくて、適したところでは使う・適さないところでは使わないという取捨選択ができるような状態にしておきたい。少し先を見据えたうえで。

このブログを書いてるのは、会社のお金で来てるから、帰ってからちゃんとみんなに共有できるように、忘れる前にメモしておこうという気持ちから。

スケジュール

f:id:bufferings:20180613150846p:plain:w500

https://2018.dockercon.com/ より)

通常のカンファレンスチケットとは別料金で、開催前からトレーニングがあるんだけど、結構海外のカンファレンスではそういうの多い気がする、僕はそっちは申し込んでないから、今日(12日 Day 0)からの参加。

11日(Preconference)

ということで、昨日の昼ごろにこちらに到着。6年ぶりくらいのサンフランシスコ。懐かしいなー。

空港のBartの駅でClipperカードを買って、Bartに乗ってパウエルまで出て、SIMはホテルと会場のWIFIがあるからいらんかなーと思ってたけど、やっぱり欲しくなったのでAT&Tで購入。高い気がしたけど、まいっか。んで、ホテルのチェックインまで時間があったので、ケーブルカーに並んで海の方に出て、フィッシャーマンズワーフ眺めて、快晴で気持ちいいなーって思いながら、BOUDINでクラムチャウダー食べて、Pier39をぶらっと歩いて、ケーブルカーに乗って戻ってきて、ホテルにチェックイン。結構歩きタバコしてる人が多かったな。

んで、夕方からAWSのミートアップに参加した。EventBriteで今週開催予定のミートアップを何個か調べて申し込んでおいたのだ。大盛況。

f:id:bufferings:20180613160417j:plain:w500

みんなでピザ食べたりビール飲んだりしながら喋ろう!ってパーティだったので、勇気を出して喋ったのだった。Domoのエンジニアと「チームが大きくなってくると、組織づくりのことを考えるよねー」とか、Ebatesの人と「インフラどんな風にしてるの?」とかを「ごめん、もう一回言って?」って何回も聞き直しながら喋ったのだった。

そういえば、喋った人みんな「Javaサイコー!」って言ってたな。嬉しい。

12日(Day 0):朝ゴハン

時差ボケであんまり眠れなくて、早くに目が覚めたから、朝ゴハンどっか行ってみようと思って、人気がありそうなお店に行ってみた。オープン前から行列できててびっくりした。

www.mamas-sf.com

"Our Famous Monte Cristo"がサイコーやった。夜までお腹いっぱいやった。あとで気づいたんだけどチップの計算間違えてて少なかった。ごめんなさい。(´・ω・`)

f:id:bufferings:20180613163203j:plain:w300

お店の広さに対して店員さんが多くて、お客さんは並んで待ってるんだけど、ホールも厨房も手があいて喋ってる人がいるくらいの状態。チームとして考えると、こういうのが良いよなって思った。食事代も日本と比べると倍くらいしたけどね。

その後も、会場の受付開始までもう少し時間があったからBlue Bottle Coffeeに行ってみた。好きな味だったな。タブレットにカードを自分で差し込んで支払うの楽で良い。戸惑ったけど。

f:id:bufferings:20180613163128j:plain:w300

12日(Day 0):受付

午前10時に受付開始。人いっぱいやった。1000人くらいいるのかな?

f:id:bufferings:20180613163912j:plain:w600

受付して初めてちゃんとしたタイムテーブルをもらって、「これがずっと欲しかったんよー!」ってほっとしたのだった。運営がそういうとこゆるい感じある。受付が10時からってのも前日に知ったし。

でも、リュックとTシャツをもらったから問題ない。(∩´∀`)∩ワーイ

12日(Day 0):Hallway Track

メインのセッションはDay 0にはないんだけど、実はDay 0もワークショップ、Hallway Track、ハンズオンなど盛りだくさんなのだ!

Hallway Trackは、参加者やスピーカーやスペシャリストが自分のトピックを書いておいて、興味がある人がいたら時間を調整して話をするみたいなの。大盛り上がり。僕は、ちょっとそういうのは苦手だから遠くから見てた。期間中に1回くらいは誰かと喋ってみようかな・・・。

f:id:bufferings:20180613164454j:plain

12日(Day 0):ワークショップと満席問題

で、問題はワークショップなんだけど、これがなかなか大変そうだった。

というのも今年は、セッションに参加するには事前登録が必要になったみたいで。僕が先週「さて、仕事も片付いてきたし、そろそろ登録しとこう!」って見たときにはもう今日の分は満席だったのだ。「えー。登録って、いくつか選択肢がある中でどれにするかを選ぶだけで、人数分の席は用意してるのかと思ってたー!」って焦ってDay 1以降の分を見たらまだ大丈夫だったから急いで登録しといた。

このことに昨日気づいた人とかは、ほとんどのセッションが満席で登録できなくて、怒ってる人も結構いそうな状態。そもそも1人の人が同じタイムスロットの複数のセッションに登録できるのもおかしい気がする。色んな意見がSlackとかに流れてた。

あと、折角ハンズオンに参加できた人でも、会場のWIFIがいまいちで何も作業できなかった人もいたみたい。

明日以降、良い感じになることを祈るばかり。

なので、今日は僕はハンズオンのところに行ってIstioの勉強をしたり、参加者と喋ったり、時差ボケで寝落ちたりしてた。それはそれで楽しかったな。

12日(Day 0):前夜祭

んで、午後6時からは前夜祭。ビールや食事が無限に出てきて、それを手に色んな企業のブースを回って話を聞く感じ。ほんとに色んなところがブースを出してて面白かった。一年分大丈夫なくらいのTシャツをもらった!

f:id:bufferings:20180613170356j:plain:w600

ぶらぶらと話を聞いて回った印象は、コンテナを中心にして必要になる環境をいかにして提供するか、というのをみんな色んなアイデアでやってる感じ。Cloud Nativeという言葉で表わされるのかな?k8sを中心にして、CI/CD・モニタリングなど、そういうのを全部用意して、どこまで開発者がアプリケーション開発に集中できるようにするかという:

  • コンテナやマイクロサービスに対するモニタリングサービスの提供をする人たち
  • プラットフォームとして必要なもの全てを提供できるようにする人たち
  • コンテナセキュリティをサポートする人たち
  • 無償のコミュニティ版と、その痒いところをサポートした有償版を提供する人たち

こんな感じだったなー。プラットフォームは、色んな外部サービスとの連携を強化してユーザーが好きなものを選べるようにしてる派と、自分たちで決まったものを提供することでより統一感のあるものを提供してる派があったかな。

他にも色々あると思うから、明日以降もブラブラしてみようと思う。

12日(Day 0):OpenFaaSとGitOps

前夜祭の後は、OpenFaaSとGitOpsのミートアップに参加するためにPivotalにお邪魔しました。Dockercon会場から通りを一本挟んだところにあった。そういえば、ホテルに帰る途中にはEventBriteとYahooがあったや。

f:id:bufferings:20180613184034j:plain:w600

最初はOpenFaaSの紹介。サーバーレスのFunctionを開発することができるようなプラットフォームみたい。ちょっと興味が湧いたので、Communityに参加してみた。

OpenFaaS - Serverless Functions Made Simple

次にGitOpsとWeaveworksの話。GitHubを中心にしてビルドだけじゃなくてデプロイまでいい感じにコントロールするっぽい。これも面白いなー。ざっくりどんなことをしてるのか見てみようと思う。

Manage Containers and Microservices easily with Weaveworks

最後にIstioの簡単な紹介。で、WeaveworksのGitOpsでIstioのCanaryリリースをコントロールするのは、見てて面白かった。

ちょっとぼーっとしてると、いつのまにか状況が色々変わってて、自分の知識が古くなってしまうことが結構あるから、無理のない範囲で、たまにこういうのに参加してアップデートしておくのは良いなぁって思ったのでした。

明日から

本編が始まるので楽しみ!!

Thymeleaf 3 の "Using Thymeleaf" の日本語訳が公開されました

Using ThymeleafというThymeleafの基本機能が一通り説明してあるドキュメントのThymeleaf 3対応版を @suke_masa と一緒に日本語訳しました。楽しかったー。

Documentation - Thymeleaf

f:id:bufferings:20180605095411p:plain

役に立ったら嬉しいです (๑•̀ㅂ•́)و✧

20180606追記

誤訳を見つけた場合には

のどちらかの方法でご連絡ください!(ゆとりさん指摘ありがとう)

コミットIDを指定してリモートにpushする

Jenkinsさんがご立腹

久々に使ったJenkinsさんがご立腹なので、僕が彼に食べさせたものが悪いのか、彼自身が体調を崩したのかを切り分けようと思い、過去に大丈夫だったコミットを食わせてみることにした。ので、特定のコミットをリモートにpushするのに

git checkout -b foobar <commit SHA> && git push origin foobar

みたいにすればいいんだけど、サクッとできないかな?と思ってぐぐったらあった。

コミットIDを指定してリモートにpushする

へー。

git push <remotename> <commit SHA>:refs/heads/<new remote branch name>

git - How can I push a specific commit to a remote, and not previous commits? - Stack Overflow

知らんかった。便利。

ところで

ちょっと気になってJenkinsさんにコミットIDを渡してあげたら普通にビルドできた。わざわざブランチを作る必要なかった。

さすが。(´・ω・`)

組織を改善するときは足すより引く感じで

僕は数年前に改善グループってのを立ち上げて、部内の他のグループに行ってそこの改善を手伝うみたいな活動をしてる。開発の進め方の改善をしたり、アーキテクチャーの改善をしたり、他のグループの人どうしをつないだり、とか。そういう感じのこと。

そしたら、この前「うちの部署の改善活動の参考にしたいから、意見交換しようー」って、他の部署の人が話をしに来てくれて、そのおかげでぼやーっと感覚でやってた自分の頭の中が少し言葉にできたのでメモ。

良くないの

こういうのは良くないよねーって話をしたのが。

上からの指示で改善活動をさせられてるけど意味分からん。

みたいなの。

良くないの2

でも、こういうのも良くないよねーって話をしたのが。トップダウンじゃうまくいかないから現場を中心にしよう!ってことで

「ぜひ自分たちで問題と思ってるところを出して、それを改善する方法を考えて、実施してください!」みたいなの。

結局それって全部現場に丸投げして負担増やしてるだけじゃん。てか、それできるならやってる。

じゃあどうするの?

トップダウンでもだめ、ボトムアップでもだめ、じゃあどうするの?って考えてみると、今僕がいる部署は、両方からだなーって話をした。

現場の意見を元に、組織として方向性を決めて、その改善活動をサポートして、結果を評価する。みたいなの。たぶん、改善活動って組織全体の活動なんだろうなー。

現場の意見を元に

そもそも現場のみんなは改善したくないというわけじゃなくて、何かしら改善したいと思ってる。

話を聞きに行くと、みんな「テスト改善したいんですよねー」とか「開発プロセスをもうちょっと整理したいな」とか「レガシーなんとかしたい!」とかいっぱい意見が出てくる。

組織として方向性を決めて

そんな風に色々意見を持ってるのに、なかなか自分たちで行動にうつすのって難しい。なんでかっていうと、それよりも優先することがあって忙しいから。その忙しさが減らない状態で改善をしようって言っても無理なんよね。

だから、トップが「組織の方針として」現場から出てきた意見の中から例えば「テストの自動化をする」ことを組織の目標に入れる。

その改善活動をサポートして

組織の目標に入れることで何をするかって言うと、「じゃ、それを改善をしてね!」ってやることを足すというよりも「あなたたちの出してくれたこの改善案は組織としての方針にしたので、他の何かの優先度を下げていいから!」って現場の忙しさを引いてあげることで、改善するために必要な場所を作りだす。という感じ。

そのへんで「テスト自動化について聞きたいことあったら、この人に聞いたらよいよ。他のグループがどうやってるかとか色々知ってるからー」って僕は紹介されて行ってくる。

結果を評価する

あとは、その活動もサービスの売上を伸ばしたりするのと同じように「組織に対する貢献」として評価されるようにして、その活動で給料があがるようにする。大切。

まとめ

ということで

  • 現場のみんなが改善したいなって思っていることを元に
  • 組織として方向性を決めることで組織としても価値があることを認識して
  • サービス開発のバックログの中でその改善活動の優先順位を上げることで
  • 改善したいことを実行にうつすことができる場を作りだして
  • その活動を評価して給料があがるようにする

といった感じかな。全体の活動になってる。