My DevOps Story
As a graduate student expecting to graduate soon,
I have gained quite a few development skills and know-hows of
platforms, infrastructure and frameworks working in tandem.
However, as a developer I often find myself annoyed by the fact
that a lot of time and effort has to be spent on the
"bureaucracy" (searching for euphemism..) of everything,
from setting up the evironment, the testing framework to the
deployment and redeployment of the releases. Working on a solo
project, one has to worry about all of these, apart from writing a
working and efficient code. One of the reasons I would release
large updates rather than small incremental ones would be to
reduce this "inconvenience", not that it helped. How I wished all
of this could be automated!!
So here I am trying to learn how.
Weekly updates:
- Week 1 and 2 : I joined the 'coding' team and picked 'Practical Devops - Joakim Verona' to study and review. Within the coding team, we divided the group into pairs to target the various tasks on the Trello board. My first assignment would be to work on an html spell-checker.
- Week 3: I paired with Pravar to push the initial release of the spell-checker. This week we learned about Docker and had some hands-on with it. We could leverage a docker container to develop locally with a Django container which could be deployed as is to the cloud provider of choice.
- Week 4: This week we added certain critical features to the spell-checker. It can now add new words to dictionary and extract word between punctuations. We also met with Professor Callahan to discuss the progress with the tool. Professor made some great recommendations and we look forward to implementing them.
- Week 5: This week we had this great opportunity of listening to System Adminitstration veteran Tom Limoncell's take on DevOps. He talked about the 'Three ways of DevOps' and DevOps as a practice, rather than a set of tools. In his words, 'DevOps' is taking Agile all the way to 'Ops'.
- Week 6: We pushed the documentation for the spell-checker. This week we had Tom Germano from Google as a guest lecturer. He spoke about his role at Google in the Gmail team.
- Week 7: Spring Break!
- Week 8: We added a feature to maintain a separate custom dictionary to add words. The dictionaries can now be sent in as CL parameters. This week we had Joe West of BounceX fame. He talked about "The Four Things I Wish You Knew About DevOps (but couldn’t reasonably expect you to learn in this class)". He advised not to go overboard with all the DevOps tools and cloud services out there. Choices should be business specific and should improve productivity. After all, 'Productivity is the best practice'. He also mentioned the importance of 'Documenting and Rehearsing' and shared that he actually enjoys when things get boring. It probably means that at that point, things are well organized and under control.
- Week 9: This week we utilized regular expressions to capture and filter words in the spell-checker. I also spent some time reading 'Practical DevOps', the book I am planning on reviewing.
- Week 10: We tweaked the spell-checker tool to ignore text between 'code' tags. We also started posting our review of the book 'Practical DevOps' by Joakim Verona.
- Week 11: I have not had much experience with application security, specially vulnerability at development stages and pre-release, for eg. if the packaging stage is compromised, potentially every instance of the released product could be malicious. We learnt about the importance of security at every level of the Dev+Ops pipeline.
- Week 12: The spell-checker tool was finally pushed to production. As a result, we received invaluable user feedback and some issues were reported.
- Week 13: We met with Professor Callahan to discuss strategies to make the spell-checker more practical and decided to wrap the tool in a shell script to auto-commit added words to dictionary and enable limited rollout. We also added a command line flag to enable/disable strict mode which can skip capitalized words.
- Week 14: This week we replaced the main dictionary with a more verbose one and also integrated Oxford dictionary API. We continued to work on the book review.
- Week 15: This week we finished reading the book "Practical DevOps". We look forward to completing the book review.
- Week 16: This is the last week of our course. We finished our book review and we are now gearing up for the final exam. We learnt a lot from the book and by contributing to our course web site DevOps style!