<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Migration on vnykmshr</title><link>https://blog.vnykmshr.com/writing/tags/migration/</link><description>Recent content in Migration on vnykmshr</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 20 Aug 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.vnykmshr.com/writing/tags/migration/index.xml" rel="self" type="application/rss+xml"/><item><title>Scout, plan, wait</title><link>https://blog.vnykmshr.com/writing/scout-plan-wait/</link><pubDate>Tue, 20 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/scout-plan-wait/</guid><description>&lt;p&gt;The legacy codebase still runs the business. It is not small. It is six vertical functions deployed as separate services, sharing a data layer and a code tree, so &amp;ldquo;service&amp;rdquo; is a deployment unit here, not a boundary. It reads like a place rather than an architecture &amp;ndash; rooms we know the shortcuts of, walls not quite where a greenfield build would put them. It has been running for years. It works.&lt;/p&gt;</description></item><item><title>The crossover</title><link>https://blog.vnykmshr.com/writing/the-crossover/</link><pubDate>Wed, 23 Sep 2020 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/the-crossover/</guid><description>&lt;p&gt;The second cloud migration lands on the roadmap in a staff meeting. On paper it looks like the first one. A target provider, a rough timeline, a named lead. I read the slide and expect the same work.&lt;/p&gt;
&lt;p&gt;It is not the same work.&lt;/p&gt;
&lt;h2 id="the-first-time"&gt;The first time&lt;/h2&gt;
&lt;p&gt;The first migration was easy to agree to. Our local datacenter had frequent outages and every one of them carried a physical tax &amp;ndash; somebody drove over, pulled a cable, power-cycled a router. The DC had a support team, but the parts that mattered to us were ours to maintain. Cloud was the way forward and every one of us knew it. The decision did not take a meeting.&lt;/p&gt;</description></item><item><title>The first service</title><link>https://blog.vnykmshr.com/writing/carving-the-first-service/</link><pubDate>Wed, 15 Mar 2017 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/carving-the-first-service/</guid><description>&lt;p&gt;The monolith is Perl. No framework I can identify &amp;ndash; just a large codebase that&amp;rsquo;s been growing for years. One Perl line does an alarming amount. I&amp;rsquo;m not a Perl developer and had to read through the code several times before I was confident I understood what it was doing.&lt;/p&gt;
&lt;p&gt;Production goes down for days sometimes. When it does, the team spends hours tracing through the code to figure out what broke. That&amp;rsquo;s the context. The system works, mostly. When it doesn&amp;rsquo;t, nobody quite knows why.&lt;/p&gt;</description></item><item><title>Switching to Go</title><link>https://blog.vnykmshr.com/writing/switching-to-go/</link><pubDate>Wed, 07 Dec 2016 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/switching-to-go/</guid><description>&lt;p&gt;I&amp;rsquo;d been building production services with Node.js since 2013. Custom blog engines, API services, real-time backends. The ecosystem was rich, iteration was fast, and for moderate-load services, it worked well.&lt;/p&gt;
&lt;p&gt;The limits showed up at scale. A latency-sensitive payment processing API exposed three problems that were manageable at lower traffic but compounded at higher volumes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GC pauses.&lt;/strong&gt; Node&amp;rsquo;s garbage collector introduced latency spikes that were unpredictable and hard to tune. For payment processing, where consistent response times matter more than peak throughput, this was the biggest concern. A p99 spike during a GC pause means a user staring at a spinner while their payment hangs.&lt;/p&gt;</description></item><item><title>Running two systems at once</title><link>https://blog.vnykmshr.com/writing/running-two-systems-at-once/</link><pubDate>Tue, 20 Nov 2012 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/running-two-systems-at-once/</guid><description>&lt;p&gt;We&amp;rsquo;re replacing the frontend of a running store. The old system handles everything &amp;ndash; catalog, cart, checkout, orders, fulfillment. The new one is Node.js. We can&amp;rsquo;t switch over in a weekend. The store has traffic every day, orders every hour. Nobody&amp;rsquo;s going to approve a &amp;ldquo;shut it down Friday, bring up the new one Monday&amp;rdquo; plan.&lt;/p&gt;
&lt;p&gt;So both systems run at the same time. On the same domain, behind the same nginx. Writing this down before I forget the order we did it in.&lt;/p&gt;</description></item></channel></rss>