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
540
0
Share
jfrog-artifactory-introduction
Takaaki FURUKAWA
February 21, 2019
More Decks by Takaaki FURUKAWA
See All by Takaaki FURUKAWA
hashitalks-japan-provisioning-by-terraform-at-rakuten
tkak
0
740
rakuten-iac-provisioning-automation.pdf
tkak
1
610
はじめての英語プレゼン #6 LT - My first step of HashiCorp Nomad
tkak
1
190
Terraform Tips
tkak
1
8.7k
Start Go with Terraform
tkak
0
560
Road to "Infrastructure as Code" in Rakuten
tkak
1
1.1k
Other Decks in Technology
See All in Technology
VSCode中心だった自分がターミナル沼に入門した話
sanogemaru
0
890
マルチモーダル非構造データとの闘い
shibuiwilliam
1
130
Amazon Qはアマコネで頑張っています〜 Amazon Q in Connectについて〜
yama3133
1
170
Tour of Agent Protocols: MCP, A2A, AG-UI, A2UI with ADK
meteatamel
0
190
互換性のある(らしい)DBへの移行など考えるにあたってたいへんざっくり
sejima
PRO
0
520
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
120
Databricks Appsで実現する社内向けAIアプリ開発の効率化
r_miura
0
230
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
1
210
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
140
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
12
7.2k
ハーネスエンジニアリング×AI適応開発
aictokamiya
3
1.3k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
350
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
700
Testing 201, or: Great Expectations
jmmastey
46
8.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
260
RailsConf 2023
tenderlove
30
1.4k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Marketing to machines
jonoalderson
1
5.1k
sira's awesome portfolio website redesign presentation
elsirapls
0
200
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