3,来年的架构

从2010年初设立架构组,到后来的架构组名存实亡,中心的架构工作充满了问题和认识上的误区。在新的一年,我们的架构可以做些什么呢?下面我提一点初步设想。

3.1,目标一:建立 “企业架构”

按照企业架构的定义,结构,采用适当的工具,推动中心建立自己的“企业架构”。

具体来说,分为两个部分:

3.1.1,梳理业务架构

将目前的FT,WFT,FTS,MB,玖富银行家,高阳空间等之间的业务关系,结构,层次进行梳理,寻找“核心业务架构”,分离各个业务上的流程和关注点,从而为新的业务、产品的快速搭建提供业务上的基础。

该工作需要公司管理层主动推进,靠架构人员是不可能完成的。

下图是2009年整理的FT和MB业务架构图,现在的情况已经发生了较大的变化,需要重新梳理。

(FT业务架构图)

(MB业务架构图)
3.1.2,梳理IT架构

现在已经有很多个软件系统正在运行,各软件系统的运行环境有相同或者相似的地方,也有完全不一致的地方,比如FT产品线主要运行在.NET平台,MB产品线主要运行在Java/PHP平台,有必要对这两大产品线的软硬件资源进行整合。

IT架构的梳理可以从不同的视角来进行,

以业务的视角:

具体的整合过程可以分为一下几个层次:

Ø 系统层次:各软件产品作为一个子系统来梳理,比如FT子系统,FTS子系统,合理划分子系统之间的业务关系;

Ø 服务层次:子系统直接的关系划分清楚了,有必要根据业务的需求,以业务关注点来划分业务服务,作为各子系统的公共服务,可以采用SOA方式来治理;

Ø 组件层次:个业务组件的合理划分,比如基金基础数据,客户(资产)管理,组织机构管理,报表处理。

在2010年曾经进行过NBF平台的业务组件建设,但效果不太理想,主要是业务组件的可用性太低,粒度太细,没有通用性。

以运维的视角

也可以从以下几个方面来进行:

Ø 系统层面:各个软件产品子系统的逻辑概念关系,确定个子系统间的通信关系;

Ø 网络层面:由于运行的软件子系统越来越多,所需要的服务器和网络设备也越来越多,如果保证各服务器的正常运行和容灾处理,是需要重点关注的。除了“生产环境”的网络维护,还需要统一协调开发、测试、办公等网络环境;

Ø 管理层面:确保个软件产品子系统的各项功能正常可用,比如MB的发送短信功能,为了确保这些功能正常可用,需要提供一些监控措施,例如日志分析;

Ø 配置层面:现在越来越多的软件都采用配置的方式运行了,例如配置服务地址,邮件账号,运行模式等各项运行参数,必须有详细的配置手册可供参考。

以技术的视角

建立一套技术架构,是企业架构的重要内容(下面所列举的主要是.NET方面的内容,但实际上还包含Java,PHP等不同的开发平台)。

Ø 多种软件架构

除了最常见的简单三层架构,还应该学习掌握多层应用架构(例如NBF),MVC架构,MVP架构,分布式架构,SOA架构;

Ø 丰富的开发框架

选择、使用和评价各种开发框架,例如Web 中的JS框架(例如jQuery),MVC框架(实现了MVC架构的框架,例如ASP.NET MVC2),数据处理框架(例如Entity Framework,PDF.NET);

了解其它框架,包括异常处理框架,依赖注入框架(IOC),切面关注框架(AOP)等。

Ø 丰富的组件库

引进或者自己开发各种通用技术组件,例如日志组件,权限组件,报表组件,各种UI控件库(例如DX控件)等。

Ø 开发工具

集成开发环境,各种代码辅助工具的选择或者开发;

Ø 开发平台

.NET开发平台,Java开发平台,PHP平台。

3.2,目标二:服务于“项目开发全过程”

一个软件的开发过程实际上贯穿了业务、需求、设计、开发、测试、运维等各个阶段,架构的工作应该贯穿整个软件“开发过程”,如下图:

