<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Abstraction on Brave New Geek</title><link>https://bravenewgeek.com/tag/abstraction/</link><description>Recent content in Abstraction on Brave New Geek</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 30 Nov 2017 19:54:45 -0600</lastBuildDate><atom:link href="https://bravenewgeek.com/tag/abstraction/index.xml" rel="self" type="application/rss+xml"/><item><title>Thrift on Steroids: A Tale of Scale and Abstraction</title><link>https://bravenewgeek.com/thrift-on-steroids-a-tale-of-scale-and-abstraction/</link><pubDate>Thu, 30 Nov 2017 19:49:24 -0600</pubDate><guid>https://bravenewgeek.com/thrift-on-steroids-a-tale-of-scale-and-abstraction/</guid><description>&lt;p&gt;&lt;a href="https://thrift.apache.org/"&gt;Apache Thrift&lt;/a&gt; is an RPC framework developed at Facebook for building “scalable cross-language services.” It consists of an interface definition language (IDL), communication protocol, API libraries, and a code generator that allows you to build and evolve services independently and in a polyglot fashion across a wide range of languages. This is nothing new and has been around for over a decade now.&lt;/p&gt;
&lt;p&gt;There are a number of notable users of Thrift aside from Facebook, including Twitter (mainly by way of &lt;a href="https://twitter.github.io/finagle/"&gt;Finagle&lt;/a&gt;), Foursquare, Pinterest, Uber (via &lt;a href="https://uber.github.io/tchannel/"&gt;TChannel&lt;/a&gt;), and Evernote, among others—and for good reason, Thrift is mature and battle-tested.&lt;/p&gt;</description></item><item><title>Abstraction Considered Harmful</title><link>https://bravenewgeek.com/abstraction-considered-harmful/</link><pubDate>Sat, 27 Feb 2016 14:48:22 -0600</pubDate><guid>https://bravenewgeek.com/abstraction-considered-harmful/</guid><description>&lt;p&gt;&lt;em&gt;“Abstraction is sometimes harmful,”&lt;/em&gt; he proclaims to the sound of anxious whooping and subdued applause from the audience. Peter Alvaro’s 2015 Strange Loop keynote, &lt;em&gt;&lt;a href="https://youtu.be/R2Aa4PivG0g"&gt;I See What You Mean&lt;/a&gt;&lt;/em&gt;, remains one of my favorite talks—not just because of its keen insight on distributed computing and language design, but because of a more fundamental, almost &lt;em&gt;primordial&lt;/em&gt;, understanding of systems thinking.&lt;/p&gt;
&lt;p&gt;Abstraction is what we use to manage complexity. We build something of significant complexity, we mask its inner workings, and we expose what we think is necessary for interacting with it.&lt;/p&gt;</description></item><item><title>Infrastructure Engineering in the 21st Century</title><link>https://bravenewgeek.com/infrastructure-engineering-in-the-21st-century/</link><pubDate>Tue, 15 Dec 2015 18:57:41 -0600</pubDate><guid>https://bravenewgeek.com/infrastructure-engineering-in-the-21st-century/</guid><description>&lt;p&gt;Infrastructure engineering is an inherently treacherous problem space because it’s core to so many things. Systems today are increasingly distributed and increasingly complex but are built on unreliable components and will continue to be. This includes unreliable networks and faulty hardware. The 21st century engineer understands &lt;strong&gt;failure is routine&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Naturally, application developers would rather not have to think about low-level failure modes so they can focus on solving the problem at hand. Infrastructure engineers are then tasked with competing goals: provide enough abstraction to make application development tractable and provide enough reliability to make subsystems useful. The second goal often comes with an additional proviso in that there must be sufficient reliability without sacrificing performance to the point of no longer being useful. Anyone who has worked on enterprise messaging systems can tell you that these goals are often contradictory. The result is a wall of sand intended to keep the developer’s feet dry from the incoming tide. The 21st century engineer understands that &lt;strong&gt;in order to play in the sand, we all need to be comfortable getting our feet a little wet from time to time.&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>