Tiny Guo 译 分布式实验室
微服务的出现在技术领域,尤其是DevOps圈子反响强烈。这也难怪,因为它完美诠释了云计算交付模式的优势。但是,如同任何一个快速发展的新生事物一样,要区别哪些是炒作,哪些是真正的微服务也绝非易事。
对于准备学习微服务,想了解一些实战经验的人来说,以下的文章希望能对你有所启发。
什么是微服务
对于这一切,我们早已不再陌生。想一下:现在,普通云用户(包括非技术性人员)很容易,且自然而然地使用多种微产品和微应用(他们没有称之为“The App Store”)。一般的企业会使用至少十几种不同的软件产品和集成:一种用于记录业务费用的工具,另一种用于跟踪计划,还有一种用于工资管理,等等。
微服务用更加紧凑,有效的工具更好的完成工作,且可扩展为企业级。
微服务类似乐高积木,可以拼在一起搭建一个标准模型。首先,开发人员需要识别项目需要哪些单独的服务,例如搜索,认证,消息传递,销售处理等。然后,他们从开源到成套的企业解决方案之间做选择,最后把所有东西整合成一个应用。
关于容器
微服务的好处
此外,Dobson指出,持续集成和开发基本上已被纳入微服务架构。他说:“微服务减少了基础设施给项目带来的风险。随着对基础设施的淡化,微服务团队可以进行小时级的快速迭代,这在带来价值增长的同时降低了“错误功能”持续的风险。”
换句话说,微服务下,团队中的每个开发人员只需专注自己那部分工作,无需关注底层的基础架构。如果在生产中,拼在一起的各个模块不能很好的工作,则很容易将它们隔离,拆开并重新配置,直到可以为止。是不是很像乐高?����,����
微服务是否存在缺陷
“如果是一个非常庞大,资源丰富的企业,每个团队都能够管理每项服务,并确保其可重用和可发现,这真是太棒了,” Matt Biilmann说。Biilmann是Netlify的CEO兼联合创始人。Netlify是面向Web项目开发和自动化的一体化平台,它最近新增了一个微服务网关。他补充说,Netlify已经注意到这对于开发人员的吸引力,“小项目中玩微服务——主要是因为它们很有趣!”
但是,Biilmann说,对于任何人而言,痛苦是真实存在的。摆脱集中式单体架构,意味着放弃了将部分合成一个整体的固有的工作流程。
“由于我们将单一应用拆分成微服务,导致我们面对的是一个碎片化的系统。开发人员需要花费大量的时间和精力将服务和工具整合在一起,并且这个过程,缺乏跨项目间的通用模式和平台。”他说,“虽然前景美好,但要想真正用好它,我们希望能提供可一键式安装配置的工具。”
举个例子,Biilmann提到LAMP。Linux,Apache,MySQL和PHP等免费提供的工具,为Web开发提供了新的可能——但当公司在为像WordPress,Drupal和Joomla之类的项目开发集成工具的时候,才考虑到架构问题。“你不会通过配置Apache、MySQL数据库来启动WordPress。你期望看到一个面板,然后在上面点击一个按钮,写着‘开始一个新的WP项目。' 之所以能够这样是因为在某个时间点,业界才有足够的能力去实现这些,使一键式配置成为可能。这对于任何一项技术的推广都至关重要。”
幸运的是,微服务正在经历同样的飞速发展。许多公司不仅着眼于微服务本身,还包括使微服务能够无缝衔接的工具、平台和框架,大家都希望能尽早占有一席之地。
一位专注于传统企业应用转型的资深顾问表示,在特定场景下,他仍然是集中式单体架构的粉丝。“当你运行的是同一服务的多个实例时,不一定需要微服务。一个精心打造的单体架构系统适用于某些特定的场景。”
另外,他还说,也有可能辛苦创建出的微服务最后无法扩展。“这一切都取决于你如何运用基本原则。在没有考虑成熟的情况下,好多人就盲目购买一堆微服务。”
下一个前沿
真正的微服务,只运行你所需要的那部分服务 —— 不多不少。这是一个技术活,因为服务之间只有在编排后才能相互感知。最近,许多中小企业才感到这种实施和编排已经超出了它们的能力范围。
从围绕微服务的基础设施和技术支持来看,我们正处于临界点。
“微服务架构更快、更安全、更便宜 —— 很多时候,这确实是更好的办法。” Chris Bach,Netlify的另一位联合创始人说,“下一步是可访问 —— 可靠的工作流程。我们正在见证它的发展,直到某天,发现一切都已准备就绪。”
这意味着微服务,现在还只是开发人员的一个开发工具。
原文链接:https://thenewstack.io/microservices-101/