Trending: Capital gains tax ruled constitutional by Washington state Supreme Court
Brendan Burns, distinguished engineer at Microsoft, unveils his proposal for software libraries that could make it easier to deploy cloud apps at KubeCon 2017. (GeekWire Photo / Tom Krazit)

Writing software is hard enough, but deploying that software to the cloud is much, much harder. Microsoft’s Brendan Burns, who literally wrote the book on how to manage distributed cloud systems, now wants to give developers the tools to write apps with distributed cloud computing in mind from the first keystroke.

Metaparticle is a new open-source project unveiled by Burns, one of the co-creators of the Kubernetes container-orchestration project, at KubeCon in Austin, Texas last week. “I am incredibly excited about empowering people to build systems they might not otherwise be able to build,” he said on stage last Wednesday in what was probably the most interesting announcement of the week.

The project aims to develop software libraries that can be used with popular programming languages like JavaScript/Node.js, Java, and C#, with support for other cloud stalwarts like Python and Go expected to be added soon. These libraries will allow software developers to write code in the vernacular of their language that containerizes their app and deploys it to Kubernetes, which even in late 2017 is still one of the more difficult skills on the planet.

“At a higher level, as we move toward a world where every program is a cloud-native program, we should expect our programming languages to adapt to become cloud native themselves,” said Burns, who joined Microsoft in 2016 and is now a distinguished engineer, in an interview Monday during which he expanded on the ideas he presented last week.

(Pixabay Photo / CC0)

Containers and Kubernetes are two concepts that are core to cloud computing thinking. Containers allow apps to run across lots of different servers, and Kubernetes gives those who have invested in containers a way to manage and deploy clusters of those containers.

But in order to actually do this, the operations person responsible for cloud infrastructure has to write a bunch of code in totally different languages to make everything work. Other than the surprise snowstorm in Austin last week, more people at Kubecon complained about the YAML programming language required to do all this than anything.

“People who build programming languages think a lot about, ‘how (hard) is this language to learn? The deployment languages of the world were designed by practitioners who had problems to solve, and not necessarily language providers,” Burns said.

Metaparticle hopes to automate much, or all, of that complicated work, giving developers a way to spin up containers and deploy to Kubernetes in an app’s native code. As developers start to better understand how operations tools like containers and Kubernetes work, those concepts might spark new ideas for applications or development techniques, Burns said.

“Ultimately what I would say is that the motivation is to broaden the set of programmers who can build cloud-native applications. Right now, we have a relatively large group of people who know how to build a JavaScript front end web server, or write an Android application. The set of people who know how to build a cloud native app is maybe a tenth of that,” he said.

This problem, in many ways, is the history of computer science. Extremely hard computer science problems tend to be understood by a relatively small number of people, and once those problems are solved they’re turned into abstractions that allow larger numbers of people to move forward.

This is how Metaparticle allows Javascript developers to set up containers right in their usual workflow. (Metaparticle Photo)

Nobody writes super dense and boring machine code anymore, for example, but that was part of the cost of doing business in the early days of the computer industry. That problem was solved when Grace Hopper invented the compiler, which is Burns’ leading metaphor for Metaparticle at the moment; a compiler for Kubernetes.

Burns is very careful to describe Metaparticle as “an experiment.” A lot of work remains before he would advise anyone to use it for actual production systems, probably a few years worth. He’s hoping to strike lightning twice, building a community around Metaparticle the way the community built around Kubernetes turned it into a de facto standard for container orchestration this year, just two years after it was released.

It’s become quite clear over the last couple of years that cloud computing and its associated concepts, like containers and microservices, are forever changing the way software will be developed. To take the next leap forward, someone needs to help a generation of developers understand what they can accomplish with distributed systems.

“If you do this, dramatic things happen in the space,” Burns said.

Like what you're reading? Subscribe to GeekWire's free newsletters to catch every headline

Job Listings on GeekWork

Software Engineer III – DevOpsNational Center for Atmospheric Research (NCAR)
Technology Services SpecialistGlobal Innovation Exchange, University of Washington
Find more jobs on GeekWork. Employers, post a job here.