Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kuberneteの運用を支えるGitOps

768 views

Published on

Cloud Native Days Kansai 2019の発表資料です
GitOpsの話をします

Published in: Technology
  • Be the first to comment

Kuberneteの運用を支えるGitOps

  1. 1. 1freee 株式会社
 Kubernetes 運用を支えるGitOps
 renjikari
  2. 2. 
 インフラエンジニア(学生アルバイト) ->
 アプリとインフラ ハイブリット -> 
 2019年4月freeeに Eとして入社
 
 好き
 Docker/Kubernetes
 自動化
 I CON(人権 ない)
 
 ボードゲームが好きです
 
 
 2 Fujiwara Shunki @renjikari 藤原峻輝

  3. 3. Overview
  06 まとめ
  05 運用上 課題、大変なところ
  04 GitOps 実現方法とfreeeで 具体例
  03 GitOpsと 
  02 freeeとKubernetes
  01 freeeについて

  4. 4. Kubernetesについて 詳しい話
 
 AW EK 自体 詳しい話
 
 マイクロサービス/サービスメッシュについて 話
 4 今日話さないこと
  5. 5. GitOpsというも へ 興味
 
 K8sを本番環境で使うときに一考してくれた ら嬉しい
 
 開発者が思い思いにkubectl applyする世界 が怖くなってきたころに思い出してくれたら
 5 今日持って帰って ほしいこと
  6. 6. freee Kubernetes基盤 本番に耐えうる運 用がされています
 
 最近freeeに入社してフラットな視点でみれ る僕がそれら 知見をできるだけ共有した いと思っている
 
 ぶっちゃけKubernetes難しい で難しい問 題にぶち当たったとき 解決 一助になれ たらうれしい
 6 僕 モチベーション
  7. 7. 01 freeeについて
 Section
  8. 8. 9 スモールビジネスを、
 世界 主役に。
 MI ION
 生産年齢人口が劇的に減少し、慢性的な人手不足となる日本で 労働生産性向上 緊急 課題となっています freee 「人工知能」と「統合基幹業務システム」をクラウド技術を 活用し、業務効率化 サポートを続けることで、中堅中小企業 バックオフィス業務効率化を目指しています
  9. 9. 10 
 PRODUCTS そ 他インターナルなマ イクロサービス多数
  10. 10. About Products
 ❂ 納税する
↗ 育てる
↻ 運営する 
✩ じめる
 会社設立 freee
 開業 freee
 クラウド会計ソフト freee 
 人事労務 freee
 (マイナンバー管理 freee 含む) 
 クラウド申告 freee
 
 * 2017年8月より、クラウド給与計算ソフト freee 、機能を強化し、「人事労務 freee」というサービス名に変更しました。
 スモールビジネス 創業からIPOまで一気通貫でサポートする7つ プロダクト 2013.3リリース
 2014.5リリース
 2015.6リリース
 中小企業 経理業務を効率 化。帳簿や決算書作成、請求 業務に対応。
 給与計算や年末調整、入社手 続きから勤怠管理まで労務労 務管理を大幅に効率化。
 会社設立に必要な書類を5分 で作成できる無料サービス。
 2016.10リリース2015.9リリース 2017.1リリース 低コストでマイナンバー 収集、管 理、破棄までクラウド上で完結。
 個人事業 開業手続きが無料、簡 単、最 で完了する。
 税務申告書作成業務を効率化。 法人税・消費税・法定調書・申請 届出や電子申告にも対応。
 Webで申し込みでき、最短4営業日で発 行。創業時でも本人確認書類だけで審査 可能。

  11. 11. 12 利用事業所数累計
 
 100万
 
 
 2014.3 2015.3 2016.3 2017.3 2018.3 800,000 600,000 300,000 65,000 1,000,0001,000,000
  12. 12. 506人
 
 
 ※アルバイト、契約社員、インターンを含む。業務委託、派遣、出向を含めると約700名 従業員数 「働きがい ある会社」ランキング 
 2019年 4位
 2018年 8位
 2017年 3位
 2016年 4位
 2015年 5位
 
 
 
 ※2019年6月末時点
  13. 13. 
 IPO準備・成長企業へ 導入が加 
 41% 資金調達 op100社 
 freee 導入率
 ※ 出典:entrepedia ベンチャーリスト ※ 資金調達額TOP100社:直近1年で1億円以上 資金調達をした企業を対象に調査
  14. 14. OC保証:
 上場企業が自社 財務報告がきちんとしていることを保証するも 
 freee(会計ソフト) を利用する場合、freeeも監査 対象になる
 OC1を取得していれ freeeが OC保証が満たされていると認められる
 
 相応 セキュリティ対策が必要 例え DBに直接アクセスする場合
 認証、認可、履歴管理が必要
 EC2インスタンスから アクセスも ecurityGroup などで明確に権限管理 できている必要がある

  15. 15. 02 freeeとKubernetes
 Section
  16. 16. 17 freee kubernetes 変遷
 ● 2018.03 本番 サービスがKubernetesに乗る ● 2018 Elastic Stack ログ&監視基盤を整える ● 2019.03 AWS EKSに移行 ● 2019.03 デプロイ 方法を統一し、GitOpsを全面導入 ● 2019.08 ログ&監視をDatadogに移行 ● 2019.10 デプロイ方法 GitOpsとyaml周り ディレクトリ構 を大幅にupdate
  17. 17. freee kubernetes on EK 
 18 ELBやRDSなど マネージド サービスと組み合わせている 
 Pod Pod Proxy Pod AWS ELB サービスA
 EK CLuster
 Proxy Pod Node
 ユーザアクセス
 Pod Pod Proxy Pod AWS ELB サービスB
 EK CLuster
 Proxy Pod Node
 ユーザアクセス
 AWS RDS AWS RDS AWS ElastiCache AWS ElastiCache Node
