Pulumi embraces infrastructure as universal code with CrossCode – The New Stack


Joe Duffy

Joe Duffy has made it its mission to Pulumi a leading cloud engineering platform and with the latest release of new features taking universal Pulumi Infrastructure as Code (IaC), it pulled it off in spades.

Duffy, co-founder and CEO of Pulumi, started the company with the goal of providing infrastructure teams, developers, and security engineers with a software engineering process to deliver modern cloud applications faster and better.

Eric Ruder

A former Microsoft DevDiv bigwig himself, Duffy has partnered with Eric Ruderanother legend from the Microsoft Developer Division (former CTO and EVP of Microsoft, now Executive Chairman of Pulumi), and others to launch Pulumi in 2017. They also enlisted Luke Hobananother former Microsoft software engineering prodigy (and co-creator of TypeScript), to serve as CTO.

The cross code is the key

The decision to make Pulumi IaC universal is underlying the Pulumi CrossCode translation technology that the company introduced to its PulumiUP virtual conference last week. Pulumi CrossCode is the universal infrastructure translation layer of Pulumi as a code engine that enables development and operations teams to create infrastructure in the most popular programming languages; convert any code-format infrastructure, including Terraform, CloudFormation, Azure Resource Manager, and Kubernetes configuration, to Pulumi; and interact with all existing frameworks managed by other frameworks as code systems.

