kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

JJUG 2015-11-28


Container ReqestFilterでの認証がおすすめ

http://backpaper0.github.io/ghosts/jaxrs-getting-started-and-practice.html#/9
asyncResponse

resume メソッドに渡す

Conccurecy

ManagedExecuterServiceをインジェクションして、そのsubmitにわたす

長い時間かかる処理を別Threadにする

StreaminOutPut
 →これの1つの問題は、MessageBodyWriterの恩恵を受けられない

                                                                                                                                                              • -

http://www.java-users.jp/?page_id=2060
EF-2 How to speed up your application using JCache[通訳有]
by gregrluck
#ccc_ef2

                                                                                                                                                              • -


jCacheは、JDBCみたいな箇所を目指している

                                                                                                                                                              • -

マクロサービスアーキテクチャ

                                                                                                                                                              • -

メインフレーム
 クライアント ダム端末、ビュワー、表現も貧弱、characterベース
 事務作業系にソフトウェアを使う時代


■クラサバ
 VisualBasic + Oracle
 利用者が、数百〜1000人

クライアント側のパワーを使うのは、いまでも変わりない。

■ウェブ時代WEB
ユーザは、大多数へ

ブラウザにどこまで

FlashHTML5


処理能力を、どこに集約・管理していくのか

すべてサーバでやれば良い、
すべてクライアントでやれば良い
という考えでない。


クラウドの時代
まだ、変化している時代

超巨大なサービス
Amazon.com/Twitter/Facebook

総体としてのサービスは、連続的な変化をせざるをえない

複数のアプリケーションが動いている。
そのなかのたくだんのアプリケーションで動いている

どうやって連続的にサービスを変更させながら管理していくのかが
重要な時代になっている。




カナリアリリース

カナリア:炭鉱で働く人が、ガスなどを検知するのに利用していた。

カンリア:機器を最初にさっちしてくれる象徴

cookieなどの管理をしたうえで、ルーターが新しい方に5%をふりわける。
何も問題なく動くようであれば、新しいサーバにふっていく、
これをカナリアリリースという。A/Bテスト。

ブルーグリーンデプロイ

新しい:ブルーン
いま動いている:グリーン


ダークカナリアリリース
 ギルドという会社。

 本番環境でテストする。
 開発者しか見えないリリース
 ロードバランサーを通して新しいサービスにいくのは、開発者のみ。
 
 最近のシステムは、連携システムになっている。対抗先が存在する。
 自分以外は、本番に接続、自分は本番に接続する。
  ステージング VS テストIn production
  
  
Chaos Monkey
  平日の日中にサーバをランダムにダウンさせる。
  ダウンしても、自動復旧。

  AWSnetflixが利用。
  
  昼間落とす。
 
  リージョンまるごと:1つのDCをまるまる落とす
  あヴェーラビリティ、正・福の 正を落とす。
   (アベイラビリテイゾーン)
  落とすことを毎月やっている。

  AWSは、年に1回程度でダウンをやらかしている。
  そういったことで、ダウンテストをやっている。

   Devops、CI・CDという考え方がある。
   
   すべて自動化していることが前提。
   
   すべてが自動化していることで、カナリアリリース、カオスモンキーが使える。
   
   
    デプロイしてサーバを起動するという仕組みが重要そう。パッチあてる。
    コンテナの技術。





ルーター
サービスリポジトリ
分散
  あとから、データがどう流れているかをトレーサビリティできないといけない


リソースが足らないときに、リソースを足すことも自動化する。

カナリアリリース、不運なユーザもいる。
バッファリングしていればユーザは気づかない。
カナリアは存在しうるけど、全体を落とさない。

自動化したうえで、品質の劣化を許容することで、サービスを維持する。

全てのサービスがこうなるべきではない。
金融、医療、軍事で不幸なユーザがでることが許容されないのは
利用できない。

→もっと積極的に分割していって良いのでは?
 →マイクロサービスアーキテクチャの言葉が登上したのではと思われる。



サービスをサービスで構成する。

OSSは、ソフトウェアの静的なパターン
それが、サービスが管理されている、動的な要素。サービスとの連携。
ルーティング、キャッシュ、どう考えるのか。
HTTPベースでRESTで。

ドメインに最適なものを使う。
  java/ruby/.NET/scala
  APIがきまっていれば良い。

標準化なんてくそくらえ。(マーチン・ファウラー)



集約して作ったのほうが楽という時代から
分割して作るへ

全体を管理してトップダウンで管理なんてできない。

サービス同士の連携をどうやってやるのか、サービスを分割。

サービス同士がうまく動くのは、

サービスの分割


会計とECは違うよね、時間軸が違うものは別にできる。

戦争が起きたとき銃。
モジュラリティ―。銃はパーツ。交換可能。
経年劣化

性能特性が違うのは分割

検索と購買は、100倍くらい違うので分けるべき。

ログインとそれ以外を分ける。

セキュリティ要件が違う


などをもとに分けていく。

1個のサービスをたくさんのサービスでつくっていく。


ボトムアップは大事だが、プラットフォーム視点が重要。
レイヤリングの考えかた



SaaS
 データ、設定まで。

PaaS
 実行環境を提供

IaaS
 仮想化


AWSは、AWSのプラットフォームを利用すべき(利用したほうが便利)。
カナリアリリース

 品質レベルよりも、リリース(機能)を優先。
 
  AWSは、ロックインが発生する。ただ、標準化も進むのでは。
  AWSで、S3toEC2だけ使っているのは、AWS使っていると言わない。

プラットフォームを設計する。
 
 GE、cloud foundlay Pivotal 自社のPassSを作るための仕組み

                                                                                                                                                              • -

SORACOM

                                                                                                                                                              • -

dynamo DB
  複数拠点で分割
   月末の課金だけスケールアウトするなどのことも可能

AWS LAmbda
 イベント駆動型のサービス
 
 EC2のようにつけっぱなしでない。
 100msec単位で課金。
  処理時間だけの課金

  バッチ処理に使うなど。



GUIJavaは、JavaFXでできる。
JavaFXは、Flexやsilverrightのようなもの。
 画面をXML, バインドが楽にできる。

開発mac、運用windowsでも問題なし。


JRE、rt.jarに、 javax.smartcardio が標準である。
simカードを読んだり、書いたりできる。
カードリーダーなので、他のものも対応していいたりする。

Eclipseだと、Access可能にしないと使えない。




                                                                                                                                                              • -

きしだ コンピューティングの変換とJava きしだなおき

                                                                                                                                                              • -

ディープラーニング
人工知能

階層の深いニューラルネット、最近の人口知能はこれ。


CPUの高速化は、ない。
 XXXの法則、12ヶ月、18ヶ月

GPUを利用する。


Aparapi
JOCL


                                                                                                                                                              • -

Apache Spark Hadoop Asakusa Framework

                                                                                                                                                              • -

Spark scala