从SOA架构,容器架构,到 Serverless

最近由于一些原因,一直在研究serverless及相关的技术实现和原理。
从传统SOA架构到容器架构,再到serverless,里面的架构演进历史对于一个亲历者来说感触颇多,下面我们就来简单聊聊传统SOA和面向服务的架构演进,帮助大家更好的理解其中的概念,本人水平有限,如有错误烦请各位大佬指正。
当我们提到SOA(Service-Oriented Architecture)架构的时候想到的是什么?松耦合(Loosely Coupled)?服务拆解?面向服务?
其实个人觉得相对于单机架构来讲,SOA架构解决的是业务可用性,相关服务的水平扩展,以及资源再利用,管制,流程审核等等等。这点其实和当今很火的微服务概念很像,都是以服务作为单位,都比较在意服务的治理和服务复用,微服务其实也是在SOA上做的改进,当然微服务更多强调的是“业务需要彻底的组件化和服务化”,其实本人多Spring Cloud等一些JAVA系的产物并没有什么好感,如果希望拿到一个高性能的RPC框架,可以尝试 TARS

那么一个完整的SOA架构体系是怎么样的呢?

 

如上图所示,SOA架构就是这样的,通过各个服务模块,将较为复杂的业务拆分治理,它的特点是服务是无状态的,即服务在被调用前后本身没有变化,且同一个服务允许同时在多台计算机上运行。那么正是因为如此,就诞生了一系列的中间件产品比如服务总线(service bus),API 网关(API Gateway),消息队列(MQ/kafka)

 

API 网关API网关在SOA/微服务架构的示意图

消息队列

消息队列在SOA/微服务架构的示意图

 

这就是传统SOA和中间件的相关说明。

那么我们再来聊聊容器把,众所周知,容器这个概念也是最近才火起来的,依赖与Kubernetes (K8s)的容器编排工具,容器由于其低廉的使用成本,高可用的扩展性,持续交付能力等等,越来越多的企业开始使用并大规模部署容器,最典型的应该是斗鱼,虎牙等一些系列老SOA架构上容器的业务改造。

但是大多数的企业其实对容器的玩法是有误解的,容器单位其实本质是为了方便单个服务的拆解, 看到有很多企业拿容器当KVM那种虚拟化的主机使用,所以吐槽下。

容器和普通KVM,Xen等虚拟化的区别我想大家应该都差不多略有了解,这块就不在展开叙述了。我们来重点说说Kubernetes容器编排对于传统SOA架构的意义和价值。

Kubernetes属于主从分布式架构,主要由Master Node和Worker Node组成,以及包括客户端命令行工具kubectl和其它附加项。Master Node:作为控制节点,对集群进行调度管理;Master Node由API Server、Scheduler、Cluster State Store和Controller-Manger Server所组成;

Worker Node:作为真正的工作节点,运行业务应用的容器;Worker Node包含kubelet、kube proxy和Container Runtime;kubectl:用于通过命令行与API Server进行交互,而对Kubernetes进行操作,实现在集群中进行各种资源的增删改查等操作;

Add-on:是对Kubernetes核心功能的扩展,例如增加网络和网络策略等能力。

那么从上面可知,Kubernetes更多的意义在于对传统SOA的服务器层级做改造,实现自动化部署容器,水平扩容,负载均衡等等分布式的部署环境,这样一方面实现了所谓的“高内聚,松耦合”,另一方面简化了传统SOA的服务器层级的管理。由于集群的特性,可以将业务模型拆分为更细颗粒度的面向服务。

总的来说,不论是Docker,Dubbo还是上升到Kubernetes,他们实现的更多替代的是对服务器层级的集群调度,分布式方面的改造,更多的意义是基于传统SOA做的优化和改进。

那么我们再来看看今天的重头戏,Serverless 。

AWS 的 AWS Lambda 在 Serverless 界是有统治地位的,但是由于各种原因,AWS Lambda 在中国国内鲜为人知,它的理念更多是提倡弱后端,弱运维,以最小的成本来实现业务功能。来用一个很短的视频看下把

 

 

它所提倡的更多是函数的概念,可以理解为将K8S的Worker Node封装成简一的单个函数,从而实现单任务,无状态的函数工作流。当然,每家的Serverless架构实现都不尽相同,所以不太可能都依赖于K8s实现,但是不论BaaS或者FaaS基础能力和特性都是一样的。

除了AWS Lambda 还有腾讯云的 SCF,阿里云的函数计算等等,其实Serverless更多看的还是基于Serverless所做的产品附加功能,比如 AWS DynamoDB,AWS API Gateway等等一系列的附加功能,来实现Serverless的易用化与独立性。最近腾讯云出了 SCF (HTTP)版的云函数,可以直接通过HTTP访问请求,感兴趣的童鞋可以去看看。

