开往未来的列车|实践落地,怎样才能成为一位合格的架构师?

要想成为一个合格的架构师 , 必须经过以下几个步骤:
1、首先了解什么是架构师?蹲上架构师的这个坑主要工作任务不再是做具体代码编写 , 而是负责更高层次的开发构架工作 。 因为一个架构师工作能力的强弱以及专业素养的高低可能决定了整个软件项目的成败 , 所以作为架构师 , 他必须对开发技术非常了解 , 并且需要有良好的组织管理能力以及责任心 。
具体点:什么是企业架构师?
1、理解、评价并接收项目需求 , 并且领导与协调整个项目中的技术活动(例如:需求分析、方案设计和实施等) 。
2、推动主要的技术决策、技术选型 , 并最终转化为软件构架 。
3、确定和文档化系统的相对构架而言意义重大的方面 , 包括系统的需求、设计、实施和部署等“视图” 。
4、确定设计元素的分组以及这些主要分组之间的接口制定 。
5、攻克技术难点、化解技术风险 , 并保证相关决定被有效的传达和贯彻执行 。
6、根据不同时期业务场景优化和演进软件架构 。
开往未来的列车|实践落地,怎样才能成为一位合格的架构师?
2、如何做技术选型?在讲技术选型之前 , 还是要插播一个问题:先理解架构设计的目的是什么?架构就是为了应对软件系统复杂度而提出的解决方案 , 说白了 , 架构设计的目的就是为了解决系统复杂度带来的问题;所以在做技术选型的时候需要结合业务场景和业务需求 , 在尽量降低整体架构复杂度的同时选择最适合的技术 。
接下来结合我们以前做过的一个大数据平台项目 , 简单探讨一下选型过程吧:
1、环境:根据运维的情况 , 或者结合公司具体历史原因 , 进行综合衡量 , 使用redhat或centos , 甚至有些服务可以部署在Windows上;不过所有的服务器还是尽量选择同一个版本 , 以便运维;
2、数据存储:结合数据源的情况 , 以及数据具体的应用场景 , 结构化数据和非结构化数据需要尽量区分来存储 。 在选择关系型数据库的时候要结合项目的成本与产出 , 对数据存储的要求等选择不同的数据库 , 如果数据量大而且对数据安全要求高可以考虑oracle;如果对查询性能要求高可以考虑IQ;如果数据量不是很大 , 而且考虑到投入成本 , 可以直接用myql 。
在大数据平台中对于非关系型数据库的选择 , 需要结合一下三点:

  1. 根据数据源的类型和采集方式 。 比如非结构化的数据不可能拿一个关系数据库去存储 。 采集方式如果是流失处理 , 通过消息队列传递是比较合适的 , 例如放到Kafka、RocketMQ等是比较好选择 。
  2. 根据采集之后数据的格式和规模 。 比如数据格式是文档型的 , 能选的存储方式就是文档型数据库 , 例如MongoDB、ES等;采集后的数据是结构化的 , 则可以考虑关系型数据库;如果数据量达到很大规模 , 首先放到HDFS里 。
  3. 分析数据的应用场景 。 根据数据的应用场景来判定存储技术选型 。

开往未来的列车|实践落地,怎样才能成为一位合格的架构师?3、服务层技术选型:在大数据应用架构中 , 有很多开源的组件可以供我们选择 , 例如 , 流计算的有storm、flink、spark等;做了二次封装的hadoop平台有:CDH、华为的FI、IBM的biginsigth等;微服务的框架有k8s、Spring cloud等;缓存数据库有redis , memcache等 。 在这一层的框架选择 , 除了需结合应用场景 , 更加要结合你团队成员的学习成本 。
下图可以供参考
开往未来的列车|实践落地,怎样才能成为一位合格的架构师?3、落地:怎么推进一个项目?首先 , 做好现有数据资源和业务流程调查也是非常重要 。 很多时候 , 往往会因为某些服务器或业务流程的不匹配导致原定实施计划的更改 , 从而导致项目进度缓慢或者项目失败 。