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

【勉強会】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

コメント

このブログの人気の投稿

sendmailでの転送設定

某システムにてメールを配信する機能を開発へ依頼。 受け取った後、PHPの mb_send_mail はsendmailが無いと動かない事実を伝えられる。 うちのメールサーバはPostfixですよ。。。 Σ(|||▽||| ) 仕方が無いので、WEBサーバにsendmailを立て DMZ 内のpostfixへリレーするようする。 意外と内部のメールサーバに転送する文献がなかったので、備忘録として残すことにした。 ■sendmail-cf-8.13.8-8.el5.i386.rpmのインストール 設定ファイルをコンパイルするm4コマンドを使う為に必要。     ・モジュールの確認           # rpm -qa | grep sendmail         sendmail-8.13.8-8.el5         sendmail-cf-8.13.8-8.el5         「sendmail-cf-8.13.8-8.el5」がインストールされていなければ以下を実施     ・パッケージのインストール           # rpm -ivh sendmail-cf-8.13.8-8.el5.i386.rpm     ・再度モジュールの確認           # rpm -qa | grep sendmail         sendmail-8.13.8-8.el5         sendmail-cf-8.13.8-8.el5 ■hostsファイルの確認           ・hostnameの確認           # hostname        ...

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...