2018/07/05 このエントリーをはてなブックマークに追加 はてなブックマーク - Kotlin Developers Meetupにちょろっと行ってきました #jkug

Kotlin Developers Meetupにちょろっと行ってきました #jkug


2018/06/27にJetBraninsのhadiさんがくるって言うことで、
Kotlin Developers Meetupに行って来ました!

Kotlin Developers Meetup
https://kotlin.connpass.com/event/90679/

準備は@satorufujiwaraさんに任せっぱなしで、
最後ゴミの片付け手伝ったレベルでした…!
すんません!


togetterでツイートまとめましたのでこちらで雰囲気はわかると思います。
https://togetter.com/li/1243940
(ツイート載せて欲しくない方は編集自由にしていますので削除お願いします!)


当日の映像が動画になっています!
@satorufujiwaraさん ありがとうございます!

https://www.youtube.com/watch?v=TGdAvY5i-sU&feature=youtu.be

DSLの話をしていました。
hadiさんはDSLの話をしていることが多い気がしますね。
今回もジョーク混じえつつの良いトークを聞けました!


ビズリーチの方もLTされてましたが、、
みつけたらこの記事に追加します!

あと@yanzmさんが自分の子供にマイクラのmodをKotlinで書いてもらった?的なLTもありました!


せっかくなので、hadiさんに話しかけようと近づいて行ったのですが
英会話ほぼ出来ないので 「I like wasabi」とだけ伝えました。
https://github.com/wasabifx/wasabi

「wasabiはもうkillしたよ」的なこと言われましたw
https://kotlinlang.slack.com/のslackチャンネルとかから#wasabiが消えてたんで知ってたんですけど、直接言われるとなんとなく寂しいですね

wasabiじゃなくてもうktor使って!てことらしいですね。
https://github.com/ktorio/ktor

@shiraj_i さん とか @callipan さんが普通に英語で会話してるのでホォー羨ましいなと思いつつ、 どういう会話かはちょっとは聴き取れるので横で聴いたりしてすごしました。
hadiさんはエヴァンジェリストチームなので世界各国の色々なところを行脚してて、
そのエピソードトークとかがメインだったような気がします!


実際に中の人に会って話す機会はなかなか貴重なことだと思うので
良いイベントでした!
会場提供 & 準備ありがとうございました!
hadiさんまたきてください!

2018/06/23 このエントリーをはてなブックマークに追加 はてなブックマーク - nginxについて調べた(い) その2。リバースプロキシとロードバランシング

nginxについて調べた(い) その2。リバースプロキシとロードバランシング


前回に引き続き。


あえて、調べ直す。

リバースプロキシ(英: Reverse proxy)または逆プロキシは、
特定のサーバへの要求を必ず経由するように設置されたプロキシサーバ。
一般的なプロキシとは異なり不特定多数のサーバを対象としない。
リバースプロキシは、不特定多数のクライアントから寄せられる要求に対して、
応答を肩代わりすることにより特定のサーバの負担を軽減したり、
アクセスを制限することにより特定のサーバのセキュリティを高めたりする目的に用いられる。

wikipediaの引用。
https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7

分かるんだけどなんかしっくりこない。
何がリバース?

内部ネットワークと広域ネットワークとの接点に置かれ、
外部から内部へのアクセスを代行する。通常のプロキシ(代理サーバー)の「内部から外部へ」と反対であることが「リバース」の由来。

http://www.dnp.co.jp/artscape/reference/archive_words/detail/rvrs-proxy.html

なるほど、通常のプロキシとは逆方向だよということか。


HTTP、TCP、UDP のロードバランシングが出来るらしい。

  • Layer 7 request routing using URI, cookie, args, and more
    レイヤ7はOSI参照モデルのアプリケーション層ですね。URIやクッキーとかを使ってルーティングする機能がある。

  • Session persistence based on cookies *
    クッキーでセッションを永続化する機能がある。

  • Active health checks on status code and response body *
    ステータスとレスポンスボティのヘルスチェック機能がある。

  • Service discovery using DNS *
    DNSを使ってサービス検出する機能がある。サービスディスカバリーってよく聞く言葉だな

