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.
“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.
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.
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.
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.