スキップしてメイン コンテンツに移動

【勉強会】2019年1月31日『Mix Leap Study #32 - めっちゃわかるAIとKubernetes(GCPUG共催)』に参加した勝手な備忘録

日時:2019年1月31日 18:50~
内容:Mix Leap Study #32 - めっちゃわかるAIとKubernetes(GCPUG共催)

Kubernetes と Yahoo! JAPAN の取り組み

  • 資料
  • kubernetes クバネテス
  • kubernetes 3ヶ月に一度のマイナーバージョンアップ
  • yahoo 200+ kubernetesクラスタを運用
  • kubernetes as a Service をZラボが提供
  • Linuxコンテナ システムの他の部分から分離されたプロセス。プロセスがシステムの他の部分に影響しないように隔離し、制限。
  • Docker コンテナの実行と管理を行うソフトウェア。ソフトウェアの開発を変えた。
  • イミュータブルでポータブルな性質だから、自動化・スケジューリングがしやすい。
  • kubernetesはポータブルである。⇒どの環境で動く
  • kubernetesは成長している。⇒他のマネージドよりも利用者数が多い。
  • なぜkubernetesか?機能面
    • 頻繁なデプロイに耐えられる非常に優れた機能を持つ
    • 時間のかかるデプロイは問題があったときにの修正も遅れる。
    • 頻繁なデプロイは問題もすぐ修正でき、リスク低
    • 宣言的設定→以前は順番に変更(インストール・デプロイ)をしないといけなかったが、「のぞましい状態」を記述した設定ファイルを反映する。宣言的設定によるロールバック。
    • 自己回復機能「セルフヒーリング」→障害時(ノードが死んでも)に自動回復する。
    • コンテナ中心のインフラ
    • サーバリソースの隙間問題の解決
    • vmの抽象化に加えて、itインフラも抽象化(ロードバランサーや永続ストレージ)
  • kubernetesオブジェクト ワークロードやITインフラをアプリケーション指向に抽象化したもの
    • Pod 複数コンテナと、ボリューム。デプロイの最小単位
    • ReplicaSet コンテナの数を管理
    • Deployment デプロイを管理。内部的にはReplicaSetを使用。
    • Service 仮想IPとポートを持ち、ラベルセレクタによるPodのグルーピングを行う。Service名によるサービスディスカバリ。
  • minikube ローカル開発用クラスタ開発
アプリケーションを Kubernetes 上で動作させるまでの道のり

  • 資料
  • Podは一時的なオブジェクトとして扱えるようにすべき
  • 特定のノードに依存しない
  • The Twelve Factor App https://12factor.net/ja/
  • kubernetes 絵本がある。
  • Dockerfileのベストプラクティス
    • エフェメラルであるべき
    • コンテナごとに1つのプロセスを実行
    • 不要なパッケージのインストールは避ける multi-stage build
  • デプロイ 命令的なコマンド、命令的なオブジェクト操作、宣言的なオブジェクト操作
  • 長期的には宣言的アプローチで管理すべき。
  • セルフヒーリング、自立制御、更新、再現性、可逆性、監査、変更管理、レビュー、コンフリクト
  • yamlにkubernetesの考えが詰まっている。
  • kubectl .... dry-run -o yamlでyamlファイルのひな型を作る。
  • kubectl explainでパラメータの意味を表示。
  • kubectl apply -f 差分を検知して変更を反映する。
  • Pod 最低限利用するリソース量を設定しないとゼロになる。
  • livenessProbe コンテナの状態を監視。ダウンしたら再起動。
  • ダウンタイムゼロで更新するオブジェクト
    • GracefulShutdown アプリ自体をグレースフルシャットダウンできるように実装する必要がある。
      • preStopフックで終了処理を実装
    • ReadinessProbe アプリがリクエスト受けれるかを監視。起動が遅いアプリには設定したほうがよい。
    • Service ロードバランス先の更新。
      • Podの終了、Serviceのロードバランス先の更新は並列に実施される為、考慮が必要。
  • クラスタのメンテナンスに対応する。
    • kubectl draain node Podを退去する。
    • Podが偏っている場合は一気に終了される為、障害となる。PodDisruptionBudgetを使うと防ぐことが可能。

KubernetesでWebサービスをリリースをするまでに必要なものは

  • 資料
  • Ecosystemは多い。Cloud Native Landscape (CNCF)
  • Loggin Podからノードにログを吐いて、それをFulentがtailしてlogginへ送る
  • Monitoring Agent型とPull型。kubernetesはPrometheus用のI/Fがある。
  • Alerting metrics base/log base それぞれで監視
  • CI/CD 色々ありすぎて戦国時代。
  • Workflow Engine Scope
