技術関連の覚書

案件でやったり自宅で試したことの覚書、自宅Redmineから移行

Dockerについて

cloud.connpass.com

こちらに行ってきました。

初心者向けと言いながら結構中級者が多かった(主催者談)会でした。

Dockerのインストールや基本的な使い方はみんなできてる人たちが初心者会というところに集まる理由は、 自分の使い方が正しいのか(自分はそう言う目的)など色々あると思います。

そんな中で、主催者の素朴な疑問として、1つのイメージに複数の機能を入れるのはダメなのかと行った内容がありました。

クラスタ化する前提で、APIとDBが一緒になって入れば扱いにくくなるし、複数DBから1つのストレージにデータを入れることになるとデータの整合性に問題があるかもしれないなどの意見も聞けました。

長年やっていれば当然な事と思える疑問も初心者会であれば聞きやすいです。

私自身が思ったのは、昔のElasticsearchのようにKIBANA、logstashがどのバージョンとどのバージョンでなければ動かないといった制約があるものについて整合性のとれたDockerイメージを用意すると言うのはありではないかと思います(後で調べたらちゃんとelkのセットになったDockerイメージがありました)

ちなみに、Elastic searchは5からKIBANA、logstashのバージョンを揃えるようにして、 現在はElasticStackという1まとめの製品になっています。

今やってること

今回の仕事ではdocker、ansible、AWSをやってきました。

dockerも今はdocker-ceとdocker-eeになっていたので、自宅もdocker-ceに入れ替え。

Install Docker | Docker Documentation

ここを見てインストールすればすぐにできます。

ansibleもUbuntuの場合、apt-getでインストールすると古いバージョンですが、ここ見てインストールすれば最新のバージョンを使うことができます。

http://docs.ansible.com/ansible/latest/intro_installation.html

AWSはCloudFormationとECSを使って構築しています。

久々だからこんなところで

AWSハンズオン

下書きのまま埋もれていたものの棚卸しです。 ちょっと古いですが

抽選で補欠でしたが、当日繰り上げ通知がきたので急遽行ってきました。

recochoku.connpass.com

やったこと

  1. EC2(user1)インスタンスの作成

  2. ELBの作成

  3. EC2(user2)インスタンスのAMIを作る

  4. 2台のEC2をELBで接続する

  5. user1を落としたとき、user2に切り替わるかをテスト

EC2は以前作ったので、今回はELBを作るがメイン

お金かかる構成はやっぱり個人では厳しいのでこんなハンズオンがあるとありがたいです。

でも、料金見てみるとほんの1時間位なら10円にもならないんですね。

復讐がてらもう一度やってみるかな ...

まだやってません...

ただ、この後今の現場に入ってAWSへの移行の仕事に就けました。 当然、規模的にもELBやEC2、ECSなどを組み合わせたサービスを使っていくことになります。

今後は業務でやることになっていきそうです。

会社を辞めるときに注意すること

技術者と言ってもやはり職業としている場合、会社に所属している人が多いと思います。*1

会社を辞める時に、円満退職できる人は良いのですが、やはり辞めるときは何かしら不満が合って辞めることも多いです。

当然、不満が合って辞めるような場合、会社ともトラブルも多いです。

今まで聞いた中で多かったトラブルは

  1. 残りの有給が使えない →そもそも有給が使えないくらいに働かせておいて疲れ果てて辞める人も多い  
  2. 有給消化期間内に次の職場で働くことを認めない →就業規則で副業禁止とある場合に多い  
  3. 脅し、恫喝等 →引き止めるために「他所でなんか通じない」等、案外多いようです  
  4. 技術不足でこの仕事に向いてないと言い、本人から辞めさせるように仕向ける →客先常駐で客からのクレームに対して営業が自分の身を守るために言うことがあるようです

こうしたトラブルに対抗するのはやはり法律かと思います。

有給を使う

有給の使用時期については取得する人の自由であり、それを拒否することは基本的にできません。 会社の繁忙期に取得して困る場合はその時期をずらす権利が会社にはあります*2 しかし、退職する場合はその時季に合わせる必要もありません。 忙しすぎて休む暇もなくて辞めたいと申し出ても忙しいから辞めるなと言う理屈が通ってしまうからです。 これを認めてしまうと忙しいのに人を入れなければいつまでも忙しいを理由に退職させないということができてしまいます。 遠慮せずに有給を取って辞めましょう。 そうでないと20日分残ってれば1ヶ月の給料を捨てることになります。

これについては簡単に調べることはできました。

問題はそれ以下の話です

有給消化期間内に次の会社で就業する

これについてはちょっと複雑のようです

今のところわかったことは、

有給消化期間内は前の会社に所属しているため就業規則に従う義務はある

副業禁止が就業規則にある場合は次の会社で就業する場合は双方の許可が必要になります。

副業禁止というのは公務員以外には課せられていないため、法的には効果はありません。

ただ、本業に支障をきたされては困るため各社でルールを設定してどの範囲まで認めるか、全く認めないかを設定しています。

また、収入によっては税金の問題、保険の問題なども生じるため無断での就業は困るというのも根拠になります。

