~jorge/+junk/juju-docs-markdown

« back to all changes in this revision

Viewing changes to html/charm-quality.html

  • Committer: Jorge O. Castro
  • Date: 2012-12-05 20:31:27 UTC
  • Revision ID: jorge@ubuntu.com-20121205203127-hapzsaenj4pbknl6
Remove old index file, add output directory.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html>
 
2
<html>
 
3
<head>
 
4
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 
5
    <title>Juju Documentation</title>
 
6
    <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Droid+Sans&subset=latin">
 
7
    <link type="text/css" rel="stylesheet" href="/css/reset.css">
 
8
    <link type="text/css" rel="stylesheet" href="/css/docs.css">
 
9
    <link type="text/css" rel="stylesheet" href="/css/print.css" media="print">
 
10
    <link type="text/css" rel="stylesheet" href="http://yandex.st/highlightjs/6.1/styles/sunburst.min.css">
 
11
    
 
12
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
 
13
    <script type="text/javascript" src="http://yandex.st/highlightjs/6.1/highlight.min.js"></script>
 
14
    
 
15
    <script type="text/javascript" src="/js/viewer.js"></script>
 
16
</head>
 
17
<body>
 
18
    <div id="page">
 
19
        <a name="top" />
 
20
        
 
21
            <header id="header">
 
22
                <h1><a href="/">Juju Documentation</a></h1>
 
23
            </header>
 
24
        
 
25
        
 
26
    <div id="sidebar">
 
27
        <nav id="toc">
 
28
            <ol>
 
29
                
 
30
                    <li>
 
31
                        <a href="/about.html#about-juju">About juju</a>
 
32
                        
 
33
                            <ol>
 
34
                                
 
35
                            </ol>
 
36
                        
 
37
                    </li>
 
38
                
 
39
                    <li>
 
40
                        <a href="/getting-started.html#getting-started">Getting started</a>
 
41
                        
 
42
                            <ol>
 
43
                                
 
44
                                    <li><a href="/getting-started.html#introduction">Introduction</a></li>
 
45
                                
 
46
                                    <li><a href="/getting-started.html#installation">Installation</a></li>
 
47
                                
 
48
                                    <li><a href="/getting-started.html#configuring-your-environment-using-ec2">Configuring your environment using EC2</a></li>
 
49
                                
 
50
                                    <li><a href="/getting-started.html#configuring-a-local-environment">Configuring a local environment</a></li>
 
51
                                
 
52
                                    <li><a href="/getting-started.html#configuring-several-environments">Configuring several environments</a></li>
 
53
                                
 
54
                            </ol>
 
55
                        
 
56
                    </li>
 
57
                
 
58
                    <li>
 
59
                        <a href="/user-tutorial.html#user-tutorial">User tutorial</a>
 
60
                        
 
61
                            <ol>
 
62
                                
 
63
                                    <li><a href="/user-tutorial.html#introduction">Introduction</a></li>
 
64
                                
 
65
                                    <li><a href="/user-tutorial.html#bootstrapping">Bootstrapping</a></li>
 
66
                                
 
67
                                    <li><a href="/user-tutorial.html#starting-debug-log">Starting debug-log</a></li>
 
68
                                
 
69
                                    <li><a href="/user-tutorial.html#deploying-service-units">Deploying service units</a></li>
 
70
                                
 
71
                                    <li><a href="/user-tutorial.html#adding-a-relation">Adding a relation</a></li>
 
72
                                
 
73
                                    <li><a href="/user-tutorial.html#exposing-the-service-to-the-world">Exposing the service to the world</a></li>
 
74
                                
 
75
                                    <li><a href="/user-tutorial.html#scaling-your-service">Scaling your service</a></li>
 
76
                                
 
77
                                    <li><a href="/user-tutorial.html#destroying-the-environment">Destroying the environment</a></li>
 
78
                                
 
79
                            </ol>
 
