Kuyimira maziko ngati ma code mumtundu wobwerezabwereza ndi njira yabwino kwambiri yamakina omwe safuna kusewera ndi mbewa. Mchitidwewu uli ndi dzina -
Poyerekeza zokumana nazo ndi Terraform ndi CloudFormation
Asanabwere ku
Terraform Zowopsa
Pulogalamu ya Beta
Terraform sanatulutsenso mtundu wa 1.0 pano, chomwe ndi chifukwa chabwino chosaigwiritsa ntchito. Zasintha kwambiri kuyambira pomwe ndidayesa ndekha, koma kalelo terraform apply
nthawi zambiri zimawonongeka pambuyo pa zosintha zingapo kapena patangotha zaka zingapo zogwiritsa ntchito. Ndinganene kuti "zonse ndi zosiyana tsopano," koma ... ndi zomwe aliyense akuwoneka kuti akunena, ayi? Pali zosintha zomwe sizigwirizana ndi matembenuzidwe am'mbuyomu, ngakhale ali oyenera, ndipo zimamveka ngati ma syntax ndi zotsalira za malo ogulitsira ndizo zomwe tikufuna. Chidacho chikuwoneka kuti chakhala bwino, koma... :-0
Kumbali inayi, AWS yachita ntchito yabwino kusunga mayendedwe am'mbuyo. Izi mwina ndichifukwa choti ntchito zawo nthawi zambiri zimayesedwa bwino m'bungwe ndipo pokhapokha, zitasinthidwanso, zimasindikizidwa. Choncho “anayesetsa” n’zosamveka. Kusunga kuyanjana chakumbuyo ndi ma API pamakina osiyanasiyana komanso ovuta monga AWS ndizovuta kwambiri. Aliyense amene amayenera kusunga ma API a anthu omwe amagwiritsidwa ntchito mochuluka monga momwe alili ayenera kumvetsetsa momwe zimakhalira zovuta kutero kwa zaka zambiri. Koma khalidwe la CloudFormation, mu kukumbukira kwanga, silinasinthe pazaka zambiri.
Kumanani ndi mwendo ... ndi chipolopolo
Monga ndikudziwira, chotsani gwero wakunja CloudFormation stack kuchokera ku CF stack yanu sizingatheke. N'chimodzimodzinso ndi Terraform. Zimakuthandizani kuti mulowetse zinthu zomwe zilipo kale mustack yanu. Ntchitoyi inganene kuti ndi yodabwitsa, koma ndi mphamvu zazikulu zimabwera ndi udindo waukulu. Mukungoyenera kuwonjezera gwero ku stack, ndipo pamene mukugwira ntchito ndi stack yanu, simungathe kuchotsa kapena kusintha izi. Tsiku lina zinabwerera mmbuyo. Tsiku lina pa Twitch, wina adalowetsa mwangozi gulu lachitetezo la AWS la munthu wina mumndandanda wawo wa Terraform pomwe sanachite cholakwika chilichonse. Ndinalowa malamulo angapo ndipo ... gulu lachitetezo (pamodzi ndi magalimoto obwera) linasowa.
Terraform Great
Kuchira ku mayiko osakwanira
Nthawi zina CloudFormation imalephera kusinthiratu kuchoka kudera lina kupita ku lina. Panthawi imodzimodziyo, adzayesa kubwereranso ku yoyamba. Ndizomvetsa chisoni kuti izi sizingatheke nthawi zonse. Zitha kukhala zowopsa kuwongolera zomwe zidachitika pambuyo pake - simudziwa ngati CloudFormation isangalala kuti ikubedwa - ngakhale kungoyikonza. Kaya kudzakhala kotheka kubwerera ku chikhalidwe cham'mbuyo, iye sadziwa kwenikweni momwe angadziwire ndipo, mwachisawawa, amapachikidwa kwa maola ambiri akudikirira chozizwitsa.
Terraform, kumbali ina, imakonda kuchira kuchokera kukusintha kolephera bwino kwambiri ndipo imapereka zida zapamwamba zowongolera.
Zosintha zomveka bwino pamakalata
“Chabwino, posungira katundu, mukusintha. Koma bwanji?"
- injiniya wankhawa, wokonzeka kukanikiza batani la "kuvomereza".
Nthawi zina ndimayenera kuchita zinthu zina ndi chojambulira katundu mu CloudFormation stack, monga kuwonjezera nambala ya doko kapena kusintha gulu lachitetezo. ClouFormation ikuwonetsa kusintha koyipa. Ine, pa zikhomo ndi singano, fufuzani kawiri fayilo yaml kakhumi kuti muwonetsetse kuti sindinafufute chilichonse chofunikira ndipo sindinawonjezerepo chilichonse chosafunika.
Terraform imawonekera kwambiri pankhaniyi. Nthawi zina amawonekera kwambiri (werengani: wotopetsa). Mwamwayi, mtundu waposachedwa umaphatikizapo kuwonetseredwa bwino kwa zosintha kotero kuti mutha kuwona zomwe zikusintha.
Kusintha
Lembani mapulogalamu kumbuyo.
Kunena mosapita m'mbali, khalidwe lofunika kwambiri la mapulogalamu a nthawi yaitali ndi luso lotha kusintha kusintha. Lembani mapulogalamu aliwonse kumbuyo. Nthawi zambiri ndimapanga zolakwika potenga ntchito "yosavuta", kenako ndikuyamba kuyika chilichonse mumtambo umodzi wa CloudFormation kapena Terraform. Ndipo ndithudi, patapita miyezi inawululidwa kuti ine ndamvetsa chirichonse cholakwika, ndipo utumiki kwenikweni sanali wophweka! Ndipo tsopano ndiyenera mwanjira inayake kuswa mulu waukulu kukhala tizigawo tating'ono. Mukamagwira ntchito ndi CloudFormation, izi zitha kuchitika pongobwezeretsanso stack yomwe ilipo, ndipo sindichita izi ndi nkhokwe zanga. Koma Terraform, inapangitsa kuti zikhale zotheka kung'amba muluwo ndi kuudula m'zigawo zing'onozing'ono zomveka bwino.
Ma modules mu git
Kugawana khodi ya Terraform pamapaketi angapo ndikosavuta kuposa kugawana nambala ya CloudFormation. Ndi Terraform, mutha kuyika nambala yanu munkhokwe ya git ndikuipeza pogwiritsa ntchito semantic version control. Aliyense amene ali ndi mwayi wolowa m'nkhokweyi akhoza kugwiritsanso ntchito nambala yomwe adagawana. Chofanana ndi CloudFormation ndi S3, koma ilibe phindu lomwelo, ndipo palibe chifukwa chomwe tiyenera kusiya git kuti tithandizire S3 konse.
Bungweli linakula ndipo kuthekera kogawana milu wamba kunafika pamlingo wovuta. Terraform imapangitsa izi kukhala zosavuta komanso zachilengedwe, pomwe CloudFormation imakupangitsani kudumphadumpha musanayambe kugwira ntchito ngati izi.
Zochita ngati code
"Tiyeni tilembe ndipo zili bwino."
—injiniya zaka 3 asanapange njinga ya Terraform.
Zikafika pakupanga mapulogalamu, Go kapena pulogalamu ya Java si code yokha.
Kodi ngati Kodi
Palinso zomangamanga zomwe zimagwirira ntchito.
Infrastructure ngati Code
Koma akuchokera kuti? Kodi kuyang'anira izo? Kodi code yanu imakhala kuti? Kodi opanga akufunika chilolezo chofikira?
Zochita ngati Code
Kukhala wopanga mapulogalamu sikungotanthauza kulemba code.
AWS si yokhayo: mwina mumagwiritsa ntchito othandizira ena. SignalFx, PagerDuty kapena Github. Mwina muli ndi seva yamkati ya Jenkins ya CI/CD kapena dashboard yamkati ya Grafana yowunikira. Infra monga Code imasankhidwa pazifukwa zosiyanasiyana, ndipo iliyonse ndiyofunikira pa chilichonse chokhudzana ndi mapulogalamu.
Ndimagwira ntchito ku Twitch, tidapititsa patsogolo ntchito mkati mwa makina osakanikirana a Amazon ndi AWS. Tinasiya ndikuthandizira ma microservices ambiri, ndikuwonjezera ndalama zogwirira ntchito. Zokambiranazo zidayenda motere:
- Я: Damn, ndi manja ambiri kuti muwonjezere microservice imodzi. Ndiyenera kugwiritsa ntchito zinyalala izi kupanga akaunti ya AWS (tinapita ku akaunti ziwiri microservice), ndiye iyi yokhazikitsa zidziwitso, iyi yosungira ma code, ndi iyi ya mndandanda wa imelo, kenako iyi...
- Kutsogolera: Tiyeni tilembe ndipo zili bwino.
- Я: Chabwino, koma script yokha idzasintha. Tifunika njira yowonetsetsa kuti ma gizmos onse a Amazon awa ndiaposachedwa.
- Kutsogolera: Zikumveka zabwino. Ndipo tilemba script pa izi.
- Я: Zabwino! Ndipo script mwina ikufunikabe kukhazikitsa magawo. Kodi adzawalandira?
- Kutsogolera: Atenge kumene akupita!
- Я: Njirayi ikhoza kusintha ndipo kuyanjana kwambuyo kudzatayika. Mtundu wina wowongolera mtundu wa semantic udzafunika.
- Kutsogolera: Lingaliro labwino!
- Я: Zida zikhoza kusinthidwa pamanja, mkati mwa mawonekedwe ogwiritsira ntchito. Tifunika njira yowonera ndi kukonza izi.
…Patadutsa zaka 3:
- Kutsogolera: Ndipo ife tiri ndi terraform.
Makhalidwe a nkhaniyi ndi: ngakhale inu mutu pa chidendene chilichonse Amazon, mukugwiritsabe ntchito zina zosachokera ku AWS, ndipo mautumikiwa ali ndi boma lomwe limagwiritsa ntchito chinenero chokonzekera kuti chikhalidwecho chikhale chogwirizana.
CloudFormation lambda vs git modules terraform
lambda ndiye yankho la CloudFormation pazovuta zamakhalidwe. Ndi lambda mungathe
Ndikukumbukira nthawi ina ndimafuna kupanga malo opangira canary ku Elastic Beanstalk yokhala ndi chojambulira chapamwamba. Chosavuta kuchita chingakhale kupanga kutumizidwa kwachiwiri kwa EB pafupi ndi malo opangira zinthu, ndikupititsa patsogolo: kuphatikiza gulu la auto-scaling canary deployment ndi LB yotumiza kumalo opangira. Ndipo popeza Terraform amagwiritsa ntchito
Imazindikira kutengeka bwino
Onetsetsani kuti zenizeni zikugwirizana ndi zomwe mukuyembekezera.
Ndi Terraform muli ndi mbedza zapamwamba kwambiri zodziwikiratu ngati mukuyendetsa. Mwachitsanzo, mumalowetsa lamulo
CDK ndi tsogolo la CloudFormation
CloudFormation ndiyovuta kuwongolera pamiyeso yayikulu, yolumikizirana. Zambiri mwazovutazi zimazindikirika ndipo chida chimafunikira zinthu monga
Kuti Terraform asakhumudwitse
Izi ndi "zomangamanga monga code", osati "monga malemba".
Malingaliro anga oyamba a Terraform anali oipa kwambiri. Ndikuganiza kuti sindinamvetsetse njira yake. Pafupifupi mainjiniya onse modzifunira amawona ngati mtundu wamawu womwe uyenera kusinthidwa kukhala maziko omwe akufuna. MUSACHITE CHONCHO.
Zowona za chitukuko chabwino cha mapulogalamu zimagwiranso ntchito ku Terraform.
Ndawona machitidwe ambiri omwe amatengedwa kuti apange code yabwino imanyalanyazidwa mu Terraform. Mwaphunzira kwa zaka zambiri kuti mukhale wolemba mapulogalamu wabwino. Osataya mtima chifukwa chogwira ntchito ndi Terraform. Zowona za chitukuko chabwino cha mapulogalamu zimagwira ntchito ku Terraform.
Kodi codeyo singalembedwe bwanji?
Ndawona milu yayikulu ya Terraform yopanda zolembedwa. Kodi mungalembe bwanji ma code m'masamba - opanda zolembedwa? Onjezani zolemba zomwe zimafotokoza zanu code Terraform (kugogomezera mawu oti "code"), chifukwa chiyani gawoli ndi lofunika kwambiri, ndi zomwe mumachita.
Kodi tingagwiritse ntchito bwanji mautumiki omwe kale anali ntchito imodzi yayikulu ()?
Ndawona misala yovuta kwambiri ya Terraform ikuperekedwa ngati gawo limodzi. Chifukwa chiyani sitigwiritsa ntchito mapulogalamu mwanjira imeneyi? Chifukwa chiyani timagawaniza ntchito zazikulu kukhala zazing'ono? Mayankho omwewo amagwiranso ntchito ku Terraform. Ngati gawo lanu ndi lalikulu kwambiri, muyenera kuligawa kukhala ma module ang'onoang'ono.
Kodi kampani yanu sigwiritsa ntchito malaibulale?
Ndawona momwe mainjiniya, akuwongolera pulojekiti yatsopano pogwiritsa ntchito Terraform, mopusa amakopera machulukidwe akuluakulu kuchokera kumapulojekiti ena kukhala awoawo, kenako ndidakambirana nawo mpaka idayamba kugwira ntchito. Kodi mungagwire ntchito chonchi ndi code "combat" pakampani yanu? Sitingogwiritsa ntchito malaibulale. Inde,
Kodi simukugwiritsa ntchito PEP8 kapena gofmt?
Zilankhulo zambiri zimakhala ndi dongosolo lovomerezeka, lovomerezeka. Mu Python iyi ndi PEP8. Mu Go - gofmt. Terraform ili ndi zake: terraform fmt
. Gwiritsani ntchito thanzi!
Kodi mungagwiritse ntchito React osadziwa JavaScript?
Ma module a Terraform amatha kupeputsa gawo lina lazinthu zovuta zomwe mumapanga, koma izi sizikutanthauza kuti simungathe kuzilingalira konse. Mukufuna kugwiritsa ntchito Terraform molondola osamvetsetsa zothandizira? Mudzawonongedwa: nthawi idzapita, ndipo simudzadziwa Terraform.
Kodi mukulemba ndi ma singletons kapena jekeseni wodalira?
Jakisoni wodalira ndi njira yabwino yodziwikiratu pakupanga mapulogalamu ndipo imakondedwa kuposa ma singletons. Kodi izi ndizothandiza bwanji mu Terraform? Ndawona ma module a Terraform omwe amadalira dera lakutali. M'malo molemba ma module omwe amatenga malo akutali, lembani gawo lomwe limatenga magawo. Kenako perekani magawo awa ku module.
Kodi malaibulale anu amachita zinthu khumi bwino kapena chinthu chimodzi chachikulu?
Malaibulale omwe amagwira ntchito bwino kwambiri ndi omwe amayang'ana kwambiri ntchito imodzi yomwe amachita bwino kwambiri. M'malo molemba ma module akulu a Terraform omwe amayesa kuchita chilichonse nthawi imodzi, pangani magawo omwe amachita chinthu chimodzi bwino. Kenako phatikizani ngati pakufunika.
Kodi mumasintha bwanji ku malaibulale popanda kubwerera m'mbuyo?
Module wamba ya Terraform, ngati laibulale yokhazikika, imayenera kufotokozera zosintha kwa ogwiritsa ntchito osabwerera m'mbuyo. Ndizosakwiyitsa pamene zosinthazi zimachitika m'malaibulale, ndipo zimakwiyitsa ngati zosintha zosabwerera m'mbuyo zimapangidwa m'ma module a Terraform. Ndikofunikira kugwiritsa ntchito ma tag a git ndi semver mukamagwiritsa ntchito ma module a Terraform.
Kodi ntchito yanu yopanga ikugwira ntchito pa laputopu yanu kapena pamalo opangira data?
Hashicorp ili ndi zida ngati
Simumalemba mayeso?
Akatswiri amazindikira kuti code iyenera kuyesedwa, koma iwonso nthawi zambiri amaiwala za kuyesa akamagwira ntchito ndi Terraform. Kwa zomangamanga, izi zimadzaza ndi nthawi zachinyengo. Malangizo anga ndi "kuyesa" kapena "kupanga chitsanzo" ma stacks pogwiritsa ntchito ma modules omwe angagwiritsidwe ntchito moyenera kuti ayesedwe pa CI / CD.
Terraform ndi microservices
Moyo ndi imfa yamakampani a microservices zimatengera kuthamanga, luso, komanso kusokoneza kwa ntchito zatsopano za microservice.
Choyipa chofala kwambiri chokhudzana ndi zomangamanga za microservice, ndipo zomwe sizingathetsedwe, zimagwirizana ndi ntchito, osati code. Ngati mukuganiza za Terraform ngati njira yokhayo yosinthira magawo omanga a microservices, ndiye kuti mukuphonya zabwino zake zamakina. Tsopano izo ziri kale
Source: www.habr.com