Architecture Review Board

What's an Architecture Review?

Architecture design is not a one-time final work under a project, but a continuous job since it has to develop from AS-IS to TO-BE architecture so it also have been called 'Building Evoluationary Architecture'. It's been impacted by many factors, e.g. environments, compliance, technology trends, client requirements, company strategy and etc.

Architecture review is the process to understand the architecture with its context and scope, identify and evaluate risks, gaps between AS-IS and TO-BE, also help to improve the design.

Architecture Deliverables

To describe an architecture blueprint, we need some architecture deliverables to make it clear to reviewer from brief to details:

  • Functional & non-functional (technical) requirements can explian the scope of the system or application we're trying to create/enhance.
  • Then architectural design principles helps reviewer what the team focus on and need to stick and implement during design, development, testing, deployment and operaiton.
  • Architectural Patterns are the most general ways to resolve main problems.
  • Capabilities which required by the requirements, this part may not required by architecture review.
  • Components

    * Data Architecture

    * Application Architecture

    * Infrastructure/Platform Architecture
  • Some other documents maybe required by some specific area like data modeling e.g. Conceptual Data Model, Logical Data Model and Physical Data Model.

Scope and Context

The architecture should evolve items under project scope and system scope. So context should also include project context and system context.

From project scope, we need to understand:

  • Stakeholders include clients, end users, and interactive systems, devices. We also need clear with business process. So we can have an end-to-end solution.

  • We need to make clear with integration points bewteen our system to others.

  • Project Boundary

  • System Boundary

Concerns

  • Business (Requirements) Concerns
  • Technical (Requirements) Concerns
  • Data Concerns
  • Compliance Concerns
  • Cost and Effort Concerns
  • Integration Concerns
  • Selection Concerns
  • Limiation Concerns

Measure

  • Sizing
  • Concurrency: Peak

Business Concerns

Acutally all technical and architectural designs are trying to implement the business requirements, so we need to have clear scope of business.

Team need to introduce brief business requirements, and also need to clarify how business growth in future. So we can estimate the sizing and understand the bottleneck may block the scalability of the system.

For business pespective, may require:

  • Business solution
  • Brief business requirements

Technical Concerns

Need to clarify technical requirements with -illities, e.g. security, performance, scalability, flexibility, operability and etc.

From technical requirements:

  • Consider if compoents created can afford live volume and future growth

Data Concern

Since most enterprise application is data-driven in the modern days, so data is the very key of some business. Data architeture is about how to get data, process data, store data, use data, and interact with data.

For some application, data architecture is very important since it needs to integrate with amount of other systems, collect and combine data with relationships. And some other data have been used in a wide ways e.g. meta data, key reference data, transactional data.

  • How data store
  • How data flow, between systems or inside the main system
  • How data filtered and processed
  • Data Modeling
    • Conceptual Data Model
    • Logical Data Model
    • Physical Data Model

Compliance Concern

If services are certified and can be used in a secured way.

If data operation is compliant

If development, deployment and operation are compliant

Cost and Effort Concerns

If cost-effective has been considered

  • Buying or from sketch
  • If there's any existing platoform can save effort and time for runtime and operation
  • If any part of the architecture may cause high cost and it's not worth

Integration Concerns

  • Integraiton type, e.g. REST API, Web Service, Messaging, File Transfer, Data or Service Bus
  • Protocol, e.g. HTTPS or HTTP
  • Authentication e.g. OAuth v2 or OpenID
  • As an I/O model for integration, we also need to understand input/output with data schema, data formats and types for each field
  • If it's a consume model, we need to understand how to handle with server errors and client errors

From security pespective

As a downstream, we need to reduce the attack face which need to close useless protocols, HTTP methods, ports and reject invalid media types. Avoid injected attacks e.g. XSS

How to return

As a upstream, we need to understand how to deal with

Selection Concerns

  • If technique, platform, language and framework have been compared with modern, existing

Limitation Concerns

  • if there's any limitation may cause issue during development, or after deployment/go-live.

