Long Term Project - Sample App + DevOps + Agile

I continue to be on the hunt for an easy to use web development language that talks to databases. I have a couple of ideas I’d like to work on, and I haven’t coded in a while. Moreover, I’d like to create some simple apps that use web code and databases to try different hosting methodologies. It also gives me an opportunity to experiment with various CI/CD tools and Agile tracking apps.

Why?

It’s a perfectly fair question to ask. I could easily grab a ToDo app from some site and try many of the same ideas. But I want something more, “real.” I learn best by getting my hands dirty. When I’m actually doing the work, I learn the things that maybe get glossed over. This seems especially true when it comes to CI/CD pipelines. We sort of nod our heads and say “all things are possible with Jenkins,” but there are limitations and obstacles with it like any other platform.

I’m going to write about this journey to 1) have a record for myself, 2) because it might be helpful to others, and 3) because there are smarter people than me out there who might give me some insights I hadn’t reached.

The Stack

The initial stack will be based on Linux / Apache / MySQL / Django. I’m using this stack because it’s a fairly traditional stack found in legacy apps. It’ll give me a base from which I can then make different modifications. The application code and database will be on the same server at the start. I’ll be using a Macbook Pro w/ VMware Fusion 11.5 for host platform 1.

  • Client OS - CentOS Linux 8.1

  • Apache (version TBD)

  • MySQL (version TBD)

  • Python (Django)

LTP_VM_Fusion_Configuration.png


Diagrams will be created using Draw.IO. Microsoft’s Visual Studio Code will be used as an IDE.

My background is in infrastructure. As such, I believe in Infrastructure as Code, so I’ll create Ansible code to do the deployments. Using a local vm allows me multiple attempts without paying for cloud resources. Once the basic config is worked out, future phases will move to the cloud.

Tracking Work

Work will be tracked using Azure Boards set to Kanban. Kanban is a personal preference. I might use other tools from the Azure DevOps suite, but I’m undecided at this point. I do know that I’ll use public GitHub for storing project code.

Timeline

I expect this project will take several months to complete all the variations I have in mind. Along the way, I’ll document many parts of the journey. Links to direct sections will appear below this main article.

Other Parts in this Series

Part 2 - Azure Boards Configuration

Part 3- Adding Work Items to Azure Boards

Edit:

I’ve replaced references to PHP + Django. Django is python based and is what I intend to use at this point in time.