所以 Serverless 相对于容器,传统SOA不论从设计架构,纬度,和应用方法上都不尽相同,Serverless将SOA的服务概念,容器的工作节点概念,拆分到函数,这就代表如果使用Serverless必须实现业务的云原生,最简单的例子就是如果要把一个单体应用拆分成10个容器,100个函数,并且每个都具有独立的部署周期以及复杂的依赖图,配合成熟健壮的CI/CD以及自动化的系统。把这些和Serverlss一起使用的时候,将会大幅提升敏捷性和创新性,但是如果仅仅只有其中一个,那么带来的损失远大于收益。

Serverless 的使用是有门槛的,尤其对于一些现在还在沿用单体架构的企业来说,如果没有任何Docker/Kubernetes的实施经历。那么就不该从Serverless开始。

如上,就是我对SOA,容器,Serverless的一些思考,最后的最后,如果自己想架构一个独立的Serverless框架应该如何实现呢?

给大家介绍一个Serverless开源框架——Fission

它的架构如下:

简单来说就是一个Web应用,Go语言编写,使用gorilla框架。不过它的模板引擎替换成了Kubernetes中的Service。使用k8s.io/client-go/kubernetes接口来操控。

感谢大佬们来看我的长篇大论,本人水平有限,如有错误,烦请务必指正~~



