COSS Community 🌱

Cover image for OCS 2020 Breakout: Marcel van Lohuizen, Google
Joseph (JJ) Jacks for COSS Community

Posted on

OCS 2020 Breakout: Marcel van Lohuizen, Google

Marcel van Lohuizen is a PhD in computer science. He is the co-creator of GCL, was on the founding team of Borg, a long-time member of the Go team and creator of CUE.

Relevant Links
LinkedIn - Twitter

In this talk, you'll learn how CUE eliminates the common pitfalls of configuration and how it unifies configuration, APIs and policy into a single framework.

Introduction to presentation and Marcel’s background from PhD to Borg to Go-team — 0:00

What is CUE used for? Presentation is focused mostly on Configuration — 1:30

What’s configuration management? — 1:52

Configuration is an aggregate of cross-cutting concerns — 2:10

No single direction of flow. Aspects of configuration — 3:05

Marcel speaks about Infrastructure as Code paradigm to manage complexity. However, code makes it difficult to communicate. This can get messy — 4:24 “Though IaC has been broadly adopted, it suffers from a major flaw: code does not provide a contract between the developer’s intent and runtime operation” — 5:00

Paradigm that aims to address problems with IaC is Infrastructure as Data (IaD). Idea is you can specify most elements and aspects declaratively. A dependency is just a list, and it’s just data. So this is focused on a text-driven and data-driven approach. — 5:14

Kelsey Hightower: “Declarative configuration is about treating infrastructure as data, which is more portable than code, and enables workflows that manipulate desired state based on policy, while serializing the results between each step of the pipeline.” — 5:55

Walking through Mike Hadlow’s Configuration Complexity Clock — 6:22

Can we have an approach that is like Domain Specific Languages (DSLs0 that doesn’t suffer from the drawbacks? Walking through DSLs and guidelines for picking a language — 8:25

“Override-style inheritance is the biggest source of complexity in configuration.” Importance of sticking to one-level of inheritance, and staying disciplined — 10:07

Do’s and Don’ts — 10:57

Is CUE the answer, and does it have the properties we want? Marcel walks through CUE’s properties and history — 13:14

What is CUE? A spreadsheet on top of JSON-like trees of data. Basically a logic programming language— 14:21

Walking through CUE Components — 14:56

Focusing on the CUE DSL — 15:45

CUE is Aspect oriented — 16:49

What does composability mean and why does it matter? Think about CUE as combining forms together. Forms can be not filled, partially filled, or fully filled, and combined as long as values are consistent. Order doesn’t matter, forms can be incomplete, and we can reason over incomplete forms — 17:59

Why does that matter? — 19:15

Demo time. Marcel walks through several live examples of CUE. — 20:30

CUE Usage in the Wild. Example use cases, and major users — 28:05

CUE State of the Union. Currently in alpha, approaching beta— 28:20

Share your questions and comments below!

Top comments (0)