微服务架构的部署

微服务架构的部署

ID:83377041

大小:1.33 MB

页数:11页

时间:2023-07-01

上传者:无敌小子
微服务架构的部署_第1页
微服务架构的部署_第2页
微服务架构的部署_第3页
微服务架构的部署_第4页
微服务架构的部署_第5页
微服务架构的部署_第6页
微服务架构的部署_第7页
微服务架构的部署_第8页
微服务架构的部署_第9页
微服务架构的部署_第10页
资源描述:

《微服务架构的部署》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

᪀Ḅᦻ☢⌕᪀⚗Ḅ᪀⌱ஹ!"#᛻Ḅ%ᐵ'ᐹ)ᢝஹ+ᕒᑖ'./0ஹ%ᐵ12.345⚗஺ᨬ89:᪷<=>?@᪀ḄABCᦔ᳛Ḅᑗ◤H9IJKᳮM⚗ᡠOḄPᘤRᳮSTḄUᗐឋ◤H஺⚗XJYZ[ḄPᘤRᳮST9\STḄ]^X_`PᘤOḄaᵨBc#᛻Rᳮ9.aᵨ▤eḄᢝfgᡂAᢝfi஺ᓫḄᳮk\STḄ᪶m]^nJoXRᳮpᩖaᵨḄABC#᛻9?@᪀ḄABCᦔ᳛஺⚗Ḅrs᝞✌ᐜ9\wxᐹᨵᐺᑖi{aᵨwxᱯ}\STᡠBcḄᘤ~@9᝞RH1288~ᘤ9ᐕᜫwxST⌕H᪷<▭ᵨᡝᦪḄIc9Ḅᔠᳮᑭᵨᵫ`wxSTn¢◤⌕Bc£¤YZaᵨḄABc#᛻9☠ឋX¦§¨⌕Ḅ9ᐕᓫ©ᜫᦔ஺ᐸ«9wx]^pᩖ9᪀Ḅ¬◤⌕:wxᑖᡂ®¯«A£¤°wx஺±Ḅ¯«ஹ°wx᪷<ᐹ²³´◤⌕µᵨ±Ḅ¶·9ᵫ±Ḅ¸¹Uᡂ஺º»9⚗¹ᡂᕒᵫ¼½Ḅ¾ᙢÀÁ±9xJḄ#᛻A±'ᐹXÃÄḄ஺┐Æ¢Ç⚗rsḄὃ⇋9⚗⌱Ê_`᪀Ic⚗஺ஹ!"ஹËᵨᑮḄ'ᐹg“'Îᗐᐸ5ஹÃᐜᑭᐸᘤ”9ÐÑ〉ᔠḄ/0A%ᐵ'ᐹg9Ó^?@᪀Ḅaᵨᦔ᳛஺⚗ᑭᵨDevOPs/0Ú⌱ᵨJᝅ%ᐵ'ᐹgOaᵨRᳮ9?@ஹ!"ஹḄᦔ᳛஺ÜṹÞ⚗Ëᵨᑖi{ÜṹÞGitlab,æḄ]^▲`ÜṹèÞ9éᒹëreviewsîÜṹïðñ9issuetracking஺⚪ùúñஹwikiû]^9XÜṹRᳮA¾ᙢÀÁüýஹÂþ'ᐹḄ✌⌱஺DockerஹDocker⚗ᵨᘤ᦮ᘤᵨ!Ḅ#$ᵨḄ%᛻'()᱐%᛻+,-ᙠDockerᘤ/஺123ᩖḄ',5%᛻6ᳮDockerᐹᨵᐜᜩḄ<=>?᜜ḄAὶCDEᨵᜧGᦪ+IJKDockerᵨᑮMNOḄᡈὅRS%᛻/M஺