80
                        
 
81
                    </li>
 
82
                
 
83
                    <li>
 
84
                        <a href="/write-charm.html#writing-a-charm">Writing a charm</a>
 
85
                        
 
86
                            <ol>
 
87
                                
 
88
                                    <li><a href="/write-charm.html#creating-the-charm">Creating the charm</a></li>
 
89
                                
 
90
                                    <li><a href="/write-charm.html#have-a-plan">Have a plan</a></li>
 
91
                                
 
92
                                    <li><a href="/write-charm.html#write-hooks">Write hooks</a></li>
 
93
                                
 
94
                                    <li><a href="/write-charm.html#test-run">Test run</a></li>
 
95
                                
 
96
                                    <li><a href="/write-charm.html#debugging-hooks">Debugging hooks</a></li>
 
97
                                
 
98
                                    <li><a href="/write-charm.html#learn-more">Learn more</a></li>
 
99
                                
 
100
                            </ol>
 
101
                        
 
102
                    </li>
 
103
                
 
104
                    <li>
 
105
                        <a href="/charm.html#charms">Charms</a>
 
106
                        
 
107
                            <ol>
 
108
                                
 
109
                                    <li><a href="/charm.html#introduction">Introduction</a></li>
 
110
                                
 
111
                                    <li><a href="/charm.html#the-metadata-file">The metadata file</a></li>
 
112
                                
 
113
                                    <li><a href="/charm.html#hooks">Hooks</a></li>
 
114
                                
 
115
                                    <li><a href="/charm.html#hook-environment">Hook environment</a></li>
 
116
                                
 
117
                                    <li><a href="/charm.html#hook-commands-for-working-with-relations">Hook commands for working with relations</a></li>
 
118
                                
 
119
                                    <li><a href="/charm.html#hook-commands-for-opening-and-closing-ports">Hook commands for opening and closing ports</a></li>
 
120
                                
 
121
                                    <li><a href="/charm.html#sample-metadatayaml-files">Sample metadata.yaml files</a></li>
 
122
                                
 
123
                                    <li><a href="/charm.html#sample-configyaml-files">Sample config.yaml files</a></li>
 
124
                                
 
125
                            </ol>
 
126
                        
 
127
                    </li>
 
128
                
 
129
                    <li>
 
130
                        <a href="/service-config.html#service-configuration">Service configuration</a>
 
131
                        
 
132
                            <ol>
 
133
                                
 
134
                                    <li><a href="/service-config.html#introduction">Introduction</a></li>
 
135
                                
 
136
                                    <li><a href="/service-config.html#using-configuration-options">Using configuration options</a></li>
 
137
                                
 
138
                                    <li><a href="/service-config.html#creating-charms">Creating charms</a></li>
 
139
                                
 
140
                                    <li><a href="/service-config.html#internals">Internals</a></li>
 
141
                                
 
142
                            </ol>
 
143
                        
 
144
                    </li>
 
145
                
 
146
                    <li>
 
147
                        <a href="/charm-store.html#the-juju-charm-store">The Juju Charm Store</a>
 
148
                        
 
149
                            <ol>
 
150
                                
 
151
                                    <li><a href="/charm-store.html#charm-store-process">Charm Store Process</a></li>
 
152
                                
 
153
                                    <li><a href="/charm-store.html#submitting-a-new-charm">Submitting a new Charm</a></li>
 
154
                                
 
155
                                    <li><a href="/charm-store.html#submitting-a-fix-to-an-existing-charm">Submitting a fix to an existing Charm</a></li>
 
156
                                
 
157
                                    <li><a href="/charm-store.html#getting-help">Getting Help</a></li>
 
158
                                
 
159
                                    <li><a href="/charm-store.html#reviewers">Reviewers</a></li>
 
160
                                
 
161
                                    <li><a href="/charm-store.html#charm-inclusion-policy-for-reviewers">Charm Inclusion Policy for Reviewers</a></li>
 
162
                                
 
163
                                    <li><a href="/charm-store.html#join-us">Join Us!</a></li>
 
164
                                
 
165
                            </ol>
 
166
                        
 
167
                    </li>
 
168
                
 
169
                    <li>
 
170
                        <a href="/charm-quality.html#charm-quality-rating">Charm Quality Rating</a>
 
171
                        
 
172
                            <ol>
 
173
                                
 
174
                                    <li><a href="/charm-quality.html#reliable">Reliable</a></li>
 
175
                                
 
176
                                    <li><a href="/charm-quality.html#secure">Secure</a></li>
 
177
                                
 
178
                                    <li><a href="/charm-quality.html#flexible">Flexible</a></li>
 
179
                                
 
180
                                    <li><a href="/charm-quality.html#handle-data">Handle Data</a></li>
 
181
                                
 
182
                                    <li><a href="/charm-quality.html#scaleable">Scaleable</a></li>
 
183
                                
 
184
                                    <li><a href="/charm-quality.html#easy-to-deploy">Easy to Deploy</a></li>
 
185
                                
 
186
                                    <li><a href="/charm-quality.html#responsive-to-devops-needs">Responsive to DevOps Needs</a></li>
 
187
                                
 
188
                                    <li><a href="/charm-quality.html#upstream-friendly">Upstream Friendly</a></li>
 
189
                                
 
190
                            </ol>
 
191
                        
 
192
                    </li>
 
193
                
 
194
                    <li>
 
195
                        <a href="/charm-tests.html#charm-testing">Charm Testing</a>
 
196
                        
 
197
                            <ol>
 
198
                                
 
199
                                    <li><a href="/charm-tests.html#intro">Intro</a></li>
 
200
                                
 
201
                                    <li><a href="/charm-tests.html#phase-1-generic-tests">Phase 1 - Generic tests</a></li>
 
202
                                
 
203
                                    <li><a href="/charm-tests.html#phase-2-charm-specific-tests">Phase 2 - Charm Specific tests</a></li>
 
204
                                
 
205
                                    <li><a href="/charm-tests.html#test-runner">Test Runner</a></li>
 
206
                                
 
207
                            </ol>
 
208
                        
 
209
                    </li>
 
210
                
 
211
                    <li>
 
212
                        <a href="/subordinate-services.html#subordinate-services">Subordinate services</a>
 
213
                        
 
214
                            <ol>
 
215
                                
 
216
                                    <li><a href="/subordinate-services.html#motivations">Motivations</a></li>
 
217
                                
 
218
                                    <li><a href="/subordinate-services.html#terms">Terms</a></li>
 
219
                                
 
220
                                    <li><a href="/subordinate-services.html#relations">Relations</a></li>
 
221
                                
 
222
                                    <li><a href="/subordinate-services.html#addressability">Addressability</a></li>
 
223
                                
 
224
                                    <li><a href="/subordinate-services.html#declaring-subordinate-charms">Declaring subordinate charms</a></li>
 
225
                                
 
226
                                    <li><a href="/subordinate-services.html#status-of-subordinates">Status of subordinates</a></li>
 
227
                                
 
228
                                    <li><a href="/subordinate-services.html#usage">Usage</a></li>
 
229
                                
 
230
                                    <li><a href="/subordinate-services.html#restrictions">Restrictions</a></li>
 
231
                                
 
232
                            </ol>
 
233
                        
 
234
                    </li>
 
235
                
 
236
                    <li>
 
237
                        <a href="/implicit-relations.html#implicit-relations">Implicit relations</a>
 
238
                        
 
239
                            <ol>
 
240
                                
 
241
                                    <li><a href="/implicit-relations.html#relationship-resolution">Relationship resolution</a></li>
 
242
                                
 
243
                            </ol>
 
244
                        
 
245
                    </li>
 