[图片待上传]

3.2.1,架构的工作过程

1.         在整个项目开发阶段,协助项目经理进行项目资源风险评估,协助开发经理进行技术选型和风险评估,作开发人员的技术顾问;

2.         在项目的开始阶段,架构组派人参与项目的需求分析,并进行架构概要设计;

3.         在项目进入开发设计阶段,协助开发小组的工作,进行架构设计,与开发经理一起进行设计,负责抽取系统中主要的和核心的功能,并进行相应的功能设计,设计成果由开发经理确认,架构组的工作成果仅作为开发经理和项目经理决策的参考;

4.         在开发编码阶段,架构组随时检查代码是否符合架构设计和规范,有权力让开发小组修正编码以确保符合架构设计和规范;

5.         在项目测试阶段,架构组协助测试小组进行关键功能和性能测试;

6.         在项目发布部署阶段,架构组指导部署人员发布部署软件,检查并确保部署工作符合架构设计;

7.         在项目交付维护阶段,架构组协助进行运维工作,处理重大难题事件。

3.2.2,架构的工作职责

1.         领导与协调整个项目中的技术活动(分析、设计和实施等)

2.         推动主要的技术决策,并最终表达为软件架构

3.         确定和文档化系统的意义重大的方面,包括系统的需求、设计、实施和部署等

4.         确定设计元素的分组以及这些主要分组之间的接口

5.         为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻

6.         理解、评价并接收系统需求

7.         评价和确认软件架构的实现

3.2.3,以项目为核心

我们目前还是一个以项目为主的部门,所以对项目的支持放在第一位,我们的职责应该是:

Ø 走在项目前面、

Ø 进行项目攻坚、

Ø 引领项目、

Ø 服务项目、

Ø 升华项目成果,

Ø 作为有经验的开发人员,对其他成员进行培训和帮助也是责无旁贷。

(以上摘自黄维勇原话)

写在最后

在写本文前,我花费了大量时间查阅资料,查看原来的文档,感觉“胜读千篇也难下一笔”,“架构”这个命题太庞大,概念似乎“太虚”,落地似乎“太难”。从“架构”的定义来说,它就是高度抽象的概念,是“形而上学”的东西,所以在某些情况下很难适用。

偶然看到有人说,如果团队规模少于300人,或者用户量、数据量达不到海量级别,没有设立架构师的必要。这句话有一定道理,个人觉得,自己现在还不算是一个架构师,顶多算是一个高级软件工程师,改变观念,团队需要什么就是什么,一切从实际出发,为团队服务。

转载于:https://www.cnblogs.com/bluedoctor/archive/2012/06/23/2559110.html