1K8s⚗XᵨKubernatesᘤ^_6ᳮḄ`Ạ%᛻%᛻ஹ()%᛻ḄDockerᘤ+ᵫK8scd^_6ᳮ஺JenkinsghḄij!klὁnᢝpqᡂstJenkins,⚗vwJenkinsxy᪀{|ṹஹKᵨᡭᒹᡂDockerᨬ!ᑮK8s%᛻/Kᘤ,-ᩭ஺ShellᑏShellK⚗ᡭᑖஹ!ᵨ▤Ḅ6ᳮᓄ,5ஹ6ᳮ',5Ḅᦔ᳛஺WIKIGitlibḄWIKI¡¢£1¤¥¦§⚗¨⌱ªdokuwikiᙢ¯°±'²vḄᐹ¯°ᡂᕒ´Kµ¶ᦻ᫏ஹ¹ºᑖ»ᦻ᫏ஹD¼½¾½¾´¿ÀᑮwikiÁ±Ã஺ἱ⍝MÁ2¶ᑜஹxy'bugᐵὶᩭ⚗Éᵨἱ⍝Ê-xy'bug6ᳮ஺ËᕒᑖÌÍÎyÏ᪀ᵨḄஹijḄ3ᩖ_+ÐÑᜧ2ᓫ$ÓᵨḄ☠,5ËᕒÕḄ6ᳮÖᯠÐØ2ÙM஺DevOpsÝᓄxyᜐᳮßÓàáâÙÌ`Ạµã¿À´äÐÍÎyÏ᪀ᵨ',5Ḅå⌕ᩩ⚗XᵨDevOpsḄᳮèḄÊ-஺àáij',5Ḅᓄ◤⌕ᐹÃêDevOpsë^ὅÂᐸNITᕒÌ6ᳮîïḄ±²v¦§sðḄËᕒᑖ'ÐÂᐹÃ᪵ò⌕Ḅ¦ó஺vôḄäõÐᨵMᐹᜧö⌕¹⍝÷øÉᵨᐹùúûüÉᵨᐹý¢þÿᑮẆᦔ᳛ḄḄ஺⚗Ḅ⌕ᡂᕒஹᳮ!"#$%&'()*Ḅ+,-ᵨ/01!"2ᕒᡠḄᶍᨵ67Ḅ8஺2ᕒ9a;ὅ=>#◤⌕@ABᑮCDEᑖ=>GHᑮwikiL#MNᵨὅOPNᵨ஺b;ὅ◀STᑏ0VWX᜜#Z◤⌕[\Tᑏᓫᐗᵨ_#`aᑖbc-ᵨὶNefgᩖ#ᐜᙠTᑏᓫklmnSoὶNpqᦔ᳛஺c;ᵫtu⚗vᵨDocker8ᘤab|}Ḅ#ὅ~p◤⌕ᦋDockerFile%ḄEᑖᦪ#tE▤p@TḄṹᡭᒹᑮ1஺eft*Ḅc#$fὅ᜜Ḅ⌕஺ᡠᨵὅDockerfile⌕ᨵ#ᐸ⚗1ḄDockerFileB¡u¢£ᙠ¤¥⚗᪾§m#⌕¨©ᳮᕒTᑏḄnḄ#ª2ᕒ6eᐵᢈ#~®¯¨©ᳮᕒ°±◤#ᵫ¨©ᳮᕒᦋeᐵᦻ³஺2ᕒ92ᕒḄ´ᨵµ¶ᱯ¸#&◤⌕[\◀SSprint▤Ḅ᜜#Z◤⌕¨ᔠ2ᕒᢝ¿ÀᡂḄÁ

