/
alternatives.ut
139 lines (107 loc) · 3.75 KB
/
alternatives.ut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
-- Utility
* [1] Security
** [1] Integrity
** [2] Confidentiality
*** [1] Both outside the org as well as inside the organization.
* [2] Usability
** [1] Training
** [2] Successful task completion
* [3] Performance
** [1] Response time
* [4] Modifiability
** [1] Change cases
*** [1] Additional reports on existing data sets
** [2] New features
*** [1] Adding datasets not currently available
* [5] Availability
** [1] Data feeds
** [2] Administrative availability
** [3] End user availability
* [6] Testability
** [1] Functionality testing
** [2] User interface testing
** [3] Regulatory/compliance testing
* [7] Performance
** [1] Data latency
** [2] Capacity
* [8] Cost
** [1] Development Cost
** [2] Operations Cost
* [9] Scalability
** [1] Data scaling
** [2] Load scaling
-- Alternatives
* Rails front-end, Riak with Riak Search backend
An extended description of the architecture goes here. This is in
plain text format. No funny business with HTML escaping. I may
contemplate markdown formatting or image insertion at some point, but
right now I need to get the basics done first.
Blank lines are OK, they'll be included in the long description.
Security: 7/10
Usability: 8/10
Performance/Response Time: 5/10
Modifiability: 9/10
Availability: 3/10
Testability: 10/10
Performance/Data latency: 5/10
Performance/Capacity: 3/10
Cost/Development Cost: 5/10
Cost/Operations Cost: 7/10
Scalability/Data scaling: 10/10
Scalability/Load scaling: 5/10
* Rails front-end, MySQL storage, Solr searching
Each line in the extended description is checked to see if it matches
the format of a quality attribute above. This is a pathlike notation
for the attribute, followed by a colon, followed by a rational
expression for the score.
The description can mix scores and text. All of the text will go
through to the output, including the scores. So, you can interleave
commentary and scores, for example, to explain why a particular
solution has a high or low score on the attribute.
E.g., Rails + MySQL + Solr should rank high on the expertise-based
attributes.
Cost/Development Cost: 9/10
Cost/Operations Cost: 9/10
Modifiability: 9/10
Testability: 10/10
This assumes delivery to an organization that already knows Rails, of
course!
Rails does somewhat less well on capacity and scaling, due to it's
poor use of memory when faced with concurrent workloads.
Scalability/Load scaling: 3/10
Performance/Capacity: 3/10
MySQL has well-understood attributes for data latency, consistency,
and high-availability, but we know that it has upper bounds on the
size of data it can support.
Availability: 7/10
Performance/Data latency: 9/10
Scalability/Data scaling: 5/10
Security issues are common with any RDBMS. Mitigations are well-known
but must be applied consistently.
Security: 5/10
Finally, filling in some otherwise missing scores
Performance/Response Time: 8/10
Usability: 8/10
* Scala + Lift front-end, Riak + Riak Search backend
Little description here, as I think I've made my point about the input
file format already.
One final comment... it may be obvious or not, but these scores should
always take the delivery context into account. For internal delivery,
consider the people who will be maintaining and operating the
system. If you are a consultant, take the client's environment into
account. You may regard a stack as highly operable, but if the
operations team doesn't know how to monitor or manage it, then it
won't be highly operable in that environment. The same goes for modifiability,
of course!
Security: 7/10
Usability: 6/10
Performance/Response Time: 8/10
Modifiability: 7/10
Availability: 5/10
Testability: 7/10
Performance/Data latency: 5/10
Performance/Capacity: 7/10
Cost/Development Cost: 2/10
Cost/Operations Cost: 3/10
Scalability/Data scaling: 10/10
Scalability/Load scaling: 8/10