Whether you are new to Google Cloud or an existing customer running thousands of workloads, one of the most common questions we get is, “How would Google architect and design my environment?” The answer to this question would truly be a dream come true, right? Just to set expectations, we won’t answer that here. This short blog is intended to give you a hint of how we’re thinking about this question, before taking a deeper dive into the subject in a future whitepaper. More importantly, we hope it gets you thinking about how you’d like to see us answer that question in the future. We’d love to hear from you, so if you are itching to tell us your cloud architecture dreams, you’ll find ways to let us know at the end of this blog.
Can We Talk About Architecture?
If you were to look up the term “architecture”, it’s likely there would be references to designing and constructing buildings or perhaps more broadly, designing and constructing “something”. When we think about cloud architecture specifically, we have certain requirements in mind and expectations for what we’ve built. Whatever it is we build needs to provide some utility to us. Technical architectures typically must meet certain non-functional requirements like resilience, performance, security, and more. One method of design takes functional and non-functional elements of an architecture and aligns them with a specific set of design principles. Design principles act as a compass for what you are trying to create. While they don’t define exactly how to get to your destination, they keep you pointed in the right direction. Using design principles is certainly not a new concept. However, a design principle driven approach to architecture allows us to come up with a slightly better definition of what architecture is. For purposes of the discussion here, let’s think of architecture as a purpose built service that conforms to a set of prioritized design principles. In other words, the thing that you’ve built is providing some value or utility to the organization and at the same time must have certain characteristics to stay on course with the “path” your design intended.
What is a Picture Worth?
It’s been said that cloud architects sometimes create a bunch of pretty documents and pictures but at the end of the day, those assets get shoved into a drawer; never to be read again. Assuming what we’ve designed has value to us, there are likely certain design principles that drive the architecture. We expect what we’ve built to not only provide some utility, but also meet the design principles we had in mind; secure, resilient, high performance, and so on. How would you ensure that your new system continues to meet the standards of design you’ve established? There are configuration management solutions like Chef, Puppet, or cloud based services like Deployment Manager… or Terraform. Those are all great at managing configuration, but are they managing architecture? Do any of these tools know that a particular managed configuration will affect a design principle like performance, security or resiliency? Are any of these tools guiding you on what should even be managed or configured to begin with? What do you do with these tools when there are new architectural requirements? We realize that these are more questions than answers. The point is that maintaining the integrity of your environment’s architecture is much different from maintaining the integrity of its configuration. In fact, if the design principles on which you based your architecture provide value to your organization, then one would think that maintaining the integrity of the architecture is actually the most important thing.
What’s Your Dream Cloud Architecture?
What would your dream scenario be with regard to your cloud architecture? If we had to guess, we think you’d want (at least in part) something that answered the first question posed; “How would Google architect and design my environment?”. What does this really mean to you though? Companies are very different and Google is no exception to that. What works for Google might not work for you. Would we ask you what you need to do and then based on your response generate an architecture? Would it mean you telling us what you prioritize, reviewing something you’ve built, and then providing specific recommendations? What if your environment changed? What if our cloud services changed? We are starting to think about how to approach cloud architecture differently and will be discussing more thoughts on the subject in future blog posts. Until then, we would love to hear what is important to you about your cloud architecture. If you’d like to learn more, take a look at the latest version of our Architecture Framework. If you’d like to connect with us, come talk to us in our community or share your cloud architecture dreams with us at [email protected].
Cloud BlogRead More