继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕虎7371278
关注TA
已关注
手记 1259
粉丝 203
获赞 873

微服务生态系统

这一篇是对 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 ,接下来将会有一系列的文章介绍各个工具。



作者:流年1004
链接:https://www.jianshu.com/p/352778f089c0


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP