-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbestpractices.htm
More file actions
381 lines (351 loc) · 22.1 KB
/
bestpractices.htm
File metadata and controls
381 lines (351 loc) · 22.1 KB
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
<html><head>
<meta http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A guide to effective procedures">
<meta name="keywords" content="best,practice,system,monitor,aws,rds,cloud,arch,deploy,instance,wordpress,database,config,image,launch,auto,scal,git,github,control,code,source,mysql,sql,server,rdb,relation,stack,template,parameter">
<title>Technical Procedures and Best Practices</title>
<!--?xml version="1.0" encoding="utf-8"?-->
<style type="text/css">
@import url("css/base-admin-3.css");
@import url("css/font-awesome.min.css");
</style>
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
<style type="text/css">
</style>
<link href="page-vflzfYSfI.css" rel="stylesheet" type="text/css">
<link href="css/main-vflaPAd44.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<style type="text/css">
body {
background-image: url(none);
}
</style>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body style="width:100%">
<iframe frameborder="0" scrolling="no" align="left" width="100%" height="80px" src="header.htm" name="framehead" id="framehead">
&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;iframes are not supported by your browser.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;
</iframe>
<br>
<a href="header.htm" target="framehead"></a><br>
<div class="body" style="margin-top:40px">
<p align="left" style="margin-left:40px; margin-bottom:50px"><a href="index.htm"><br>
<span>Back to Help</span></a></p>
</div>
<div class="topichero">
<div id="sidecontent">
<h4><br>
Jump To:</h4>
<br>
<ul>
<li><a href="FAQ.htm">FAQ</a></li>
<li><a href="downloads.htm">PDFs</a></li>
<li><a href="VersionOne.htm">VersionOne</a></li>
<li><a href="Sprint_Deploy.htm">Sprint Cycle</a></li>
<li><a href="GitHub.htm">GitHub</a></li>
<li><a href="bestpractices.htm">Technical Procedures and <br>Best Practices</a></li>
<li><a href="international.htm">International Franchise</a></li>
<li><a href="risk.htm">Troubleshooting</a></li>
<li><a href="mcc.htm">Marketing Command Center</a></li>
<li><a href="Glossaries.htm">Glossaries</a></li>
</ul>
</div>
<div class="title-text">
<div class="HomeHeroSection">
<div class="centered-text">
<div>
<h1> <p align="left" style="margin-left:40px;">Technical Procedures and Best Practices</p></h1>
<p align="left" style="margin-left:40px; margin-bottom:40px">This topic explains common procedures used by the Marketing Technology team to deploy, monitor, and maintain websites.</p>
<p align="left" style="margin-left:40px; margin-bottom:40px">Also included in this topic are Best Practices - methods and techniques that lead to effective results and risk reduction.</p>
<!-- CSS styles for standard search box -->
<!-- HTML for SEARCH BAR --> </div>
</div>
</div>
</div><p></p>
</div><style type='text/css'>
/***** Side Content *****/
#sidecontent
{
margin-right:10%;
margin-left: 30px;
padding:20px 20px 20px 20px;
float:right;
border: 2px solid #CC092f;
border-radius: 5px;
}
#sidecontent ul
{
color:#333;
list-style:none;
padding:0 0 10 0;
margin:0;
background:inherit;
}
#sidecontent li
{
padding: 0.1ex 0 5px 0;
}
#sidecontent li a
{
color:#000;
text-decoration:none;
font-size:1em;
display:block;
padding:8px 20px;
background:inherit;
}
#sidecontent li a:hover
{
background:#CC092F;
color:white;
}
#sidecontent h4
{
font-size:1em;
font-weight:bold;
margin:0;
text-align:center
}
</style>
<p></p><p></p>
<div align="left">
<div class="body">
<p align="left" style="margin-left:40px;"><strong>In this article:</strong></p>
<p align="left" style="margin-left:40px;"><a href="mtech.htm"><strong>Technical Procedures</strong></a></p>
<p align="left" style="margin-left:50px;"><a href="mtech.htm#createinstance">Creating an AWS Instance</a></p>
<p align="left" style="margin-left:50px;"><a href="mtech.htm#configureinstance">Configuring an AWS Instance</a></p>
<p align="left" style="margin-left:50px;"><a href="mtech.htm#configuredatabase">Creating and Configuring a Wordpress Database</a></p>
<p align="left" style="margin-left:50px;"><a href="mtech.htm#configurewpcontent">Configuring WordPress Content</a></p>
<p align="left" style="margin-left:50px;"><a href="mtech.htm#readmorewp">Read More about WordPress</a></p>
<p align="left" style="margin-left:50px;"><a href="mtech.htm#deploy">Deploying a Release</a></p>
<ul>
<p style="margin-left: 20px;"><a href="mtech.htm#createimage">Creating an Image</a></p>
<p style="margin-left: 20px;"><a href="mtech.htm#launchconfig">Launch Configuration</a></p>
<p style="margin-left: 20px;"><a href="mtech.htm#autoscalegroup">Auto Scaling Group</a></p>
<p align="left" > </p>
</ul>
<ul>
<br>
<p><a href="#bpsdlc"><strong>Best Practices</strong></a></p>
<p style="margin-left: 10px;"><a href="#bpsdlc">Software Development and VersionOne Best Practices</a></p>
<p style="margin-left: 10px;"><a href="#bpghub">Version Control and Source Code Management Best Practices</a></p>
<p style="margin-left: 10px;"><a href="#bpsysmon">System Monitoring</a></p>
<p style="margin-left: 10px;"><a href="#bpawsrds">Best Practices for Amazon RDS </a></p>
<p style="margin-left: 10px;"><a href="#bpawscloudform">AWS CloudFormation Best Practices</a></p>
<p style="margin-left: 10px;"><a href="#bpcloudarc">Cloud Architecture</a></p>
<p style="margin-left: 10px;"><a href="#bpinfoarc">Information Architecture</a> </p>
<br><p><a href="#bprelated"><strong>Related Topics</strong></a></p>
</ul>
</div>
<div style="margin-left:40px" class="body">
<h4 id="bpsdlc" style="margin-top: 100px; border-top: thin solid #bcbeb0; width:30%">Software Development and VersionOne Best Practices</h4>
<p>Rollins Marketing adheres to industry-standard change management concepts; specifically, Agile software development methods.</p>
<p>The software development process is tracked with the VersionOne tool.</p>
<p>To ensure that the process runs smoothly, all contributors should adhere to established practices.</p>
<p>See <a href="Sprint_Deploy.htm">Sprint Cycle and Deployment </a>and <a href="VersionOne.htm">Using VersionOne</a> for more information.</p>
<h4 id="bpghub" style="margin-top: 100px; border-top: thin solid #bcbeb0; width:30%">Version Control and Source Code Management Best Practices</h4>
<p>The Marketing Team uses <a href="GitHub.htm">GitHub </a>for version control and source code management. </p>
<p>Source code for Rollins products is managed in GitHub repositories and accessed by the Marketing Technology team, <a href="documents/Agency_Partner_DeployProcess.pdf">outside collaborators, agency partners</a>, and Rollins contributors. </p>
<p>The GitHub service enables the Marketing Team to store source code, manage code revisions, and monitor the history of committed code. </p>
<h4 id="bpsysmon" style="margin-top: 100px; border-top: thin solid #bcbeb0; width:30%">System Monitoring </h4>
<p>Rollins Marketing uses a variety of tools and procedures to <a href="sys_monitoring.htm">monitor websites and systems</a>.</p>
<h4 id="bpawsrds" style="margin-top: 100px; border-top: thin solid #bcbeb0; width:30%">Best Practices for Amazon RDS </h4>
<ul><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.DiskPerformance" target="new">Amazon RDS Basic Operational Guidelines</a></li>
<li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.Performance.RAM">DB Instance RAM Recommendations</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.Security">Amazon RDS Security Best Practices</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.EnhancedMonitoring">Using Enhanced Monitoring to Identify Operating System Issues</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.UsingMetrics">Using Metrics to Identify Performance Issues</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.MySQLStorage">Best Practices for Working with MySQL Storage Engines</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.MariaDB">Best Practices for Working with MariaDB Storage Engines</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.PostgreSQL">Best Practices for Working with PostgreSQL</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.SQLServer">Best Practices for Working with SQL Server</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.DBParameterGroup">Working with DB Parameter Groups</a></li><li><a href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.Presentation">Amazon RDS Best Practices Presentation Video</a></li></ul>
<h4 id="bpawscloudform" style="margin-top: 100px; border-top: thin solid #bcbeb0; width:30%">AWS CloudFormation Best Practices</h4>
<ul>
<li><strong>Planning and organizing</strong></dt>
<dd>
<div>
<ul type="disc">
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#organizingstacks" title="Organize Your Stacks By Lifecycle and Ownership">Organize Your Stacks By Lifecycle and Ownership</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#cross-stack" title="Use Cross-Stack References to Export Shared Resources">Use Cross-Stack References to Export Shared Resources</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#reuse" title="Reuse Templates to Replicate Stacks in Multiple Environments">Reuse Templates to Replicate Stacks in Multiple Environments</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#limits" title="Verify Quotas for All Resource Types">Verify Quotas for All Resource Types</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#nested" title="Use Nested Stacks to Reuse Common Template Patterns">Use Nested Stacks to Reuse Common Template Patterns</a></p>
</li>
</ul>
</div>
</dd>
<dt><strong>Creating templates</strong></dt>
<dd>
<div>
<ul type="disc">
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds" title="Do Not Embed Credentials in Your Templates">Do Not Embed Credentials in Your Templates</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#parmtypes" title="Use AWS-Specific Parameter Types">Use AWS-Specific Parameter Types</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#parmconstraints" title="Use Parameter Constraints">Use Parameter Constraints</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#cfninit" title="Use AWS::CloudFormation::Init to Deploy Software Applications on Amazon EC2 Instances">Use AWS::CloudFormation::Init to Deploy Software Applications on Amazon EC2 Instances</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#helper-scripts" title="Use the Latest Helper Scripts">Use the Latest Helper Scripts</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#validate" title="Validate Templates Before Using Them">Validate Templates Before Using Them</a></p>
</li>
</ul>
</div>
</dd>
<dt><strong>Managing stacks</strong></dt>
<dd>
<div>
<ul type="disc">
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#donttouch" title="Manage All Stack Resources Through AWS CloudFormation">Manage All Stack Resources Through AWS CloudFormation</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#cfn-best-practices-changesets" title="Create Change Sets Before Updating Your Stacks">Create Change Sets Before Updating Your Stacks</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#stackpolicy" title="Use Stack Policies">Use Stack Policies</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#cloudtrail" title="Use AWS CloudTrail to Log AWS CloudFormation Calls">Use AWS CloudTrail to Log AWS CloudFormation Calls</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#code" title="Use Code Reviews and Revision Controls to Manage Your Templates">Use Code Reviews and Revision Controls to Manage Your Templates</a></p>
</li>
<li>
<p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#update-ec2-linux" title="Update Your Amazon EC2 Linux Instances Regularly">Update Your Amazon EC2 Linux Instances Regularly</a></p>
</li>
</ul>
</div>
</dd>
</dl>
</li>
</ul>
<h4 id="bpcloudarc" style="margin-top: 100px; border-top: thin solid #bcbeb0; width:30%">Cloud Architecture </h4>
<p><strong>Controllable</strong></p>
<ul type="disc">
<li>Decompose into small, loosely coupled, stateless building blocks</li>
<li>Automate your Application and Processes</li>
<li>Let Business levers control the system (the architecture should scale based on this architecture)</li>
<li>Architect with Cost in mind</li>
<li>Use Data sharding </li>
</ul>
<p><strong>Resilient</strong></p>
<ul type="disc">
<li>Protecting your customer is the first priority (using encryption)</li>
<li>In production, deploy to at least two availability zones</li>
<li>Integrate security into your application from the ground up </li>
<li>Build, test, integrate and deploy continously</li>
<li>Phase in deployments with multiple ec2 instances</li>
</ul>
<p><strong>Adaptive</strong></p>
<ul type="disc">
<li>Build the components with as less complexity as possible </li>
<li>Use late binding to decide on what instance type to use, rather than assuming at first, based on the memory and storage requirements</li>
</ul>
<p><strong>Data driven</strong></p>
<ul type="disc">
<li>Instrument everything all the time</li>
<li>Implement Logging, Monitoring of the applications as effectively as possible</li>
<li>Use benchmarking</li>
</ul>
<p>Note: Building Stateless blocks makes autoscaling easy<br><br>
<strong>Flexibility, Scalability and Measurability</strong> <br>
A baseline reserved instance, performing scalability by using spot instances if they are not available go for on demand instances, all this part of the code needs to be automated <br>
</p>
<p>Important Links: Cloud Design Patterns (with different problems and solutions) <a href="http://en.clouddesignpattern.org/index.php/Main_Page" target="_blank">http://en.clouddesignpattern.org/index.php/Main_Page</a></p>
<p style="margin-left:40px"> </p>
<p style="margin-left:40px"></p>
<h4 id="bpinfoarc" style="margin-top: 100px; border-top: thin solid #bcbeb0; width:30%">Information Architecture</h4>
<p style="margin-left:40px"><p>
Information Architecture standards are designed to ensure that Rollins web properties and mobile applications can make the most use, and <em>re</em>use, of the gigabytes of assets available. The result of good IA is that assets are optimized for search engines to make a web page, image, video, or other resource on easy to find for <em>anyone</em> who's looking both internally and externally to the organization. Though search engines are the primary motivation for the IA of websites, a well designed structure will benefit the content creators, coders, and designers working on the website as well.</p>
<p><strong>
File Naming Rules</strong></p>
<div>
Good IA starts with good file names. Good file names are both descriptive and succinct. File names should...</div>
<ul>
<li>
Be descriptive of the file’s contents.</li>
<li>
Be all lower-case (the CDN is case sensitive).</li>
<li>
Not use acronyms, abbreviations, and shorthand spellings.</li>
<li>
Be worded naturally, in “headline” style (avoiding words like “the”, “a”, and “and” when possible).</li>
<li>
Avoid pronouns.</li>
<li>
Use hyphens instead of spaces.</li>
<li>
Not specify the type of file in any way other than the file extension (e.g. do not name a video bed-bugs-crawling-on-mattress-video.mp4, simply call it bed-bugs-crawling-on-mattress.mp4).</li>
<li>
Use only alphanumeric characters, except where allowed by these rules.</li>
</ul>
<p>
<strong>Naming Image Files</strong></p>
<p>
File names for images should follow the same naming rules as other files, appended with color (optional) and dimension information as follows:</p>
<ol>
<li>
Color (optional): The color of the image is optional and should be used primarily to distinguish between otherwise identical images.</li>
<li>
Dimensions: The dimensions should be listed in WxH format (width by height). For example: <b>10x20</b>.</li>
</ol>
<p>
Each part of the image file name is separated by the underscore ("_") character. A hyphen ("-") is to be used in place of a space.</p>
<p>
Examples of Image Names</p>
<ul>
<li>
ant-under-magnifying-glass_78x75.gif</li>
<li>
tick_72x60.gif</li>
<li>
navigation-item_grey_130x30.gif</li>
<li>
navigation-item_red_130x30.gif</li>
</ul>
<p>
<strong>Directory Structure</strong></p>
<p>
The <em>/images/</em> Directory</p>
<p>
For any content published online, the directory for images should be "/images" (directly off the root of the domain). A sub-folder, <b>/images/misc/</b>, can be used for images that should <em>not</em> be crawled by bots, such as the Google Bot. </p>
<p>
Images of pests receive special treatment in the /images/ directory. Each pest image is to be placed in a sub-directory of the /images/ directory which indicates the <i>family</i>, or category, of pest the pictured pest belongs to. For example, a picture of house fly would be placed under <b>/images/flies/</b> (an example of the full file name would be /images/flies/house-fly_50x50.jpg).</p>
<p>
<strong>Content Quality</strong></p>
<p>
All content should exemplify high Rollins standards for quality and consistency; web content, in addition to adhering to brand standards, should adhere to SEO best practices. For <strong>text </strong>this means using descriptive words and phrases, appropriate headers, descriptive link text, and semantic code from schema.org when relevant. For <strong>images</strong>, this means finding the right balance between fast-loading and high-quality; in Photoshop this usually means using the "High" to "Very High" quality settings when saving out a jpg image.</p>
<br></li>
</ul>
<p></p>
</div>
<p id="bprelated" align="left" style="margin-left:40px; margin-top:100px"><strong>Related Topics:</strong></p>
<ul>
<p><a href="Sprint_Deploy.htm">Sprint Cycle and Deployment</a></a></p>
<p><a href="VersionOne.htm">Using Version One</a></p>
<p><a href="GitHub.htm">GitHub Repositories</a>
<p><a href="documents/Agency_Partner_DeployProcess.pdf">Deployment Process for Agency Partners</a>
<p><a href="https://www.scrumalliance.org/community/articles/2015/august/agile-scrum-best-practices">Agile Scrum Best Practices</a>
<p><a href="https://www.agilealliance.org/agile101/agile-glossary/">Agile Glossary</a>
</ul>
</div><a href="#siteimageload">
<!-- /row -->
<!-- /row --><!-- /span4 --> <!-- /span4 --> <!-- /span6 --><!-- /row -->
</a>
</body></html>