TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Small shops, how do you do CD?

1 pointsby blueslurpeealmost 4 years ago
Hi, I&#x27;m looking if any of the solopreneurs or small shops (5-10 people) could give some insight into their CD.<p>Do you practice CD, and if so how?<p>I run two unrelated Django monolith applications, which serve me very well. I use CircleCI for Continous Integration, and it works well enough. The benefits of CI are of course muted if one is rolling completely solo, however I&#x27;m bringing on another dev this year so that&#x27;s fine.<p>Where I get lost is CD. Right now I still manually ssh into the VM and pull latest changes, run migrations and install any new dependencies, compile static if necessary, etc. etc.<p>How can I reliably integrate CD into this small application? Would Ansible be a good solution?<p>A key obstacle for me are the migrations. Is it best to migrate your DB completely separately? Test any migrations before hand and commit the migration scripts as well? It&#x27;s uncommon but not out of the question that I need to manually edit a migrations script to massage the database back to a state it needs to be. Any Django user probably has a similar experience to share.<p>Although I welcome discussion about Kubernetes and other orchestration tools, I&#x27;m looking for something a little more lightweight.<p>Looking forward to a good discussion, some of the best threads on HN are those with founders swapping knowledge.<p>Thanks in advance.

1 comment

PaulHoulealmost 4 years ago
Manually installing deps is where you are getting lost.<p>If you have a clean os install (say a new cloud vm) you can write a script (say in bash) that installs dependencies.<p>For instance I wrote a Java program that used AWS to spin up a VM and commanded the machine to run a bash init script, which in turn posted a message to SQS when the build succeeded or failed. (Since it didn’t involve making a large number of network requests over time this build script was simple and reliable…. It didn’t involve holding an ssh connection for a long time or other schemes that could get hung up because the build tool got hung up.)<p>Docker, vagrant, ansible require you to do all the work above , still know everything you’d need to know to write a bash script AND require you to learn more about a tool and work around its quirks.<p>Look at what the minimum requirements are — a two-step operation (1) build machine, and (2) build the system on the machine was good enough and has the simplest possible error handling scenario (never have a network request between my workstation and the build machine cause step 2 to fail or need recovery).