此外,Docker使得创建轻量级的隔离容器异常轻易,它们可以轻巧。因为应用法度榜样与底层架构解耦,是以它十分简便并易于应用。并且很轻易创建一套新的容器;Docker编排遣决筹划(如Docker Swarm,Kubernetes或AWS ECS)可轻松地加快由多个容器构成的新办事,并全部以全主动的方法进行。是以,Docker异常合适微办事。
在构建基于Docker的微办事解决筹划时,有几个过程和技巧设计要推敲。以下10个推敲,有助于开辟团队少走弯路。
流程推敲:
1.现有的微办事将若何更新?
开辟人员应用微办事的根来源基本因是加快开辟速度,大年夜而增长对微办事进行更新的频次。要充分应用微办事,这个过程是至关重要的。
然则,有几个构成部分构成这个过程,并且在过程的每一步都有决定。让我们借助三个例子来解释一下。起首,是否设置持续安排或设置人员按下仪表板的按钮来安排新版本。衡量是更高的灵活性,持续安排,或采取手动触发安排的更严格的治理。主动化可以许可以敏捷性实现安然性,并许可合营存在的好处。开辟人员须要决定他们的工作流程,以及他们须要什么主动化,以及在哪里安排。
此设计点与负载均衡慎密结合,因为它直接解决了应用法度榜样负载均衡问题。如前所述,每个办事分派单个URL或子高低文。当流量达到微办事集群时,另一个义务是确保进入的流量被传送到给定流量所针对的URL的┞俘确的微办事。
第二,企业要推敲实际容器扶植的重要性。它会在基于本地建立,推送和经由过程管道吗?或者将实际代码起首转换成产品,然后转换为一向到临盆的Docker镜像?如不雅应用容器在管道中建造的解决筹划,重要的是要推敲将要建立的地位,以及要应用的对象。
第三,要推敲实际安排策略。具体来说,可以经由过程蓝绿色的安排设置来更新微办事体系构造,个一一组新的容器被分别出来,然后删除旧的容器。或者,可以选择滚动更新,当经由过程多个办事容器,创建一个新的容器,并将其投入应用。这些决定是多方面的,须要推敲几个身分,包含当前流量,运营商的技能程度以及技巧偏向。
2.开辟商若何开端全新的办事?
开展新办事是微办事的根本请求。是以,开展全新办事的过程应尽可能简单。在这方面,一个重要的问题是,“若何闪开辟人员以自助办事方法启动新办事,而不会影响安然性和治理?”它须要经由过程审批流程,如提交IT请求?或者,这将是一个完全主动化的过程?
尽管我建议应用尽可能多的主动化,但这绝对是开辟团队想要提前思虑的点,以确保他们精确均衡安然性,治理和自助办事的需求。
3.办事若何分派URL?
这个问题真的与开创全新的办事慎密相连。须要在每次创建新的URL或子上彀(例如myurl.com/myservice)时将其分派给新办事,并且分派它们的过程应当幻想地主动化。选项可以包含一个用于手动分派URL的自助办事门户或一个过程,个中URL被主动分派并大年夜Docker容器的名称和应用于Docker容器的任何标签中提取。
用微办事器替代整体应用法度榜样,或者建立新的应用法度榜样,是开辟团队日益增长的┞峰酌身分,这些开辟团队欲望进步敏捷性,迭代速度更快,并跟上市场变更。经由过程在不合团队之间供给更大年夜的自立权,许可他们并行工作,在更短的时光内实现更多的功能,微办事器供给的代码不那么脆弱,大年夜而更轻易进行更改,测试和更新。
Docker容器合适微办事,因为它们具有自立性,主动化和便携性。具体来说,Docker以其封装特定应用法度榜样组件及其所有依附关系的才能而有名,大年夜而使团队可以或许自力工作,而无需底层基本架构或底层基本来支撑颇┞俘在应用的每一个组件。
再次,就像启动一项新办事一样,我建议在尽可能多地应用主动化,是以须要提前花费大年夜量时光思虑这个重要的设计点。
4.若何检测和处理容器故障?
基本举措措施的一个关键请求是,它不须要“保姆”,如不雅降低,它可以自我修复和自我恢复。是以,有一个过程来检测故障是最重要的,以及一个筹划,当它产生时将若何处理。例如,无论是经由过程收集检查照样日记解析,都必须有一个预定义的过程来检测不再运行的容器应用法度榜样。别的,应当有一个定义的过程,用一个新的调换容器作为一个可能的解决筹划。固然这个过程有很多办法,但设计点是经由过程主动化来确保知足请求。
5.每个微办事的代码若何被组织?
我们须要一个完全主动化的流程来构建和安排新的办事。然而,如不雅办事的数量很大年夜,那么治理就会变得很麻烦。是以,应当创建多个版本的过程(每个办事一?)。在这些情况下,每个过程必须保持平均。
一个异常重要的决定就是每个微办事的构造若何。例如,Dockerfile应当始终涌如今完全雷同的地位,并且Dockerfile应当包含该办事的特定内容。同样,其他文件(如Docker撰写文件或AWS ECS的义务定义)应始终放在同一个处所。跨所有办事,以便流程可以以平均的方法一致运行。
技巧推敲:
6.将应用什么对象在计算节点上安排容器?
调剂法度榜样是重要的对象,因为它们分派履行功课所需的资本,将工作分派给资本和营业流程,确保在须要时可以应用履行工作所需的资本。容器编排有很多对象选择。平日推敲的是:针对AWS客户的ECS,以及Docker Swarm或Kubernetes为那些欲望与供给商无关的解决筹划的客户。企业有几个角度来决定,包含可移植性,兼容性,易于安装,易于保护,即插即竽暌姑的才能以及整体解决筹划。
7.在同一办事的容器之间应用什么对象来均衡请求?
高可用性和在情况中拥有多个容器办事的才能使得每个微办事支撑多个容器至关重要。对于非集群办事(例如,内部开辟的基于Web的微办事),须要一个外部负载均衡来均衡同一办事器上不合容器之间的流量。
推荐阅读
闇练应用敕令行是一种经常被忽视,或被以难堪以控制的技能,但实际上,它会进步你作为工程师的灵活性以及临盆力。本文是一份我在 Linux 上工作时,发明的一些敕令行应用技能的┞藩要。有>>>详细阅读
本文标题:如何规划基于Docker的微服务?
地址:http://www.17bianji.com/lsqh/35419.html
1/2 1