欢迎来到深圳市来科信科技有限公司网站!
您当前的位置:深圳APP开发 > 新闻资讯 > APP开发资讯 >

已阅读

分布式系统架构在APP开发中的应用

来源:lexintech.com       发布时间:2018-01-17
在APP开发等软件项目中,系统架构的选择非常重要。我们说的系统架构主要是指软件项目在服务器运行时所需要的操作系统、硬件、网络、各种应用服务等。
目前常见的一些APP开发系统架构有高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等等。还有和这些架构相关的管理型的技术方法,如 DevOps、应用监控、自动化运维、SOA 服务治理等。
分布式系统架构是区别于单体架构而言的。为什么要使用分布式系统架构呢?
1、增大系统容量。我们的业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,我们需要多台机器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。
2、加强系统可用。我们的业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。
3、除了以上主要两点,分布式架构还有一些优势,比如:
因为模块化,所以系统模块重用度更高;
因为软件服务模块被拆分,开发和发布速度可以并行而变得更快;
系统扩展性更高;
团队协作流程也会得到改善;
等等。
不过,这个世界上不存在完美的技术方案,采用任何技术方案都是有得有失,也就是说,分布式系统在消除上述问题的同时,也给我们带来了其他的问题。因此,我们需要清楚地知道分布式系统所带来的问题。下面这个表格比较了单体应用和分布式架构的优缺点。
分布式系统架构在APP开发中的应用
 
从上面的表格我们可以看到,分布式系统虽然有一些优势,但也存在一些问题。
架构设计变得复杂(尤其是其中的分布式事务)。
部署单个服务会比较快,但是如果一次部署需要多个服务,部署会变得复杂。
系统的吞吐量会变大,但是响应时间会变长。
运维复杂度会因为服务变多而变得很复杂。
架构复杂导致学习曲线变大。
测试和查错的复杂度增大。
技术可以很多样,这会带来维护和运维的复杂度。
管理分布式系统中的服务和调度变得困难和复杂。
也就是说,分布式系统架构的难点在于系统设计,以及管理和运维。所以,分布式架构解决了“单点”和“性能容量”的问题,但却新增了一堆问题。而对于这些新增的问题,还会衍生出更多的子问题,这就需要我们不断地用各式各样的技术和手段来解决这些问题。
这就出现了我前面所说的那些架构方式,以及各种相关的管理型的技术方法。这个世界就是这样变得复杂起来的。
总的来说,在APP开发时,选择什么样的系统架构,要综合各方面的因素,以上的分析希望能给您提供一些参考。
 
 
网站开发 APP开发 产品设计 微信公众号 用户体验 APP开发公司 APP运营 微信小程序 产品经理 网站设计