「じゃんけんマシン」で学ぶ機械学習とスマートIoT

  • デベロッパーアドボケイト
  • littleBitsの曲げセンサーモジュール
  • littleBitsのArduinoとサーボモジュール
  • Google Cloud Datalab → jupiter notebookで動いている
  • 1Dから1Dへの線形変換:線形モデル
    • ある空間から他の空間へ変換してくれる。
    • 式の重みを機械学習で算出する。
  • TensorFlow 機械学習開発のためのオープンソース
  • ソフトマックス どれぐらいの確率か。
  • クロスエントロピー どれだけ間違っているか。
  • BQML bigqueryの中で同じ機械学習ができる。
  • TensorFlow Object API 物体検知
  • Google Cloud IoT Core
  • TensorFlow で集合知でなにかできなか。
  • Edge TPU
    • TensorFlow用のCPU Googleから年内に発表!

https://app2.sli.do/event/76lvrzhz/questions P588

コメント

このブログの人気の投稿

久しぶりに鈴虫寺に行ってみたら、今回もいい説法と限定御朱印をゲットしました!

久しぶりに鈴虫寺に行ってみたら、今回も良い説法を聞けました。 コロナの関係で、お茶は有りませんでしたが、お菓子は頂きました。 覚えている範囲で書いてみると、 苔は生き方をあらわしている。 苔は根がない。その為、葉っぱで雨を吸収している。 雨がふらない時は死んだふりして茶色くなってじっと耐えている。 雨が降ったときにパッと葉をひろげ青々と生い茂る。 人生も同じではないか、辛いとき、苦しいときはあるがじっと耐えていると、良くなるときが必ずくる。 祇園祭、釘を一本も使わずに組み立てている。その伝統を伝える為、今年は山鉾を組み立ててる。 お地蔵様に願い→日々、忙しい毎日を過ごしていると思います。お寺に来たときぐらい、本当の幸せを考えてみてはいいのでは? 『 即今只今(そっこんただいま) 』 とは 「即今」も「只今」も「今この瞬間」ということを指しており、ふたつ重ねることで今、この瞬間を一所懸命に生きることが大事ということ。 コロナ禍によって生きにくい世の中になってしまった。 楽しみにしていたイベントも中止になったり 人と会うことも少なくなったが 過去を悔やまず 未来を不安に思わず 今を一所懸命に生きましょう。 『洗心』コロナ禍の影響もあって、手も洗って心も洗おう。みたいなことを仰っていた。 心を洗うためには、人に良いことをするといいらしい。ただし見返りは求めてはいけない。 お寺の開山300年を間もなく迎えるということで、客殿の建替えと文化財の修復をされるそうです。その記念として限定の御朱印を3つ用意されてました。いずれも金色の文字が入っていて、ご利益がありそうです!

Android端末の操作を自動化する

システムの運用保守をやってると、必ず実機確認(サービス正常性確認)というモノをやらされる訳であります。 スマホアプリ操作なんかだと、複雑なうえに素早く実施しないとイケない。 はっきり言って、アラフォー男子には限界があります。そこで 自動化 を思いつきます。 FRep - Finger Replayer が有力そうだけど、Root化しないとイケない?業務端末では無理です!! 有償で良さ気なソフトもありそうですが、まずは自力でチャレンジ。調べて見るとadbコマンドを使ってタップやスワイプのイベントを端末に送信できることがわかりました。早速、作業に取り掛かります。 2015/05/05 時点でリリースされている最新版を使って開発環境を構築します。 開発環境となるPCのOSはWindows7 Professional SP1 64bit。 作業は全て管理者権限が付与されたユーザで実施しています。 1. Android SDK をインストール ここ からAndroid SDKをダウンロードします。 サイトの下の方に「SDK Tools Only」があるので、そこから[installer_r24.2-windows.exe]をダウンロードしてインストールします。 次にシステム環境変数の中の[Path]変数を編集し、以下のパスを登録します。 "C:\android-sdk-windows\platforms" "C:\android-sdk-windows\tools"    ※"C:\"はご自身のインストール先によって異なります。 2. PCにAndroid端末を繋げる ①Android端末本体の「設定」から「アプリケーション」>「開発」>「USBデバッグ」にチェック。 ②Android端末をUSBでPCに接続。 ③コマンドプロンプトを立ち上げ、adbコマンドで端末の接続を確認。  > adb devices 以上で準備が整いました。 3. 画面キャプチャを撮って、座標を調べる 次に画面を操作する為、座標を調べます。画面キャプチャをペイント等のアプリで開いてみましょう。図の左下に座標が表示されます。ここではFace...