forked from gcallah/DevOps
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ghosh.html
executable file
·365 lines (354 loc) · 18.8 KB
/
ghosh.html
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
<!DOCTYPE html>
<html>
<!-- THIS FILE WAS GENERATED BY A SCRIPT: DO NOT EDIT IT! -->
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="../style.css">
<!-- jQuery CDN -->
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<!-- Bootstrap Js CDN -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript">
var status = 'on';
$(document).ready(function () {
$('#sidebarCollapse').on('click', function () {
$('#sidebar').toggleClass('active');
if (status == 'on') {
$('#sidebarText').text("Expand Side Nav");
status = 'off';
} else {
$('#sidebarText').text("Collapse Side Nav");
status = 'on';
}
});
});
</script>
<title>
My DevOps Story
</title>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-114841175-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-114841175-1');
</script>
</head>
<body>
<div class="wrapper">
<!-- Sidebar Holder -->
<nav id="sidebar">
<div id="sidebarCollapse">
<div class="sidebar-header">
<h1>DevOps</h1>
<strong>DO</strong>
</div>
</div>
<ul class="list-unstyled components">
<li>
<a href="https://gcallah.github.io/DevOps/index.html">
<i class="glyphicon glyphicon-home"></i>
Home
</a>
</li>
<li>
<a href="#pageSubmenu" data-toggle="collapse" aria-expanded="false">
<i class="glyphicon glyphicon-duplicate"></i>
Main Areas of Coverage
</a>
<ul class="collapse list-unstyled" id="pageSubmenu">
<li>
<a href="#BuildSubmenu" data-toggle="collapse" aria-expanded="false">Build</a>
<ul class="collapse list-unstyled" id="BuildSubmenu">
<li><a href="https://gcallah.github.io/DevOps/build/links.html">Build links</a></li>
<li><a href="https://gcallah.github.io/DevOps/build/theory.html">Build theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/build/tools.html">Build tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/build/implementation.html">Our build implementation</a></li>
</ul>
</li>
<li>
<a href="#CloudSubmenu" data-toggle="collapse" aria-expanded="false">Cloud</a>
<ul class="collapse list-unstyled" id="CloudSubmenu">
<li><a href="https://gcallah.github.io/DevOps/cloud/links.html">Cloud links</a></li>
<li><a href="https://gcallah.github.io/DevOps/cloud/theory.html">Cloud theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/cloud/tools.html">Cloud tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/cloud/implementation.html">Our cloud implementation</a></li>
</ul>
</li>
<li>
<a href="#CodingSubmenu" data-toggle="collapse" aria-expanded="false">Coding: Lean and Agile Practices</a>
<ul class="collapse list-unstyled" id="CodingSubmenu">
<li><a href="https://gcallah.github.io/DevOps/coding/links.html">Coding links</a></li>
<li><a href="https://gcallah.github.io/DevOps/coding/theory.html">Coding theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/coding/tools.html">Coding tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/coding/implementation.html">Our coding implementation</a></li>
</ul>
</li>
<li>
<a href="#DeploySubmenu" data-toggle="collapse" aria-expanded="false">Deployment</a>
<ul class="collapse list-unstyled" id="DeploySubmenu">
<li><a href="https://gcallah.github.io/DevOps/deployment/links.html">Deployment links</a></li>
<li><a href="https://gcallah.github.io/DevOps/deployment/theory.html">Deployment theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/deployment/tools.html">Deployment tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/deployment/implementation.html">Our deployment implementation</a></li>
</ul>
</li>
<li>
<a href="#MonitorSubmenu" data-toggle="collapse" aria-expanded="false">Monitoring</a>
<ul class="collapse list-unstyled" id="MonitorSubmenu">
<li><a href="https://gcallah.github.io/DevOps/monitoring/links.html">Monitoring links</a></li>
<li><a href="https://gcallah.github.io/DevOps/monitoring/theory.html">Monitoring theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/monitoring/tools.html">Monitoring tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/monitoring/implementation.html">Our monitoring implementation </a></li>
</ul>
</li>
<li>
<a href="#SecuritySubmenu" data-toggle="collapse" aria-expanded="false">Security: Rugged DevOps</a>
<ul class="collapse list-unstyled" id="SecuritySubmenu">
<li><a href="https://gcallah.github.io/DevOps/security/links.html">Security links</a></li>
<li><a href="https://gcallah.github.io/DevOps/security/theory.html">Security theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/security/tools.html">Security tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/security/implementation.html">Our security implementation</a></li>
</ul>
</li>
<li>
<a href="#TestingSubmenu" data-toggle="collapse" aria-expanded="false">Testing</a>
<ul class="collapse list-unstyled" id="TestingSubmenu">
<li><a href="https://gcallah.github.io/DevOps/testing/links.html">Testing links</a></li>
<li><a href="https://gcallah.github.io/DevOps/testing/theory.html">Testing theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/testing/tools.html">Testing tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/testing/implementation.html">Our testing implementation</a></li>
</ul>
</li>
<li>
<a href="#WorkflowSubmenu" data-toggle="collapse" aria-expanded="false">Workflow: DevOps as a Way of Work</a>
<ul class="collapse list-unstyled" id="WorkflowSubmenu">
<li><a href="https://gcallah.github.io/DevOps/workflow/links.html">Workflow links</a></li>
<li><a href="https://gcallah.github.io/DevOps/workflow/theory.html">Workflow theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/workflow/tools.html">Workflow tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/workflow/implementation.html">Our workflow implementation</a></li>
</ul>
</li>
<li>
<a href="#UXSubmenu" data-toggle="collapse" aria-expanded="false">UX: User Interface</a>
<ul class="collapse list-unstyled" id="UXSubmenu">
<li><a href="https://gcallah.github.io/DevOps/UX/links.html">UX links</a></li>
<li><a href="https://gcallah.github.io/DevOps/UX/theory.html">UX theory</a></li>
<li><a href="https://gcallah.github.io/DevOps/UX/tools.html">UX tools</a></li>
<li><a href="https://gcallah.github.io/DevOps/UX/implementation.html">Our UX implementation</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#MaterialsSubmenu" data-toggle="collapse" aria-expanded="false">
<i class="glyphicon glyphicon-link"></i>
Other Materials
</a>
<ul class="collapse list-unstyled" id="MaterialsSubmenu">
<li>
<a href="#CMSubmenu" data-toggle="collapse" aria-expanded="false">Course-specific Material</a>
<ul class="collapse list-unstyled" id="CMSubmenu">
<li><a href="https://gcallah.github.io/DevOps/courseDescr.html">Course description, Spring 2018</a></li>
<li><a href="https://gcallah.github.io/DevOps/courseExpectations.html">Course expectations, Spring 2018</a></li>
<li><a href="https://gcallah.github.io/DevOps/TeamsTable.html">Our teams for Spring 2018</a></li>
<li><a href="https://gcallah.github.io/DevOps/books.html">DevOps reading list</a></li>
<li><a href="https://gcallah.github.io/DevOps/journals/index.html">Our DevOps journals</a></li>
<li>
<a href="http://www.thedevopscourse.com/quiz/">Our Django
site: we are creating a quiz system here.</a>
</li>
<li>
<a href="https://gcallah.pythonanywhere.com/berkeley/">
DevOps Bibliographic Search
</a>
</li>
</ul>
</li>
<li>
<a href="#SupSubmenu" data-toggle="collapse" aria-expanded="false">Supplementary Material</a>
<ul class="collapse list-unstyled" id="SupSubmenu">
<li><a href="https://gcallah.github.io/DevOps/websites.html">DevOps websites</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="https://gcallah.github.io/DevOps/about.html">
<i class="glyphicon glyphicon-briefcase"></i>
About
</a>
</li>
</ul>
</nav>
<div id="content">
<h1>
My DevOps Story
</h1>
<p class="author">
by
<br />
Sneha Ghosh
</p>
<p>
After completing my undergraduate studies, I worked at
Sapient where I was exposed to Agile development technique.
As a fresh undergrad, I had never experienced the true
utilities of reliable tests and fast releases but it soon
became clear to me how important these are to run a
production system. I also learned the significance of close
collaboration between development, testing and the release
team which is absolutely essential to ensure that the
incremental changes are rolled out in a smooth fashion. In
Maurice Kherlakian’s words, <span class="emphasize"> “A
phased approach to continuous delivery is not only
preferable, it’s infinitely more manageable.” </span>
</p>
<p>
After working at Sapient for 3 years, I wanted to increase
my breadth in the field of Computer Science and I applied
for a Master’s Degree at NYU. During my course projects, I
tried to employ the same techniques I learned at Sapient to
ensure that the incremental changes are tested and it
allowed efficient collaboration with my peers. I did an
internship at IBM where I worked on automation testing
which was used to reliably test and release Db2 Data
Warehouse functionalities specifically Snapshot Backup and
Restore. Before my work, testing was done using shell
scripts. I used a docker testing container which highly
simplified the automation setup as it could be easily
pulled on a new cluster to kickoff automation. During my
internship, I realized that automating a process exposes
the deficiencies of the underlying system pretty soon and
incentivizes us to fix them. As Bill Gates said, <span
class="emphasize"> “The first rule of any technology used in a
business is that automation applied to an efficient operation will
magnify the efficiency. The second is that automation applied to
an inefficient operation will magnify the inefficiency.”</span>
</p>
<p>
During my internship at IBM, I participated in a multi
location Hackathon which involved live training provided by
IBM software engineers from a variety of domains. We were a
team of 5 people working on building an application for
crowdfunding and crowdsourcing using blockchain technology.
I got a chance to use the Continuous Delivery Pipeline on
IBM Cloud to build and deploy the application code. Code
commits by all team members were live within seconds which
kept our code production ready. As Mike Miller also said,
<span class="emphasize"> “Simply put, things always had to be
in a production-ready state: if you wrote it, you darn well
had to be there to get it running!”</span> Given the
time crunch and lots of tasks to work on during a hackathon
Devops practises saved a lot of time. We were able to test
the flow of application easily from time to time. I was
really fascinated by such tools which work seamlessly
pushing incremental changes automatically after code
commits.
</p>
<p>
I feel that taking the Devops course will help me learn how
to use Devops practices to produce a valuable product for
the customers. Recent readings about Devops has made me
develop a better understanding about it on the whole. I
found the following Devops periodic table and am really
excited to use some of the tools on a real project.
</p>
<figure>
<img src="https://xebialabs.com/assets/files/infographics/periodic-table-of-devops-v2.png" width ="90%">
</figure>
<p>
This course also puts us in an environment where each team
is focussing on a different aspect of DevOps, creating an
environment like the one we experience in the software
industry where everybody works towards a common goal. Such
an environment stimulates a faster learning curve through
collaboration resulting in a more reliable and sustainable
software development.
</p>
<details>
<summary class="sum2">
Sources
</summary>
<ul>
<li><a href="https://xebialabs.com/periodic-table-of-devops-tools/">Devops Periodic Table
</a>
</li>
</ul>
</details>
<details>
<summary class="sum2">
Weekly Updates
</summary>
<ul>
<li> Week 1 - Learned about the importance of DevOps, challenges of
waterfall model and advantages of using Agile/Lean methodology.
Also got familiar with the structure of the course and how
different teams would collaboratively work on developing the
course website using DevOps principles. I am part of the deployment
team and our goal is to create the deployment pipeline to automate
deployment of course website on cloud or local machine.
<br>
Excited to use tools like Slack, Git, Trello and more later during
the course.
</li>
<li> Week 2 - Learned about git usage and submodules. Published my
DevOps Journal.
</li>
<li> Week 3 - Learned about deploying the application using docker
container with a practical exercise. Worked on deployment theory
page. Reviewed chapter 1 of Continuous Delivery book.
</li>
<li> Week 4 - Learned about building modules using make. Reviewed
chapters 2 and 3 of Continuous Delivery book.
Started studying about puppet installation.
</li>
<li> Week 5 - Compared SaltStack to other deployment tools and
fixed styling issues on the tools page.
Created puppet webpage with installation instructions in a client
server architechture setup.
Reviewed chapter 4 of Continuous Delivery book.
</li>
<li> Week 6 - Reviewed chapters 5 and 6 of Continuous Delivery
book. Studied puppet deployment tutorials and videos to learn
writing puppet manifests.
</li>
<li> Week 7 - Attended presentation by Joe West, CTO of BounceX-
software company that provides behavioral automation software
and analytics.
He talked about 4 important things to know about devops-
Business is the thing, right size your toolchain, productivity
is the best practice, document and rehearse.
<br>
Worked on the deployment implementation webpage.
Provided all steps for setting up puppet master/agent
configuration and deploying the website using puppet.
</li>
<li> Week 8 - Reviewed chapters 7, 8 and 9 of Continuous
Delivery book and published the review on the webpage.
</li>
<li> Week 9 - Reviewed chapter 12 of Continuous Delivery book.
Reviewed chapter 1 of Kubernetes Up and Running book. Added
example about how to create files from master to agent node
for infrastructure configuration using puppet.
</li>
<li> Week 10 - Reviewed chapter 2 and chapter 3 of
Kubernetes Up and Running book. Added section to describe puppet
manifest for configuring agents. Started reading about boto3
which can be used for connecting to Amazon EC2 instances using
python scripts.
</li>
<li> Week 11 - Reviewed chapter 7 of Kubernetes Up and Running
book. Worked on automating the puppet deployment by writing a
script that will create security groups, key pairs and EC2
instances on Amazon and fetch the details of newly created
instances.
</li>
</ul>
</details>
</div>
</div>
</body>
</html>