246
                
 
247
                    <li>
 
248
                        <a href="/constraints.html#machine-constraints">Machine Constraints</a>
 
249
                        
 
250
                            <ol>
 
251
                                
 
252
                                    <li><a href="/constraints.html#examples">Examples</a></li>
 
253
                                
 
254
                                    <li><a href="/constraints.html#provider-constraints">Provider Constraints</a></li>
 
255
                                
 
256
                                    <li><a href="/constraints.html#working-with-constraints">Working with constraints</a></li>
 
257
                                
 
258
                                    <li><a href="/constraints.html#distinctions-between-entities">Distinctions Between Entities</a></li>
 
259
                                
 
260
                                    <li><a href="/constraints.html#legacy-deployments">Legacy Deployments</a></li>
 
261
                                
 
262
                            </ol>
 
263
                        
 
264
                    </li>
 
265
                
 
266
                    <li>
 
267
                        <a href="/expose-services.html#exposing-a-service">Exposing a service</a>
 
268
                        
 
269
                            <ol>
 
270
                                
 
271
                            </ol>
 
272
                        
 
273
                    </li>
 
274
                
 
275
                    <li>
 
276
                        <a href="/hook-debugging.html#hook-debugging">Hook debugging</a>
 
277
                        
 
278
                            <ol>
 
279
                                
 
280
                                    <li><a href="/hook-debugging.html#introduction">Introduction</a></li>
 
281
                                
 
282
                                    <li><a href="/hook-debugging.html#how-it-works">How it works</a></li>
 
283
                                
 
284
                                    <li><a href="/hook-debugging.html#limitations">Limitations</a></li>
 
285
                                
 
286
                                    <li><a href="/hook-debugging.html#internals">Internals</a></li>
 
287
                                
 
288
                                    <li><a href="/hook-debugging.html#screen-vs-tmux">Screen vs. tmux</a></li>
 
289
                                
 
290
                            </ol>
 
291
                        
 
292
                    </li>
 
293
                
 
294
                    <li>
 
295
                        <a href="/upgrades.html#upgrades">Upgrades</a>
 
296
                        
 
297
                            <ol>
 
298
                                
 
299
                                    <li><a href="/upgrades.html#charm-upgrades">Charm upgrades</a></li>
 
300
                                
 
301
                                    <li><a href="/upgrades.html#service-upgrades">Service upgrades</a></li>
 
302
                                
 
303
                                    <li><a href="/upgrades.html#juju-upgrades">juju upgrades</a></li>
 
304
                                
 
305
                            </ol>
 
306
                        
 
307
                    </li>
 
308
                
 
309
                    <li>
 
310
                        <a href="/charm-upgrades.html#charm-upgrades">Charm Upgrades</a>
 
311
                        
 
312
                            <ol>
 
313
                                
 
314
                                    <li><a href="/charm-upgrades.html#upgrading-a-charm">Upgrading a charm</a></li>
 
315
                                
 
316
                                    <li><a href="/charm-upgrades.html#charm-upgrade-support">Charm upgrade support</a></li>
 
317
                                
 
318
                                    <li><a href="/charm-upgrades.html#futures">Futures</a></li>
 
319
                                
 
320
                                    <li><a href="/charm-upgrades.html#internals">Internals</a></li>
 
321
                                
 
322
                            </ol>
 
323
                        
 
324
                    </li>
 
325
                
 
326
                    <li>
 
327
                        <a href="/provider-configuration-ec2.html#ec2-provider-configuration">EC2 provider configuration</a>
 
328
                        
 
329
                            <ol>
 
330
                                
 
331
                            </ol>
 
332
                        
 
333
                    </li>
 
334
                
 
335
                    <li>
 
336
                        <a href="/provider-configuration-local.html#local-provider-configuration">Local provider configuration</a>
 
337
                        
 
338
                            <ol>
 
