で書き出すけど、内容は、人事戦略にAIを取り入れたら
・・退職率下がるってこと。
「退職率下がった」 AI人事に偏見なし
http://www.nikkei.com/article/DGXMZO12099370V20C17A1I10000/
こういう記事をみると、AIが凄いってことになっちゃうんだけど、
そうではなく、AIは、過去データを公平に見ているだけなので、
(AIが凄いのではなく)上の人の評価は恣意的であてにならない
ってこと。
部署や仕事にあってるかどうかは、過去データ見たほうがいいよね!
・・退職率下がるってこと。
「退職率下がった」 AI人事に偏見なし
http://www.nikkei.com/article/DGXMZO12099370V20C17A1I10000/
こういう記事をみると、AIが凄いってことになっちゃうんだけど、
そうではなく、AIは、過去データを公平に見ているだけなので、
(AIが凄いのではなく)上の人の評価は恣意的であてにならない
ってこと。
部署や仕事にあってるかどうかは、過去データ見たほうがいいよね!
1月26日に
2017年1月期AITCオープンラボ「TensorFlowで始めるディープラーニング~入門編」
https://aitc-openlab.connpass.com/event/47662/
にいってきた。内容メモメモ
■AITCについて
■TensorFlow勉強会ご紹介
・新メンバー募集(AITC会員限定)
■PlaygroundでDeepLearning
Tensorflow Playgroundというサイトがある
http://playground.tensorflow.org/
・Classfication問題とは
ノードの可視化について
2次限座標(X1、X2)を青か赤に分割する
半分訓練、
・全体レイアウト
problem→classificationにする
4つあるうち、左下:ガウシアン
活性化関数:リニアは活性化関数ない
パーセプトロン
中間層がない:中間層を消す
活性化関数はシグモイドなど
→線形分離可能なものは、パーセプトロンいらない
市松模様のEOR:
線一本ではわけられないので、パーセプトロンで解けない
リニアにしてもとけない
EORで
入力X1X2→一発で出来る
→特徴量を選ぶとパーセプトロンでも解ける
サークルは特徴量2つで解ける:X1二乗とx2二乗
EORで
隠れ層4個と2個にする。活性化関数はリニア以外
円の場合
1層3個でできる→丸を囲むのに3ついる
スパイラル
※全部Javascriptで出来ている
入力数、ノード数→ハイパーパラメータ をどうするか
のーどのところにいくと、重みが見れる
L1:絶対値を損失関数へ
L2:絶対値の二乗を損失関数へ
・設定できるもの
ノイズ
ウソの訓練データ
訓練データとテストデータの割合
・ソースはgit hubにある
git cloneして、インターネットなしでもできる
・ボタンを画したり出来る
■Jupyterで学ぶTensorFlow
・学習の始め方
Jupyter:統合開発環境 名前の由来の言語でも動く
・メリットブラウザですぐPithonを確かめられる
エラーが出ることも
・Dockerいれると、動かせる
・マークダウンを内包している
リスト表示 -か* を入れる
・数式も表せる→LateXがはいっている
・言語を選択する
・プリインストール教材
・TensorFlow:中で行列計算
・線形回帰をやってみる
・clear outputでリスタートすると実行結果がなくなる
・pythonには直線回帰が用意されている→これをTensorFlowで行う
・シフトエンターで実行
・TensorFlow関数として用意してくれている
勾配効果法、重み
・まず、テストデータを乱数でつくる
・トレーニング、学習
・モデル定義、誤差関数の定義
・結果の表示
・すうじをがくしゅうさせることもできる えむにすとのちゅーとりある
・TensorFlowがGoogleクラウドでは速いが自分のマシンでははやくない
→cntkははやい
・はいちゃーむ使っている人もいる
■Open AI GymでTensorFrowを使う
・TensorFlowを使ってベンチマーキングを特
CNN
RNN
DQN
・DQN
ざっくり言うと
強化学習(Q学習)Xディープラーニング
エージェントが試行錯誤
あるふぁご、ドローン制御、あしも
・ゲームをとく OpenAIGym
動かすのに、環境
・学習環境の説明
さんてんしんし
あたり ぱっくまん
月面着陸
・サンプル動かすまで
Linux・Macはうごく
Windowsのうぶんつは、Jyupiter
Windows10も問題ある
・gitでパッケージ入れる:クラッシックだけ
OpenAIGymのドキュメント
・機械学習の計算
GPU,→NVIDIAから
Windowsに対応しているのがある
・TensorFlowで実装
ぺんだるむというのをやる
初期値
行動選択
報酬
行動選択:いーぐりーでぃ法
行動学習;DQN
・実装してみた
まんなか、隠れ層
Q学習する
・実行してみる
・まとめ
ランキング
Open AI Gymのコミュニティ
Open AI ユニバース→ベンチマーク
・40ページ目くらいにGitのリポジトリ
2017年1月期AITCオープンラボ「TensorFlowで始めるディープラーニング~入門編」
https://aitc-openlab.connpass.com/event/47662/
にいってきた。内容メモメモ
■AITCについて
■TensorFlow勉強会ご紹介
・新メンバー募集(AITC会員限定)
■PlaygroundでDeepLearning
Tensorflow Playgroundというサイトがある
http://playground.tensorflow.org/
・Classfication問題とは
ノードの可視化について
2次限座標(X1、X2)を青か赤に分割する
半分訓練、
・全体レイアウト
problem→classificationにする
4つあるうち、左下:ガウシアン
活性化関数:リニアは活性化関数ない
パーセプトロン
中間層がない:中間層を消す
活性化関数はシグモイドなど
→線形分離可能なものは、パーセプトロンいらない
市松模様のEOR:
線一本ではわけられないので、パーセプトロンで解けない
リニアにしてもとけない
EORで
入力X1X2→一発で出来る
→特徴量を選ぶとパーセプトロンでも解ける
サークルは特徴量2つで解ける:X1二乗とx2二乗
EORで
隠れ層4個と2個にする。活性化関数はリニア以外
円の場合
1層3個でできる→丸を囲むのに3ついる
スパイラル
※全部Javascriptで出来ている
入力数、ノード数→ハイパーパラメータ をどうするか
のーどのところにいくと、重みが見れる
L1:絶対値を損失関数へ
L2:絶対値の二乗を損失関数へ
・設定できるもの
ノイズ
ウソの訓練データ
訓練データとテストデータの割合
・ソースはgit hubにある
git cloneして、インターネットなしでもできる
・ボタンを画したり出来る
■Jupyterで学ぶTensorFlow
・学習の始め方
Jupyter:統合開発環境 名前の由来の言語でも動く
・メリットブラウザですぐPithonを確かめられる
エラーが出ることも
・Dockerいれると、動かせる
・マークダウンを内包している
リスト表示 -か* を入れる
・数式も表せる→LateXがはいっている
・言語を選択する
・プリインストール教材
・TensorFlow:中で行列計算
・線形回帰をやってみる
・clear outputでリスタートすると実行結果がなくなる
・pythonには直線回帰が用意されている→これをTensorFlowで行う
・シフトエンターで実行
・TensorFlow関数として用意してくれている
勾配効果法、重み
・まず、テストデータを乱数でつくる
・トレーニング、学習
・モデル定義、誤差関数の定義
・結果の表示
・すうじをがくしゅうさせることもできる えむにすとのちゅーとりある
・TensorFlowがGoogleクラウドでは速いが自分のマシンでははやくない
→cntkははやい
・はいちゃーむ使っている人もいる
■Open AI GymでTensorFrowを使う
・TensorFlowを使ってベンチマーキングを特
CNN
RNN
DQN
・DQN
ざっくり言うと
強化学習(Q学習)Xディープラーニング
エージェントが試行錯誤
あるふぁご、ドローン制御、あしも
・ゲームをとく OpenAIGym
動かすのに、環境
・学習環境の説明
さんてんしんし
あたり ぱっくまん
月面着陸
・サンプル動かすまで
Linux・Macはうごく
Windowsのうぶんつは、Jyupiter
Windows10も問題ある
・gitでパッケージ入れる:クラッシックだけ
OpenAIGymのドキュメント
・機械学習の計算
GPU,→NVIDIAから
Windowsに対応しているのがある
・TensorFlowで実装
ぺんだるむというのをやる
初期値
行動選択
報酬
行動選択:いーぐりーでぃ法
行動学習;DQN
・実装してみた
まんなか、隠れ層
Q学習する
・実行してみる
・まとめ
ランキング
Open AI Gymのコミュニティ
Open AI ユニバース→ベンチマーク
・40ページ目くらいにGitのリポジトリ
なんとなく、やばそうな気が・・・?
あとでよむ(まだよんでいない)
安倍政権が主導「情報銀行」構想 プライバシー保護、大丈夫?
http://mainichi.jp/articles/20170126/dde/012/010/003000c
あとでよむ(まだよんでいない)
安倍政権が主導「情報銀行」構想 プライバシー保護、大丈夫?
http://mainichi.jp/articles/20170126/dde/012/010/003000c
3万円で買える汎用ロボットアーム「uArm Swift」/「uArm Swift Pro」
https://fabcross.jp/news/2017/20170125_uarm_swift.html
(以下太字は上記サイトより引用)
操作手段として、「オフライン学習モード」、「uArm Studio」、「uArm Play」の3つの方法がある。
オフライン学習モードでは、アームを手動で動かすことで記録させ、単体で再現動作させるものだ。
・・・
uArm Swiftは、オープンソフトウェアのロボットフレームワークROS(Robot Operating System)をサポートしており、・・・
Pythonによる精密な制御のプログラミングができる。
https://fabcross.jp/news/2017/20170125_uarm_swift.html
(以下太字は上記サイトより引用)
操作手段として、「オフライン学習モード」、「uArm Studio」、「uArm Play」の3つの方法がある。
オフライン学習モードでは、アームを手動で動かすことで記録させ、単体で再現動作させるものだ。
・・・
uArm Swiftは、オープンソフトウェアのロボットフレームワークROS(Robot Operating System)をサポートしており、・・・
Pythonによる精密な制御のプログラミングができる。
三菱UFJフィナンシャル・グループ(MUFG)は大手銀行で初めてインターネットで情報を保存して使用するクラウド方式に社内システムを刷新することを決めた。サービスを提供する米アマゾンと契約を結んだ。
三菱UFJ、システムをクラウド化 大手行で初
http://www.nikkei.com/article/DGXLZO11980880R20C17A1NN7000/
(太字は上記サイトより引用)
三菱UFJ、システムをクラウド化 大手行で初
http://www.nikkei.com/article/DGXLZO11980880R20C17A1NN7000/
(太字は上記サイトより引用)
1月24日
MTSAチュートリアル: 人工知能技術を応用したソフトウェア仕様自動生成ツール
http://topse.or.jp/mtsa-tutorial/
の話を聞いてきたんだけど、話はそこまでいかなくて、
どちらかというと、状態遷移モデルの分析の話を聞いてきた感じ
まあ、とりあえず、メモメモ。
なお、もともとは全部英語のセミナーだったが、英語は全然分からないので、
まあ、適当なことメモってる(信憑性0)と思ってみてください。
■The Modal Transition systems analise
MTSAツール
・ソフトウェア工学
・ゲーム理論:このツールのベース
・自己適応システム
・AI:もゲーム理論と一緒に使う
・ロボテックス
・制御理論
MTSAでも
・状態遷移図がかける
→リアクティブシステム
システムは永遠に走っている
(コンピューターは入力がって出力する)
環境がかぎ
例:車のコントロール 周りの車に影響
そういうシステムをどう分析するかを今日やる。
・検証
・コンカレント実行
要求
・ホーアのtriplesを使う{p}C{Q}
・振る舞いは、状態・行動のシーケンス
・時相論理を使う
モデル検査:状態を満たすか、すべてチェック
モデル |= 仕様
→リアクティブシステムをモデル検査したい
↓
SYNTHESIS
・チャーチの定理
オートマトン
コントローラーSYNTHESIS
モデル||環境 |= 仕様
環境は、コントロールできない。コンカレントに
例 今 クッキングで、
||x |= NOT□オーバーヒート
となるxにしたい
どうしたら
・チャーチの問題1965
:
・時相論理
・LTL → 2の指数乗の時間かかる
コンカレンシー
・マルチスレッド
シングルマシン→メモリー
複数→ネットワーク
なぜ、コンカレンシー
・並列化
→バグでやすい
→そこでモデル
モデリング
LTS VS トレース(えいえんにながくなる)
LTS VS ペトリネット
LTS VS 時相論理
・ほかのモデル
プロセス代数:CPS、CCS
I/Oオートマタ
モデリングプロセス
LTS Server ○ーリクエスト→○ーT→○
↑ ↓
ーーーーレスポンスーーー
tのところがServer(tのところがみえない)
プロセスのモデル
・記述
・グラフ表示
・トレース
FINITE STATE PROCESSES(FSP)
・LTSをコンパクトにしたもの
デットロックプロセス
FSP-選択
DRINKS=(red→Coffee→DRINKS | blue→tea→DRINK)
MONDETERMINISTIC CHOICE
おなじ状態Xから、PまたはQにわかれることがある
X→P|X→Q
例:コイントス
表と裏の2つのループを作る→どっちを選ぶか、コイントスの前に決まってしまう
コイントスした状態をつくる→コイントスの時点では決まらない、作った状態のところで分かれる
→振舞い違う
インデックスを使って、合計とかも求められる
ガードアクション
コンカレンシー
LTL P||Q
Pが2
Qが3なら
このくみあわせを1つの状態とすると、(2X3)6とおりの状態で表現できる
ところが・・・これだけ要らないケースもある
MAKERv2 = (make->ready->used->MAKERv2).
USERv2 = (ready->use->used->USERv2).
||MAKER_USERv2 = (MAKERv2||USERv2).
は、make,ready,use,usedの4ケースだけ
Model logics(様相論理?)
・need,possibilityをしめす
・[] Need:
・<> possibility
線形時相論理
<>=U
□ =NOT<>NOT
Buchi
(Uはうむらると)
LTL FOR LTS
・オートマタとクリプキ構造の違い
フリューエントLTL
・拡張する ふゅーえんと
フリューエントLIGHT
・FLTLモデル検査
ゲーム分析
・ゲームに勝つかどうかを考える
コントロールできる状態と
コントロールできない状態にわける
論理の複雑性
LTL 2の指数じょう
リアクティビティ 指数
:
いつかはFになるを考える
結論Fから逆に考えていく
→結論から逆に再帰的に考える
→ツリーをいじるのではない。ツリーは終わらない
グラフを操作する:勝つところだけを逆から探し、そこに入ればかつでしょ!
→コントロールできる状態を選んでいく
制御を使った話(時間がなかったので急いで話してたので、めもとれなかった)
ツールでのシンセシス コントローラー
MTSAチュートリアル: 人工知能技術を応用したソフトウェア仕様自動生成ツール
http://topse.or.jp/mtsa-tutorial/
の話を聞いてきたんだけど、話はそこまでいかなくて、
どちらかというと、状態遷移モデルの分析の話を聞いてきた感じ
まあ、とりあえず、メモメモ。
なお、もともとは全部英語のセミナーだったが、英語は全然分からないので、
まあ、適当なことメモってる(信憑性0)と思ってみてください。
■The Modal Transition systems analise
MTSAツール
・ソフトウェア工学
・ゲーム理論:このツールのベース
・自己適応システム
・AI:もゲーム理論と一緒に使う
・ロボテックス
・制御理論
MTSAでも
・状態遷移図がかける
→リアクティブシステム
システムは永遠に走っている
(コンピューターは入力がって出力する)
環境がかぎ
例:車のコントロール 周りの車に影響
そういうシステムをどう分析するかを今日やる。
・検証
・コンカレント実行
要求
・ホーアのtriplesを使う{p}C{Q}
・振る舞いは、状態・行動のシーケンス
・時相論理を使う
モデル検査:状態を満たすか、すべてチェック
モデル |= 仕様
→リアクティブシステムをモデル検査したい
↓
SYNTHESIS
・チャーチの定理
オートマトン
コントローラーSYNTHESIS
モデル||環境 |= 仕様
環境は、コントロールできない。コンカレントに
例 今 クッキングで、
||x |= NOT□オーバーヒート
となるxにしたい
どうしたら
・チャーチの問題1965
:
・時相論理
・LTL → 2の指数乗の時間かかる
コンカレンシー
・マルチスレッド
シングルマシン→メモリー
複数→ネットワーク
なぜ、コンカレンシー
・並列化
→バグでやすい
→そこでモデル
モデリング
LTS VS トレース(えいえんにながくなる)
LTS VS ペトリネット
LTS VS 時相論理
・ほかのモデル
プロセス代数:CPS、CCS
I/Oオートマタ
モデリングプロセス
LTS Server ○ーリクエスト→○ーT→○
↑ ↓
ーーーーレスポンスーーー
tのところがServer(tのところがみえない)
プロセスのモデル
・記述
・グラフ表示
・トレース
FINITE STATE PROCESSES(FSP)
・LTSをコンパクトにしたもの
デットロックプロセス
FSP-選択
DRINKS=(red→Coffee→DRINKS | blue→tea→DRINK)
MONDETERMINISTIC CHOICE
おなじ状態Xから、PまたはQにわかれることがある
X→P|X→Q
例:コイントス
表と裏の2つのループを作る→どっちを選ぶか、コイントスの前に決まってしまう
コイントスした状態をつくる→コイントスの時点では決まらない、作った状態のところで分かれる
→振舞い違う
インデックスを使って、合計とかも求められる
ガードアクション
コンカレンシー
LTL P||Q
Pが2
Qが3なら
このくみあわせを1つの状態とすると、(2X3)6とおりの状態で表現できる
ところが・・・これだけ要らないケースもある
MAKERv2 = (make->ready->used->MAKERv2).
USERv2 = (ready->use->used->USERv2).
||MAKER_USERv2 = (MAKERv2||USERv2).
は、make,ready,use,usedの4ケースだけ
Model logics(様相論理?)
・need,possibilityをしめす
・[] Need:
・<> possibility
線形時相論理
<>=U
□ =NOT<>NOT
Buchi
(Uはうむらると)
LTL FOR LTS
・オートマタとクリプキ構造の違い
フリューエントLTL
・拡張する ふゅーえんと
フリューエントLIGHT
・FLTLモデル検査
ゲーム分析
・ゲームに勝つかどうかを考える
コントロールできる状態と
コントロールできない状態にわける
論理の複雑性
LTL 2の指数じょう
リアクティビティ 指数
:
いつかはFになるを考える
結論Fから逆に考えていく
→結論から逆に再帰的に考える
→ツリーをいじるのではない。ツリーは終わらない
グラフを操作する:勝つところだけを逆から探し、そこに入ればかつでしょ!
→コントロールできる状態を選んでいく
制御を使った話(時間がなかったので急いで話してたので、めもとれなかった)
ツールでのシンセシス コントローラー
1月23日、
JJUG ナイト・セミナー 「入門Spring Boot&Spring Cloud」
を聞いてきた!
SpringMVCを中心とした、フレームワークのフレームワークであるSpring Bootについては
確かに入門したが・・・
Springのクラウドを使う為のユーティリティ(ロードバランサとか)のSpring Cloudについては
う~ん、入門できなかったかも・・
ということで、とにかく、聞いた内容をメモメモ
■さくっと理解するSpringBootのしくみ
・自己紹介
・今日話すこと
SpringとSpring Bootの関係
使われる機会増えた:Bootでてきてから
Spring Bootがカイゼンする開発プロセス
Spring Bootの構成要素
・そもそもSpringってなに?
Springフレームワーク
・SpringとSpring Bootの関係
ざっくり言えば
Spring - spring config(面倒な設定排除) + Tomcat = Spring Boot
・一般的な開発のプロセス
1.必要なライブラリのリストアップ
2.起動に必要なBeanの定義をする
3.プログラミング
4.パッケージング・デプロイ
5・モニタリング
1.必要なライブラリをリストアップ
最小限で記述できる仕組み:
pom,gradleに記載する記述少なくなる
ライブラリのバージョン互換性をキープしたまま依存性注入
2.起動に必要なBeanの定義をする
同じようなBean定義→Boot側が持っている
Bean定義が自動的になされる:オリジナルの動作変更もできる
3.プログラミング
Tomcat内包。生産性が上がる
デモ:は上手くいかなかったので省略
4.パッケージング・デプロイ
実行可能Jarでパッケージングできる
5.モニタリング
ヘルスチェック、REST APIエンドポイント自動生成
・Spring Bootの仕組み
Spring Bootの構成要素 7つのコンポーネント
core:DIコンテナの起動楽に
Starter:ライブラリ同士のバージョン互換
AUto-configure:自動でBeanを定義
CLI:CLIで作れる
Actuator:エンドポイントを提供(モニタリング)
Test:JUintユーティリティ
Tools:自動再起動など
・Core
起動が簡単に
Tomcatがないほうされている
Jetty,Undertowに置き換えできる
Tomcat7から組み込み版対応→Spring Bootが組み込んだ
Fully Excutable jar
1つにパッケージング
ubar jar(fat jar)→どんなものかわからなくなる
→Spring BootはNested jar(Jarの中にJarを入れる)
特殊なクラスローダーがある
Maven Gradle、Excutableをtrueにする
・Starters
実体:pomしかない
自分でStarterを作れる
・Auto-configure
進化した設定の簡易化
いままでXMLで定義→Java config→進化した設定の簡易化Boot
@conditipnalOnClass/Bean
必要なBeanだけを定義
クラスパスにクラスがあるかないかでBeanの定義を切り分け
→実行時に自動的に判断
・Actuator アプリのモニタリング
クラウドネイティブなアプリを付けるとき
Spring Cloudフレンドリ
マイクロサービスの状態チェック
・Tools
Dev Tools:
オートマチックリスタート
設定で有効になる:2つのクラスローダー(再起動用、非再起動用)
2つのクラスローダーの使い分け
JRebel Spring Loaded:リロードになっている
Live Reload
自動でリロードしてくれるブラウザのプラグインに対応
→F5を押す手間なくなった
開発時のデフォルトプロパティ
・Maven/Gradle plugin
Maven→Gradle
地味にビルドを助けてくれるプラグイン
・まとめ
Spring Bootのはじめかた
IDE:いんてりJ、STS,Eclipse
イニシャライザー
CLI
↓
Maven・Gradle
↓
メインメソッド実行でTomcat
・むすびに
ちょっとしたカイゼンの積み重ねで開発が楽になる
アイデアがGood
クラウドサービスの登場:Javaがお手軽に
Q&A
・内部構造でのポイント
Auto-configureのソースコード
Bean Definitions
・SpringMVCとAOPは?
AOP:SpringフレームワークのCoreプロジェクト
MVC:Coreのソースコード
・UIはTimeleafをつかうけど、JSPをつかったら?
JSPがHTMLとロジックをまぜこぜにする点で・・・
不都合はないが、選ぶ理由がない
マニュアルに避けろと書いてある
組み込みで動かないことがある
■ぱぱっと理解するSpring Cloudの基本
・自己紹介
・Spring Cloudとは
クラウドネイティブアプリのツールの集合体
・クラウドネイティブなメリット
変化に強い、
性能のスケールアウト
障害に強い
・Spring Cloudで抑えておきたい基本技術
そもそもできること
クラウドネイティブなアプリ
マイクロサービスアーキテクチャ→疎結合
サービスの多重化:処理性能・耐障害性
・要素を簡素化した題材で基礎技術
結合した文字列を返す
りんごとペンを結合する Uh
もし、爆発的な人気が出たら・・・
・サービスディスカバリとクライアントサイドロードバランシング
発生しうる問題:集中
→多重化
Eurekaサービス:DNSみたいなもん
アプリ名、IPアドレス、ポート番号
【実際のコーディング】
3ステップ
1)Eurekaサービスの立ち上げ :イニシャライザー
依存関係にEurekaサーバー追加
2)サービス登録:Eurekaディスカバリ
3)ロードバランスで負荷分散:リボンを追加 Rest Templateを介して
・サーキットブレーカーで障害検知
1箇所の障害でサービス全体が応答しなくなる可能性
→障害時の規定の動作を定義、継続性を担保
→サーキットブレーカーパターン
【実際のコーディング】
2ステップ
1)EnableCircuitBreaker:Hystrix追加
2)HystrixCommandで障害の規定動作の指定
・Config Serverで設定情報の集中管理
サービスの数だけ設定ファイル:設定変更が大変、不整合の恐れ
→設定ファイルの集中管理
configサービスとgit
設定ファイルの更新
Git更新
refresh要求:管理者→アクチュエーターで
設定の再取得
【実際のコーディング】
2ステップ
1)EnableConfigServiceでConfigサービス立ち上げ
→イニシャライザーで設定ファイル
Git側アプリ名.propertiesでプッシュ
2)EnableConfigClientでクライアント作成
アクチュエーター経由で環境変数の確認
http://アプリ名/env
Spring Cloudを使ってみて感じた疑問
・信頼性は大丈夫(SPOFの問題)
→必要に応じて冗長化の必要がある
実際にはLBの後に複数のConfigインスタンスをおく場合が多い
・Eureka冗長化の考え方
可用性>整合性
Eureka動詞の間にお互い登録
→障害時、Eureka同士が持っている情報がずれている場合がある
・Config First or Discovery First
Config firstでしょう(ただし、両方とも動く)
config first:Configサーバーを起動→Eurekaへ登録
Discovery First:Eurekaを起動→Configを登録
→必要に応じて検討
・EurekaとDNSの違い
サービスレジストリと負荷分散
Eurekaだと、アノテーションを付けるだけ
ミドルウエアか、アプリか→検討
・おわりに
本セッションは基礎に絞って紹介
Q&A
・パフォーマンスは?
アプリレイヤでやるので、パフォーマンスは・・
それなのにアプリでやるのは、柔軟にできる点
・Spring Cloudのデザインパターンみたいなまとめはないの?
CloudFoundryが流行ってるよね。
SpringCloud公式ドキュメンテーションにいろいろある
・アクセスキューの動的制御は?
動的スケールアウト:ないかなあ・・・?
・悪意のあるユーザーがいたら?
デフォルトで認証機能が有効でない
認証してね
・ロードバランシングのカスタマイズは?
メトリクスの取得は?
クラスで定義、注入する
パフォーマンス:Spring Actuatorはリアルタイムで情報見える
・開発コスト
マイクロサービスをどう考えるか
・整合性担保
おなじリポジトリを見るので、いつかは整合性:Config
Eureka:一人でも動くようになっている
■CM
・JSUGでSpring勉強会
・年1回 Spring Day→10月中旬
JJUG ナイト・セミナー 「入門Spring Boot&Spring Cloud」
を聞いてきた!
SpringMVCを中心とした、フレームワークのフレームワークであるSpring Bootについては
確かに入門したが・・・
Springのクラウドを使う為のユーティリティ(ロードバランサとか)のSpring Cloudについては
う~ん、入門できなかったかも・・
ということで、とにかく、聞いた内容をメモメモ
■さくっと理解するSpringBootのしくみ
・自己紹介
・今日話すこと
SpringとSpring Bootの関係
使われる機会増えた:Bootでてきてから
Spring Bootがカイゼンする開発プロセス
Spring Bootの構成要素
・そもそもSpringってなに?
Springフレームワーク
・SpringとSpring Bootの関係
ざっくり言えば
Spring - spring config(面倒な設定排除) + Tomcat = Spring Boot
・一般的な開発のプロセス
1.必要なライブラリのリストアップ
2.起動に必要なBeanの定義をする
3.プログラミング
4.パッケージング・デプロイ
5・モニタリング
1.必要なライブラリをリストアップ
最小限で記述できる仕組み:
pom,gradleに記載する記述少なくなる
ライブラリのバージョン互換性をキープしたまま依存性注入
2.起動に必要なBeanの定義をする
同じようなBean定義→Boot側が持っている
Bean定義が自動的になされる:オリジナルの動作変更もできる
3.プログラミング
Tomcat内包。生産性が上がる
デモ:は上手くいかなかったので省略
4.パッケージング・デプロイ
実行可能Jarでパッケージングできる
5.モニタリング
ヘルスチェック、REST APIエンドポイント自動生成
・Spring Bootの仕組み
Spring Bootの構成要素 7つのコンポーネント
core:DIコンテナの起動楽に
Starter:ライブラリ同士のバージョン互換
AUto-configure:自動でBeanを定義
CLI:CLIで作れる
Actuator:エンドポイントを提供(モニタリング)
Test:JUintユーティリティ
Tools:自動再起動など
・Core
起動が簡単に
Tomcatがないほうされている
Jetty,Undertowに置き換えできる
Tomcat7から組み込み版対応→Spring Bootが組み込んだ
Fully Excutable jar
1つにパッケージング
ubar jar(fat jar)→どんなものかわからなくなる
→Spring BootはNested jar(Jarの中にJarを入れる)
特殊なクラスローダーがある
Maven Gradle、Excutableをtrueにする
・Starters
実体:pomしかない
自分でStarterを作れる
・Auto-configure
進化した設定の簡易化
いままでXMLで定義→Java config→進化した設定の簡易化Boot
@conditipnalOnClass/Bean
必要なBeanだけを定義
クラスパスにクラスがあるかないかでBeanの定義を切り分け
→実行時に自動的に判断
・Actuator アプリのモニタリング
クラウドネイティブなアプリを付けるとき
Spring Cloudフレンドリ
マイクロサービスの状態チェック
・Tools
Dev Tools:
オートマチックリスタート
設定で有効になる:2つのクラスローダー(再起動用、非再起動用)
2つのクラスローダーの使い分け
JRebel Spring Loaded:リロードになっている
Live Reload
自動でリロードしてくれるブラウザのプラグインに対応
→F5を押す手間なくなった
開発時のデフォルトプロパティ
・Maven/Gradle plugin
Maven→Gradle
地味にビルドを助けてくれるプラグイン
・まとめ
Spring Bootのはじめかた
IDE:いんてりJ、STS,Eclipse
イニシャライザー
CLI
↓
Maven・Gradle
↓
メインメソッド実行でTomcat
・むすびに
ちょっとしたカイゼンの積み重ねで開発が楽になる
アイデアがGood
クラウドサービスの登場:Javaがお手軽に
Q&A
・内部構造でのポイント
Auto-configureのソースコード
Bean Definitions
・SpringMVCとAOPは?
AOP:SpringフレームワークのCoreプロジェクト
MVC:Coreのソースコード
・UIはTimeleafをつかうけど、JSPをつかったら?
JSPがHTMLとロジックをまぜこぜにする点で・・・
不都合はないが、選ぶ理由がない
マニュアルに避けろと書いてある
組み込みで動かないことがある
■ぱぱっと理解するSpring Cloudの基本
・自己紹介
・Spring Cloudとは
クラウドネイティブアプリのツールの集合体
・クラウドネイティブなメリット
変化に強い、
性能のスケールアウト
障害に強い
・Spring Cloudで抑えておきたい基本技術
そもそもできること
クラウドネイティブなアプリ
マイクロサービスアーキテクチャ→疎結合
サービスの多重化:処理性能・耐障害性
・要素を簡素化した題材で基礎技術
結合した文字列を返す
りんごとペンを結合する Uh
もし、爆発的な人気が出たら・・・
・サービスディスカバリとクライアントサイドロードバランシング
発生しうる問題:集中
→多重化
Eurekaサービス:DNSみたいなもん
アプリ名、IPアドレス、ポート番号
【実際のコーディング】
3ステップ
1)Eurekaサービスの立ち上げ :イニシャライザー
依存関係にEurekaサーバー追加
2)サービス登録:Eurekaディスカバリ
3)ロードバランスで負荷分散:リボンを追加 Rest Templateを介して
・サーキットブレーカーで障害検知
1箇所の障害でサービス全体が応答しなくなる可能性
→障害時の規定の動作を定義、継続性を担保
→サーキットブレーカーパターン
【実際のコーディング】
2ステップ
1)EnableCircuitBreaker:Hystrix追加
2)HystrixCommandで障害の規定動作の指定
・Config Serverで設定情報の集中管理
サービスの数だけ設定ファイル:設定変更が大変、不整合の恐れ
→設定ファイルの集中管理
configサービスとgit
設定ファイルの更新
Git更新
refresh要求:管理者→アクチュエーターで
設定の再取得
【実際のコーディング】
2ステップ
1)EnableConfigServiceでConfigサービス立ち上げ
→イニシャライザーで設定ファイル
Git側アプリ名.propertiesでプッシュ
2)EnableConfigClientでクライアント作成
アクチュエーター経由で環境変数の確認
http://アプリ名/env
Spring Cloudを使ってみて感じた疑問
・信頼性は大丈夫(SPOFの問題)
→必要に応じて冗長化の必要がある
実際にはLBの後に複数のConfigインスタンスをおく場合が多い
・Eureka冗長化の考え方
可用性>整合性
Eureka動詞の間にお互い登録
→障害時、Eureka同士が持っている情報がずれている場合がある
・Config First or Discovery First
Config firstでしょう(ただし、両方とも動く)
config first:Configサーバーを起動→Eurekaへ登録
Discovery First:Eurekaを起動→Configを登録
→必要に応じて検討
・EurekaとDNSの違い
サービスレジストリと負荷分散
Eurekaだと、アノテーションを付けるだけ
ミドルウエアか、アプリか→検討
・おわりに
本セッションは基礎に絞って紹介
Q&A
・パフォーマンスは?
アプリレイヤでやるので、パフォーマンスは・・
それなのにアプリでやるのは、柔軟にできる点
・Spring Cloudのデザインパターンみたいなまとめはないの?
CloudFoundryが流行ってるよね。
SpringCloud公式ドキュメンテーションにいろいろある
・アクセスキューの動的制御は?
動的スケールアウト:ないかなあ・・・?
・悪意のあるユーザーがいたら?
デフォルトで認証機能が有効でない
認証してね
・ロードバランシングのカスタマイズは?
メトリクスの取得は?
クラスで定義、注入する
パフォーマンス:Spring Actuatorはリアルタイムで情報見える
・開発コスト
マイクロサービスをどう考えるか
・整合性担保
おなじリポジトリを見るので、いつかは整合性:Config
Eureka:一人でも動くようになっている
■CM
・JSUGでSpring勉強会
・年1回 Spring Day→10月中旬
すげ~という言葉しかない。
どういうのなんだろう。入手できるかなあ~
感情可視化解析プラットフォーム
https://www.renesas.com/ja-jp/promotions/solutions/proposal/iot/emotion-visualization/solutions01.html
どういうのなんだろう。入手できるかなあ~
感情可視化解析プラットフォーム
https://www.renesas.com/ja-jp/promotions/solutions/proposal/iot/emotion-visualization/solutions01.html
プログラミング教育って、いらなくね?
コンピューターが聞いてくれるんだから、
プログラミングに必要な情報を・・・
超高速開発などで、とくにExcelに埋める形のものの場合、
埋めるところをロボットが聞いてくれれば、話は済んでしまう
かもしれない・・・
コンピューターが聞いてくれるんだから、
プログラミングに必要な情報を・・・
超高速開発などで、とくにExcelに埋める形のものの場合、
埋めるところをロボットが聞いてくれれば、話は済んでしまう
かもしれない・・・
1月20日、スマート工場Expoやロボット開発活用展、ウェアラブルExpoとかを
30分間だけ見てきた(ほかに自動車とかもあったけど、時間的に上記3つしか見れなかった)
ので、メモメモ
・東館と西館すべてを使って展示会!大規模ですよね~
そのせいで、(30分しか見れる時間なかったから)ほとんど見れなかったよ!
・スマート工場については、IoT(もあったけど)だけでなく、色々な展示が出ている。
非接触給電などもあるし、協働ロボットなどもでていた。
ロボットについてはもちろん、
・ウェアラブルは、ジャケットなどの衣料、ヘッドセットなど、さまざま
・ロボットの方は、もちろん対話型のロボットはある。
それもpepperだけでなく、paperoもでてたし、
タブレットのついたロボットみたいなのもあった
THKまでSEEDという会社と一緒になんか出していた。
・ただ、それだけではなく、産業用のロボットもしっかりいろいろあった。
室内での位置情報とか、基礎的な分野というか要素の展示もあったし・・
・ひざでもちあげるなんとか、外観検査がなんとか、とかあったけど・・
ごめん、時間なくってみれなかった
総じて、今回の展示は、IoT、ビッグデータ、AIは、もはやブーム
ではなく、一要素となっていて、様々な要素の展示と、その応用に時代
の流れは動いているかんじ。そういう意味で言うと、商談レベルに載ってきた
かんじ。実際、IoTのほかの展示と違い、某産業用機械メーカーの
「黄色」が目立ったりしたし・・・
30分間だけ見てきた(ほかに自動車とかもあったけど、時間的に上記3つしか見れなかった)
ので、メモメモ
・東館と西館すべてを使って展示会!大規模ですよね~
そのせいで、(30分しか見れる時間なかったから)ほとんど見れなかったよ!
・スマート工場については、IoT(もあったけど)だけでなく、色々な展示が出ている。
非接触給電などもあるし、協働ロボットなどもでていた。
ロボットについてはもちろん、
・ウェアラブルは、ジャケットなどの衣料、ヘッドセットなど、さまざま
・ロボットの方は、もちろん対話型のロボットはある。
それもpepperだけでなく、paperoもでてたし、
タブレットのついたロボットみたいなのもあった
THKまでSEEDという会社と一緒になんか出していた。
・ただ、それだけではなく、産業用のロボットもしっかりいろいろあった。
室内での位置情報とか、基礎的な分野というか要素の展示もあったし・・
・ひざでもちあげるなんとか、外観検査がなんとか、とかあったけど・・
ごめん、時間なくってみれなかった
総じて、今回の展示は、IoT、ビッグデータ、AIは、もはやブーム
ではなく、一要素となっていて、様々な要素の展示と、その応用に時代
の流れは動いているかんじ。そういう意味で言うと、商談レベルに載ってきた
かんじ。実際、IoTのほかの展示と違い、某産業用機械メーカーの
「黄色」が目立ったりしたし・・・