Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jfrog-artifactory-introduction
Search
Takaaki FURUKAWA
February 21, 2019
Technology
0
400
jfrog-artifactory-introduction
Takaaki FURUKAWA
February 21, 2019
Tweet
Share
More Decks by Takaaki FURUKAWA
See All by Takaaki FURUKAWA
hashitalks-japan-provisioning-by-terraform-at-rakuten
tkak
0
590
rakuten-iac-provisioning-automation.pdf
tkak
1
480
はじめての英語プレゼン #6 LT - My first step of HashiCorp Nomad
tkak
1
130
Terraform Tips
tkak
1
8.5k
Start Go with Terraform
tkak
0
500
Road to "Infrastructure as Code" in Rakuten
tkak
1
1k
Other Decks in Technology
See All in Technology
Lexical Analysis
shigashiyama
1
150
AGIについてChatGPTに聞いてみた
blueb
0
130
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
440
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
260
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
『Firebase Dynamic Links終了に備える』 FlutterアプリでのAdjust導入とDeeplink最適化
techiro
0
160
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
230
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
Taming you application's environments
salaboy
0
200
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The Language of Interfaces
destraynor
154
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
The Cult of Friendly URLs
andyhume
78
6k
Automating Front-end Workflow
addyosmani
1366
200k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Being A Developer After 40
akosma
87
590k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Six Lessons from altMBA
skipperchong
27
3.5k
Transcript
JFrog Artifactory 導⼊事例紹介 第2回 GitHub Enterprise ユーザ会 Feb 21, 2019
Takaaki Furukawa Rakuten, Inc.
古川貴朗 Takaaki Furukawa / @tkak 1985年福島県⽣まれ。2010年に楽天株式会社に新卒⼊社。サーバ エンジニアとしてサーバの構築・運⽤に携わり、ChefやTerraform などのツール導⼊、 インフラの運⽤改善、テクニカルサポートを 経験。現在はECスタートアップ系サービスのインフラ運⽤を⾏い
ながら、社内にInfrastructure as Codeを広めている。 ⾃⼰紹介
3 ⽬次 • Artifact Registryとは • 導⼊経緯 • 導⼊してから •
今後について
4 Artifact Registryとは
5 Artifact Registryとは CI ツール Artifact Registry 変更のコミット ビルドの開始 依存パッケージの取得
成果物とビルド情報 の公開 https://github.com/
6 Artifact Registryとは CI ツール Artifact Registry 変更のコミット ビルドの開始 依存パッケージの取得
成果物とビルド情報 の公開 https://github.com/ Artifact Registry ソフトウェア開発の成果物を格納しておく場所 CI/CDプロセスの中でなくてはならない存在
7 なぜArtifact Registryが必要なのか? 依存管理 依存関係のあるアーティファクトを静的に扱うことが可能に ビルドの再現性が保証されるので「私の端末では動くのに」症候群を防ぐ
8 なぜArtifact Registryが必要なのか? 依存管理 依存関係のあるアーティファクトを静的に扱うことが可能に ビルドの再現性が保証されるので「私の端末では動くのに」症候群を防ぐ セキュリティやコンプライアンス 誰がいつプッシュしたのかなどの活動履歴を保存 認証と認可の仕組み
9 導⼊経緯
10 開発グループ A 開発グループ B 開発グループ C 開発グループ D 開発グループ
E 運⽤グループ A 運⽤グループ B 運⽤グループ C インフラ基盤グループ 開発組織体系
11 Artifactory導⼊以前 • サーバ管理者向けのプライベートリポジトリを管理(私のチーム) • Yum (mirror repository / 社内で作っているRPMパッケージ配布⽤)
• OS ISO files • RubyGems • Vagrant Box Images • Tarball • …
12 Artifactory導⼊以前 • 各アプリ開発チームでは、それぞれアーティファクトリポジトリを管理 • Nexus • JFrog Artifactory •
Jenkins • NFSに⽇付付きのファイル (?) • Gitにコミット (?) • …
13 抱えていた課題 • ⼈やサーバの運⽤コスト • パッケージタイプごとにリポジトリを管理するつらみ • 各チームでサーバを⽴ててリポジトリを運⽤するのは組織的にみて無駄 • セキュリティ
• 野良リポジトリは、認証・認可の仕組みや履歴管理などがなかったりする
14 ある⽇、 開発チームからJFrog Artifactoryの運⽤を 引き継いで欲しいという相談が…
15 JFrog Artifactoryとは • Artifact Registryとしてデファクトスタンダード • サポートするパッケージタイプが豊富 • オンプレもパブリッククラウドもサポート
• プライシングがユーザ単位ではなく製品単位 • ⼀番安いもので $2,940 / year
16 Artifactory導⼊にあたって • そもそもJFrog Artifactoryでいいのか?他に選択肢はないのか? • Nexus • 上⻑への提案資料を作成 •
運⽤を引き継ぐことの動機の整理 • 集約化することのメリット • 競合製品との⽐較 • コストのシミュレーション • 提供するターゲットユーザ • スケジュール • アーキテクチャ設計 • …
17 まずは⼩さく始める • 開発全体に公開する前に試しに使ってみてくれる⼈を探す • アプリ開発チームの同期 • フィードバックをもらってルールを決める • リポジトリの命名ルール
• <team>-<technology>-<maturity>-<locator> • 例: infra-mvn-release-local • Botアカウントのポリシー https://jfrog.com/whitepaper/best-practices-structuring-naming-artifactory-repositories/
18 導⼊してから
19 Artifactoryを導⼊してよかったこと • アーティファクト管理を⼀元化できた • Maven, Docker, Generic, NPM, RubyGems,
RPM, PHP, Vagrant, etc • 外部リポジトリのミラーとして使える • 社内プロキシ問題を軽減 • 組織を越えたコラボレーション • 例: チームA開発してるライブラリをチーム Bが利⽤する https://jfrog.com/blog/fully-reproducible-builds-with-circleci-and-artifactory/
20 ユーザサポート • 個別チャットを極⼒避ける • オープンなユーザコミュニティ⽤のチャットルームを作る • ⾃分が忙しくて返事できない時でも誰かが返信してくれる • Nexusからのマイグレーションサポート
• JFrogから提供されているNexusToArtifactory.pyというマイグレーションツール • 事前に本番環境の同等のテスト環境を⽤意し、トラフィック量などの負荷を確認
21 ⽇々の運⽤で困ったこと • 順調にユーザが増えてリポジトリ作成の依頼が頻繁に来るように • 最初はGUIで作業していたが、何度も同じ作業をするのが⾟い…
22 Policy as Code Artifactoryのユーザ、グループ、レポジトリなど ポリシーをコードで管理。
23 https://github.com/hashicorp/terraform Policy as Code with GitOps https://github.com/atlassian/terraform-provider-artifactory https://circleci.com/
24 GitOps Pipeline 変更のコミット ビルドの開始 terraform plan で事前に確認 レビュー&承認 ビルドの開始
terraform apply で設定内容を反映 Users Admin 結果をGitHubに通知 (tfnotify) https://github.com/ https://github.com/mercari/tfnotify https://circleci.com/
25 今後について
26 DevSecOps • CI/CDにセキュリティの視点を⼊れたい • X-Rayの導⼊ • より早くフィードバックループを回す • 安⼼・安全なソフトウェア開発
27 Harborとの住み分け • Docker RegistryはHarborに移⾏を検討 • Harborはオープンソースのコンテナレジストリ • Cloud Native
Computing Foundation (CNCF)のプロジェクト https://goharbor.io/
• 弊社でのJFrog Artifactory導⼊事例紹介 • バラバラだったアーティファクトレジストリを⼀元化 • 組織を越えたコラボレーションがしやすくなった • ⼈やサーバリソースのコスト削減につながった •
Terraform/GitHub/CircleCIを使ってポリシー管理を⾃動化 • 今後はDevSecOpsを進めていきたい • CI/CDのプロセスの中にセキュリティスキャンを導⼊ まとめ
Thank you.
None