339
                                
 
340
                                    <li><a href="/provider-configuration-local.html#provider-specific-options">Provider specific options</a></li>
 
341
                                
 
342
                            </ol>
 
343
                        
 
344
                    </li>
 
345
                
 
346
                    <li>
 
347
                        <a href="/provider-configuration-openstack.html#openstack-provider-configuration">OpenStack provider configuration</a>
 
348
                        
 
349
                            <ol>
 
350
                                
 
351
                                    <li><a href="/provider-configuration-openstack.html#common-configuration">Common configuration</a></li>
 
352
                                
 
353
                                    <li><a href="/provider-configuration-openstack.html#openstack-configuration">OpenStack Configuration</a></li>
 
354
                                
 
355
                                    <li><a href="/provider-configuration-openstack.html#openstack-credentials">OpenStack Credentials</a></li>
 
356
                                
 
357
                                    <li><a href="/provider-configuration-openstack.html#openstack-s3-provider">OpenStack S3 Provider</a></li>
 
358
                                
 
359
                            </ol>
 
360
                        
 
361
                    </li>
 
362
                
 
363
                    <li>
 
364
                        <a href="/operating-systems.html#operating-systems">Operating Systems</a>
 
365
                        
 
366
                            <ol>
 
367
                                
 
368
                                    <li><a href="/operating-systems.html#client">Client</a></li>
 
369
                                
 
370
                                    <li><a href="/operating-systems.html#service-machines">Service Machines</a></li>
 
371
                                
 
372
                                    <li><a href="/operating-systems.html#charms">Charms</a></li>
 
373
                                
 
374
                                    <li><a href="/operating-systems.html#local-provider">Local Provider</a></li>
 
375
                                
 
376
                            </ol>
 
377
                        
 
378
                    </li>
 
379
                
 
380
                    <li>
 
381
                        <a href="/policy.html#charm-store-policy">Charm Store Policy</a>
 
382
                        
 
383
                            <ol>
 
384
                                
 
385
                                    <li><a href="/policy.html#content">Content</a></li>
 
386
                                
 
387
                                    <li><a href="/policy.html#terminology">Terminology</a></li>
 
388
                                
 
389
                                    <li><a href="/policy.html#metadata">Metadata</a></li>
 
390
                                
 
391
                                    <li><a href="/policy.html#interfaces">Interfaces</a></li>
 
392
                                
 
393
                                    <li><a href="/policy.html#series">Series</a></li>
 
394
                                
 
395
                            </ol>
 
396
                        
 
397
                    </li>
 
398
                
 
399
                    <li>
 
400
                        <a href="/relation-reference.html#relation-references">Relation references</a>
 
401
                        
 
402
                            <ol>
 
403
                                
 
404
                                    <li><a href="/relation-reference.html#references">References</a></li>
 
405
                                
 
406
                            </ol>
 
407
                        
 
408
                    </li>
 
409
                
 
410
                    <li>
 
411
                        <a href="/relation-info.html#new-relation-ids-hook-command">New `relation-ids` hook command</a>
 
412
                        
 
413
                            <ol>
 
414
                                
 
415
                                    <li><a href="/relation-info.html#references">References</a></li>
 
416
                                
 
417
                            </ol>
 
418
                        
 
419
                    </li>
 
420
                
 
421
                    <li>
 
422
                        <a href="/relation-hook-commands.html#commands-to-work-with-relation-settings-and-membership">Commands to work with relation settings and membership</a>
 
423
                        
 
424
                            <ol>
 
425
                                
 
426
                                    <li><a href="/relation-hook-commands.html#references">References</a></li>
 
427
                                
 
428
                            </ol>
 
429
                        
 
430
                    </li>
 
431
                
 
432
                    <li>
 
433
                        <a href="/juju-internals.html#implementation-details">Implementation details</a>
 
434
                        
 
435
                            <ol>
 
436
                                
 
437
                            </ol>
 