Indeed, CrossCode is what allowed Pulumi to provide newly added support for Java and for YAML. Pulumi now supports all Java Virtual Machine (JVM) languages ​​(Java, Scala, Clojure), adding to existing support for .NET (C#, F#, PowerShell), Node.js (JavaScript, TypeScript) , Go and Python. Pulumi also announced support for YAML, providing a simple declarative format for producing or consuming infrastructure as code, enabling simple use cases and better usability.

Pawel DolegaCTO VirtusLab, said that VirtusLab has applied its experience of the JVM ecosystem to Pulumi to help bring support for Java and other JVM languages ​​to the open source Pulumi project and now to the core product.

Plus, with new support for Java, Pulumi extends its platform to millions of Java developers. Java is currently used by more than 35% of developers, according to the 2021 StackOverflow Developer Survey.

“We support Java as a new language in the Pulumi ecosystem. And it’s not just the Java language, but the whole Java ecosystem,” Duffy told The New Stack. “So this includes all JVM languages ​​including Scala, Clojure, Groovy and Kotlin – we’ve seen a lot of interest in Kotlin. We support all tools, all package managers, like Maven, all frameworks of test…and over 80 different cloud integrations we have available are all available for Java.

CrossCode is comprised of Pulumi’s open-source code generation, program generation, schematic, and package generation software.

Essentially, “CrossCode is basically a language- and cloud-neutral type system that lets you project onto these cloud providers – of which we have a lot – anything that can be schematized in all of these languages ​​at the same time, with a socket full fidelity support across all,” Duffy said. “That’s how when we introduced Java, day one, we were able to support the entire Pulumi platform. Thanks to CrossCode CrossCode is a library you can depend on.

Over time, Pulumi will create an ecosystem of multilingual tools that depend on this technology.

secret sauce

Multilingual CrossCode technology is really the “secret sauce” to how Pulumi works, Duffy said.

“CrossCode translates the same infrastructure and policy building blocks between different languages. It’s the foundation for consistent application stacks across languages ​​and it also provides a ‘bridge’ to YAML,” said Torsten Volk, analyst at Enterprise Management Associates (EMA). “Having Java guys, Python guys, and JavaScript guys accessing all infrastructure objects configured, audited, and governed consistently for AWS, Azure, GCP, Kubernetes, etc., is a big deal in a world where application stacks include dozens of, often cloud-specific layers CrossCode provides consistent control across languages ​​to enable developers to write applications and infrastructure that go together optimally without creating an uncontrollable management nightmare .

The Microsoft connection

From left to right: Luke Hoban, Eric Rudder, Joe Duffy

Duffy and Rudder worked on the Component Object Model (COM) and the Common Language Runtime (CLR) while at Microsoft. COM is Microsoft’s old binary interface standard for software components that was created to allow the creation of inter-process communication objects in a wide range of programming languages. The CLR is the virtual machine component of the .NET Framework. It facilitates the design of components and applications whose objects interact between languages.

“COM and the CLR were/are mostly about portability and working in different environments, so CrossCode translation is relevant, albeit on a fundamentally different scale given Pulumi’s relative size to Microsoft,” said Stephen O’Gradyanalyst at RedMonk.

Still, the shared story came in handy.

“Obviously we share a story with Microsoft. And in my early days, I was working on COM,” Duffy said. “COM was a multilingual runtime with a lot of similarities to what we built with CrossCode here. Obviously I worked on the Common Language Runtime and there are similarities as well. Eric and I both worked on that genre many times over our careers, there are a lot of lessons learned that we apply to what we do with Pulumi.

Duffy and company started Pulumi by branching off the V8/Node.js runtime. Very quickly they decided they wanted to go beyond JavaScript to support other languages ​​and they knew they would eventually need to build a multilingual runtime environment, but weren’t sure how. form it would take. Then, about two years ago, the company started serious work on what would become CrossCode – allowing key customers who needed multilingual support to try it out and help polish it.

“I’m so grateful that we were able to tap into the CLR and COM experience,” Duffy said.

At this point, the key idea of ​​CrossCode is similar to COM, but the context is different,” Volk said.

“The CrossCode layer allows Pulumi to CrossGuard policy as a code platform to monitor and enforce the same compliance packs across Python, Java, JavaScript, and other supported languages,” Volk told The New Stack. “This gives you the flexibility to make changes to a universal compliance service which will then enforce your specific set of controls consistently across all languages. This allows you to declare a set of requirements that must be met for an application to build successfully, in Java, Python, etc. Based on these declarative requirements, you can then offer autocorrect, approval workflows, and more.

No YAML area?

Meanwhile, new support for YAML, Pulumi enables a simpler standard markup format for expressing infrastructure as code, which continues to tap into its multilingual ecosystem, the company said.

“A lot of people think Pulumi is the ‘no YAML zone’ or something, but the L is for language, right?” he said. “We are happy to accommodate all languages ​​on the platform, but we really understood the importance of YAML.”

Modern language support

To build its Blockchain Platform-as-a-Service, Settle Mint needed a modern infrastructure as a code platform capable of meeting the requirements of multiple clouds, blockchain protocols and distributed architectures, said Roderik van der VeerCTO and founder of the company.

“Pulumi’s support for modern languages ​​along with its programmatic API interface is a unique and powerful combination that allowed us to dynamically automate infrastructure provisioning for the SettleMint platform,” he said.

New packages, components

Pulumi also added 30 new packages, including support for Oracle Cloud, Databricks and EventStore, adding support for Amazon Web ServicesMicrosoft Azure, Google Cloud, Kubernetes, Auth0, CloudFlare, Confluent Cloud, Datadog, DigitalOcean, Docker, GitHub, Kong, MinIO, MongoDB Atlas, pager, SnowflakeSpot by NetAppand SumoLogic.

Additionally, the new components include out-of-the-box support for container applications, Kubernetes clusters, serverless applications, and more. And a new AWS Cloud Development Kit (CDK) The adapter allows any CDK package to be consumed from Pulumi.

“With these new features, Pulumi strives to meet a wide variety of IaC practitioners wherever they are, whether they are developers who prefer programming languages ​​such as Java or operators who are more familiar with YAML” , said Kelly Ann Fitzpatrick, analyst at RedMonk. “As infrastructure setups become more varied and complex, and organizations struggle to staff and train the teams that deliver and maintain it, Pulumi makes it easier for their users to leverage the skills and expertise.Adding support for Java programming languages ​​is particularly important to the company given its historical affinity for Java.

All of these new features integrate with the Pulumi Cloud Engineering Platform, which includes reusable multilingual components, secrets management, CI/CD integrations, policy-as-code and the Pulumi registry, the company said. society.

The New Stack is a wholly owned subsidiary of Insight Partners, an investor in the following companies mentioned in this article: Docker.

Image selected by mohamed hassan from Pixabay


Comments are closed.