架构如何为业务和技术“服务”(2)相关推荐

  1. 微服务架构设计模式~根据业务能力进行服务拆分

    业务能力定义了一个组织的工作 组织的业务能力通常是指这个组织的业务是做什么,它们通常是稳定的. 与之相反,组织采用何种方式来实现它的业务能力,是随着时间不断变化的. 识别业务能力 一个组织有哪些业务能 ...

  2. 软件及互联网高端灵活用工与技术服务提供商

    迦太利华于2013年创立于黔南惠水百鸟河数字小镇,是贵州高端灵活用工.服务外包.软件与互联网外包的开创者,是国内发展最快的软件与互联网外包服务企业之一,已在贵阳.北京.上海.深圳.成都.杭州.青岛.广 ...

  3. 中台之上(二):为什么业务架构存在20多年,技术人员还觉得它有点虚?

    业务架构这个词大家时常听到,但是能解释得清楚的却不多,撩撩度娘,你就会发现,不少人问及业务架构和应用架构的关系,聊天时,也常有人问起业务架构师和产品经理什么区别?业务架构分析和需求分析什么区别?为了思 ...

  4. 脱离业务的技术架构,都只是一团废纸,教你从0-1建设业务架构

    无论你是什么首席架构师也好,技术负责人也好,你必须要承认,所有的技术和架构都是为业务服务的,脱离了业务,架构就是一团废纸. 今天就给大家讲讲业务架构,并且从0-1建设业务架构. 首先明确应用架构的定义 ...

  5. 微服务架构案例(01):项目技术选型简介,架构图解说明

    本文源码:GitHub·点这里 || GitEE·点这里 一.单体架构 单体架构在中等偏小的业务中比较常见,场景模式就是单个应用.单个数据库.一个程序包(例如war格式或者Jar格式)包含所有业务需求 ...

  6. 中台之上(一):重视业务架构,不要让“业务的归业务、技术的归技术”

    很多企业都将促进业务与科技的深度融合作为发展战略,也都想学学阿里的中台战略,其实,除了中台战略之外,基于企业级业务架构设计来实现组件化开发也是企业数字化转型的优选路径,是弥合业务与技术之间" ...

  7. 微服务架构系列一:关键技术与原理研究

    导语:人不为己,天诛地灭这个成语中的"为"念作wéi,阳平二声,是"修养,修为"的意思.成语的意思是:如果人不修身,那么就会为天地所不容.本意并不是经常被很多人 ...

  8. IT:后端进阶技术路线图(初级→中级→高级)、后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介、技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略

    IT:后端进阶技术路线图(初级→中级→高级).后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介.技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略 目录 后端 ...

  9. 业务系统技术架构的方法论

    业务类系统(通常称为To B 类产品),一般包括crm,供应链,物流等.系统的架构设计非常具有挑战性. 面向用户的To C 类前台产品,无论产品经理还是用户都已经培养起了使用习惯,对功能有一定程度的理 ...

  10. 架构分类的-业务架构,应用架构,技术架构,数据架构

    架构分类的-业务架构,应用架构,技术架构,数据架构 目录 概 述 小结 参考资料和推荐阅读 LD is tigger forever,CG are not brothers forever, thro ...

最新文章

  1. GitHub 热榜:歪果小姐姐教你用纯代码画画,真细腻!
  2. SAP MM初阶之服务采购订单
  3. 智能硬件这5大领域竞争升级,将迎发展新模式
  4. [转]DICOM医学图像处理:Deconstructed PACS之Orthanc
  5. C++中 auto自动变量,命名空间,using作用以及作用域
  6. [物理学与PDEs]第1章第3节 真空中的 Maxwell 方程组, Lorentz 力 3.1 真空中的 Maxwell 方程组...
  7. mongo mapreduce java_那位帮忙提供一个java mongodb多个collection进行mapreduce的操作。
  8. 程序员6年换了8份工作,工资从4.5K涨到40K,网友问:谁敢要你?
  9. android ratingbar星星显示
  10. 《微观经济学》第二章像经济学家一样思考
  11. cad汉仪长仿宋体_hzcf.shx字体下载
  12. python初学第一节课
  13. python如何打开txt文件、并算词频_python读取word文本进行词频统计
  14. 中国大学慕课浙江大学【C语言课程】-翁恺教授第4周编程练习数字特征值(5分)
  15. PNG图片压缩原理--屌丝的眼泪 #1
  16. 夜神模拟器——最好用的安卓模拟器
  17. c语言入门编辑什么,萌新必看——C语言入门编辑器推荐
  18. 前端常见面试题:CSS3动画知道吗?怎么实现的?
  19. cocos2dx中的内存管理
  20. Kubernetes-------kubeadm安装dashboard、Harbor私有仓库

热门文章

  1. 字节跳动李航提出AMBERT!超越BERT!多粒度token预训练语言模型
  2. 2020语言与智能技术竞赛-事件抽取方案整理(第一波
  3. BN、LN、IN、GN、SN归一化
  4. 哈工大刘挺教授:中文信息处理前沿技术进展
  5. poj3262(Protecting the Flowers)贪心
  6. pytorch之深度学习
  7. 数源思维完成目标设定
  8. iPhone SDK开发基础之 OpenFlow编程
  9. 计算机程序设计里的奇书
  10. 一位编辑人员给作者们的市场汇报——冰冰子组织的市场宣传活动介绍之交互设计篇