438
                        
 
439
                    </li>
 
440
                
 
441
                    <li>
 
442
                        <a href="/juju-drafts.html#drafts">Drafts</a>
 
443
                        
 
444
                            <ol>
 
445
                                
 
446
                            </ol>
 
447
                        
 
448
                    </li>
 
449
                
 
450
                    <li>
 
451
                        <a href="/faq.html#frequently-asked-questions">Frequently Asked Questions</a>
 
452
                        
 
453
                            <ol>
 
454
                                
 
455
                                    <li><a href="/faq.html#where-does-the-name-juju-come-from">Where does the name juju come from?</a></li>
 
456
                                
 
457
                                    <li><a href="/faq.html#why-is-juju-useful">Why is juju useful?</a></li>
 
458
                                
 
459
                                    <li><a href="/faq.html#when-will-it-be-ready-for-production">When will it be ready for production?</a></li>
 
460
                                
 
461
                                    <li><a href="/faq.html#what-language-is-juju-developed-in">What language is juju developed in?</a></li>
 
462
                                
 
463
                                    <li><a href="/faq.html#does-juju-start-from-a-pre-configured-ami-image">Does juju start from a pre-configured AMI Image?</a></li>
 
464
                                
 
465
                                    <li><a href="/faq.html#is-it-possible-to-deploy-multiple-services-per-machine">Is it possible to deploy multiple services per machine?</a></li>
 
466
                                
 
467
                                    <li><a href="/faq.html#is-it-possible-to-pass-parameters-to-juju-charms">Is it possible to pass parameters to juju charms?</a></li>
 
468
                                
 
469
                                    <li><a href="/faq.html#does-juju-only-deploy-to-the-amazon-ec2-cloud">Does juju only deploy to the Amazon EC2 cloud?</a></li>
 
470
                                
 
471
                                    <li><a href="/faq.html#what-directory-are-hooks-executed-in">What directory are hooks executed in?</a></li>
 
472
                                
 
473
                                    <li><a href="/faq.html#how-are-charms-licensed">How are charms licensed?</a></li>
 
474
                                
 
475
                                    <li><a href="/faq.html#how-can-i-choose-between-environments">How can I choose between environments?</a></li>
 
476
                                
 
477
                                    <li><a href="/faq.html#how-can-i-contact-the-juju-team">How can I contact the juju team?</a></li>
 
478
                                
 
479
                                    <li><a href="/faq.html#where-can-i-find-out-more-about-juju">Where can I find out more about juju?</a></li>
 
480
                                
 
481
                            </ol>
 
482
                        
 
483
                    </li>
 
484
                
 
485
                    <li>
 
486
                        <a href="/glossary.html#glossary">Glossary</a>
 
487
                        
 
488
                            <ol>
 
489
                                
 
490
                            </ol>
 
491
                        
 
492
                    </li>
 
493
                
 
494
            </ol>
 
495
        </nav>
 
496
    </div>
 
497
 
 
498
<article id="content">
 
499
    <a name="charm-quality-rating"></a><h1>Charm Quality Rating</h1>
 
500
<p>People demand quality out of their tools, and the Charm Store is no
 
501
different. So what does a good charm look like? These are some
 
502
guidelines on what we think an ideal charm provides users. So we rate
 
503
charms by the following criteria, and give them a score, up to 39.
 
504
 
 
505
</p>
 
506
<p>Note: This is an ideal list of what we&#39;d like charms to be. No charm
 
507
today comes close to getting all of these points; it&#39;s a target we set
 
508
for ourselves so we can determine how we can improve individual charms.
 
509
It also gives contributors a general idea of where they can spend their
 
510
time to fix something.
 
511
 
 
512
</p>
 
513
<a name="reliable"></a><h2>Reliable</h2>
 
514
<p>9 Possible points
 
515
 
 
516
</p>
 
517
<blockquote>
 
518
<ul>
 