26 thoughts on “从SOA架构,容器架构,到 Serverless”

  • [url=https://edmedcialis.com/]cialis prescription cost in canada[/url] [url=https://viagradex.com/]buying viagra from canada[/url] [url=https://cialisdnp.com/]how to order cialis[/url] [url=https://furosemidex.com/]30 furosemide 20 mg[/url] [url=https://viagrasmo.com/]viagra buy cheap[/url]

  • [url=https://viagradex.com/]buy viagra online uk paypal[/url] [url=https://levitrabuying.com/]order levitra generic[/url] [url=https://viagraunf.com/]viagra 50 mg[/url] [url=https://cialiseli.com/]how to get cialis without a prescription[/url] [url=https://tadalafilmstore.com/]tadalafil tablet buy online[/url] [url=https://viagra100x.com/]viagra online price comparison[/url] [url=https://cialisdist.com/]cialis 5mg in canada[/url] [url=https://viagrafour.com/]can i buy viagra over the counter in australia[/url]

  • [url=http://dwmeds.com/]xenical tablet price[/url] [url=http://flcialis.com/]10 mg cialis cost[/url] [url=http://cialisask.com/]cialis 5 mg tablet price[/url] [url=http://tadalafilbuying.com/]buy cialis 5mg online canada[/url] [url=http://tadalafildose.com/]buy cialis singapore[/url] [url=http://orderlasix.com/]over the counter lasix[/url]

  • [url=http://tadalafilpower.com/]buying tadalafil in singapore[/url] [url=http://hydroxychloroquinemedx.com/]quineprox 800 mg[/url] [url=http://tripleapharm.com/]where can i buy valtrex[/url] [url=http://viagna.com/]viagra 100mg tablet online in india[/url] [url=http://mtcialis.com/]cialis gel caps[/url] [url=http://arviagra.com/]generic viagra in india online[/url] [url=http://viagrabt.com/]viagra 15 mg[/url] [url=http://msnsildenafil.com/]buy viagra online rx[/url] [url=http://sildenafilcaps.com/]viagra 120[/url] [url=http://cialisgs.com/]generic cialis otc[/url]

  • [url=https://pillsildenafil.com/]viagra/canada[/url] [url=https://tadalafildose.com/]tadalafil tablets in uk[/url] [url=https://cialiswtab.com/]canadian pharmacy cialis 60 mg[/url] [url=https://viagracm.com/]where can you buy viagra cheap[/url] [url=https://cialisask.com/]how to purchase cialis online[/url] [url=https://cdpills.com/]buy finasteride propecia[/url] [url=https://tadalafiledmed.com/]cialis online visa[/url] [url=https://sildenafilonlineorder.com/]sildenafil 50[/url] [url=https://bodpharmacy.com/]safe online pharmacies in canada[/url] [url=https://adcialis.com/]india cialis generic[/url]

  • [url=https://cheapcialistadalafil.com/]cialis online ordering[/url] [url=https://viagraxcap.com/]how to buy viagra online without prescription[/url] [url=https://amiviagra.com/]viagra 25mg price in india[/url] [url=https://propeciagenericfinasteride.com/]propecia for women[/url] [url=https://viagranexx.com/]pfizer viagra price[/url] [url=https://cialisilab.com/]generic cialis soft tabs 20mg[/url] [url=https://sildenafilweb.com/]sildenafil over the counter india[/url] [url=https://myhealthsrc.com/]azithromycin 40 mg[/url]

  • [url=https://cialis2x.com/]buy generic cialis no prescription[/url] [url=https://medixnext.com/]best tretinoin[/url] [url=https://needtabs.com/]fluoxetine brand name[/url] [url=https://eccialis.com/]tadalafil for sale from india[/url] [url=https://metforminoral.com/]metformin sale online[/url]

  • [url=http://effsildenafil.com/]where can i purchase viagra online[/url] [url=http://viagraandcialispills.com/]real cialis 20mg[/url] [url=http://tadalafilcialispills.com/]where to buy cialis without prescription[/url] [url=http://upspills.com/]buy 40 mg levitra[/url] [url=http://modafinildrug.com/]provigil canadian pharmacy[/url] [url=http://eccialis.com/]online medication cialis[/url] [url=http://cialisviagraforsale.com/]5mg cialis[/url] [url=http://fmlpharm.com/]cost of clomid[/url]

  • Партнеры «Стоп кредит Краснодар» – это общество, переживающие экономические проблемы с-из-за вопросов с самочувствием, утратой основного кормильца во семье, жульнических операций 3 персон, утраты деятельность либо других факторов.
    [url=https://bankrotstvo-v-krasnodare.ru/]банкротство физ лиц[/url]

  • [url=https://viagraccp.com/]can i buy viagra in canada over the counter[/url] [url=https://lisinoprilgeneric.com/]lisinopril 2[/url] [url=https://viagragtab.com/]viagra generic over the counter[/url] [url=https://doxycyclinetablets.com/]doxycycline brand name[/url] [url=https://cialisviagranorx.com/]generic viagra cialis[/url] [url=https://viagracialisnorx.com/]where to get sildenafil[/url] [url=https://cialisviagrasale.com/]where can you purchase female viagra[/url]

  • [url=http://cialisxtab.com/]generic cialis price comparison[/url] [url=http://viagragtab.com/]where can you buy cheap viagra[/url] [url=http://albuterolmedication.com/]order ventolin online uk[/url] [url=http://valtrexnorx.com/]where can i get valtrex over the counter[/url] [url=http://tadalafilnorx.com/]cialis generic medication[/url] [url=http://viagraftab.com/]order viagra 50 mg[/url]

  • [url=https://viagraefft.com/]viagra coupon discount[/url] [url=https://viagraspi.com/]how to buy generic viagra[/url] [url=https://cialice.com/]cialis 20 mg price usa[/url] [url=https://pharmacygrand.com/]legal online pharmacy[/url] [url=https://cialisoz.com/]order real cialis[/url]

  • [url=https://viagracialistabs.com/]tadalafil 40 mg price[/url] [url=https://tospharmacy.com/]legal online pharmacy coupon code[/url] [url=https://viagraipak.com/]viagra south africa price[/url] [url=https://eightpills.com/]fildena online pharmacy[/url] [url=https://cialisoviagra.com/]tadalafil 40[/url] [url=https://viagasi.com/]viagra 100 mg price canada[/url] [url=https://ivermectindrugstore.com/]buy ivermectin cream[/url] [url=https://genericcialisviagra.com/]canadian online pharmacy generic viagra[/url] [url=https://pharmacygrand.com/]canada cloud pharmacy[/url] [url=https://cialisxs.com/]cialis online canada pharmacy[/url]

  • [url=http://modafiniltabs.com/]order modafinil online canada[/url] [url=http://cialisplusviagra.com/]retail price of cialis[/url] [url=http://azithromycinzith.com/]azithromycin 100mg[/url]

  • [url=https://viagraipak.com/]generic viagra soft tablets[/url] [url=https://prozacflxt.com/]fluoxetine 200 mg[/url] [url=https://viagracialissale.com/]online pharmacy viagra cheap[/url]

  • [url=https://viagrasi.com/]how to buy generic viagra[/url] [url=https://pharmacybenu.com/]cross border pharmacy canada[/url] [url=https://opnpharmacy.com/]generic pharmacy online[/url] [url=https://piopills.com/]sildenafil 100 mexico[/url] [url=https://viagratrial.com/]viagra soft tablets[/url] [url=https://cialiswww.com/]cialis generic canadian[/url] [url=https://viagraicialis.com/]viagra prescription nz[/url]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

85 + = 88