Capstone Project: Week 3, Learning
Hello and welcome to my third update on my Fall 2021 Capstone project!
Last week I declared that my project was going to be the creation of a CI/CD pipeline to automate deployment of code to the cloud. I also included a Gantt chart that roughly summarized what I would be doing every week.
Unfortunately, I am already behind schedule. I got extremely ill this weekend which is the time I dedicate to this project. I was unable to even sit upright without becoming extremely nauseous. My illness still has not completely subsided, and due to that, I have not been able to work as effectively as I want to.
Despite that, I still did my best and I have outlined everything I have done this past week below.
Microsoft Learn
First, I decided to explore more about Azure DevOps and I took a few courses from their Microsoft Learn website.
The courses are very thorough and provide great explanations for a lot of things. In my most recent course, I was able to effectively create a simple Azure DevOps pipeline using GitHub and a .NET application.
While the application I am going to be pushing probably won't be a .NET web application, I still found it really cool to learn .NET and modify the files to fit my own purpose.
I then created a .YAML file (the file that contains the scripts for automation) and pushed it along with the code to a GitHub Repo. On Azure DevOps, I had that repository connected to the Azure DevOps pipelines which tracked the commit and automatically ran the scripts I had created. Azure DevOps broke each task down like so:
The end result was an artifact, which is the result of running the pipeline. I specified my artifact to be two zip files that contained the built web application.
While I was guided through this activity, I had learned a lot from it. I took it further and began exploring these concepts and formatting much more, such as my learning of Azure DevOp's specific .YAML syntax.
This overall has taught me that Azure DevOps is definitely capable of fulfilling my needs for this project.
Docker
One of the tools that is going to be almost certainly crucial to this project is Docker. Docker is a software that utilizes virtualization to deliver software in packages called containers. You can download pretty much any tool you want, including whole operating systems, and run them with just a single command. You can also modify these containers and have them communicate with each other.
I have been utilizing the Powershell CLI instead of the graphical GUI as I will need to know the commands when I work with them on my Linux virtual machines on the cloud. However, Docker Desktop is a powerful tool that allows you to quickly pull and push containers to Docker Hub, an online container repository, as well as interact with your containers.
Besides looking at the documentation, I have invested many hours into a paid Udemy course called Docker Mastery: with Kubernetes + Swarm from a Docker Captain
This course is 19 hours long and I am halfway through it. I do not plan to finish it now, as some parts are not relavent to my project right now, but I couldn't stop myself from learning it! It is truly a spectacular piece of software.
DataDog
I have done some research into DataDog and found it to be one of the most popular monitoring services for cloud infrastructure. I also have found that I have accesss to a lot of the premium student benefits as a student found here.
I believe that this software integrates well with Azure based on this documentation here. DataDog also seems to have support for being implemented into CI/CD pipelines including Azure Devops
As such, I am going to try and pursue DataDog as my monitoring service initially.
Conclusions
The goal for this past week was to learn Docker and research more about AWS, Azure, GitLab, and Azure DevOps and then decide on my final selection of tools for my project.
As mentioned before, my sickness has prevented me from learning as much as I would have liked. In the interest of time, I am going to pursue the Azure DevOps and Azure Cloud pathway instead of the GitLab and AWS/Azure pathway.
My plan and diagram as of 9/21/21 is the following:
While there is still plenty of time before my project is due, it is going to be in my best interest to move forward with what I know will work.
Thank you for reading!