Мундариҷа[Пинҳон кардан][Намоиш]
Infracost барои DevOps, SRE ва таҳиягарон муҳим аст, ки мехоҳанд хароҷоти абрро барои лоиҳаҳои инфрасохтори ҳамчун код ба монанди Terraform ҳисоб кунанд. Бо Infracost, шумо метавонед ҳангоми муқоисаи имконоти гуногун зуд тақсимоти хароҷотро бубинед, ки пеш аз қабули қарори бузург ба фаҳмиши беҳтар мусоидат мекунад.
Инфракост чӣ гуна кор мекунад?
Infracost метавонад тавассути скан кардани рамзи Terraform-и шумо зиёда аз 3 миллион нархҳоро тафтиш кунад ва он пеш аз оғози захираҳо сметаи хароҷоти содда ва хонданро таҳия мекунад.
Шумо инчунин метавонед Infracost-ро истифода баред, то бидонед, ки кадом сатрҳои код таъсири калонтарини хароҷот доранд, зеро он хароҷотро ба захираҳо дар дархостҳои ҷалби шумо харита мекунад. Бо ҳамгироӣ кардани Infracost ба CI/CD-и худ, шумо метавонед бо дастаи худ ҳамкорӣ кунед ва мубоҳисаҳоро дар бораи таъсири тағирот дар ҷараёни кории мавҷудаи шумо фаъол созед.
Infracost тавассути хидмати пуштибонии API Cloud Pricing кор мекунад ва бо абзори CLI, шумо метавонед нақшаи Terraform-ро дар формати JSON таҳлил кунед. API ба арзиши инфиродии ҳар як манбаи абрии истифодашаванда ва инчунин параметрҳои хароҷоти марбути онҳо дар асоси провайдери абр истинод мекунад.
Барнома барои кор ягон маълумоти эътимодномаро талаб намекунад ва он ба Terraform ё захираҳои абрии таҳлилшуда ягон тағйирот ворид намекунад. Бо истифода аз ҳисоби намудҳои захираҳои Terraform, API кафолат медиҳад, ки захираҳои нав ҳисоб карда мешаванд.
Ду роҳи асосии Infracost тақсимоти хароҷотро нишон медиҳад:
A) Тақсимоти пурраи хароҷот
B) Тафовути хароҷоти моҳона байни давлати ҷорӣ ва нақшавӣ
Оғози кор бо Infracost (Қадам ба Қадам)
Барои насб ва оғози истифодаи Infracost, ин дастури қадам ба қадам пайравӣ кунед:
1. Infracost -ро насб кунед
Қадами аввал барои оғоз ин насб кардани Infracost аст, аммо шумо бояд аввал онро дошта бошед Терафром насб карда шудааст.
Ин аст назар ба версияҳои гуногуни Infracost:
macOS Homebrew:
brew install infracost
infracost -version # Бояд v0.9.7-ро нишон диҳад
дастури macOS:
# CLI-ро дар асоси OS/arch-и худ зеркашӣ мекунад ва онро дар /usr/local/bin мегузорад
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
Linux:
# CLI-ро дар асоси OS/arch-и худ зеркашӣ мекунад ва онро дар /usr/local/bin мегузорад
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
Докер:
docker кашидани infracost/infracost
docker run –rm \
-e INFRACOST_API_KEY=ба_қадами_пайравӣ_дар_чӣ тавр_ба_даст овардани_инро бинед \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ тақсимоти инфракост/инфракост -роҳ /код/
# Барои Infracost ё Terraform дигар парчамҳои заруриро илова кунед
# Масалан, агар шумо AWS-ро истифода баред, инҳо метавонанд талаб карда шаванд:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
-ро зеркашӣ ва кушоед Садо Ояндасоз. Онро аз сатри Фармон ё Powershell истифода баред .\infracost.exe --no-color
дар баробари дигар фармонҳо/парчамҳои зарурӣ (баромади ранг хатое дорад, ки мо бояд дар Windows ислоҳ кунем). Шумо инчунин бояд файли exe-ро ба ҷузвдони шумо кӯчонед PATH
тағирёбандаи муҳит, масалан C:\Windows
.
2. Калиди API гиред
Қадами навбатӣ сабти номи калиди ройгони API мебошад, ки CLI онро барои дархост кардани API Cloud Pricing барои вазифаҳо ба монанди гирифтани нархҳо барои намудҳои мисол истифода мебарад.
Ҳама системаҳои оператсионӣ:
феҳристи инфрасохтор
Калид дар он захира карда мешавад ~/.config/infracost/credentials.yml
.
3. Инфракостро иҷро кунед
Акнун шумо омодаед, ки Infracost-ро иҷро кунед, ки ба ҳолати Terraform ё захираҳои абрии шумо ягон тағирот ворид намекунад. Шумо метавонед онро бо лоиҳаи пешниҳодшудаи Terraform иҷро кунед, то онро санҷед.
Ҳама системаҳои оператсионӣ:
git clone https://github.com/infracost/example-terraform.git
CD мисол-terraform/sample1
# Бо main.tf бозӣ кунед ва барои муқоисаи хароҷот дубора иҷро кунед
вайроншавии инфракост – роҳ.
# Фарқияти хароҷоти моҳонаро нишон диҳед, файли yml-ро таҳрир кунед ва барои муқоисаи хароҷот дубора иҷро кунед
infracost diff -path . –sync-usage-file –usage-file infracost-usage.yml
4. Ба CI/CD илова кунед
Шумо ҳоло метавонед Infracost-ро истифода баред Интегратсияи CI/CD барои ба таври худкор илова кардани шарҳҳои дархост, ки фарқиятҳои сметаи хароҷотро нишон медиҳанд. Ин инчунин ба шумо шабакаи бехатариро фароҳам меорад, ки ба гурӯҳҳо имкон медиҳад, ки таъсири хароҷоти тағиротро ҳамчун як қисми ҷараёни кори худ баррасӣ кунанд.
Истифодабарӣ
Дар infracost
CLI дорои фармонҳои асосии зерин аст:
breakdown
: тақсимоти пурраи хароҷотро нишон диҳедdiff
: фарқияти хароҷоти моҳонаро байни ҳолати ҷорӣ ва нақшавӣ нишон диҳед
Файли конфигуратсияи Infracost-ро истифода баред, агар репои шумо якчанд лоиҳа ё фазои корӣ дошта бошад. Натиҷаҳои онҳо ба як баромади тақсимот ё фарқият муттаҳид карда мешаванд.
Истифодаи пешрафта
Infracost инчунин дорои усулҳои гуногуни пешрафтаи истифода мебошад, ки онҳоро ба ғайр аз усулҳои истифодаи мунтазам истифода бурдан мумкин аст. Ин усулҳои пешрафта метавонанд тавассути файли конфигуратсияи Infracost низ истифода шаванд.
Файли Нақшаи Terraform
Infracost метавонад бар зидди файли нақшаи Terraform иҷро карда шавад, ки маънои онро дорад, ки шумо аллакай Terraform-ро иҷро кардаед init.
Infracost танҳо Terraform-ро идора мекунадshow
дар ин ҳолат, маънои он эътиборномаи абр талаб намекунад ё --terraform-plan-flags
муқаррар карда шавад.
CD роҳ/ба/код
terraform init
нақшаи terraform -out tfplan.binary
тақсимоти infracost -path tfplan.binary
infracost diff -path tfplan.binary
Давлати Терраформ
Агар шумо хоҳед, ки тақсимоти хароҷоти ҳолати кунунии Terraform-ро бубинед, шумо бояд бидонед infracost breakdown
фармон дорад --terraform-use-state
парчам, ки дар ин ҳолат муфид хоҳад буд. Шумо бояд аллакай Terraform-ро иҷро кунед apply
, бинобар ин Infracost танҳо Terraform-ро идора мекунад show
, ки маълумоти абриро талаб намекунад ё --terraform-plan-flags
муқаррар карда шавад.
тақсимоти инфракост - мисолҳои роҳ/terraform -terraform-use-state
Terraform State JSON File
Шумо метавонед онро иҷро кунед infracost breakdown
бар зидди файли JSON ҳолати Terraform. Ин [формати баромади JSON] -и давлат ба ҷои намояндагии дохилии JSON хоҳад буд. Он бояд тавассути давидан тавлид карда шавад terraform show -json
дар дохили як лоиҳаи Terraform ва он махсусан муфид аст, агар шумо хоҳед, ки тақсимоти хароҷоти ҳолати кунунии Terraform-ро бубинед. Дар ин ҳолат, ин маънои онро дорад, ки шумо аллакай Terraform-ро иҷро мекунед apply
, маънои ҳеҷ эътимоднома абр ё --terraform-plan-flags
талаб карда мешавад.
Кадом абрҳо ва захираҳо дастгирӣ мешаванд?
Infracost бештар аз 200 захираҳои Terraform дар саросари AWS, Google ва Azure, дар ҳоле ки дигар асбобҳои IaC ба монанди Пулуми ва Ташаккули абрӣ ба харитаи рох дохил карда шудаанд. Дастгирии захираҳои нав пайваста илова карда мешавад, аз ин рӯ муҳим аст, ки репо барои релизҳоро тафтиш кунед.
хулоса
Infracost муфид аст асбоб барои таҳиягарон, DevOps, SRE ва дигарон мехоҳанд тақсимоти хароҷотро зуд бубинанд ва имконоти гуногунро пешакӣ муқоиса кунанд. Он инчунин интихоби хуб аст, агар шумо хоҳед, ки онро бо CI муттаҳид кунед ва/ё ба дастгирии AWS ва Google Cloud ниёз дошта бошед. Агар шумо хоҳед, ки дар байни дастаи худ ҳамкории беҳтар эҷод кунед, Infracost инчунин метавонад дар ин замина кӯмак кунад. Ҳамаи ин хусусиятҳо онро асбобе месозанд, ки шумо бояд дар бораи татбиқи сметаи арзиши абрӣ барои Terraform фикр кунед.
Дин ва мазҳаб