Showing posts from August, 2017

Canary deployments of IIS using Octopus & AWS

I'm writing this more to clear my head than anything else.  If it helps someone, great. We have measured significant 'release impact' when deploying one of our core applications.   The main problem is initialization/warmup of the appPool.  We've tried the built-in methods, but for whatever reason we are always stuck with ~25s of dead time while the first request warms things up (we assume it's warming things up, not really sure what is happening).  After that 25s wait things are very snappy and fast, so how do we prevent all of our web servers from going into 25s of dead time with production traffic inbound? Starting point - why do this? We care about our customers, and we want to help drive our business forward with as much quality/safety/speed as possible. Because we want to drive our business forward, we are pushing to do more and more deploys ( currently we do a daily deploy, but want to see 5x that ) ( if you have to ask why we want 5x, read   this ).  

Lessons over Chinese BBQ

Met with a long-time friend and mentor last night for delicious Chinese BBQ and lessons.  Part of the conversation moved to idea/app development, and clarifying the stages and clear scopes. Stages of product development Proof of concept Scope: Validating an idea, or a concept i.e. "something that's never been done before" Ends when the idea/concept is validated or disqualified Mitigates risk/cost at the expense of time ( estimating this is naturally hard because it's a new thing ) Is thrown away entirely ( aside from lessons learned ) at the end. Should be coded as such! ( i.e. hard code connection strings, because things like setting up config files is waste for this stage ) MVP Scope: Laying the framework for your production thing. Minimum feature set because the goal here is 'establish the product, build the foundation'. Once the groundwork is laid, architecture set up, additional features can be added. Should be coded as 'this will end up