Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitOpsその後 / after starting GitOps

sasaki
June 07, 2019

GitOpsその後 / after starting GitOps

sasaki

June 07, 2019
Tweet

More Decks by sasaki

Other Decks in Technology

Transcript

  1. STRICTLY CONFIDENTIAL Who? ➢ 名前 ◦ 佐々木 真也 ➢ 所属

    ◦ AlpacaJapan 株式会社 ▪ Head of Infrastructure Engineering 2
  2. STRICTLY CONFIDENTIAL Alpaca Japan 3 3 3 金融 x 機械学習

    がテーマのスタートアップ 主な提供サービス/プロダクト ❖ 銀行・証券会社・信託銀行を中心に 金融機関向けのトレーディング AI技術で多くの実績を保持 「相場予測モデルの構築」 のプロジェクトで 協業 「AlpacaSearch for kabu.com」 
 相互に類似している銘柄のチャートパターン を表示
 「AI外貨予測」「AI外貨積立」 
 指定した外貨の為替の変動を予測し、予測 した日に一定金額を積立 可能
 主要マーケットの短期予測 をリアルタイムで表示 
 
 弊社の大規模データ処理 の技術やディープラーニン グ技術を活用したアプリ ケーション

  3. STRICTLY CONFIDENTIAL GitOpsおさらい 7 • CIツールがKubernetes APIにアクセスできるようにしないといけない • セキュリティリスクになる •

    クレデンシャルを管理しないといけない • 境界がない Kubernetes anti-patterns: Let's do GitOps, not CIOps! https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops CIOps
  4. STRICTLY CONFIDENTIAL 改善 (1) • 構成 • port-forwardからLoadBalancerにして常時アクセスできるように 10 $

    kubectl -n argocd port-forward service/argocd-server 8080:443 https://localhost:8080 https://argocd.mydomain.~ kind: Service spec: type: LoadBalancer
  5. STRICTLY CONFIDENTIAL 改善 (3) • GitHubリポジトリの登録をHTTPS → SSHにする • 社内ポリシー的にHTTPSログインは2FAがMustなため

    • GUIからはできないがCLIならできるらしい 12 argocd repo add [email protected]:argoproj/argocd-example-apps.git --ssh-private-key-path ~/.ssh/id_rsa
  6. STRICTLY CONFIDENTIAL 対応策 (3) • (あたりまえですが・・・)同期後に必要な作業の明文化 • DNSレコードの変更箇所 とか 21

    一部 Service を LoadBalancer → NodePortに変更し、Kubernetes管理 外のELBに ELBはKubernetesで管理しない方がいいかも DNSレコードまでexternal-dnsで管理という手もあるが・・・ DNS設定変更はちょっと怖いし、そもそも変更はしない方がいい気が する
  7. STRICTLY CONFIDENTIAL その他の改善点 • Hooksの利用 • こういうJobをつくるだけ • Sync開始前にDB MigrationのJobを実行

    • Sync開始前後にSlack通知 • Sync完了後にテストJobを実行(予定) 22 apiVersion: batch/v1 kind: Job metadata: annotations: argocd.argoproj.io/hook: PreSync
  8. STRICTLY CONFIDENTIAL 現在のデプロイフロー 23 STG PROD Developer ① PR &

    Merge App Repo ② Build & Push Infra Repo ③ PR ④ Merge ⑤ Sync ⑥ Deploy Developer ① PR & Merge App Repo ② Build & Push Infra Repo ③ PR ⑤ Sync ⑥ Deploy Infra ④ M erge