519
<li><p>Deploy on every provider and pass provider tests</p>
 
520
<ul>
 
521
<li><p>+1 AWS</p>
 
522
</li>
 
523
<li><p>+1 HP Cloud</p>
 
524
</li>
 
525
<li><p>+1 OpenStack</p>
 
526
</li>
 
527
<li><p>+1 LXC</p>
 
528
</li>
 
529
<li><p>+1 MAAS</p>
 
530
</li>
 
531
<li><p>+1 Check for integrity from upstream source</p>
 
532
</li>
 
533
<li><p>+1 Fail gracefully if upstream source goes missing</p>
 
534
</li>
 
535
<li><p>+1 Contain a suite of tests with the charm that pass</p>
 
536
</li>
 
537
<li><p>+1 Passes tests from Jenkins on jujucharms.com</p>
 
538
</li>
 
539
</ul>
 
540
</li>
 
541
</ul>
 
542
<a name="secure"></a><h2>Secure</h2>
 
543
</blockquote>
 
544
<p>4 possible points
 
545
 
 
546
</p>
 
547
<blockquote>
 
548
<ul>
 
549
<li><p>+1 Contain a well tested AppArmor profile</p>
 
550
</li>
 
551
<li><p>+1 Conform to security policies of the charm store</p>
 
552
<ul>
 
553
<li>Tight access control</li>
 
554
</ul>
 
555
</li>
 
556
<li><p>+1 Doesn&#39;t run as root</p>
 
557
</li>
 
558
<li><p>+1 Per instance or service access control</p>
 
559
</li>
 
560
</ul>
 
561
<a name="flexible"></a><h2>Flexible</h2>
 
562
</blockquote>
 
563
<p>2 possible points
 
564
 
 
565
</p>
 
566
<blockquote>
 
567
<ul>
 
568
<li><p>+1 Contain opinionated tuning options</p>
 
569
<ul>
 
570
<li><p>Examples (depends on the service): &quot;safe&quot;, &quot;default&quot;, &quot;fast&quot;,
 
571
&quot;real fast, not so safe&quot;</p>
 
572
</li>
 
573
<li><p>Don&#39;t expose every configuration, pick that reflect real world
 
574
usage</p>
 
575
</li>
 
576
<li><p>Make it so I don&#39;t have to read the book.</p>
 
577
</li>
 
578
</ul>
 
579
</li>
 
580
<li><p>+1 Use existing interfaces with other charms</p>
 
581
<ul>
 
582
<li>Highly relatable.</li>
 
583
</ul>
 
584
</li>
 
585
</ul>
 
586
<a name="handle-data"></a><h2>Handle Data</h2>
 
587
</blockquote>
 
588
<p>3 possible points
 
589
 
 
590
</p>
 
591
<blockquote>
 
592
<ul>
 
593
<li><p>Integrate data storage best practices</p>
 
594
<ul>
 
595
<li>+1 Backups based on service usage</li>
 
596
</ul>
 
597
</li>
 
598
<li><p>Handle the service&#39;s user data</p>
 
599
<ul>
 
600
<li><p>+1 Version control</p>
 
601
</li>
 
602
<li><p>+1 Automated snapshots and backup</p>
 
603
</li>
 
604
</ul>
 
605
</li>
 
606
</ul>
 
607
<a name="scaleable"></a><h2>Scaleable</h2>
 
608
</blockquote>
 
609
<p>5 possible points
 
610
 
 
611
</p>
 
612
<blockquote>
 
613
<ul>
 
614
<li><p>+1 Responds to add-unit based on the service&#39;s needs</p>
 
615
<ul>
 
616
<li>Configuration should not require additional steps to scale
 
617
horizontally</li>
 
618
</ul>
 
619
</li>
 
620
<li><p>+1 Be tested with a real workload, not just a synthetic benchmark</p>
 
621
</li>
 
