My DevOps Story
Write Up Book
Hello, this is Yang. I am a CS master student at NYU Tandon. As a member in the coding team, I am going to participate in the development of Django quizzes app.
By taking the DevOps course, I am hoping to gain a solid understanding of what DevOps is all about, and get real experience with DevOps tools and practices. In addition, I plan to create a functional website with other coding team members using Django as the backend. I will also learn techniques and processes utilized by build, cloud, deployment, monitoring, security and testing teams.
Read required documents for the DevOps course. I learned DevOps is a software development methodology which uses Agile and lean principles to improve collaboration between development and operations engineers. The traditional waterfall model comprises five phases including requirements, design, implementation, verification and maintenance. DevOps enables faster feedback loops that result from delivering smaller batches of code more often, compared with the waterfall model.
During the class, we cloned the professor's DevOps repository, and were taught to use git submodule commands. Our personal journal webpages for the DevOps course were created locally and then pushed to the DevOps repository.
The TA instructed us to download and install the docker toolbox, pull the nginx image from docker hub, and create a docker container to run the DevOps website inside. The professor elaborated some advantages to use docker when developing software. I and another coding team member were assigned to the task "Build quiz mechanism for Django".
Read part of the book Manifesto for Agile Software Development. Got Django running locally for DevOpsCourse. I taught myself how to use Django as a beginner. The professor explained the reasons to edit ptml files first. We used build automation tool Make to generate html files and rebuilt the DevOps website.
For the task "Build quiz mechanism for Django", the Question and Answer models with appropriate fields were created, the model changes to the database were migrated, the models were registered with the admin site, and urls and views were properly set.
Filled some questions and corresponding data into the database and tested out the functionalities of the website locally. Made some changes to the code so that the admin site shows the text content of questions and answers instead of showing all questions and answers as objects.
Reviewed Tom Limoncelli's slides on DevOps, and gained a deeper understanding about some concepts of DevOps.
We modified the Django quizzes site to display all questions and corresponding answers in a single page. We also implemented the mechanism to calculate the quiz taker's quiz score and added the result page.
We used project styles for our Django quizzes site, and also added the Quiz model. Attended Joe's talk about DevOps and his work experience.
The added Quiz model has one-to-many relationship with the Question model. We also added some quiz data in the database. The result page would show the quiz was passed or not.
We pulled apart errors and wrote code to handle exceptions separately that the user forgot to answer the question or submitted answer is not valid. Comments were added to explain the code. Code style was adjusted to satisfy PEP8.
More questions and corresponding answers of the DevOps quiz were added into the database. The sequential model was also added. Templates for each lesson's material pages were created. The material - quiz flow was implemented.
The connection between Django site and AWS RDS was properly set up. We wrote reviews about all the four key values of Manifesto for Agile Software Development.
Added Stack Overflow SRE Manager Thomas Limoncelli's talk video and link to the lesson material. Unit test cases for Quiz model database operation and Question object were added. Moved database credentials and settings to a separate configuration file.
Changed hyperlink text for Django quizzes site. Modified the code to display the appropriate quiz when the user retake the lesson. Added more content for Agile Manifesto book review.
© 2018 Yang Lou