Architecture Review Board的更多相关文章

  1. 自动提交Git branch代码评审到Review Board系统

    背景 敏捷软件开发中,越小的反馈环,意味着软件质量越容易得到保证. 作为组件团队,我们的开发任务中,往往存在一些特性涉及到几十个功能点,开发周期持续数周或数月的情况.如何在开发过程中保证软件质量,是个 ...

  2. Review Board——在线代码审查工具

    代码审查(Code Review)不但可以提高质量,而且还是一个知识共享和指导的极好的手段.不幸的是,准备工作的辛苦和工具支持的缺乏让代码审查很容易被延至“稍后再议”.Review Board的目标便 ...

  3. Review Board的使用

    代码审核工具.先在命令行界面,进入到工程的Main目录下,然后使用命令 svn diff>yus.diff  这样就将Main里面的所有内容生成了,然后在浏览器里进入到自己的Review Boa ...

  4. 转: codereview工具之 review board 选型与实践

    转:ReviewBoard代码评审实践总结 http://my.oschina.net/donhui/blog/350074 svn与review board 结合实践 http://my.oschi ...

  5. 开源软件Review Board

    开源软件, Review Board 代码审查的. https://www.reviewboard.org/

  6. ubuntu上搭建review board代码评审站点

    Reviewboard是一个开源个人可以免费使用的代码评审框架,貌似现在有越来越多的公司也开始使用reviewboard作为公司的代码评审工具. 今天早上试了一下,搭建过程非常方便简单,按照网页提示即 ...

  7. 搭建 Review Board - SVN 审核工具

    一.安装环境 CentOS-6.7,ReviewBoard-2.5.1.1 二.安装环境的配置 1.确认当前系统中有如下包,若没有,使用yum安装 httpd-2.2.15:httpd 指的是apac ...

  8. [翻译]opengl扩展教程1

    [翻译]opengl扩展教程1 原文地址https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/extensions.php [翻译]ope ...

  9. openMP的一点使用经验【非原创】

    按照百科上说的,针对于openmp的编程,最简单的就是在开头加个#include<omp.h>,然后在后面的for上加一行#pragma omp parallel for即可,下面的是较为 ...

随机推荐

  1. 使提示框居中显示&自定义提示框

    ToastActivity.java文件: 1 public class ToastActivity extends AppCompatActivity { 2 private Button mbtn ...

  2. Pycharm:如果想验证一个文件中的函数

    在该文件的函数后写上两句 def test(): pass if __name__='__main__': test() 这样就可以执行该函数 如果只是在其他文件中导入了该函数,则不会执行最后两段话, ...

  3. [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- Local hash表

    [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- Local hash表 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- ...

  4. 给定class对象返回该类的实例

    今天分享给大家一个实用的开发技巧, 创建一个返回值为泛型的对象构建函数, 要求是传入返回值类的 class 对象. 例如: 平时我们开发接口的时候发现很多响应类里面基本都会有`code`和`error ...

  5. 【系列】关于NJUPT电赛自控方向第一次积分赛的总结

    本人是NJUPT电子科学与技术专业大一摸鱼狗一枚.本博客旨在总结与分享个人准备电赛所学知识,同时也是为了防止遗忘,锻炼写文章的能力.目前电赛方向为自控方向.主要研究方向为单片机.图像处理.自动控制相关 ...

  6. 『现学现忘』Docker基础 — 26、Docker镜像分层的理解

    目录 1.分层的镜像 2.加深理解 3.特别说明 1.分层的镜像 我们可以去下载一个镜像,注意观察下载的日志输出,可以看到Docker的镜像是一层一层的在下载. 思考:为什么Docker镜像要采用这种 ...

  7. ArcGIS热点分析

    许多论文中一般会有热点分析图,ArcGIS中提供了热点分析的功能. 先看下描述:给定一组加权要素,使用 Getis-Ord Gi* 统计识别具有统计显著性的热点和冷点. 其实非常简单,今天博主就跟大家 ...

  8. 《前端运维》一、Linux基础--09常用软件安装

    一.软件包管理 RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序".软件包有几种类型,我们一起来看下: 源 ...

  9. 你应该知道的Redis过期键和过期策略

    今天,我和大家分享一篇关于 Redis 有关过期键的内容,主要有四个内容: 如何设置过期键 如何取消设置的过期时间 过期键的过期策略是怎样的 RDB.AOF 和复制对过期键的处理又是怎样的 设置键的生 ...

  10. Linux服务器上搭建Centos7.0+Apache+php+Mysql网站

    一.安装Linux系统 1.1虚拟机搭建Linux Centos7.0版本,搭建过程省略. 二. 安装apache.php.mysql.php-gd等组件. 2.1安装Apache服务程序(apach ...