ロードバランシングには5種類の方式が使えるらしい。
ラウンドロビン、最小接続数、ハッシュ、IPハッシュ(NGINX Plusのみ)、Least Time(NGINX Plusのみ)。NGINX Plusというのはnginxの商用版らしい。

  • Round‑Robin (the default) – Requests are distributed in order across the list of servers.
  • Least Connections – Each request is sent to the server with the lowest number of active connections, taking into consideration the weights assigned to the servers.
  • Hash – Requests are distributed based on a user‑defined key such as the client IP address or URL. NGINX Plus can optionally apply a consistent hash to minimize redistribution of loads if the set of upstream servers changes.
  • IP Hash (HTTP only) – Requests are distributed based on the first three octets of the client IP address.
    NGINX Plus has an additional algorithm:
  • Least Time – Requests are sent to upstream servers with the fastest response times and fewest active connections.

2018/05/29 このエントリーをはてなブックマークに追加 はてなブックマーク - nginxについて調べた(い) その1。概要を見る

nginxについて調べた(い) その1。概要を見る



なんとなく、調べたいので調べます。


enのwikipedia見てみましょう。
https://en.wikipedia.org/wiki/Nginx

The software was created by Igor Sysoev and first publicly released in 2004.

2004年に公式にリリースされたらしいです。


公式サイトを見て見ましょう。
https://nginx.org/en/

以下、引用。

nginx [engine x] is an HTTP and reverse proxy server, 
a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.
For a long time, it has been running 
on many heavily loaded Russian sites including Yandex, Mail.Ru, VK, and 
Rambler. According to Netcraft, nginx served or proxied 23.76% busiest sites in March 2018. 
Here are some of the success stories: Dropbox, Netflix, Wordpress.com, FastMail.FM.
  • nginxはHTTPサーバーであり
  • リバースプロキシのサーバーであり
  • TCP / UDPのプロキシサーバーであり
  • Yandex、Mail.Ru、VK、Ramblerとかロシアのサイトでよく使われていて
  • Dropbox、Netflix、Wordpress.com、FastMail.FMとかでも使われている

なるほど。


ざっくり、web serverでwikipediaで見てみる。
https://en.wikipedia.org/wiki/Web_server

と、この情報にたどり着いた
https://w3techs.com/technologies/overview/web_server/all

October 2017
Below are the latest statistics  of the market share of  all sites of the top web servers on 
the Internet by W3Techs Usage of
Web Servers for Websites.

Product Vendor  Percent
Apache  Apache  48.5%
nginx   NGINX, Inc. 35.4%
IIS Microsoft   10.8%
LiteSpeed Web Server    LiteSpeed Technologies  2.9%
GWS Google  1.1%
All other web servers are used byless than1% of the websites.

Apache強いな。。ざっくりApacheとnginxだけ気にしとけば良いか…(雑)
IISは出くわしたら気にするレベルで良いだろう。。。うん。。
ただ、この情報が統計的にどの程度有意なのかわからない。

ということで、Apacheも知っておきたいところ。


この記事がよくまとまっているように思う。勉強になった。
https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations

Apacheよりnginxの方が後発ということもあり優れている部分もあるが、一方でApacheの方が優れている部分もありそう。例えば、Apacheはモジュールの動的ロードが出来るが、nginxは出来ないのだそう。これは相性によってどちらを選ぶかということも考えたりとかがある気がする。
また、nginxをリバースプロキシにして、併用するパターンもよくあると。
さらっと読んだだけでは理解が足りないのでこの記事を何回か読み直したい。


先ほど書いたように、ざっくりは

  • nginxはHTTPサーバー
  • リバースプロキシのサーバー
  • TCP / UDPのプロキシサーバー

ただ、機能もっと色々あった気がする。ので、調べると
https://www.nginx.com/products/nginx/#features

これが出てくる。
なんかこっちのサイトの方が今風だ。

  • Load balancer
  • Content cache
  • Web server
  • Security controls
  • Dynamic modules
  • Monitoring
  • High availability (HA) *
  • Kubernetes Ingress controller
  • Programmability
  • Streaming media

などが書いてある。機能というかfeatureである。


ざっくり追いかけてみましたが、調べきれないので、おそらく続きます。