2¨©ᳮ2ᕒ9¢£DevOpsḄcÅÆtÇÈẠÊË®BÌÍᓄbᐹḄ#`Ðeft*c#f¨©ᳮὅḄᢈ⌕ÑÒÓÔ஺Õ#ᡃ×Ḅ⚗ḄØ᪀¥¢pÚᥛDevOpsÜ0ḄÊË#ᐸuÝZ6ᐹᜓe-ḄÊËÈẠ஺`Ð#ᡃ×⚗ᨬàḄ¨©ᳮᵫ§᪀áᩭḄ#⌕◤⌕᝞ä$åæ9a;Eçè⚗◤⌕ᵨᑮéᐳḄkl³ஹ_᝞zookeeper[ì1íஹDockerRegistryñòஹᦪóòôÁb;a⚗TᑏᙠgitLᡭᑖÚḄ¡u#t᱐Ḅm᎛ᡭᑖÚÁc;Tᑏᔜ"ø-ᵨbEᡂḄDockerfileÁd;ᑴᡈὅᙠüLýᑮþᡂḄᡠ◤ÿ᛻ḄDockerPushᑮ⚗ᵨḄᨵeᑏShell"#$%&'⚗ᡭᒹᡂDockerPushᑮ+஺fᙠJenkins234567ᡈὅ:;<=$%ᢝ?@ᡂA:;஺#ᦻ&C⚗Ḅஹ:;ὶFGHIJ᱐LMANOP⌕RSTU⚗ᔜW▤YᵨᑮḄ:ᑖ56ᓄ"#\ᐹ^_஺`1⚗ᢝ?@ᡂA:;LMbṹᑖdeᳮ:

3releasefeaturebranchesdevelopbrancheshotfixesmaster

4序号ᑖᳮ1masterᑖᑖᨵᐹᨵmaste▲ḄᳮᕒReleasḄ)ᔠᑮmasterᑖᩭ2developᑖdevelopᨬḄᑁᶇᨵᕒᙠdevel஺□3feature$%ᑖfeature-ᱯឋᑖ(ᑮ)*+,ᔠ-deveop*◀ᑖ0.34release/ᑖrelease-01᱐ᑖ3ᵨ56ᦋbug(,☂9ᔠ-deveop:master0.3᝞`ᡠ^ᙠgit2mnḄopW⚗q◤⌕stnudevelopAmaster{Wᑖd஺|ᕒ~ᨵᩗ▲bṹTᑮdevelopᑖd2Ḅᢝ?@ᡂAὶFqdevelopᑖd2bṹ஺oWSprint▤YIJ᱐34eᳮᕒdevelopᑖd2mnpWᵨIJḄreleaseᑖd஺IJᦋbug|ᕒ~ᦋḄbṹTᑮCḄIJReleaseᑖd2஺IJ᱐#ᵫ34eᳮᕒ&bṹᔠᑮMasterᑖd஺56:;A⚗Shell"#ஹDockerfilesK8s34ᦻAJenkins<=$%56ᓄḄᢝ?@ᡂA:;஺34eᳮᕒᙠ⚗ᑏḄ"#ᦻ᪀᝞`2ᡠ^஺a)mnᑖdḄshell"#^_£▬1#!/bin/bashif[-z"$1஻];thencat<EOFexit1fiDEPLOY_VERSION=$1RPFILES=(subproject1/kube-rc.yamlsubproject1/pom.xmlsubproject1/Makefi1e)if[-z$(gitbranch-a|grep-e/${DEPLOY_VERSION}$)];thengitbranch${DEPLOY.VERSION)gitcheckout${DEPLOY_VERSION)elsegitcheckout${DEPLOY_VERSION)gitpull