それを守らずに懲戒解雇となっても会社には文句を言えなくなるので注意しましょう。

それでは、どのようにして許可させたらよいかが問題です。

法的根拠で持っていくには、こちら側の正当性も必要になります。

辞めるときの有給消化期間というのはまず、本業に対しての影響はないと考えて良いと判断できます。 時季についても上記で述べたとおり、会社が忙しいなどの理由には当てはまりません。

基本的に会社から要請が合っても応じる義務もなくなっています。 (応じなければいけないのであれば常に人手不足で忙しい状態にすれば辞めさせずに済むので)

とにかく、黙って仕事に就くことは辞めたほうが良さそうです

第20回Elasticsearch勉強会

第20回Elasticsearch勉強会­ #elasticsearchjp - Elasticsearch勉強会(Elastic Tokyo User Group) #elasticsearchjp (東京都) | Meetup

行ってきました。*1

今回は5.5リリースの話から 前回は5.3のリリースだったので一部5.4の新機能もあります。

EOLがくるので1はサポートなくなり、2系も危ないということなのでそろそろ5系に乗り換えましょうということからスタート。

X-PackにMachineLearningがついてくるので1ヶ月無料で使えるのでぜひ使ってみてくださいという宣伝も忘れてませんでした。

5.5の新機能

Windowsユーザが少ないのでまず、Windows版からインストーラを作ったそうです。

  • メジャーバージョンが変わるとクラスタを停止する必要があったけどローリングアップデート可能になった

  • kibana Dashbord View and Edit 名前の通り、kibanaのレイアウトエディタです そのため、6ではkibanaにView Only Modeがつく予定らしいです。

  • Pipline Aggs in Kibana(5.4〜)

  • アグリゲーション2種類から増えた

  • 棒グラフが横から出せるようになった 棒グラフ→ 線グラフ やり直さなくても選んで変えられるようになったので便利になりました

  • Geo Centroid メッシュ状の○から緯度経度の中心からの円を描画する

  • Filter Editor(5.5〜) GUIでQueryを作れる

  • Region Map(5.5〜) 国ごと、州ごとで色を塗る

  • Gauge/Goal(5.5〜)

Logstash
  • Persistent Queue GA(5.4〜) インプットで受け取った側からファイルを受け取ってLogstashにファイルを持つ 途中で落ちてもデータが残る

Deploying and Scaling Logstash | Logstash Reference [5.5] | Elastic

  • Dead Letter Events Elasticsearchに入れられないデータを入れる場所

  • Grok Debugger(5.5〜) Kibanaに入った

Beats
  • Jolokia Module(5.4〜)

  • Linux auditd logs(5.4〜)

  • Linux System authentication logs(5.4〜)

6に対する下地作りも兼ねているのでこの辺の機能は6に反映されるようです

この記事はリリースノートに乗ってます。

Elasticsearch Reference [5.5] | Elastic

MachineLearning

デモ

周期的なデータから外れている部分を検知するデモでした。

Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた

谷沢智史

DevOpsな感じの人

研究者向けのOpenStackベースのクラウドサービスを提供

OSS中心 主にHadoop  教材用途  分析用途

という方です

少量多品種な上にインフラはMoving Target

すべてを自動化するのは難しい

自動化というよりは機械化で実現

Elasticsearch notebookを作ったので

Dockerイメージで配布中

日々の作業の証跡を記録 Traceability そこから手順を整理して再利用する Reusability

こちらで公開しています NII Cloud Operation Team · GitHub

Elasticsearchと機械学習を利用したハイブリットなチャットbotシステム

AIを備えたchatb Rule Engine QA Engine Query Boost Workflow Engine Content Optimize

botや音声で20もいらない

Rule,QA,Query

  • RuleEngine 特定ワードにする機能 NGワード判定

PercolateQueryを使って判定 ドキュメントがマッチするキーワード条件があるか探す 例 オマエ馬鹿だな→ES→Query:馬鹿

  • Mapping

QAEngineとQueryBoost

類似したクエ襟検索 完全一致スコア

単語目スコア

MoreLikeThisQuery 近いドキュメントを探す スペラー もしかしてxxxですか? 類似記事 似たような文章を検索してます

退会方法について→EC→退会したい、退会について…

  • QueryBoost マッチしたフィールドに対して重み付けソートを行う 完全一致 +1000 名詞一致 +300 など

このようにスコアで重み付けしてソートして順位付けすることでAIっぽいことをElasticsearchで実現するという内容。

今、ちょうどチャットボットに関心があるので興味深かったです。

今後の展開 文言変更 文章によって表情を変更 トークンごとに次の文章を予測 時系列での会話のやりとり

Packetbeatの基礎から、IoTデバイス異常検知への応用まで

Packetbeatとは Litweight Shipper for Network Data

主な機能

ユースケース

Elasticsearch Ingest Node 大文字小文字を変換したり、CSVをパースするなど Elasticsearch側でできる

IoTデバイスの異常検知

SORACOM Junctionと連携してセキュアな環境でパケット解析が可能

*1:いろいろとあって内容整理できてないまま6のベータ版が出てしまいました

