Sunday, July 15, 2018

Using Continuous Deployment to Drive Azure Footprint

About a month ago, Microsoft acquired Github for $7.5B, with the clear goal of driving developer engagement and beginning the long path towards rebuilding its relationship with a new generation of developers. While I appreciated Ben's perspective, I think that there remains another vector for growth that was conspicuously missing from his initial post: leveraging the Github developer base to tilt the scale away from AWS towards Azure for new projects and companies.

Building a new software company in 2018 involves a number of concrete engineering decisions that happen early on in company formation:

  • Where should we host our code to begin development?
  • Which frontend platform / language should we use (iOS, Android, Web, Native Desktop)?
  • Which baseline services (databases, authentication providers, analytics, payment processing) should we orient around?
  • Which cloud provider should we run everything on?
Historically, Microsoft had strong moat-enforcing solutions for every one of these questions; more recently, their solutions have been subject to increasing competition from third-party competitors. Additionally, as interoperability at the service layer (Microsoft's traditional strength) has increased competition and lowering the barrier for individual companies to build deep offerings in a specific segment of the service space (e.g. Okta in Auth), it seems like the critical question for Microsoft has to be how to drive organic Azure growth.

On the surface, building a new product or company is easier than ever - make an organization in Github, create a couple repositories (or one, looking at you monorepo folks) for your application and backend persistence layer, write some code, build a container and deploy it to AWS.

In practice, the actualization of this process remains a serious challenge to manage. Especially during the growth phase of a new company, maintaining quality and velocity is a non-trivial challenges. Writing and running tests, drafting and approving releases, phased deployment, zero-downtime schema migrations, and beta-testing new versions of a product is still a dark art that requires patching together a wide set of open-source and proprietary toolchains. 

Enter Github and Azure. The Github acquisition is the best opportunity for Microsoft to intercept new projects and companies before they release their first version to production, changing the default assumption. Almost definitionally, companies start writing code in Github before they start renting servers on AWS. As such, Github offers a brilliant wedge into the earliest phase off company formation, the largest existential threat facing Azure.

With a relatively simple toolchain for continuous deployment (augmented by a targeted M&A buying spree), I suspect that Microsoft should be able to convince Github developers that Azure is the best place to run their tests, compile their software, build their containers, and, most critically, deploy their applications to production on Azure.

This shift would be a total revitalization of Microsoft's cloud infrastructure, and would shift the balance of power between the cloud companies and heighten competition between the two behemoths in Washington. Also, as an engineer myself, I'm excited to see what a company who has focused so much on developers for the vast percentage of its history might do to the modern world of building incredibly complex cloud-based applications. Indeed, while I'm not making any bets on this path, winning developers in the cloud might also offer the best path towards reclaiming developers on Windows, thus extending and deepening the Windows moat by allowing native OS-level integration with Azure-based build systems and test infrastructure to reduce the burden on a local workstation.

Wednesday, January 3, 2018

My favorite books from 2017

I started 2017 with the goal of reading more about neoliberalism. Donald Trump had just been elected, and George Packer's The Unwinding was ricocheting through my head.

But actually, looking back, I didn't really touch neoliberalism at all. Instead, 2017 was primarily a year dominated by a deeper inspection of the Soviet Union, centralized planning, and the tension between nature, nurture, and society. So, without further ado, my top five books of 2017.

1. Life and Fate
I remember exactly when I first heard about Life and Faith. It was summer in New York, and I was running on the West Side Highway listening to Invest Like the Best, one of my favorite podcasts. The host and guests tend to spend a lot of time talking about what they're reading and learning, and for whatever reason, the guest that day decided to mention this completely undiscovered classic of Russian Literature. They way he talked about the book, well, I guess it's the way that I talk about it too. I don't know exactly why it stuck with me, or what made it so compelling, but I find myself coming back to it almost every week, thinking about the characters and the writer.

In any case, reading an unheard-of 900-page Soviet book on a whim was a weird decision that could have gone terribly poorly. I need to revisit the book and write a more comprehensive review, and I'll do that sometime later, but in the meantime, anyone who wants to hear more should just ask me directly; I don't think I'll ever get tired of talking about this book.

2. Secondhand Time
I found this book on a balcony, talking about Life and Fate with a brilliant fellow reader. It's a stunning non-fiction book that won the 2015 Nobel Prize in Literature. Set in the years leading up to and following the fall of the Soviet Union, it's a beautiful piece of literature that challenges the simplistic American perspective on Russia and the end of the Cold War.

3. The Gene: An Intimate History
I remain convinced that genetics is one of the most challenging areas for modern human morality - we are all different, and how we deal with these differences is going to be the seminal challenge in bioethics and politics over the coming decades. This book is a quick, well-written history of genetics, that concludes with some of the most challenging questions that we have in front of us: What is natural in a world of genetic engineering? Are we prepared to deal with the moral implications of the things we may learn over the coming decades? What happens if we learn things that are true but distasteful?

4. The Three Body Problem
Others have summarized this better than me, but this is the seminal piece of science fiction from the past few years. It's stunningly creative, and interestingly foreign; written by a Chinese author, it's a very different style, with a sweeping perspective that slowly zooms out from micro to macro over the course of the book.

5. Seeing Like a State
The seminal "libertarian-leftist" bible, Seeing like a state is a full-throated rebuttal to centralized control and utopian projects. This is a book that everyone in a particular cluster of society has read, but no one else have ever touched. Overall, the book explores themes of legibility and control, and explores a thesis that increasing legibility often fails to acknowledge its fundamental hubris and has historically failed to build in enough buffer for the "unknown unknowns" that eventually doom its projects. If every art becomes a science, Scott writes a cautionary tale for the scientists of the world: especially in complex systems, the arts can sometimes be imbued with tribal knowledge which the science must appreciate to succeed.