This message was imported from the Ruby/Rails Modularity Slack server. Find more info in the import thread.
Message originally sent by slack user U73P01WT4V3
Hey folks!
My name is Mischa Lewis-Norelle, and I’m at Staff Software Engineer at AppFolio working on migrating our monolith to CD. I was curious if there is a good place to talk about deployment strategies, migrating monoliths to CD, and other related topics? If anyone would be open to chatting 1 on 1 as well feel free to DM me!
What specific issues are you interested in? In my mind, for the purpose of deployment, a monolith is still simply an app that needs deploying. Is that your take as well?
I wouldn’t say that I have concerns, I’m mostly curious.
I agree that from the perspective of deployment a monolith is simply an app that needs deploying, but one of the big conversations that comes up at our company is how we can feel confident that a change or set of changes is working as expected. While we have a lot of tests, we’re still in the stage were fine-grained instrumentation of features to catch regressions is somewhat lacking.
I’m also generally curious what tools folks are using to handle their deployments. We still have a very opinionated in-house tool that is almost as old as the company (and combines mutlitenancy tenant management with deployment concerns, which is a different kettle of fish), and we’re looking to move towards using industry standard tooling. I’d love to hear what folks have found to be the pros and cons.
And finally I’m just looking to talk to folks about their and their company’s experiences moving to continuous deployments if they didn’t start that way. What were the challenges, what were the successes, etc. I know I can always learn from others’ attempts at doing what we want to do here.
(Also as a quick bit of context, I have only worked full-time at AppFolio, so I don’t have meaningful hands on experience with how other companies do things, so I recognize that as a shortcoming that I’m trying to fill )
I have only worked at companies with CD since ~2009, and the other companies were not really candidates for CD (shipping software with hardware…)
Smaller companies I worked at relied mostly on manual testing in staging and good monitoring, larger companies on canary deploys (and good monitoring). In addition to a good test suite of course.
A big thing IMO is that the more often you deploy the smaller the deployed changesets are. So more frequent deploys can be less risky, and it’s easier to track a malfunction back to the change that caused it. It‘s also easier to fix forward quickly.
Often people seem to think that higher deploy frequencies increase risk. That is not my experience.