My DevOps Story
May 08, 2018 : Week 12We've been working on the jenkins script to test all files. I have also finished the book assigned to me and recommend it to anyone entering the world of DevOps. This being the last few days of this course I am grateful for taking this fun and interesting course. I'm glad to have had lectures from Prof. Callahan as well as the various industry professionals. I have learnt a few technical and many interpersonal skills through this course. Cheers to the first batch of NYU DevOps 2018!
April 25, 2018 : Week 11In the past week I have written commands in Jenkins for build and testing each time git repo is updated. I performed testing by intentionally changing a file to have the wrong html tags. On pushing such a file, an error was raised by Jenkins and notified on slack. I am now working on the script to do so for all the files. I also spent time reading Prof. Callahan’s paper “The agile enterprise and division of labour” found it to be very interesting with all real industry examples.
April 19, 2018 : Week 10I have spent most of the week learning how to write Ansible playbooks to work with AWS EC2 and docker containers. We learnt that the AWS EC2 using a linux machine does not support python2.7 and above. As we require python3.6 to run all tests, we had to create a new EC2 instance, this time we are using an Ubuntu machine(it comes with pre-installed python3.6)
I also integrated Slack with Jenkins for notifications. Our next step is to write a script, preferably a shell script, to run test_html.sh on all html files.
April 10, 2018 : Week 9The testing team has made progress with pipelining. We installed jenkins on our EC2 server and tested connection to a Github Repo. After getting credentials from prof. we shall integrate with the DevOps repo instead.
March 29, 2018 : Week 8Last week we had Joe West, CTO of BounceX meet us in class. He spoke of 4 important things to know about DevOps and the t ools associated with it.
- Business is the thing: DevOps services are expensive and don't always save money. We must give thought to cost, business and purpose before resorting to the t ools instead of using them just because they are cool.
- Rightsize toolchain: many a times, our business may not need all of the tools. simple combination of EC2, CI/CD and a Db may suffice. hence, it is importnat to understand where the optimization is worth.
- Productivity is the best practice: We must try to automate things that are done repeatedly and take much of our time.
- Document and rehearse: Documentation is essential to keep a record for purposes of handover or backtracking or rollbacks. Rehearsing critical events makes us better equiped at handling the real scenarios.
March 21, 2018 : Week 7SPRING BREAK
Over the spring break I practiced Oauth using Github so that only a verified github user can access a server. I also tried creating a docker image for the Ruby app and experimented with different ways to do it. Docker image needs a DockerFile and a docker-compose.yml file. I faced some difficulties in the process because Docker makes use of VirtualBox, port assignment and networking is not my strongest point! Lots more to learn about containerization.
March 13, 2018 : Week 6We had Tom from Google give us a lecture on the Web Search and Scheduling. He works in the team that handles 'Join' on the database, which sounds easy but is pretty complicated when scaled to millions of nodes that are accounted during a particular google search or inside gmail. He also explained the differences between SRE and Engg.
March 7, 2018 : Week 5I'd like to summarize the amazing session by StackOverflow's Tom Limoncelli. Tom started off by telling us about what misconceptions everyone has about DevOps, how the term is often bound to a few tools like Jenkins, Ansible, etc. but in reality its much more than that.
So here it is: DevOps is applying DevOps priciples to simple software engineering processes.
The DevOps principles are :
- 3 ways: Process, Communication/Feedback, Innovation
- small batches: Force Fail Frequently, frequency reduces risk.
- MVP-Minimum Valuable Product: Deliver some value, small features sooner than delivering entire product in the end.
The latter part of the session included learning about StackOverflow's operations and technologies. I personally feel the presentation and Tom's funny relatable pictures and examples made an hour seem less. Looking forward to the next talk in coming week.
Feb 26, 2018 : Week 3, 4Here's a documentation of what we have done so far in terms of codes and commands: 1: Install Docker : Get Docker
2: Download docker image for Nginx: docker pull nginx
3: Create a Docker container using command as follow:
where --name is to specify the name of container being created. In above example, container name is 'DevopsNginx'
-p is used for 'port mapping'. Here, 8080:80 specifies that port 8080 will now listen to port 80
-v is used for 'volume mapping'. In above example, /usr/share/nginx/html is mounted to /Users/garima/Documents/Devops/DevOps (this is the same f older you have cloned the Devops repository to)
4: Use Kitematic to view all container and their status.
Feb 14, 2018 : Week 2I have been assigned to the Testing team in this Devops process. Our goal is to create a pipeline with automated testing on the code push before deployment. Our first task was to compare Jenkins, travis CI and GoCD to make a choice for the pipeline. So far I have researched online with reference to GoCD in comparison to Jenkins. Since we are a team of 3 we have equally distributed work amongst us.
Coming to the book review, I am reviewing ' The Phoenix project' and have completed 3 chapters so far. A detailed review shall be posted on books.html soon.
Feb 7, 2018 : Week 1Intro: In Fall'16, I took the Distributed Systems class under Prof. Rosenfeld and was introduced to concepts of Site Reliability, Server Handling, CAP theorem and so on. A class that I took just to learn something new, paved my way into the world of Devops.
With the little that I could absorb in a span of those 4 months, I stepped into the NYU IT office as a student worker. Under guidance of my mentor and tech lead, I refined my scripting skills, got hands-on GitHub experience and worked in an Agile-SCRUM environment. I was introduced t o automated testing, pipelining, deployment for keeping NYU Web Publishing service up and running.
In Devops Spring 2018 I look forward to team building and collaborative work.