<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Devops on vnykmshr</title><link>https://blog.vnykmshr.com/writing/tags/devops/</link><description>Recent content in Devops on vnykmshr</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 15 Mar 2019 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.vnykmshr.com/writing/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>Prescaling for a known spike</title><link>https://blog.vnykmshr.com/writing/prescaling-for-a-known-spike/</link><pubDate>Fri, 15 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/prescaling-for-a-known-spike/</guid><description>&lt;p&gt;Our biggest sale event of the year is on the calendar. The date is fixed, the hour is fixed, and when it starts, traffic hits a multiple of normal within minutes. The engineering challenge isn&amp;rsquo;t handling surprise. It&amp;rsquo;s handling certainty at a scale we&amp;rsquo;ve never seen before.&lt;/p&gt;
&lt;p&gt;We prepare for months. Six months out, teams start thinking about what their services need. Backend teams work with SRE and infra to define prescale configurations and autoscale rules. Terraform handles the provisioning. Every service team shares their estimates with infra, and the configurations get codified.&lt;/p&gt;</description></item><item><title>Consul in practice</title><link>https://blog.vnykmshr.com/writing/consul-in-practice/</link><pubDate>Mon, 10 Sep 2018 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/consul-in-practice/</guid><description>&lt;p&gt;The microservice count is growing fast. The monolith is mostly gone and what replaced it is dozens of services across datacenters. We don&amp;rsquo;t have a uniform naming convention. Finding a service means knowing which team owns it, which cloud it&amp;rsquo;s on, and what they called it. That&amp;rsquo;s not scalable.&lt;/p&gt;
&lt;p&gt;Consul fixed the naming problem first.&lt;/p&gt;
&lt;h2 id="service-discovery"&gt;Service discovery&lt;/h2&gt;
&lt;p&gt;Every service registers with Consul. The DNS interface gives us a consistent way to find anything:&lt;/p&gt;</description></item><item><title>Hazard lights</title><link>https://blog.vnykmshr.com/writing/hazard-lights/</link><pubDate>Sat, 10 Jun 2017 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/hazard-lights/</guid><description>&lt;p&gt;There are about fifteen of us in the enclosure. Backend engineers, SRE, devops, infra &amp;ndash; handpicked from across the floor. The rest of the team, about a hundred people, sit outside. They call us the fishes in the aquarium.&lt;/p&gt;
&lt;p&gt;The aquarium has hazard lights. Physical ones &amp;ndash; wired to fire on any 5xx in the system. When something breaks in production, the room goes red.&lt;/p&gt;
&lt;p&gt;It sounds like a gimmick. It isn&amp;rsquo;t.&lt;/p&gt;</description></item><item><title>Zero-downtime deploys</title><link>https://blog.vnykmshr.com/writing/zero-downtime-deploys/</link><pubDate>Mon, 15 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/zero-downtime-deploys/</guid><description>&lt;p&gt;I deploy everything from the terminal. No web interface, no CI service, no dashboard with green buttons. Just &lt;code&gt;deploy production&lt;/code&gt; from my laptop, and the code goes live.&lt;/p&gt;
&lt;p&gt;The setup is two pieces. A bash script that handles the remote work &amp;ndash; SSH in, pull the latest code, run hooks. And a Node.js process that watches a file on the server and reloads the app cluster when the file changes. Between them, they do zero-downtime deploys in under ten seconds.&lt;/p&gt;</description></item></channel></rss>