Node

  18. 18. マルチテナントとシングルテナント
 20 K8s cluster Product A Service A-1 Service A-2 Service A-3 Product B Service B-1 ServiceB-2 Service B-3 Product C Service C-1 Service C-2 Service C-3 K8s cluster Product A Service A-1 Service A-2 Service A-3 K8s cluster Product B Service B-1 Service B-2 Service B-3 K8s cluster Product C Service C-1 Service C-2 Service C-3 ● シングルテナント構成
 
 
 マルチテナント構成
 
 

  19. 19. マルチテナントとシングルテナント
 21 K8s cluster Product A Service A-1 Service A-2 Service A-3 Product B Service B-1 ServiceB-2 Service B-3 Product C Service C-1 Service C-2 Service C-3 K8s cluster Product A Service A-1 Service A-2 Service A-3 K8s cluster Product B Service B-1 Service B-2 Service B-3 K8s cluster Product C Service C-1 Service C-2 Service C-3 ● シングルテナント構成
 
 
 マルチテナント構成
 
 

  20. 20. 22 
 
 
 freee kubernetes シングルテナント!

  21. 21. 23 シングルテナント構成
 ● Blast radius(障害 影響範囲)が小さい
 ● セキュリティ 境界線 明確化
 ● クラスタ全体に関係するアップデート作業が しやすい
 
 
 マルチテナント構成
 ● 利用料金が安い
 ● 運用コストが安い(一個しかないから)
 
 
 freee kubernetes シングルテナント!
 それぞれ メリットとデメリットを解説

  22. 22. 24 シングルテナント構成
 ● Blast radius(障害 影響範囲)が小さい
 ● セキュリティ 境界線 明確化
 ● クラスタ全体に関係するアップデート作業が しやすい
 
 
 マルチテナント構成
 ● 利用料金が安い
 ● 運用コストが安い(一個しかないから)
 
 
 freee kubernetes シングルテナント!
 それぞれ メリットとデメリットを解説
 1クラスタあたり 影響範囲が狭い で、開発者に 権限移譲できる。 それによって、運用コスト 増大を防げる
  23. 23. 25 freeeとkubernetes まとめ
 ● freeeで 1サービス 1環境=1クラスタ 構成をとっている ○ 正確に 同じチームが複数サービスを提供している場合 統合している ● それによって開発チームに多く 権限を移譲し、自律的な運用を目指 している ● 多数 クラスタを管理しないといけなかったりチーム間 スキル差と いった問題も抱えている ○ より開発者が開発に集中できるような運用フローを考えないといけ ない

  24. 24. 03 GitOpsと 
 Section
  25. 25. GitOpsと from Weaveworks
 28 GitOps can be summarized as these two things: ● An operating model for Kubernetes and other cloud native technologies, providing a set of best practices that unify deployment, management and monitoring for containerized clusters and applications. ● A path towards a developer experience for managing applications; where end-to-end CICD pipelines and git workflows are applied to both operations, and development. 引用: https://www.weave.works/technologies/gitops/

  26. 26. GitOpsと from Weaveworks
 29 GitOps つまるところ以下 2つ 要素からなっている: ● コンテナライズされたクラスターやアプリ デプロイ,マネージメント,モニタリングを 統 合するベストプラティス セットを提供するKubernetesやそ 他クラウドネイティブ技 術へ 運用 モデル ● アプリケーションをマネージしてきた開 発 者 経 験へ 道 りであるend-to-end CICDパイプラインや、git workflow 運用と開発 どちらにも適応できる 引用: https://www.weave.works/technologies/gitops/

  27. 27. GitOpsと 
 30 ● 全て リソース 変更や運用に対して、コマンドラインを用いず
 git経由から行うことでコードとして履歴管理をしようという思想
 ● 開発者が今までやってきたようなアプリ 運用 プラクティスをすべて コード管理されたリソースに使える で 
 ● 不具合があっても原因 追求が行えるうえ、ロールバックが容易
 

  28. 28. 一言でいうと 31
  29. 29. Ops Git化 32
  30. 30. Ops Git化🤔🤔🤔 33
  31. 31. アプリ開発 場合を考えてみる
 34 ● Git(GitHub)を利用してバージョン管理する ● もと コードへ 変更 PRを作ってレビュー => マージ もしもGitを使わなかったら ● バージョンコントロールできない ● 不具合が発生したときに ○ 前 バージョンに戻せない ○ 原因を追求できない 

  32. 32. インフラやデプロイされたサービスについて
 考えてみる
 35 ● Git(GitHub)を利用してバージョン管理する ● もと 状態へ 変更 PRを作ってレビュー => マージ ○ もと 状態 = もと インフラ構成, デプロイされた状態 もしもGit(GitOps)を使わなかったら ● バージョンコントロールできない ● 不具合が発生したとき ○ 前 バージョンに戻せない ○ 原因を追求できない 

  33. 33. GitOpsと 
 36 ● (アプリケーションを含む)全て リソース 変更や運用に対して、コマンド ラインを用いずgit経由から行うことでコードとして履歴管理をしようという思 想 ● 不具合があっても原因 追求が行えるうえ、ロールバックが容易 ● K8s 運用でそういった思想を使おう ○ K8s すべて 設定がmanifestとしてコード化されているため 

  34. 34. GitOps トレンド
 37 google トレンドを貼る 

  35. 35. GitOps トレンド
 38 google トレンドを貼る 

  36. 36. 次 課題 39
  37. 37. GitOpsってどうやる ? GitOpsなにが嬉しい ? 40
  38. 38. 04 GitOps 実現方法を紹介 &
 freeeで 具体例
 Section
  39. 39. GitOpsってどうやる ? GitOpsなにが嬉しい ? 42
  40. 40. GitOps実践ガイドライン (from Weaveworks)
 43 ● コードとして記述できるも 、すべてGitに保存しなけれ ならない。 Gitを真実 source of truthとして使用することにより、クラスタを監視 し、目標とする状態と比較することが可能になる。 ● Kubernetes CLIツールである“kubectl”を直接使用しない ● オペレータパターンに従ってKubernetesコントローラを使用すること 引用: https://www.infoq.com/jp/news/2018/11/gitops-weaveworks/

  41. 41. GitOpsをうたうツールたち
 44 ● flux ● jenkins-x ● argo-cd ● werf https://github.com/topics/gitops
 を参考にstar数1000以上 も から、 
 GitOpsを主題にしていそうなO を抜き出した (2019.11.23 現在) 
 ロゴ https://landscape.cncf.io/category=continuous-integration-delivery&format=card-mode&grouping=category
 https://github.com/flant/werf からそれぞれ引用

  42. 42. flux アーキテクチャ
 45 引用: https://github.com/fluxcd/flux

  43. 43. GitOpsってどうやる ? GitOpsなにが嬉しい ? 46
  44. 44. K8s 運用をGitOpsにすると何が嬉しいか
 47 ● 集中した権限管理 ● kubectlでdeployする必要がない安心感 ● 実際に今動いているmanifestがコード上でバージョン管理される
  45. 45. K8s 運用をGitOpsにすると何が嬉しいか(1/3)
 集中した権限管理について ● GitHub上からKickされるCircleCIにさえ権限がついていれ 人間につけ る権限を細分化する必要がなくなる(正確に 細分化する必要が薄くなる)
  46. 46. K8s 運用をGitOpsにすると何が嬉しいか(1/3)
 49 集中した権限管理について 絵 cluster Aにread write
 cluster Bにread write
 cluster Dにread write
 cluster Cにread only
 cluster をread only
 clusterをread write
 ※わかりやすさ ために一部正確性
  が犠牲になっています
 複雑な権限管理
 集中した権限管理

  47. 47. K8s 運用をGitOpsにすると何が嬉しいか(2/3)
 50 kubectlでdeployする必要がない安心感 ● kubectlでデプロイすると... ○ お手製デプロイフロー ○ オペミス ○ デプロイ自体を管理、記録できない ■ デプロイ記録.xlsx
  48. 48. K8s 運用をGitOpsにすると何が嬉しいか(3/3)
 51 実際に今動いているmanifestがコード上でバージョン管理される ● Kubernetes 特徴である、宣言的なmanifest 記述という点が最大限生 かされる
  49. 49. freee K8s GitOps 構成
 52 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  50. 50. freee K8s GitOps 構成要素
 54 ● EKS ● GitHub(+Git) ● CircleCI ● eksctl (aws EKS API) ● Helm ● Helmfile ● 自作ラッパーscript(clusteropsコマンド) ○ Helmfileやeksctlをラッパーしている
  51. 51. freee K8s GitOpsが担っていること
 55 ● EKS clusterやアプリ helm chartなど yamlをtemplateから自動生成 ● EKS cluster 作成 ● EKS clusterへ デプロイ ● EKS clusterごしにmigration taskなど task実行
  52. 52. freee K8s GitOps 構成
 56 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  53. 53. 57 CircleCI ● GitHub上 PRにおけるコメントをトリガーとして、CIをキック ○ clusterops create_cluster ${対象 クラスタ} ○ clusterops deploy ${対象 クラスタ} ● PRコメントをトリガーすることで 反 映 タイミングをコントロールするために ChatOpsっぽくしている背景がある freee K8s GitOps 構成要素を解説

  54. 54. 58 eksctl ● AWS EKS API ● eksctl シンプルなEKS cluster作成 ため CLI ○ AWS CloudFormationを使っている ● cluster作成に必要なリソースをyamlで統合的に宣言できる freee K8s GitOps 構成要素を解説
 eksctl: https://github.com/weaveworks/eksctl
 ちなみにこれもWeaveworks/eksctl 

  55. 55. 59 Helm ● K8s clusterにinstallするも を管理できるパッケージマネージャー ● K8sオブジェクトを 宣 言 するmanifestなど YAMLファイルをパッケージン グしたファイル「Chart(設計図)」を「Release」することでK8s上で利用可能 にする ● よく使うも helm/stableとしてすでに用意されている ○ helm install <チャート名> ようにK8s Clusterにinstallできる freee K8s GitOps 構成要素を解説

  56. 56. 60 Helmfile ● Helm Chartをより使いやすくデプロイできる、Helm releasesを管理する ツール ○ helm chartを自作した場合、それをhelmfile syncするだけですぐに releaseが作成できる ○ 変数をvalues.yamlで管理しているstableなchart 場合、ど stableな chartを使っているかを含めてfileに書ける freee K8s GitOps 構成要素を解説

  57. 57. 61 自作ラッパーscript(clusterops) ● Helmfileやeksctl(EKS Cluster 管 理 ため CLI)をさらにラッパーして いる ● また、Kuberntes Cluster作成 ため Cluster.yaml template作成や複 数クラスタ管理 ため ディレクトリ管理 機能も一緒についている ● variantというOSSを利用して書いている ○ variant: https://github.com/mumoshu/variant freee K8s GitOps 構成要素を解説

  58. 58. freee K8s GitOps 構成
 62 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  59. 59. freee K8s GitOps 構成
 63 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 $ bin/clusterops -v generate cluster 
 --cluster-name integration-hoge-1 
 --aws-account-name hoge
 
 ↑generate ため 
  コマンド(例)
 →
 generateしたとき directory 構成(例)

  60. 60. freee K8s GitOps 構成
 64 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 deploy とき 
 おおもとになる helmfile 例

  61. 61. freee K8s GitOps 構成
 65 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 deploy とき 
 おおもとになる helmfile 例

  62. 62. freee K8s GitOps 構成
 66 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 アプリ 個別 
 helmfile 例

  63. 63. freee K8s GitOps 構成
 67 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ② ①で作った各種yamlをGitHubにpush
 アプリ 個別 
 helmfile 例

  64. 64. freee K8s GitOps 構成
 68 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  65. 65. freee K8s GitOps 構成
 69 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  66. 66. freee K8s GitOps 構成
 70 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 /clusterops deploy ${対象 cluster}
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ちなみに こ PR コメントで フローを見るとちょっとChat Opsっぽさもありますが、 ● すべて デプロイ 情報 まずGitにpushさ れる ● K8s用 git repositoryとアプリ用 git repository 完全に別れている といったところからGitOpsという名前で呼んで います
  67. 67. freee K8s GitOps 構成
 71 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 .circleci/config.ymlに記述したとおりに、 kickが走る。 ④circle ci 
  kickされる

  68. 68. freee K8s GitOps 構成
 72 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ③circle ci がkickされる
 ④helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate
 ⑤circle ci上で helmfile syncコマンドを 実行
 
 (create cluster とき eksctlを実行して る)

  69. 69. freee K8s GitOps 構成
 73 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  70. 70. 05 運用上 課題、大変なところ
 Section
  71. 71. freee K8s GitOps 構成
 75 ② ①で作った各種yamlをGitHubにpush
 ③P にてコメント
 `/clusterops deploy ${対象 cluster}`
 ④circle ci がkickされる
 ⑤circle ci上で helmfile syncコマンドを実行
 (同時にs3に必要なファイルもupload)
