How to Prepare for the Google Cloud Architect Certification Exam
Early February, I got email from Google saying I had passed the Cloud Architect certification exam. Yay! This post reflects what helped me preparing for the test.
In best Google manner, in November or December 2016 the company launched a beta program for Google Cloud certification, at a reduced price of 120 USD. Now, right in time for the upcoming Google Cloud conference “Next” in March, the program has left beta status and costs 200 USD for the two-hour certification test. The beta test lasted 4 hours in total, with an extended questionaire which gave Google the opportunity to test and tweak. In fact, some questions where asked 3 or 4 times with slightly different settings or answers.
Their whole approach to certification is very different to what other organisations take, as I will detail below. Some of my colleagues told me that for a Microsoft certification they lock themselves in at a remote location, taking a class for five days while spending the nights repeating the material and on the 6th day you take the test – which a lot of people fail. I know I’m bad at this kind of overwhelming pressurized learning, so I did no exam for 20 years, with the exception of a German Mensa test. And I never missed having any certification on my CV. But it definitively feels better having added such a certification title.
At first I hesistated to take this exam, too, because I feared that I had not enough knowledge and experience with Google Cloud itself. Additionally, unfortunately there were no testing sites conducting the exam here in Frankfurt, adding travel cost and time onto the net 4 hours the test itself would take. Nothing too bad, but I lost a full day of consulting. Finally, I needed to prepare a little bit and I had only about one week before the last feasible test date.
In the end, I decided to give it a try. It was too tempting at the low price point and given how Google positions the test. More on that shortly.
Not unexpectedly, the beta exam itself consisted of a fair number of multiple choice questions. Some of the questions were not asked in isolation, but belonged to a larger context. I found this very intriguing, since every technical question only makes really sense in the context. Of course, we all love to discuss a lot of technical problems in length in isolation and absolutely (“C on Linux is always faster than Go on Windows!”… heated discussion follows for the next hours…), but in an actual project you should always finally be able to justify every direction you take going back to the business you are doing.
I got through all the questions one-by-one within three hours. I marked a good number of questions for review so I had one hour left to contemplate the more challenging questions. At the end I knew that at least I had not failed miserably, but some questions seemed to have more than one proper answer. So, since I didn’t know the scoring, in my own assessment I could have failed or passed with a 1:1 chance. However, I really enjoyed the test, it was challenging, but satisfying work. I think the main reason I felt this way was because of the broadness of experience which I could bring to the table, and this broadness was actually called for.
Pass or Fail
What added a little bit to the uncertainty was that for a lot of questions you had to keep in mind and take into account not only the verbatim question itself, but also the setting of the question. You are confronted with solving a technical problem, but – as in reality – there is more to consider than just pure technical aspects, like business limitations (“reduce costs”, “find the simple solution”) and even a company’s strategical direction (“foster innovation”, “move away from known technical territory”).
Later I read how Google thinks about scores and passing/failing (emphasis by me):
Why don’t I receive my score or any feedback when I submit my exam?
Our exams are not designed to be diagnostic. Rather, they are designed to determine whether or not an individual meets a passing standard. For this reason, we only provide pass or fail information. Furthermore, because of the way our tests are designed, numerical scores are not meaningful for the examinee. Someone who gets 76% of the questions correct is not 4% more skilled than someone who gets 72%. The actual passing criteria are based on the judgement of subject matter experts and statistical analysis and may change when content changes. For this reason, we no longer provide numerical scores.
My interpretation would be that Google reviews every test taken and does a due dilligence. In line with the earlier Job Role description, this is what I suspect are their criteria to let a person pass the exam:
- shows know-how distributed over all/most topics
- shows in-depth, as well as broad knowledge
- can adopt to different given problem domains
- can flexibly handle changing and evolving business environments
What Google suggests
When you look up what Google sugggests to prepare for their Cloud certifications, this is what you’ll find in the FAQs:
How can I prepare for the exams?
Real-world, hands-on experience is the best preparation.
Okay, sure. It goes on:
Our certification exams are designed to identify individuals who demonstrate skills using Google technology to perform critical job tasks. We list these tasks in our exam guides. Please refer to the individual exam pages to review the relevant exam guide and learning resources that we believe can help you build the foundation you need to get started.
The exam guide is not so much a “guide”, but a rather comprehensive list of topics you could be confronted with in any senior architectural role. So it makes sense that the top of this very guide displays a job description:
Job Role Description
A Google Certified Professional - Cloud Architect enables organizations to leverage Google Cloud technologies. Through an understanding of cloud architecture and Google technology, this individual designs, develops, and manages robust, secure, scalable, highly available, and dynamic solutions to drive business objectives. The Cloud Architect should be proficient in all aspects of solution development including implementation details, developing prototypes, and architectural best practices. The Cloud Architect should also be experienced in microservices and multi-tiered distributed applications which span multi-cloud or hybrid environments.
Wow, this is asking a lot. It took me a number of years to aquire that kind of experience. As a freelancer, I’ve seen a lot of projects and read a lot of code and material. I started early looking into Hadoop, for example. All in all I guess it took me ten years of work to build that level of know-how. Probably, the years before have not been useless, too.
How many people are in a similar situation? Obviously a lot of the Googlers themselves. But besides that, when I look at regular developers which don’t specialize for years in distributed systems or all the stuff behind today’s cloud technology, I don’t see a lot of candidates out there. However, I agree that all of Google’s requirements are valid in everyday’s business.
As far as I recall the test, only 1⁄4 to 1⁄3 of the required know-how is purely detailed Google Cloud knowledge, the rest is either Cloud best practices, architecture best practices or understanding of general business requirements and strategies.
So, in order to prepare for the test, what helped me?
(Disclaimer: I took the beta test. I don’t know how the final exam looks like. It’s only my guess that it looks similar. Depending on your style of learning, those suggestions might not apply to you.)
Read the Online Documentation
Google Cloud documentation is very good. What helped me get through it in time is that it is very much to the point. Compare this to Microsoft Azure and MSDN articles, which would have taken me a lot more time to go through.
I read through everything: Compute, Storage, Network, etc. Afterwards I felt that I had underestimated App Engine. And I should’ve taken deeper dives into Cloud DataStore/DataProc/DataFlow. When preparing, I definitively neglegted GSuite completely. I simply didn’t realize that it is relevant to Cloud, too.
A lot of the details are important to the exam, but by no means is it enough to pass. The exam didn’t ask for exact VM sizes or IOPS calculations (as these numbers might change over time as the Clouds evolve), but they are relevant and it is especially crucial how all things works together. However, lot of questions deal with general aspects of Cloud Architecture, which are not specific to Google Cloud.
Google Code Labs
Take the Code Labs (categories Cloud and Firebase). Code Labs are hands-on self-teaching tutorials. You can either read through them, or actually apply a use case step-by-step. They vary in length. I took only some of the short ones, because of my preparation time restrictions, but some command line know-how is actually useful for the exam.
Read the book “Site Reliability Engineering”
Luckily, in December I had read the magnificent OReilly book
Site Reliability Engineering (SRE) describing Google’s take on DevOps. It is now available for free, but I’d recommend you actually buy it. More than once it was easy to pick an answer because this book is very good at outlining Google’s take on how to handle Cloud environments, just like they do with their very own products.
Planning ahead for capacity and resources, defining SLIs, SLOs and SLAs, how to handle production problems and so on.
One indication how much of the influence of the SRE methodology is bleeding through to Google customers is the last section in the Google Cloud docs, the Launch Checklist which is based on the SRE Launch Coordination Checklist which is mandatory for every product launch at Google. Another one is of course the Customer Reliability Engineering role, which are engineers acting as liaisons for Google Cloud customers.
Work on a True Cloud Project
Here, please take the Google advise very seriously, but don’t focus too much on Google’s Cloud. I worked on a Microsoft Azure cloud project for 14 month now. Some of the experience we made was important for the test even though it was not Google’s cloud. In every cloud environement you will run into quotas and obscure errors caused by quota limitations. In fact, very different to your own hardware, scaling a resource in one aspect (e.g. disk size) also changes other parameters (e.g. network throughput). Regardless of the cloud service provider, automation is crucial, integration into your development is possible and suggested, log files can be found… somewhere, and dashboards are pretty.
Listen to the Google Cloud Podcast
I don’t think it is really required to certify successfully, but if you’re a less visual type and more audio, some episodes might help you. Being a regular listener to the weekly podcast over many months, I can’t tell exactly which information I extracted from it which was useful in the test. But I’m sure it didn’t hurt.
The podcast episodes touch all aspects of Google Cloud, especially those the Google Cloud Advocats find important talking about. There should be some overlap with certification questions.
Check the Guide
The exam guide for me only acted as a checklist of what topics I had to cover in preparation. That’s why it ranks relatively low in the list of preparations. Still, I didn’t prepare some of the topics like the legal stuff. HIPAA and COPPA are simply unheard of in this part of the world.
Google put up two example questions. One is representative in style to how the questionaire is presented. Because of the sheer breadth of the topics covered, both don’t give you a good indication of whether or not you are able to succeed. However, if they act as appetizers, like they certainly did for me, that’s fine.
Good luck taking the Google Cloud Architect Certification exam!