1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OracleCodeOne報告会に参加してみた

Posted at

導入

Glaal VMパーフェクト入門

Glaal VMとは

ユニバーサルVM
Glaal VMとはOracle Labsが開発中である、あらゆる言語の実行環境となれる夢の環境(になる予定)
例)Javaとpythonを同じ実行環境で実行可能

demo

JavaScriptをGlaal VMで実行してみる

oracle cloudにて実行
/binの中に多数の言語の実行コマンドがある

メリット

パフォーマンスを劣化させることなく、言語間の相互呼び出しができる

ビジョン

言語間の抽象化をする

支援ツール

-chrome Devtools
debugしてくれる
--inspect(?)オプションをつけるとURLを出力し、アクセスするとデバッグツールが起動
-Graal VisualVM

導入事例

ゴールドマンサックスの事例

独自に開発した言語をtruffleベースに移行
増え続けるコードに対して、保守コストが増加
導入により、言語の相互利用等が可能になり、コストを抑えられた

究極目標

オレオレ言語を実行できる

ネイティブイメージ

ネイティブイメージとは

なんの関連が、、、?

oracle databaseが関連してくる
oracle databaseではユーザー定義関数をJavaで実装できる
しかし、oracle database内でJDK/JREをのもと実行しなくちゃいけない
そこで、VMをdatabase内でもつ
しかし、database内でJDK等を持つと、databaseの起動時間が初期化等で増える
そこで、ネイティブイメージをdatabaseで持つことにより、初期化時間を削減

ネイティブイメージのメリット

起動時間が短い
メモリ使用量がすくない
IOS上で実行できる
Lamda等の起動してすぐ終了もの
クラウド実行するものはメモリ削減により、コスト低下

demo

既存のJVMでの起動(java *.jar)
およそ起動に1秒
ネイティブイメージ
約0.1秒

チューニングで使えるところ

初期化に時間を要するクラスがある場合は、ビルド時に初期化するオプションを使用すれば、時間を削減できる

注意

exprimental
まだproductionでは使用しちゃいけない

目標

AOTでもJITと同様のパフォーマンス(ピーク時も)を出す
→JITいらなくなるんでは?

まとめ

Graal VMの二つのモード
・JITモード
・AOTモード

質問

言語間の変換をするとき、型の変換をどうするか。
→ドキュメントなし。分かりません、、、
 とにかくドキュメントが少なく、手探りの状況

Getting Started IOT

yamamoto yusukeさん
Javaと物理世界の橋渡し

やりたいこと

既存のロボットに自由な動きをさせる
rego mind storm

demo

チェスとぼっとをJavaで操作

ラズパイの特徴

めっちゃ電力くう
高度なOSのため、容易に電源を落とせない
→そのため、ラズパイ+Javaは容易ではない

Arduinoをせんたく

電池でも何日/何か月と持つ電力消費
協力なライブラリ

1.回路をつくる
2.プログラミング
 Ardiuno languageを使用(専用のIDE)
3.コンパイル→転送
4.実行
 転送が終わったら勝手に実行

demo

指定した動きでLEDやモーターを動かせる

ここでようやくJava

firmata4j(mavenで提供)を使用する

Azure Spring Cloud

寺田さん

監視

監視は何から考える?

ツール?
アラート?
→監視対象から考える

監視フロー

監視:今何が起きているか
アラート:今と近い将来に問題がないか
解決:過去に何がおきたか
発見:ビジネス上役立つもの

例)スピードメータ
これは時系列ごとに表示されておらず、今の速度しか表示されていない
→今しか必要ないから

100kmを超えると音が鳴る
→みんな無視するし、その音で眠気を誘ってしまう
→柔軟性のないアラートは無視される

ドライブレコーダー
→トラブルシューティングのための存在

分析
→事故の傾向を探ることで、事故を起こす人の傾向を発見することができる

二つの取り方
サンプリングベース
一定時間ごとにメトリクス収集する
イベントドリブン
GCなど、イベントの発生を検知して、メトリクス収集する

メトリクス収集

監視対象の選定

なんでもかんでも監視すればよいというわけではない
最も重要なのを意識する(ユーザーへのレスポンス速度やリクエスト数)
そして、リクエスト数も上限だけでなく、下限も見る(そもそも障害でアクセスできないケースもあるため)

マイクロサービス化による監視影響

モノリシックなサービスでは、エラーが発生したスレッドナンバーでgrepすれば調査できる
しかし、マイクロサービスではこれでは追えない
→そこで、spring cloud sleuth/Elastic APMなど
これらは、リクエストごとに、各マイクロサービスで共通のIDを振ってくれる
調査時はこのIDを元に調査を実施する

アラート

予測できる問題しかアラートは上げられない
→でも求められるのは未知の問題
→ここで逆アプローチ
既知のログをフィルタリングで消していく
残ったログは未知のものであり、これは未知の問題につながるもの

KPI

事象発生から解決までの各種数値も収集する
アラート発生までの時間
メンバーが検知するまでの時間

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?