kukhazikitsidwa kwa database, 99% ya mapulogalamu amawagwiritsa ntchito
kuyambitsa nginx pakugawa kutsogolo ndikuyimilira ku backend
mutha kuyika pulogalamuyo mu chithunzi cha docker, mwanjira iyi ntchito yanga idzagwira ntchito kulikonse komwe docker ilipo, vuto logawa limathetsedwa nthawi yomweyo.
kupezeka kwa ntchito m'bokosilo, mutha kupanga ma microservices, chidebe chilichonse (cholumikizidwa ndi netiweki wamba) chitha kufikira china kudzera pa dzina, chosavuta kwambiri.
Ndizosangalatsa kupanga chidebe ndi "kusewera" mmenemo.
Zomwe sindimakonda nthawi zonse za docker:
Kuti pulogalamu yanga igwire ntchito, ndikufuna Docker yokha pa seva. Chifukwa chiyani ndikufunika izi ngati mapulogalamu anga akuyenda pa jre kapena nodejs ndipo chilengedwe chawo chili kale pa seva?
ngati ndikufuna kuyendetsa chithunzi changa (chachinsinsi) chomangidwa kwanuko pa seva yakutali, ndiye kuti ndikufunika chosungira changa cha docker, ndikufunika zolembera kuti zigwire ntchito kwinakwake ndipo ndikufunikanso kukonza https, chifukwa docker cli imagwira ntchito pa https. O damn ... pali zosankha, ndithudi, kuti musunge fano kwanuko kudzera docker save ndipo ingotumizani chithunzicho kudzera pa scp ... Koma ndizo zambiri za kayendedwe ka thupi. Kupatula apo, zikuwoneka ngati yankho la "crutch" mpaka chosungira chanu chikuwonekera
docker-compose. Zimangofunika kuyendetsa zotengera. Ndizomwezo. Iye sangakhoze kuchita china chirichonse. Docker-compose ili ndi mitundu yambiri yamafayilo ake, ma syntax ake. Ziribe kanthu momwe zikuwonekera, sindikufuna kuwerenga zolemba zawo. Sindidzazifuna kwina kulikonse.
Nthawi zonse ndimakhudzidwa ndi malingaliro okweza chilichonse ku Docker: postgresql, kafka, redis. Ndizomvetsa chisoni kuti sizinthu zonse zomwe zimagwira ntchito m'mitsuko, sikuti zonse ndizosavuta kukonza ndikuyendetsa. Izi zimathandizidwa ndi opanga chipani chachitatu, osati ndi ogulitsa okha. Ndipo mwa njira, funso limabwera nthawi yomweyo: ogulitsa samadandaula za kusunga katundu wawo ku Docker, chifukwa chiyani izi, mwina amadziwa chinachake?
Funso limadza nthawi zonse lokhudza kulimbikira kwa data ya chidebe. ndiyeno mukuganiza, ndingoyika chikwatu chosungira kapena kupanga voliyumu ya docker kapena kupanga chidebe cha data chomwe chilipo tsopano deprecated? Ngati ndiyika chikwatu, ndiye kuti ndiyenera kuwonetsetsa kuti uid ndi gid ya wogwiritsa ntchito mu chidebecho zikugwirizana ndi id ya wogwiritsa ntchito yemwe adayambitsa chidebecho, apo ayi mafayilo opangidwa ndi chidebecho adzapangidwa ndi ufulu wa mizu. Ngati ndigwiritsa ntchito volume ndiye deta adzakhala chabe analenga ena /usr/* ndipo padzakhala nkhani yofanana ndi uid ndi gid monga poyamba. Ngati mukuyambitsa gawo la chipani chachitatu, muyenera kuwerenga zolembazo ndikuyang'ana yankho la funso: "Kodi gawoli limalemba mafayilo muzotengera ziti?"
Nthawi zonse sindimakonda kuti ndimakonda kucheza ndi Docker kwa nthawi yayitali pa siteji yoyamba: Ndinaganizira momwe ndingayambitsire zotengera, zithunzi zotani zomwe mungayambitsire, ndikupanga Makefiles omwe anali ndi zilembo zamalamulo aatali a Docker. Ndinkadana ndi docker-compose chifukwa sindinkafuna kuphunzira chida china mu docker ecosystem. NDI docker-compose up Zinandidetsa nkhawa, makamaka ngati amakumanabe kumeneko build zomanga, osati zithunzi zomwe zasonkhanitsidwa kale. Zomwe ndimafuna ndikungopanga chinthu moyenera komanso mwachangu. Koma sindinathe kudziwa momwe ndingagwiritsire ntchito docker.
Kuyambitsa Ansible
Posachedwapa (miyezi itatu yapitayo), ndinagwira ntchito ndi gulu la DevOps, pafupifupi membala aliyense yemwe anali ndi maganizo oipa kwa Docker. Pazifukwa:
chifukwa docker ngati pali Ansible ndi makina enieni
Pa ntchito yomweyo ndinadziwa chida china - Ansible. Ndinamva za izo kamodzi, koma sindinayese kulemba mabuku anga amasewera. Ndipo tsopano ndinayamba kulemba ntchito zanga ndiyeno masomphenya anga anasintha kwathunthu! Chifukwa ndidazindikira: Ansible ili ndi ma module omwe amayendetsa zotengera zomwezo, zomanga zithunzi, ma network, ndi zina zambiri, ndipo zotengera zimatha kuyendetsedwa osati kwanuko kokha, komanso pamaseva akutali! Chisangalalo changa sichinali malire - ndinapeza chida cha NORMAL ndikutaya mafayilo anga a Makefile ndi docker-compose, adasinthidwa ndi ntchito zaml. Code idachepetsedwa pogwiritsa ntchito zomanga ngati loop, when, Ndi zina zotero.
Docker yoyendetsa zinthu za chipani chachitatu monga nkhokwe
Posachedwa ndidakumana ndi ma ssh tunnels. Zinapezeka kuti ndizosavuta "kutumiza" doko la seva yakutali ku doko lapafupi. Seva yakutali ikhoza kukhala makina pamtambo kapena makina enieni omwe akuyenda mu VirtualBox. Ngati mnzanga kapena ine ndikusowa database (kapena chigawo china chachitatu), tikhoza kungoyambitsa seva ndi chigawo ichi ndikuzimitsa pamene seva sikufunika. Kutumiza kwa doko kumapereka zotsatira zofananira ngati nkhokwe yomwe ikuyenda mumtsuko wa docker.
Lamuloli limatumiza doko langa ku seva yakutali yomwe ikuyenda postgresql:
Monga makina am'deralo, mutha kugwiritsa ntchito Alpine yemweyo, yomwe imagwiritsidwa ntchito mwachangu muzotengera za docker. Chabwino, kapena magawo ena opepuka kuti makinawo aziwombera mwachangu.
Mfundo yofunika: mungathe ndipo muyenera kuyendetsa nkhokwe ndi zinthu zina zogwirira ntchito pa ma seva akutali kapena mu bokosi lachidziwitso. Sindikufuna docker pazifukwa izi.
Pang'ono za zithunzi za docker ndi kugawa
Ndinalemba kale nkhani momwe ndimafuna kuwonetsa kuti kugwiritsa ntchito zithunzi za docker sikupereka chitsimikizo. Zithunzi za Docker zimangofunika kupanga chotengera cha docker. Ngati mukukwezera ku chithunzi cha docker, ndiye kuti mukukweza kuti mugwiritse ntchito zida za docker ndipo mudzangozigwiritsa ntchito.
Kodi mwawonapo kulikonse komwe opanga mapulogalamu amangoyika zinthu zawo pachithunzi cha docker?
Zotsatira zazinthu zambiri ndi mafayilo amabina papulatifomu inayake; amangowonjezeredwa pazithunzi za docker, zomwe zimatengedwa kuchokera papulatifomu yomwe mukufuna. Kodi munayamba mwadzifunsapo chifukwa chake pali zithunzi zambiri zofananira pa dockerhub? Lowetsani nginx mwachitsanzo, mudzawona zithunzi za 100500 zochokera kwa anthu osiyanasiyana. Anthu awa sanapange nginx yokha, adangowonjezera nginx yovomerezeka ku chithunzi chawo cha docker ndikuchikongoletsa ndi makonzedwe awo kuti athe kukhazikitsa zotengera.
Nthawi zambiri, mutha kungoyisunga mu tgz, ngati wina akufunika kuyiyendetsa mu docker, ndiye kuti awonjezere tgz ku Dockerfile, cholowa kuchokera kumalo omwe mukufuna ndikupanga ma buns owonjezera omwe sasintha pulogalamuyo mu tgz. Aliyense amene angapange chithunzi cha docker adzadziwa chomwe tgz ndi zomwe ayenera kugwira. Umu ndi momwe ndimagwiritsira ntchito docker apa
Pansi: Sindikufuna zolembera za docker, ndigwiritsa ntchito mtundu wina wa S3 kapena kungosungira mafayilo ngati google drive/dropbox
Docker ku CI
Makampani onse omwe ndimagwira nawo ntchito ndi ofanana. Nthawi zambiri amakhala golosale. Ndiye kuti, ali ndi pulogalamu imodzi, ukadaulo umodzi (chabwino, mwina zilankhulo zingapo kapena zitatu).
Makampaniwa amagwiritsa ntchito docker pa maseva awo pomwe njira ya CI imayenda. Funso: Chifukwa chiyani mukufunika kupanga ma projekiti mumtsuko wa docker pamaseva anu? Bwanji osangokonzekera malo omanga, mwachitsanzo, lembani Ansible playbook yomwe idzakhazikitse zofunikira za nodejs, php, jdk, copy ssh keys, etc. ku seva yomwe kumangako kudzachitikira?
Tsopano ndikumvetsa kuti izi ndikudziwombera ndekha pamapazi, chifukwa docker sichibweretsa phindu lililonse ndi kudzipatula. Mavuto omwe ndidakumana nawo ndi CI mu docker: