架构师训练营第四周作业和小记
架构师训练营来到第四周,看到队友们不交作业的人数逐渐增多,心里……怎么能够因为别人不攀登,自己就沾沾自喜呢?让我们继续本周的作业吧!
一、课后作业:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
1、 前后端分离或前中后端分离,解决基础的计算性能和存储问题,并解决前后端逻辑开发耦合问题,实现业务解耦,使程序易于扩展。前端使用独立的应用服务器。
2、 数据存储架构,后台使用独立的数据库服务器,数据库集群直到分布式数据存储,解决数据增长直至海量数据存储和存储硬件扩展、冗余和备份的问题。
3、 缓存:应用服务器本地缓存、中台缓存、后台缓存服务器,使用内存服务器、NoSQL等技术解决后台数据库服务器读频繁,影响写入以及多个数据表加锁、长时间加锁的问题,提高用户体验。
4、 异步读写和操作:避免互相依赖的系统间耦合导致用户单一操作等待时间过长,以及对单系统造成长时间资源占用,使用消息队列进行异步操作,减少同步操作在多个系统间的等待时间。但这也对服务设计和流程设计提出了更高的要求。
5、 负载均衡和反向代理流量分发、CDN:使用这三种技术将访问分发到多个应用服务器,并在CDN添加内容缓存减少对远端服务器的读取。
6、 搜索引擎:对内部有必要使用搜索引擎的服务部署搜索引擎,减少对业务数据库、生产数据库的访问,并可实现有效的数据分析。
7、 微服务:拆分服务和抽象流程,设计微服务并部署,进一步减少系统耦合,并形成微服务架构。利用中台提供服务,提高开发的敏捷性,降低增减产品的成本。
8、 安全性架构:设计开发统一的安全服务,用高安全性加密方案、蜜罐、IPS和web防火墙(软硬件均有)等软硬件手段,防御XSS、渗透、SQL注入、中间人等攻击手段。
9、 高性能架构和优化:对服务器硬件、操作系统、基础应用软件和业务应用软件进行优化,提高整体性能。
10、高可用架构技术:使用负载均衡、服务器冗余做到数据、服务备份冗余。用消息队列隔离短时间失败服务,并缓解瞬时大流量。将服务分层进行限流,对流量分析识别、监控系统忙闲程度进行服务降级。对服务器进行备份、异地备份和异地多活实现容灾。
11、大数据架构:使用分布式计算和存储,有效降低单服务器计算压力,提高计算速度。
12、AI技术:在推荐系统、实时分析监控系统和搜索引擎系统等系统中,使用人工智能技术分析数据、解释数据、存储数据,并向用户和内部系统提供计算结果和决策建议。
13、物联网架构:通过海量数据存储、流式数据库和流式计算技术,实时计算物联网设备采集来的数据,快速反馈到车联网、工业物联网等设备,实现短时间大数据量计算和决策。
二、课后感想
这次课程的内容应该是上课以来,最像“架构师课程”的一堂课。老师深入探讨了以下三件事:
1、架构演化过程和典型应用场景。从最初的典型创业公司可以实施的小型系统和网站,到中型公司可以实施的架构,到大型、巨型公司可以、不得不实施的架构,均进行讲解。叙述各类技术是如何应运而生和添加到原系统中的,非常有条理,例子也很生动。
2、互联网架构模式。从分层、分割/分隔,谈到异步、缓存等话题。
3、某些互联网系统,如网站的实例。
运用实例,还介绍了一些架构与公司组织架构的变化历史,值得新架构师、项目经理、CTO学习借鉴。
由于涉及到了内部分享案例,就不在这种公众平台狂贴一气了。
-------------------------
这些天我也在整理一些外包工作相关的事情,看了些网上对软件外包开发工作的讨论。个人觉得,外包公司的同仁,一方面受到了业务开发的压力,一方面有着接触核心业务少、甚至接触不到的焦虑,体现了目前国内软件行业的一个侧面。为了实现个人价值,获得职业上面的提升和飞跃,还是需要多多联系行业内部的触角,比如培训、沙龙、技术分享会等,多看书多实践,多总结多写作,才能做到足够的积淀,实现快速提升的目标。
另一方面,如果公司外包工作较多,导致大批量软件开发、配置工作解耦甚至分离,公司成员反而难以接触开发核心工作。公司的技术人也应该静下心来,钻研技术,将业务做精细的同时,探索可能的新方向,避免被时代淘汰的厄运降临到自己头上。在应对复杂多变的计算机行业局势时,才有更多的斡旋余地。
版权声明: 本文为 InfoQ 作者【tuuezzy】的原创文章。
原文链接:【http://xie.infoq.cn/article/338e494b194bb1a0b0ec42883】。文章转载请联系作者。
评论