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
Pulumi に入門してみた
Search
chanyou0311
August 16, 2024
Technology
1
140
Pulumi に入門してみた
おもにクラウドの話してます - 広島 #3 の発表資料です。
https://omoni-cloud.connpass.com/event/324822/
chanyou0311
August 16, 2024
Tweet
Share
More Decks by chanyou0311
See All by chanyou0311
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
310
データの信頼性を支える仕組みと技術
chanyou0311
6
1.8k
What is DRE? - Road to SRE NEXT@広島
chanyou0311
3
910
release-please で実現する手軽で不変な Docker イメージタグ付け方法
chanyou0311
0
280
データ基盤を支える技術
chanyou0311
8
3.9k
おうちk8s入門 - すごい広島 IT初心者の会 [84]
chanyou0311
1
250
オンラインコミュニケーションの課題と、その乗り越え方
chanyou0311
0
470
データ分析基盤のはじめかた
chanyou0311
1
1.3k
ゼロから始める Python パッケージ配布
chanyou0311
0
270
Other Decks in Technology
See All in Technology
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
210
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
110
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
760
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Designing for Performance
lara
604
68k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Bash Introduction
62gerente
608
210k
How to Ace a Technical Interview
jacobian
276
23k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Transcript
Pulumi に⼊⾨してみた chanyou
Yu Nakamura - chanyou ‧ DRE ← Data Engineer ←
SWE ‧ X: @chanyou0311 ‧ Google Cloud BigQuery ‧ Azure Databricks ‧ おうち Kubernetes クラスタ
IaC やってる⽅ 🙋
Pulumi に⼊⾨してみたので 体験談を話します
今回の内容 ‧話すこと ‧Pulumi の取っ掛かり ‧話さない / 話せない こと ‧IaC とは?
‧Pulumi のベストプラクティス
モチベーション
Pulumi の良さがよくわかっていなかった ‧書き慣れた⾔語で IaC できる旨味がよくわからん ‧HCL じゃだめ?
インフラの⺠主化に関⼼が移る ‧データ基盤において、データの⺠主化からデータインフラの⺠ 主化が求められていく ‧データを⺠主化するための活動が中央チームに寄るとボトル ネックになりがち
Driving Data Quality with Data Contracts https://github.com/PacktPublishing/Driving-Data-Quality-with-Data-Contracts/tree/main
Driving Data Quality with Data Contracts ‧データコントラクトという抽象的な仕様を YAML で宣⾔するこ とで、それを満たすリソースを動的に⽣成するアプローチ
‧YAML から動的にリソース⽣成するのに Pulumi が良さそう
Pulumi とは
Pulumi とは オープンソースの IaC ツール Node.js, Python, Go, C#, Java,
YAML がサポートされている インフラのステートを保持して、 コードとの差分を埋める操作を ⾏ってくれる https://www.pulumi.com/docs/concepts/how-pulumi-works/
対応パッケージ ‧三⼤パブリッククラウドに対応 ‧Kubernetes, Auth0, GitHub, Cloudflare, Heroku, … ‧Pulumi Terraform
Bridge ‧Dynamic resource provider
Pulumi Cloud ‧ステート管理は Pulumi Cloud に任せられる ‧CI/CD の実装も⼿軽になる ‧Pulumi Copilot
などの開発⽀援機能もある
Pulumi AI ‧⾃然⾔語で構成や実現したいことを伝えると、それに沿った Pulumi リソースを⽣成してくれる ‧初期プロジェクト⽴ち上げ時にも Pulumi AI にテンプレートを⽣ 成してもらえる
https://www.pulumi.com/docs/concepts/how-pulumi-works/
基本コマンド ‧pulumi new ‧pulumi up
チュートリアルをやってみる
チュートリアルをやってみる https://www.pulumi.com/docs/clouds/gcp/get-started/create-project/ ‧事前に Google Cloud の Project を作っておく
データコントラクトの事例
データ仕様をデータコントラクトとして表現 https://datacontract.com/
スキーマはもちろん PII に該当するかも定義 https://datacontract.com/
利⽤規約やデータの配置場所も表現 https://datacontract.com/
サービスレベルも表現する https://datacontract.com/
データコントラクト駆動な世界 データコントラクトから、様々な成果物を⾃動的に⽣成できる ‧ドキュメント ‧宛先のデータセット ‧データ転送処理 ‧データ品質の監視 ‧…
データコントラクト駆動な世界を体験する ‧https://github.com/chanyou0311/datacontract-demo ‧データコントラクトを YAML で定義して、宛先のデータセットを ⽣成する
デモ
所感とまとめ
Good: 抽象表現からインフラに落とし込める ‧データコントラクトの例のように YAML から任意のロジックでイン フラ構築できる ‧ガードレールとして機能して、プラットフォーム化が加速しそう ‧知⾒のないユーザーでも、仕様さえ決められれば⾃律的にインフラ 構築できそう
Good: セルフサービス化が容易 ‧モジュール化する際に IaC ツールのベストプラクティスを 探らなくても、書き慣れた⾔語のプラクティスを踏襲できる ‧Pulumi プロジェクト内外のソースを読み取って任意のイ ンフラを構築できる ‧⾃前の
REST API や Jupyter Notebook を経由してリソー ス管理もできる
Good: ⼿軽にプロバイダーを⾃作できる ‧Dynamic resource provider で⼿軽にプロバイダーが⾃作 できる ‧Pulumi で社内 Wiki
に静的サイトの要領でページを書き出 すとかできそう
More: 対応プロバイダーの少なさを感じた ‧Terraform に⽐べると少ない印象 ‧Pulumi Terraform Bridge にハードルの⾼さを感じた
まとめ ‧仕事でも趣味でも使えそうなので、引き続き試していきた いと思います