成都免费建网站,垫江网站建设费用,汽车网站建设目的,查域名注册文章目录 前言单体应用足矣摒弃传统的微信对接后期的维护投入上真正的“云”#xff1a;云托管0服务器免运维免费的CDN和DDoS防护 技术架构小结 前言
因为种种原因#xff0c;《软件开发人员从0到1实现物联网项目》这个项目的进度停滞了将近一个月。
鉴于该项目的前期开发和… 文章目录 前言单体应用足矣摒弃传统的微信对接后期的维护投入上真正的“云”云托管0服务器免运维免费的CDN和DDoS防护 技术架构小结 前言
因为种种原因《软件开发人员从0到1实现物联网项目》这个项目的进度停滞了将近一个月。
鉴于该项目的前期开发和后期的维护就我一人为避免开发效率低下和后期维护中的潜在问题。我针对项目架构进行了初步的思考从开发模式到后期维护进行了全面的梳理。基于这些思考最后整理出了一份简单的技术架构图。有什么不足之处还请各位大佬不吝赐教欢迎提出宝贵的意见和建议。
单体应用足矣
前两年的市场绝对是微服务的天下开发个什么系统动不动就是微服务几乎已经成为每个项目的标配。
在我看来微服务只适合业务规模大、团队规模庞大的项目。主要是一个大项目在单体应用下确实会存在很多问题就像2007年的淘宝网一样
整个淘宝网是一个几百兆字节的WAR包大大小小的功能模块超过200个。几百人维护一个WAR包就会带来很多问题
项目团队间协同成本太高业务响应越来越慢。应用复杂度超出负载认知没有一个人能完全清除每一个功能和业务流程。数据库连接能力很难扩展数据库的连接数量会随着应用实例的增加而捉襟见肘。错误难于隔离任何一个小的问题都会造成整个实例崩溃。应用扩展成本高通常出现业务瓶颈时都是某几个功能模块影响的但是需要增加一个完整的应用实例带来的是额外的资源消耗。
每一次的功能升级都要牵一发而动全身这种情况下就不得不拆分系统。
自助棋牌室系统或者说是无人看守门店系统一个小小的项目功能并不多。所以单体架构足矣。否则带来的只有繁琐的开发部署流程以及高昂的运维成本。
摒弃传统的微信对接
本项目的用户终端主要包含微信小程序和后台管理Web端。其中小程序服务于用户和商家Web端则为商家和后期维护人员提供管理工作。
App一开始就没在考虑范围。 App 下载门槛高打开率低
在小程序与后端服务的交互方式我决定使用云调用主要是为了简化代码开发流程和规避不必要的风险。
以登录功能为例使用传统的微信对接方式需要涉及复杂的步骤。如下图 虽然有很多SDK可以简化和微信平台的对接流程但还是消除不了相关的工作和潜在的风险。毕竟每增加一个处理环节都可能会增加潜在的风险。
而在小程序端如果通过云调用向云托管服务发起请求时后端服务会在header中获得该请求用户的全部信息比如openid、unionid等。上图的 wx.login 获取code置换登录的流程就没有存在的必要了也不用维护再微信接口调用凭据、token。
后期的维护投入
虽说是单体应用但也是可以具备高可用、高并发能力的。除了程序自身的性能外还需引入很多机制来辅助。例如实施负载均衡、实现数据库的读写分离以及确保应用实例的弹性扩缩容等。
但是这些机制的引入会消耗自身的一些精力尤其是后期复杂的维护工作。鉴于该系统后期的维护就我一人为了降低维护成本果断上“云”。
上真正的“云”云托管
在了解小程序开发期间我发现了云开发和云托管这两个强大的工具。如果说云开发是专为小程序开发量身打造的那在我看来云托管可以算是真正的“云”了。
简单来讲云托管就是把你的程序交给云管理免去人工运维。
0服务器免运维
云托管的免运维具体体现在以下几点
自带功能云托管自带监控告警、日志服务等后期运维所需功能。 实现哪个功能不需要工作量自动扩缩容根据流量多少和自身承载消耗动态的进行扩缩容从而保证服务高可用、高稳定也无需为闲置资源付费。 既不用自己管理计算节点又可以避免额外的资源成本而且高可用和高并发是不是解决了DevOps自动化 提供流水线能力可以实现从代码仓库到服务发布的全自动流程。还提供灰度发布、版本回滚这样的部署能力。 不用自己打包部署或者自己搭建DevOps环境
就是说单单这三点能为我省去多少工作量。如果应用部署到云服务器上哪一个工作量不够我喝上一壶我还用担心半夜的服务监控告警吗
当然云托管不只是对应用程序的托管还提供了Serverless形态的Mysql也可自动扩缩容避免产生瓶颈。 又省了Mysql的运维工作
不过这都不是重点重点是云托管还提供了免费的CDN和DDoS防护。
免费的CDN和DDoS防护
CDN和DDoS防护都非常重要我对此深有体会。在我的职业生涯中被CDN和DDoS上过一课。一次是在新产品上线后遭到竞争对手的恶意攻击引起的系统崩溃。另一次是因为抢购功能的上线带宽被刷爆导致页面加载不出来流失了大量用户。
得亏老板有钱一个月几万元的DDoS的高防套餐说买就买。像我这样的情况或者一些初创公司是承担不起的。
但是把程序交给云托管就不一样了借助云厂商的资源DDoS攻击者打不起、也打不挂。重要的是开发者不用为此付费。
这么看来云托管的性价比是非常高的。
技术架构
项目依托微信云托管所以整体的复杂度会小很多。
除了必要的MySQL外只需引入Redis主要是要做一个无状态服务以便横向扩展。
在物联网方面还是考虑接入物联网开发平台。真得会减少很多工作量和后期的维护而且像国内的这几个云厂商都是有公共免费的额度可以使用所以在开发阶段不会投入成本。
下面是基于云托管的技术架构图 小结
对于独立开发者和初创公司而言微信云托管绝对算是一个得力助手。不仅简化了微信API的接入还省了买服务器的钱。像灰度发布、监控实例、服务器规格调整这些头疼的事儿统统都不用费心。还有那种一个月要几万块才能搞定的DDoS防护不用理会。美哉
不是广告
准备进入开发阶段…