Seeing is believing

いちエンジニアの日々の興味のあるところ、イベント参加記録、学びの共有を取止めなく※このblogは個人の見解であり所属する組織の見解ではありません

JJUG CCC2016Fall(Winter?)に参加してきました。

JJUG CCC2016Fall(Winter?)に参加してきました。ここ最近は参加していますが、刺激的で、考えさせられるセッションが多いです。

1000人ぐらい参加したのではないだろうか、というぐらい人が多かった。。

コミュニティイベントとしては国内最大級かと思われます。

www.java-users.jp

参加したセッションの紹介と参加中に取ったメモを残しておきます。

  • Be a great engneer! フォローするトレンドとスルーするトレンドの見抜き方

speakerdeck.com

Pay it forwardのOSS精神は大切。
JSFXDoclet,Guice,Silverlightなど、、流行らなかった技術、プロダクト、トレンドなどが沢山あったが、どうすれば良かったか、という自己振り返りから作成したセッション。

審美眼を磨くために必要なこと → 自分で考えること
技術を見たときに本質を何か考える→技術をメタで考える
体:操作
物:パターンなど
知:深い知識
心:メンタル
理:本質を理解

本質は自分で動かし、自分の頭で考え、本質を見抜いた物が真理
人から聞いた「理」ばかりを語るのは空虚。
守:師の教えを守る
破:自分で考える段階
離:独自のセオリーを想像する段階
本ぞを忘れるな:教わった基本を忘れるな
〇〇宣言とか、〇〇Manifestには真理が詰まっていることが多い

技術の仕入れ元は?→技術カンファレンス。最近ではSpringOne.
Thoughtworks,Technical Radar:その技術がどの段階にいるのかが分かる
ガートナー社のイベント:トレンドを踏まえて次の1年から先の数年を予見した発表を行う
 →機械学習、IoT,AR,VR,ブロックチェーン、メッシュアプリ
  →それらを支えるのが、マイクロサービスアーキテクチャ、サーバレスアーキテクチャ、分散ストリーミング
マイクロサービスは本質的には、アジリティとスケーラビリティを実現するための技術
 そのニーズはあるか?導入するためのコストは払えるか?組織には導入の土壌があるか?

  • SIerもはじめる、わたしたちのDevOps

www.slideshare.net

お客様がDevOpsしたい?ツール入れたい× リードタイムを短くしたい○
ユーザーの行動を可視化→Kibana。改善提案。
仮説を立てることが重要。仮説に合わせてログの収集の仕組みを変える必要がある。
Dockerが実現する世界。確認済みのインフラ、アプリがそのまま使える。


Dockerを導入するためには、変化に強いシステムに耐える組織が必要。
→適材適所、組織改革が必要。

 

  • Spring Cloud Stream 

www.slideshare.net

クラウドの時代になり、Httpではなく、MQなどイベントドリブンに回帰してきているんだなあと思ったのが印象的でした。リアクティブの流れも当然なのですね。。

Spring Cloud Stream とはイベントドリブンなマイクロサービスフレームワーク
  →Rabit MQとkafkaが現状プロダクトサポート。
 マイクロサービスで連携サービスが増えてくると、大変。フロントサービスが各サービスを呼ぶ。オーケストレーションスタイル。
HTTPだと、呼び出し元にサーキットブレーカですぐにレスポンスを返して伝える。遅い。結局密結合になっている。
 →イベントドリブン。メッセージングを使って連携する。
 元はPublish,先はSubscrivbe → Choreograhy Style
Persistent Pub-Sub > PersistentしてくれるのはMassage Broker
Consymer Group > スケールした場合に、どちらかにメッセージが届くように負荷分散できる>durable:必ずどこかには届く
Conumer Driven Contracts:受け取る側が送付側に仕様を表明する、ということ。
 >Spring Cloud Contract(DSLをGroovyで書く)

  • PDFとJava101 

ITextの開発者の方によるプレゼン。

iText側もApache PDF Boxを意識しているんだなあ、と感心。

Apache PDF Box:使い始めはかんたんだけど、PDFのSpecを知っている必要がある
iText:RowAPI/HighLevelAPIどっちもあり、便利とのこと。

はじめに · WildFly Swarm Tour

この枠は参加したいものがなかったので、ハンズオンに参加してきました。

まずはWildFlySwamのキャッチアップもしたかったので。CRUDアプリ作れるところまでできました。

WildFlyの特徴:高速な起動、高度な管理インターフェース、Module Class Loader
WildFly Swarm はWild Flyを組み込んだuber jar(実行可能jar)を作成可能
各種インテグレーション(例Netflix OSS)
最新版は2016.12.0(月次リリース)

 

  • Selenideを試行錯誤しながら実践するブラウザ自動テスト

Try Selenide

Codebone社(エストニア)製のライブラリ。
Selenideはシステムプロパティでブラウザを設定することができる。windowサイズなども
Jqueryライクにかけるのが特徴的。hamcrestのアサートっぽい。
Ajaxアサーションが楽。表現待ちのwaitを書く必要がない。(selenideないで再起処理されている)
AjaxまわりのAssertionも、Selenideは特に変わりなく実行できる。Seleniumだと非同期処理の場合はwaitを入れないといけない。
スクリーンショットで、selenideではHTMLファイルも保存される。
ラジオボタンのセレクト実装描きやすい
selenideのgithubwikiに比較表あり。
ぺージオブジェクトパターンで大量のlookupを回避
捜査対象のぺージを表すclassを作成し、そのclassを使ってテストを行う。
selenideではぺージオブジェクトの生成機能がある。アノテーションで定義。
headlessでテストしたい場合は、RemoteWebDriverとDockerを使うのが良さそう
SeleniumがDockerイメージを提供している。ただし、IEはない。

  • Payara microの設計と実装(蓮沼さん)

www.slideshare.net

Payara microとはPayaraのEmbeddedリリース
デプロイとアプリ実行を1コマンドで実施できる
Hezekcastでのクラスタリングがサポートされている
PayaraMicroのメインクラスがKernelを起動する。これは一般的なAPサーバと変わりはない
Ctrl+Cでのシャットダウンはshut down hookにて実現。
HazelcastについてはCLOVERというサイトを参照 d.hatena.ne.jp/Kazuhira/
Payaraの自動クラスタリングはHezelcastそのもの。ログがHezelcastそのまま。
Http Auto-binding機能。8080が使われてたら8081を使う、といった機能。デフォルトでは無効。
Maven リポジトリにある war をおとしてきて Payara にデプロイできる
Uber はウーバーと呼ぶ。
META-INF/deployの中のWARファイルを自分自身から取り出して、自分自身にデプロイする
Payaraは実行中にdomain.xmlを書き換えている。
メモリ内のDomainBeanをJAXBでファイルに書き出している。
Payara Micro APIとは?
組み込みサーバとして動くもの(WebProfile+Jbatchなど)

  • 全般

講演資料一式は以下にまとめられています。

GitHub - jjug-ccc/slides-articles-2016fall: JJUG CCC 2016 Fallの発表資料およびブログ記事まとめ

 

疲れてきたら、途中で帰ろうと思っていましたが、結局朝から晩まで参加しました。

(懇親会は不参加)

満足度は相当高いです。未参加の方、半年毎に開催されるので、今後の参加をおすすめします。