Go Micro(1)——微服务生态系统

微服务生态系统

这一篇是对 Go Micro 官方博客介绍微服务的文章翻译。

在后续的文章中,我会写一些在公司使用 Go Micro 开发微服务的实践经验以及对官方博客的翻译。

先讨论一下软件开发的特性。

变化总是在进行中,我们越来越接近一个被技术和商业驱动的社会,维持竞争能力变得越来越困难,如果采用低效的平台、结构和代码,组织将会越来越低效。创立十年以上的技术公司正在经历扩张带来的技术痛苦,但大部分仍然采用旧有的技术解决新问题

是时候把世界上最成功公司的竞争优势分享给其他人了,现在我们讨论微服务,一种构建核心技术优势的手段。

什么是微服务?

微服务是一种软件架构模式,用于将大型架构拆解成小型模块,服务之间使用灵活的协议进行通信,使各个服务专注于自身的业务

用学院派的定义来说明微服务:

  • Loosely coupled service oriented architecture with a bounded context
  • An approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms

微服务并不是一个新的概念,而是一种新的服务架构模式,早在 unix 中就存在类似的理念(进程和管道)。

微服务架构的哲学:

  • 服务是很小的,单一的服务只做单一的业务,类似 unix 中的 Do one thing and do it well
  • 应该适合进行自动化部署和测试,可以轻易的减轻运维和管理的负担
  • 系统必须有很好的容错性,健壮性

为什么是微服务?

随着组织的技术和人员扩张,庞大的代码已经越来越难以维护。我们都认为 Twitter 会失败,因为他们尝试在现有的巨大的系统上不断进行产品需求的开发。微服务的理念让 Twitter 分解整个应用为很小服务,每个服务都被单个小型团队负责。每个团队都为整个系统负责,而每个服务又可以单独的进行部署。

[图片上传失败…(image-59fe77-1512705588249)]

我们从第一手的经验知道了微服务让开发周期进行的更快,提高了生产力,构造优秀的可扩展系统

我们看一下其中的一些好处:

  • 更容易进行开发:不同的团队根据不同的需求,管理好自己的服务即可
  • 更容易理解:微服务很小,经常是1000行或者更少
  • 更容易频繁的部署新版本:服务很容易独立的进行部署、扩展和管理
  • 提高了错误的容忍度和错误隔离:单个服务的错误不会对其他服务造成影响
  • 提高了执行的速度:团队独立的开发、部署和管理微服务将使需求实现的更快
  • 服务可以重用:unix的设计理念影响了微服务,这让你可以复用很多服务

什么是 Micro?

Micro 是一个微服务的生态系统,专注于为当代科技驱动的企业提供产品、服务和解决方案。我们计划为企业提供微服务资源以提高企业的技术水平。从早期的产品原型到大规模产品的部署都有解决方案。

我们看到了行业的基本的转折点正在到来,摩尔定律在起作用,我们拥有了越来越多的能力,而我们并不能完全了解这些全新的能力,当前的工具和开发实践不能在新的领域再起作用。开发者没有获得工具来从庞大的代码系统转向更加高效的设计架构。大部分公司会经历到一个节点即大量的研发投入到庞大的系统中,但没有产生相应的产出。Netfix,Twitter 等公司都经历了这些,结局都是构建自己的微服务平台。

我们的愿景是提供基础的工具让任何人都能受益于微服务,我们已经开始行动,基于开源的微服务工具包 Micro ,接下来将会有一系列的文章介绍各个工具。

    原文作者:浮x尘
    原文地址: https://www.jianshu.com/p/352778f089c0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