什么是架构软件系统各个方面的设计,后续的一系列系统开发活动都会在这个架构之内实施。
举个例子,公司让IT部门规划适应未来3年发的技术架构,结果的做法是收集了一些架构资料,为了架构而架构,做了个PPT,PPT里各种华而不实的几张图,当进行技术评审的时候,架构方案自己都说服不了自己,PPT里描述的各种点都没有坚实的理由支撑,这还何谈进行技术评审。
做事还是先厘清思路再做事,什么是思路标、做什么、怎么做和结论是什么。没有思维框架的指导,做事就会像无头苍蝇一样乱哄哄的不知所措。
那如何做一个软件架构呢分析当前所存在问题或者业务战略目标,把它都很清晰地描述出来,搞明白为什么要做这件事。其次梳理要哪些事情,分清优先级。最后想清楚怎么做,计划投入多少资源来做事,产出收益是什么,制定实施计划表。这里有个方法是用小黄鸭调试法,不断问自己为什么这么做,这么做解决了什么问题,能不能先说服自己,能不能说服别人,能不能达到预期。
全局遵循以业务为重心、以数据为中心得设计原则,其次才是使用各种手段和技巧,不要一味追求一步到位,完美主义,架构一定是渐进式发展。
当前软件架构面临大流量、高并发、高可用、海量数据处理、复杂 络环境、快速需求响应和发布挑战。应对这些挑战也有相应得一些模式,例如分层、分割、分布式、缓存、异步、冗余、自动化、人工智能等。
当前常用的互联 架构主要包括前端架构(We和App开发技术、浏览器和协议优化技术、CDN、动静分离、反向代理、DNS)、 关和应用层架构( 关技术、负载均衡技术、动态页面静态化技术、业务拆分DDD技术)、应用服务架构(微服务框架、分布式消息队列技术、分布式缓存技术、分布式一致性服务)、存储架构(分布式文件系统、分布式关系型数据库、NoSQL数据库、图数据库)、后台架构(大数据平台技术、搜索引擎技术、推荐引擎技术、数据仓库技术)、运维与安全架构(数据采集与展示、数据监控与 警、攻防技术、数据加解密技术)。
如何评价一个架构的好坏是否符合实际业务,然后是响应时间、并发数、吞吐量、性能计数器、高可用、可扩展、可伸缩、安全性和投入收益比几个方向进行评估。
以上是对架构的一点理解,主要还是要强调不能为了架构而架构,在解决问题的前提下越简单越好。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!