First Post

While at my current job one of my colleagues taught me that often the best way to learn something is to prepare to teach others that subject. In that vein one of our training activities was to setup a wordpress blog and utilize as many AWS services as possible in the supporting application architecture. While doing this, test that availability and stability of our blog to guide the next steps in improving our blogs. All while writing posts about each step of the journey

In that same vein this blog serves to chronicle my journey through solidifying my practical knowledge of DevOps tools and methodologies, as well as gaining some additional experience with JavaScript application development. I was recently discussing what that colleague who has moved on to a DevOps engineering role uses at his current job and he provided the following list. Terraform, TeamCity, Docker, Kubernetes, and Ansbile. Learning and or gaining additional experience with these tools or similar replacements is the primary goal, but how am I going to do that?

Besides creating this blog I have another project to chronicle. Like many people my age I had a large CD collection. Once the MP3 player became ubiquitous I set about converting my CD's to MP3s. I used to run a Subsonic server to host and serve these files. Over time the licensing model for Subsonic became more restrictive and music streaming services became more mature. As time goes on, I find myself missing albums in that MP3 collections, but not wanting to pay for Subsonic. Luckily for me I'm not the only one unhappy about the increase licensing costs, and Airsonic was created. Airsonic is a starting point, as the title of this site suggests, my philosophy is to flip the table if what is on it is not work and go back to a blank slate. With that said if I find a better tool to serve my music collection I'm happy to switch, and if Airsonic proves troublesome then I may end up building my own application.

It took some painful trial and error before I learned to not reinvent the wheel, unless of course I'm trying to learn something new that requires it. That's where this blog comes in, I'm not using Wordpress, and instead building a "serverless" blogging platform. As of this writing that platform is for all intents and purposes this single HTML document that is stored in S3 and served via CloudFront. HTTPS is provided via a certificate provided by AWS and stored in Amazon Certificate Manager. This is relatively easy to setup, basic instructions can be found here. In the future I will provide setp by step explanations of what I am building, but everything so far is covered fairly well in the documentation link provided.

So what is the plan? My goal is to have a platform that is easy to use, and cheap to operate. The plan is to use Amazon Web Services to build an AJAX app where the data is stored in S3 and served through cloudfront. I'd like to be able to not write everything in Visual Studio Code so I'll need a way to write/edit posts. I'd like to let people comment on my posts so I'll need to build a commenting feature. And I don't just want to provide a target for comment spam so I'll need a way to authenticate commenters, and screen comments. So far I'm using Bootstrap 4 and writing all of my HTML by hand. My next post will be how I use this post as a template to build my second post as a JSON object tht is dynamically loaded using KnockoutJS.

I'll wrap this up with a diagram for my architecture for this blog platform created using Cloudcraft.co this does not include any user authentication, and I plan to update this diagram as I build.

Flipping Tables - Devops