5fi#Çᣚk8s34ᦻÉ᛻ᢣᔣ,ᑗᣚᑮIJ#Çᣚᣵpom.xmlᦻḄSNAPSHOTÑrelease᱐#Ò#ÇᣚᣵmakefileḄTagḄlatestÑrelease᱐#Òforfin${RP_FILESÓ};dosed-i-ez/s#api.devproject.#api.testproject.\-e's#0.0.l-SNAPSHOT#${DEPLOYVERSION)-SNAPSHOT#gz\-e஻s#latest#${DEPL0Y_VERSI0N}#g஻$fdonegitcommit-a-m"CreateBranch${DEPL0Y_VERSI0N}*gitpushorigin${DEPL0Y_VERSI0N)b)Dockerfile^_ᦻ&JavadubboÙ=ÑÑ_^_£▬2FROMregistry,xcompany./java:openjdk-7-jreMAINTAINERzhangsanENVspring,profiles.active="production”ENVJAVA_OPTS=஻-XmxlO24m஻RUNmkdir-p/appCOPYtarget/subproject!,war/app/COPY./startup,sh/app/RUNchmod+x/app/startup,shWORKDIR/appCMD[*./startup,sh”]EXPOSE8080c)Makefileᦻᒹà7⚗ஹ&⚗ᡭᒹᡂDockerஹ&Pushᑮ+ஹᙠK8s2mnRep1icationContro11er>ᙠK8s2mnserviceḄáâ"#IMAGE_PREFIX=registry,xcompany./projectl/COMPONENT=subproject1ifndefBUILD_TAGBUILD_TAG=latestendifIMAGE=$(IMAGE_PREFIX)$(COMPONENT):$(BUILD_TAG)ifndefKUBE_OPSKUBE_OPS=pserver=https://api.devproject.pnamespace=project1endif

6clean:mvncleancompile:cleanmvn-U-DskipTests=true-Dmaven.javadoc.skip=truepackage#&ãMäᡭᒹᡂDockerbuild:dockerbuild-t$(IMAGE).#&ãPushᑮ+push:dockerpush$(IMAGE)run:dockerrun-rm-it-espring,profiles.active=application-p8080:8080$(IMAGE)#:;Re1icationContro11erdeploy:kubectlcreate-fkube-rc.yaml$(KUBE_OPS)redeploy:kubectlreplace-fkube-rc.yaml$(KUBEOPS)undeploy:kubectldelete-fkube-rc.yaml$(KUBE_0PS)#mnservicedeploy-svc:kubectlcreate-fkube-svc.yaml$(KUBEOPS)undeploy-svc:kubectldelete-fkube-svc.yaml$(KUBEOPS)d)K8s:;34ᦻmnReplicationcontrollerஹmnservice^_£▬4#mnReplicationcontrollerapiVersion:vlkind:Replicationcontrollermetadata:name:subprojectlspec:replicas:1selector:name:subprojectltemplate:

7metadata:labels:name:subproject1spec:containers:-name:subprojectlimage:registry,xcompany./project1/subprojectl:latestimagePulIPolicy:Alwaysenv:-name:DUBBO_REGISTRY_ADDRESSvalue:஻kube://zookeeper:2181஻-name:DUBBO_REGISTRY_REGISTERvalue:"true"ports:-containerPort:8888#mnServiceapiVersion:vlkind:Servicemetadata:name:subprojectllabels:component:subprojectlspec:ports:-port:8888nodePort:16888selector:name:svc-subproject1type:NodePore34eᳮᕒᙠJenkins23456ᡈæ6çḄ<=ᙠjenkins<=34shell"#è$%ᵨḄpé:;^_£▬5஺#!/bin/bash-eIMAGE=registry.xcompay./project1/sub-project1:$IMAGE_VERSIONmakecompileif[$build=஻true஻];thenecho"dockerbuild-t$IMAGE஻dockerbuild-t$IMAGE.echo"dockerpush$IMAGE”dockerpush$IMAGEfi

