這篇只是紀錄Java Community Conference 2015的第二天筆記,
今天聽了以下幾個session,
- 阿里 JVM 的工作方向
- Universal Scala
- Deploy your own Spark cluster in 4 minutes using sbt
- Immutable Infrastructure:觀念與實作
- JDK8 JIT 行為和效能分析
- 自己的JVM自己救 - 解救 OOM 實務經驗談
1. 阿里 JVM 的工作方向
主要在說他為什麼從facebook回中國阿里雲,
在fb調校php,在阿里雲調校jvm,
在講在阿里雲裡的JVM心路歷程。
Speaker
- 趙海平
- work @阿里雲
- previous work @FB
Coroutine
- like wait,notify in Java
Java young generation, old generation
2. Universal Scala
在講怎麼用scala在frontend與backend上。
Speaker
- Walter Chang
What is universal?
- isomorphic
- run the same code on both client and server
Functional language
- Pure functions [Wiki] (https://en.wikipedia.org/wiki/Pure_function)
immutable 優點
- no need to handle synchronization
val is immutable (like final in Java)
- var i: Int = 123
- var i = 123
var is mutable
case class
What is Scala.js
- compile
Scala
tojavascript
Example code
- [github] (https://github.com/weihsiu/universal.git)
3. Deploy your own Spark cluster in 4 minutes using sbt.
介紹他們的tool(spark-deployer)
Speaker
- Pishen Tsai
- Works @KKBox
Tool: spark-deployer
- [Github] (https://github.com/KKBOX/spark-deployer)
- SBT plugin
- productively used in KKBOX
- 100% scala
Current Solutions to deploy Spark cluster
- spark-ec2
- 缺點
* command 太多
* 需要裝
sbt
* 需要裝ec2
* slow startup time (~20mins) * 一小時算一次錢,三分之一錢花在deploy上 - 要用spark-ec2的flow
- spark-ec2的command
- 缺點
* command 太多
* 需要裝
- amazon emr (elastic map reduce)
- 缺點
* command 太多
* 需要裝
sbt
* 需要裝emr
* spark version is old - 要用Amazon emr的flow
- emr的cmd
- 缺點
* command 太多
* 需要裝
- spark-deployer
- 優點
- 只需要安裝
sbt
- fast and parallel startup (~4mins)
- Dynamic scale out
- Flexible design
- 只需要安裝
- 用Spark deployer的flow
- 用Spark deployer的cmd
- 優點
Prerequisite
- java
- sbt
- AWS_ACCESS_KEY_ID
4. Immutable Infrastructure:觀念與實作
Speaker
- 葉秉哲
- Works @gogolook
改題目 -> immutable infrastructure觀念與實作(建議)
因為talk是在下午第一場,怕大家看code太想睡覺,所以就不講detail實作
演算法的領域也說,immutable 的東西會比 mutable 的東西來得好設計
why immutable objects
- simpler to understand
- iherently thread-safe
- offer higher security than mutable objects
immutable object
String s = "ABC";
s.toLowerCase();
java hotswap
- jdk 1.4
Christian Posta said:
don’t hotdeploy/redeploy/migrate your java service in production at runtime.
do have a very trong focus on your delivery pipeline/automation/testing to quickly make change to your app
What’s an immutable infrastructure
- quote from Docker 大神
re-create images each time you change a line of code.
prevent modifications of running images.
Why immutable infrastructure?
- Simplify change management
- hard to keep or restore “desired state” in place
- Enforce
dev/prod
parity- configure & test
infra
before deployed to production environment
- configure & test
- Reason about apps at a higher level
- … than just
deployable pacakages
containing the code (jar/war/zip/msi)
- … than just
Why NOT
immutable infrastructure?
- Cost may be too high
- DevOps maturity level
講者把image視為一種母體
主要分為以下三種,
- VM image
- Container image
- Unikernel image
- 對現有container技術有一個比較激進的改良
- 傳統的vm,架構在hypervisor上,也打包一個os在裡面
- docker不打包,但會共用底下os的東西,有安全性考量
- 所以有了
container per VM
,但還是太肥了。 - 把作業系統也看成lib,不會把所有os通通包進來,只抽取它要的。
- [boxfuse] (https://boxfuse.com/)
母體 => 增生 => 替換 => 自動化
5. JDK8 JIT 行為和效能分析
這個session是Jserv在講,
聽過Jserv演講過幾次,
也曾經在去旁聽過,他在台大講的Android Open Source,
給我的印象就是高手、講話很快、講話很有梗的。
其實我原本要去聽別場的MySQL Connector/J
,但一方面覺得實在太累了,
懶得換room,又想輕鬆一點,聽一下Jserv講講笑話,
Jserv一樣講得很專業,但真的是不同領域,幾乎都聽不懂。
Speaker
- Jserv
topic
- How JIT works?
- How to monitor the JIT?
- How to figure out performance problem?
jserv自己準備的共筆
- [url] (https://jcconf.hackpad.com/R0-13PeQD5hpDx#:h=JDK8-JIT-行為和效能分析)
hotspot
- template based interpreter
Jserv Said:
- 作業我自己改,門我自己開,助教負責笑
- 台灣什麼東西都可以靠北
- 靠北JVM
- 怕沒人寫hackpad共筆,所以我自己寫
- 在聯發科工作的時候,大家都是看安兔兔的benchmark買手機
JVM如何支援動態語言
- invokedynamic
- lambda
- java裡的method都是
ivnokevirtual
匿名class本質上會生出另一個class,inner class,和lambda不一樣
6. 自己的JVM自己救 - 解救 OOM 實務經驗談
這場我聽到放空了,不過前半段內容,大致上我都是先前就知道的。
例如:stack, heap差別…etc.
Shallow heap
Retained heap
感想
參加完,不能說在知識上收穫很多,
但反而是一種開眼界的感覺,會覺得人外有人,天外有天,
覺得自己還得更加努力才行。
還想推薦一下MySQL的speaker (Ivan Tu),雖然沒有去聽他的talk,
但在休息時間時,去到MySQL攤位,都會聽到他很熱情地講解。