⑥helm chartに従って、
  各種manifestがapplyされる
 ①cluster.yamlやhelmfile、helm chartなど 各種 yamlをgenerate

  72. 72. freee K8s GitOps 構成要素
 76 ● EKS ● GitHub(+Git) ● CircleCI ● eksctl (aws EKS API) ● Helm ● Helmfile ● 自作ラッパーscript(clusteropsコマンド) ○ Helmfileやeksctlをラッパーしている
  73. 73. 課題
 77 ● 複雑な構成でキャッチアップが大変。 ○ 運用コストを開発者が払う構図になっている ● アンケートを取ったところ ○ 半数 チームが統一化されたGitOpsで運用してる ○ 4割 チームが半分くらい GitOps使ってて、半分くらい 手動デプロイ(localか らhelmfile sync)している ○ 1割 チームがSRE GitOpsに乗っかれていない ● 自作にしろ、OSSをいれるにしろ、ネット上で簡単に情報が手に入らない。 最 初 オンボーディングやトラシューについて学んでもらう に課 題があ る
  74. 74. 06 まとめと展望
 Section
  75. 75. まとめ+今後 展望
 79 [まとめ] freeeで できるだけ開発者に権限移譲をし、またすべて デプロイや変更 履歴を残すためにGitOpsを行っている [展望] もっと複雑性をさげてよりdeveloperがアプリ開発に集中するため 仕組みを つくっていきます!
  76. 76. スモールビジネスを、
 世界 主役に。

×