8if[$undeploy="true"];thenmakeundeployfiif[$deploy="true'];thenmakedeployfiif[$deploysvc="true'];thenmakedeploy-svcfiᐹëḄìMR᝞i.Git2íbṹ7ஹ⚗ii.&7îḄMäᒹᡭᒹᡂDockeriii.&ᡭᒹîḄDockerPushᑮ+iv.Jenkins᡻ðShell"#áâ+íᙠK8sÉ᛻mnpodARC,&ᵨMäHᐸòðÉ᛻ᡠᙠḄóᘤᙠK8sõ2òðöᩭ஺᱐`èGøᑮ⚗ḄÉ᛻AIJÉ᛻ùúû◞ýḄ{ᝅÉ᛻஺a:;ᙠÉ᛻Ḅᵨbṹᩭ5developᑖdCḄDockerTagᵨlatest,U|ᕒFJஹGHIJ|ᕒÿᡂbᙠ᛻ḄᵨṹᩭᑮSprint▤᱐!ᳮᕒ$developᑖ&'ᡭ)Ḅ᱐ᑖ&ᑖ&*+Ḅ᱐,-./0ḄDocker12Ḅtag345᱐,-ᦋ7஺᛻'Ḅᵨ9⌕ᵨ;<=஺ὶ⚗?ᑖ@ABCDEUIஹWEBBᨵHIwebᵨஹServiceBᒹKHIᑖLMNOஹPẠRB஺STU⌕VWXᔜBZ[Ḅ\]MCaDE^WebBὶ\CDE`aᕒ,ᙢcdNginx,nginx.confᦻfglocalhostᳮᢣᔣwebserverḄᙢᙬᓽlᙠ,ᙢ\md᝱WebEḄop஺bWEBBmNOBὶ\ஹNOBZ[ὶ\ஹNOBmPẠBὶ\ᑖ@qr]MC,ᙢ\CsᵨḄzookeepertu'v`ὅlxy,zᙢᙬtuᑮtu'v{0ᐵaᕒ}\ᵨNO\஺

9ᡂ᛻\CoṹJenkinsOgNOᡭᒹᡂᘤ12ᑮK8sᙠ᦮Ḅ᛻'ὶᔠ\஺ᐹḄᡂ᛻᣸;k8sᡂ஺NOḄᑖB^NOopᐵ;N᪀Ḅᑭx¡¢ᑣᨵ¤¥℉*Ḅᦻ§ᨵ¨©ª᝞MarinFowlerḄ³ᦻ´Microservices:adefinitionofthisnewarchitecturalterm¾^ᩭDZonecommunityÂÃḄ´MicroservicesinPractice:FromArchitecturetoDeploymentᙠInfoQÉᢈËÌᨵ'ᦻÍÎ,ᦻÏ.+ᭆÑ^¢ᑣÒ¥ÓÔ஺,Õ⁚9⌕VWᐵ;⚗?Ḅ×ØᑖBÙ᪀^NOop]☢Ḅ஺,⚗?⍳ÜxXNO᪀Ḅ9⌕P,¢ᑣÝ34᪷ßᐹ⚗?àáᨵᡠãᶇ஺i.ᓫç¢ᑣ(SingleResponsibilityPrinciple,SRP)ii.ã=NOï&ᢝNOḄñᣩ/ôõᙢ`^஺(AngularJS)RESTAPI.WEB(SpringMVC/DjangoᓃDubboAPIRESTAIDubboServicesHERESTAPIrᐳDBJ—ᑡ(Go.Ruby,Python,Java)ö2ᑖBÙ᪀¡øùzᑴ᪀ᑖB᝞ö2ᡠû⚗?Ḅ᪀ᑖ@ABC☟᝱UIBஹd᝱WEBஹஹẠ஺i.☟᝱UI☢ᔣᵨᡝḄ☢ᒹ☟᝱UI!JS$%&ṹ(⌕*ᵨAngulars᪾45ii.6᝱WEB9ᔜḄ“<☢”᪷?@AḄ◤⌕CᵨஹDEḄAPI,HIᩭKLMN6Ḅ⚣᳛QRS᝞UV◤⌕WXYZ[ᓄᡈὅ@AUEᦋ⌼HaḄb⌕NcLM஺6᝱WEB*ᵨJavaSpringᡈὅpythonDjango᪾4lm5

10iii.᪷?◤nᢥ᯿qrIẠWX᡽!ᒹE*ᵨDubboᑖvw᪾4lmᐹy᱐{9||᡽}ḄDubbox,ᢝRESTAPI,ISpringḄᢝᓣᑮ3.x5iv.ẠQMẠqr*ᵨGo/Ruby/Java/PythonlmḄ஺

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