TinyDevCRM Update #9: Continuing on this DevOps Grind

This is a summary of TinyDevCRM development for the week of April 4th, 2020 to April 11th, 2020.

Goals from last week

  • [❓] Read through the Packt book “Docker on AWS”
  • [❓] Read through instructions given by AWS Support for deploying PostgreSQL to AWS using Elastic Container Service, with EC2 Task Definitions and an Elastic Block Store volume, all defined using AWS CloudFormation, and create a blog post and GitHub repo to lock in knowledge.
  • [❓] Add AWS CodeBuild and CodePipeline for CI/CD and automated, rolling deployments before beginning to iterate on the Django backend.
  • [❓] Update TinyDevCRM landing page according to feedback from two weeks ago.

What I got done this week

  • [❌] Read through the Packt book “Docker on AWS” (read through 4.5 chapters, 8.5 chapters left to go)
  • [❌] Read through instructions given by AWS Support for deploying PostgreSQL to AWS using Elastic Container Service, with EC2 Task Definitions and an Elastic Block Store volume, all defined using AWS CloudFormation, and create a blog post and GitHub repo to lock in knowledge.
  • [❌] Add AWS CodeBuild and CodePipeline for CI/CD and automated, rolling deployments before beginning to iterate on the Django backend.
  • [❌] Update TinyDevCRM landing page according to feedback from two weeks ago.

Nope, a good deal further than I thought I would be. I was expecting to do about three or four chapters of this book a day in order to hurry to the finish line. It's not that easy, unfortunately.

Metrics

  • Weeks to launch (primary KPI): 2 (5 weeks after declared KPI of 1 week)
  • Users talked to total: 1

RescueTime statistics

  • 62h 21m (57% productive, 2% increase from prior week)
    • 18h 41m “software development”
    • 12h 46m “entertainment”
    • 8h 11m “utilities”
    • 7h 44m “communication and scheduling”
    • 5h 17m “news and opinion”

iPhone Screen Time (assumed all unproductive)

  • Total: 40h 59m
  • Average: 5h 51m
  • Performance: 16% increase from last week

Hourly journal

https://hourly-journal.yingw787.com

Goals for next week

  • [❓] Read through the Packt book “Docker on AWS” (will have to do so because the Packt subscription free trial runs out end of next week)
  • [❓] Read through instructions given by AWS Support for deploying PostgreSQL to AWS using Elastic Container Service, with EC2 Task Definitions and an Elastic Block Store volume, all defined using AWS CloudFormation, and create a blog post and GitHub repo to lock in knowledge.
  • [❓] Add AWS CodeBuild and CodePipeline for CI/CD and automated, rolling deployments before beginning to iterate on the Django backend.
  • [❓] Update TinyDevCRM landing page according to feedback from two weeks ago.

Things I've learned this week

  • I'm learning what kinds of failure modes CloudFormation has, which is useful for debugging CloudFormation infrastructure in production. One major pathway to failure is stabilization issues, where a CloudFormation resource isn't fully defined and where CloudFormation cannot fail fast for some reason. This is useful information

  • Some resources take a lot longer to stand up than other resources. Those resources closer to the bare metal, like EC2, are pretty fast to stand up. Resources like EC2 autoscaling groups or RDS, take a good deal longer. I'm still unsure how to shorten the failure cycle, but evaluating resource standup is a major time drain for learning devops.

  • Don't use AWS Lambda. The book I'm referencing is only two years old, and yet the AWS Lambda example is already failing due to a runtime issue that is outside of my control. Even a DeprecationWarning appears to cause the lambda to fail early, and tying results into CloudWatch logs is a severe pain and quite brittle. I'm pretty happy I didn't go with a CloudWatch + Lambda job scheduling architecture.

  • I think this pandemic is forcing a re-evaluation in my long-term plans. Especially with the effective failure to ship an MVP on time, I need to re-evaluate whether I still want to go through with this project at this time, or whether my time can and should be devoted to other projects in order to try and monetize something.

    It's a bitter pill to swallow. I don't want to give this project up. But I also see my bank account draining away day by day, and I need to stem the bleeding.

Subscribe to my mailing list