 Hi, I'm Emily Freeman, I'm the author of DevOps for Dummies and the co-curator of 97 Things Every Cloud Engineer Should Know. I think about all things DevOps at AWS. Broadly speaking, GitOps is a way of declaring the desired state of a system. But more than that, it's a way of capturing complexity so that the human brain can keep up. Our brains are capable of incredible memory storage and recall, but there are limits. And the truth is our systems have long exceeded our ability for our brains to keep track. Like the machines we work on, our brains are pretty efficient. The first and most important step is whether a piece of information even gets stored in long-term memory. You can likely recall what you ate last because it's in short-term memory, but you probably can't tell me what you ate for breakfast six days ago because your brain threw it in the garbage, so to speak. It wasn't important enough to remember because your brain knows that you don't need to know what you ate in number of days ago. It's not important. For long-term memory, your brain typically stores things by attaching a queue to the image or memory or idea, and that queue anchors it to other things stored already in your brain and assists with recall. It creates a sort of graph database. You remember a memory based on a smell or no solution based on a familiar pattern. I have aphantasia, which sounds more serious than it is. It basically means that when I close my eyes, I don't see anything. Just dark gray and an AWS logo. I'm kidding. If I think of an apple or a beach or my mother's face, I can't picture it in my mind. There's just gray, but I want you to close your eyes and picture a quarter or a penny or some other kind of common coin you're familiar with. Now, I'm confident that you know what color it is approximately, how big it is, whose face is on the coin, but what's on the writing at the top or what's depicted on the back? Where is the year it was made printed? I'm guessing you don't know. I didn't. I had to go look it up. Now I thought I had a pretty good idea of what a quarter looked like, but I would have struggled to draw it with any real accuracy. This is because my brain doesn't need to recall exactly what a quarter looks like. It just needs to know that it's different from a penny or a peso or a pound. That simplification is an abstraction that gives me only the information I need in a given moment. We talk a lot about abstractions as engineers. Now what we usually mean is that we're obfuscating logic or creating a separation of concerns by removing overhead from an engineer. And this is because computer scientists have long used the word to mean removing certain details to focus on broader concepts. Especially over the last few years with the surge of cloud adoption, abstraction has become one of those tech buzzwords that we all use ad nauseam, but never clearly define. In visual art, abstraction is selecting elements of an object and reducing it to its most basic lines, shapes, and textures. Picasso was one of those rare artists who was capable of classical painting techniques, but due to his extraordinary talent was utterly bored with the old ways of doing things. He eschewed realism and classic perspective for abstract renderings and cubism. His series of 11 lithographs called letaro or the bull convey a step by step reduction of an image from a realistic bull to a sketch of roughly 10 lines illustrating the most basic form of a bull. A true master, Picasso stripped the bull of every unnecessary detail while retaining the spirit or essence of the animal. I think it is one of the most stunning visual representations of abstraction in the world. Abstractions exist outside of art museums too on the very streets we walk. The reason we no longer build buildings like Versailles is, well, one, it was so expensive a few people lost their heads, but also because something called the modernist movement. In the late 19th and early 20th centuries, architects began to buck traditional aesthetics. Instead of ornate facades, designers focused on the materials from which a building was constructed and basic geometric shapes. Frank Lloyd Wright was a pioneer of modern architects. The house falling water in mill run Pennsylvania shows stark lines, rectangles, harsh stone. Its sharp design contrasts the natural movement and soft lines that almost sway of the woods cradling the structure and the flowing waterfall over which it is built. You can see the same focus on shape and form in the Guggenheim Museum also architected by Wright. But here's the important part. While these structures are abstractions of the more traditional, more ornate forms, they are still very clearly buildings. And Picasso's bull was still very much a bull. The abstraction didn't change the object, it simplified it so it could be observed and consumed in a different way. In this distilled form it is more purely itself and somehow I think in that clean simplicity it more boldly declares itself. Abstractions are useful not because they distract or ignore data but instead home in on the important bits. GitOps and other abstractions are our modernist movement. We've developed ways to better see the essence of our socio-technical systems. But more than that we've created a way to declare our vision for what our system should be, not just observe and react to what it is. Out of the modernist movement came this manifesto of futurism and in it a poet described futurism as a rejection of the past and a celebration of speed and industry. I am fascinated by the fact that speed, futurism, machinery, revolution and abstractions were tied together long before a computer was a thing. For me there are two rules of abstraction. The first is that it must be reversible. Abstractions purposefully remove detail but it doesn't mean that the detail isn't important. And this is where GitOps infrastructure's code, sometimes even good old source control, becomes critical. I like to think of abstractions as almost separating a system into layers. Each layer can be observed and evaluated independently but also holistically because anomalies only become patterns when they're viewed from a broader perspective. The second rule is that no abstraction should require superfluous documentation and let me show you why. This is a high fidelity image of an outdoor staircase. If we strip the photograph of all its color we can more clearly visualize the way that light creates her shadow and lines. And if you sketch over it you can highlight the strongest lines of the original photograph. You can still see the stairs and a sort of balcony on the left. You can imagine a window above the negative space on the right but I want to go even further and abstract this to its most basic lines and shapes. Now when I made the image partially transparent and really squinted my eyes to see only the most prominent features I ended up with this. Now outside of being clearly the next modern masterpiece this is an example of abstraction going too far. The only reason you have any clue what it represents is because you have the knowledge bias of seeing the original. This goes beyond useful abstraction and into abstract expressionism. It's the equivalent of clever code that's so indecipherable by future developers that it's worthless. As the single source of truth in our system GitOps enables engineers to focus on what they do best solve problems. It serves not only as canon for the desired state of a system but is reversible and self-documenting. It abstracts the complexity of a system without exaggerating the simplicity and this is why it's such a compelling approach to managing infrastructure. Just like a quarter or a penny or a peso you don't need to recall with perfect precision the declared or observed state of your system. GitOps enables you to know when there's divergence between what should be and what is. And isn't that what every technical abstraction should do? Remove the noise and highlight the important. Thank you so much for having me.