622
<li><p>Encapsulate scalability best practices</p>
 
623
<ul>
 
624
<li><p>+1 From upstream and existing devops for that service</p>
 
625
</li>
 
626
<li><p>+1 Community peer reviewed</p>
 
627
</li>
 
628
<li><p>+1 Have a configure option for most performant configuration
 
629
if not the default</p>
 
630
</li>
 
631
</ul>
 
632
</li>
 
633
</ul>
 
634
<a name="easy-to-deploy"></a><h2>Easy to Deploy</h2>
 
635
</blockquote>
 
636
<p>7 possible points
 
637
 
 
638
</p>
 
639
<blockquote>
 
640
<ul>
 
641
<li><p>Well documented README with examples of use</p>
 
642
<ul>
 
643
<li><p>+1 for a typical workload</p>
 
644
</li>
 
645
<li><p>+1 for workloads at scale</p>
 
646
</li>
 
647
<li><p>+1 Recommend best-practice relationships</p>
 
648
</li>
 
649
</ul>
 
650
</li>
 
651
<li><p>Allow installation of the service from ...</p>
 
652
<ul>
 
653
<li><p>+1 Pure upstream source</p>
 
654
</li>
 
655
<li><p>+1 Your local source</p>
 
656
</li>
 
657
<li><p>+1 PPA (if available)</p>
 
658
</li>
 
659
<li><p>+1 The Ubuntu repository</p>
 
660
</li>
 
661
</ul>
 
662
</li>
 
663
</ul>
 
664
<a name="responsive-to-devops-needs"></a><h2>Responsive to DevOps Needs</h2>
 
665
</blockquote>
 
666
<p>4 possible points
 
667
 
 
668
</p>
 
669
<blockquote>
 
670
<ul>
 
671
<li><p>+1 Allow for easy upgrade via juju upgrade-charm</p>
 
672
</li>
 
673
<li><p>+1 Allow upgrading the service itself.</p>
 
674
</li>
 
675
<li><p>Proper maintainership</p>
 
676
<ul>
 
677
<li><p>+1 Responsive to user bug reports and concerns</p>
 
678
</li>
 
679
<li><p>+1 Maintainable, easy to read and modify</p>
 
680
</li>
 
681
</ul>
 
682
</li>
 
683
</ul>
 
684
<a name="upstream-friendly"></a><h2>Upstream Friendly</h2>
 
685
</blockquote>
 
686
<p>4 possible points
 
687
 
 
688
</p>
 
689
<blockquote>
 
690
<ul>
 
691
<li><p>Follow upstream best practices</p>
 
692
<ul>
 
693
<li>+1 Provide an option for a barebones &quot;pure upstream&quot;
 
694
configuration</li>
 
695
</ul>
 
696
</li>
 
697
<li><p>Should go lock-step with deployment recommendations</p>
 
698
<ul>
 
699
<li>+1 Provide tip-of-trunk testing if feasible</li>
 
700
</ul>
 
701
</li>
 
702
<li><p>Be cognizant of their release schedule</p>
 
703
<ul>
 
704
<li><p>+1 Fresh charm on release day!</p>
 
705
</li>
 
706
<li><p>+1 Endeavour to be upstream&#39;s recommended way to deploy that
 
707
service in the cloud (website mention or something)</p>
 
708
</li>
 
709
</ul>
 
710
</li>
 
711
</ul>
 
712
</blockquote>
 
713
 
 
714
</article>
 
715
 
 
716
        <footer id="footer">
 
717
            Powered by <a href="http://github.com/maximebf/beautiful-docs">beautiful-docs</a> -
 
718
            <a href="#top">Back to top</a> - <a href="/all.html">Everything on a single page</a>
 
719
            - <a href="?print=1">Print current page</a> - <a href="/all.html?print=1">Print all pages</a>
 
720
            
 
721
        </footer>
 
722
    </div>
 
723
</body>
 
724
</html>