Elastic Stack 6.0.0-beta1リリース | Elastic

chatOps+IoTでvoiceOpsしたら業務が改善できた話

今日はこちらへ行ってきました*1

ChatOps+IoTでvoiceOpsしたら業務が改善できた話

HRMOSでのChatOps

HRMOSでのchatOpsの取り組み

  • アプリケーションのビルド/デプロイ/リリース

  • リソース関しのアラート通知

  • エラーログの通知

  • 問い合わせ窓口に来た問い合わせのチケット化されて通知

  • その他の通知

これは通常業務として取り組んでるところは多いと思います

メールでやってた頃は1日のメールが数千通なんてこともありました

chatOpsの問題点

チャットは仮想世界のもので、仮想世界の情報はpull型 つまり、現実世界に働きかけられない

業務は他にもあるのでずっと画面の片隅にあるチャットを見つめてるわけにもいきません チャットは流れていってしまうので見逃してしまうことはあると思います

voiceOpsとは

chatOpsの次に来ると言われている音声によって行うオペレーション

AIを搭載した音声アシスタントデバイスを介してタスクを実行する

Google HomeやAmazon Echoが代表的

siriとの違いは専用デバイスがあること

チームの課題

  • エラー通知を見張るのが辛い

  • 問い合わせ対応を見逃しがち

  • 人が増えてきた

    • コミュニケーション量が増えて大事な情報が埋もれる
    • 朝会の呼びかけが辛い
    • Slackの会話が増えて大事な会話を見逃す

リリース時は10人位→今は80人

voiceOpsって本当に喋りたいのか?

chatOps

  1. slackにキャッシュサーバへのconnection timeout errorの通知

  2. kibanaのリンクを開く

  3. 同じ構成の他サーバーでは起きてないことに気づく

  4. AWSコンソールでインスタンス再起動

voiceOpsの場合

  • 賢いAIなのに会話して進めていくのは馬鹿らしい

  • 会話せずに全オペレーションをやってくれる

  • AIによる自律的な障害復旧

  • 提携作業が想定できる物理的な故障やリリース、ロールバックのような作業に限られる

しかし、通知されるエラーのうちの殆どは自動復旧できるもの

  • 本当に欲しいものは

    • 喋ってくれる
    • 音声で知らせてくれる
  • さほど必要のないこと

    • しゃべることによるコマンド実行
    • AIによる判断

これならラズパイ*2とSlackbot*3とPolly*4で実現できそう

このような流れで作ったそうです

エラー通知や朝会の呼びかけなどをコマンドにしてこれをボットを通してPollyで音声化してラズベリーパイで喋らせる仕組みです Lexを組み合わせてAIで会話を解析して喋らせたりすることもできそうです

botの機能

エラー通知:slackにエラー通知があったら不穏な言葉や音を発する

問い合わせ通知:問い合わせ窓口に来た問い合わせが開発チームに振られた場合に担当チームに呼びかける

朝会コマンド:朝会の定型文を喋らせる

sayコマンド:任意の言葉を喋らせる

効果

エラー監視

  • タイニングによって対応が数分遅れることもあったが、ほぼ時間差無しで気付けるようになった

  • 問い合わせ対応 →同様に対応が遅れてCSチームから 早くしてくださいと言われることがなくなった

  • 朝会の呼びかけ →時間丁度に呼びかけることができ、気がついたら開始時間を過ぎてることがなくなった

副次的効果

  • ただの館内放送の代わりになる

  • cronを使って始業の合図、蛍の光*5

sayコマンドで * 適当に喋ららせられるのでこのようなお知らせができる * ミーティングに来ない人を呼び出し * ケーキがあるよのお知らせ*6 * 契約受注のお知らせ

追加機能

うるさいと怒る

音センサで閾値を超える時間が長く続くと「うるさい」と怒る →なかなか調整が難しい・上記に出てきた蛍の光に怒るのでやめたそうです

注意事項

やり過ぎるとうるさいと反感を買ったり、偉い人が怒ったりするので注意

コード

ここでコードが出てきたのですが、写しきれないので資料が上がったら参照してください

デモ

sayコマンドを使って色々としゃべらせていました

Pollyの設定で色んな国の人の声にできます

その他

  • ラズパイ3は無線が使えるから楽

  • AmazonLex、Pollyで音声を認識するAIがあるからそれを組み合わせるのも良いかも

  • チケットの割り振りはMachineLearningのAIが担当している

今回はPollyを使った話でしたが、Lexの場合10000テキストリクエスト、5000音声リクエストまで無料なのでこの枠内でやれるのなら無料で使えるかもしれません

Slackbotを使ってみようかな

*1:6/19の話ですが

*2:ラズベリーパイ、詳しくはhttps://raspberry-pi.ksyic.com/news/page/nwp.id/24を参照

*3:Slackbot — 忙しいあなたをサポートするお役立ちボット – Slack

*4:Amazon Polly (文章をリアルな音声に変換) | AWS

*5:時間が来ると早く帰るように促すそうです

*6:ケーキの差し入れがあったときの話だそうです