POSTS
Why did I decide to become Google Cloud Certified?
For the last several years I have been developing small and medium sized Django backend applications both, as an outsource developer-consultant and in-house. Sometimes small Django projects grow up and become medium sized ones.
However the initial development phase of a small Django project may include these steps:
- Understand the requirements
- Design the entities
- Bootstrap the project
- Implement models (entities and relations)
- Write the views and hook them to urls (APIs)
- Add tests
- Fix and tune the app
Then comes the time to share the work. Usually I would create one ore more Droplets in DigitalOcean and ask a Linux system administrator to set up the machines.
This pattern worked for me for quite some time until it was clear that soon I would be dealing with scalability issues. The only valid option I ended up with was to go with a distributed system. And with a distributed system I would face reliability issues. So I began to question myself how exactly should these topics be approached:
- Networking
- The CI and CD
- Monitoring and logging
Basically the question was: how to build a reliable web service?
Setting up all the bits and parts and managing it all manually seemed somewhat too complex, fragmented and unreliable. This would require a team work. The management overhead would have been way too expensive.
The Firebase trick
I enjoy using Firebase for app development. Compared to Django Firebase allows faster iterations and ease of deployment. And of course out of the box Firestore real time functionality is just awesome! Also it covers a lot of basic app development problems. If something is missing from Firebase itself most probably it could be found in Google Cloud. I have had this situation at least once when I needed a cron task to run each day. Firebase has schedule functions which allow to specify time interval to trigger. To use this I had to go to GCP Console and enable 2 specific API’s from there:
- Cloud Pub/Sub
- Cloud Scheduler
This made me curious and I checked the list of available Google Cloud products. The list seemed big with numerous products each having their own configurations and options. It felt so overwhelming. I thougt that to use Google Cloud in a cost effective and reliable way I would need to invest time and effort.
So I finally enabled the required for schedule functions invocation API’s and went on my project.
When I finally finished that project I checked the Google Cloud web page again. This time I was looking from a specific problem point which I mentioned earlier. Given I am developing a Django based project how would I:
- deploy it
- connect with a database and a messaging system
- scale horizontally
- securely communicate
- monitor the system
What I need was a tool that would let me be productive and use my time on building value not waste it to manage infrastructure. It was clear I have to learn.
Then I went to AWS and Azure web pages. These services offer similar to Google Cloud products. However there are some differences and flavors. The most interesting one was in the documentation structure and style. I ended up looking into Azure docs and playing with some tutorials and examples. Really enjoyed Microsoft documentation. But since I was already into Firebase the obvious choice was to go along with GCP.
Just reading the docs felt unproductive. I need to build stuff in order to really learn. So I googled. I can’t recall what exactly did I google at the time but at some point I ran on a Google certification web page.
Focus on the right certificate
After examining the certification web page I got the feeling that getting certified:
- I would certainly get acquainted to the services and get some hands-on experience (ACE)
- I would get deep enough knowledge and practice (Professional certificates)
- I could use the certificate to differentiate myself on the market (subjective)
There were several certifications that drew my attention. I had to choose one to begin with. That was what I understood as the introductory to GCP: Google Cloud Associate Cloud Engineer.
Preparation
The recommended way to prepare for the ACE exam is:
- Training (courses or study guide)
- Hands-on experience
- Practice exam
The hands-on experience with Qwiklabs Quests turned out to be the best option for me. Numerous labs made me familiar with not only GCP products but also with some best pracitces. Sometimes I referred to Google Cloud documentation to dig in a bit deeper.
I completely missed the «Official Google Cloud Certified Associate Cloud Engineer Study Guide ». I guess this lead to working on Quests that were more related to other certifications. But this allowed me to get some experience I needed to more deeply understand the workflow and design concepts. The more Quests I worked on (8 completed) more confident I became.
At some point when I felt that I already had gained some practice and knowledge I tried the «Practice Exam». The result: I totally failed on almost all Kubernetes related questions. I corrected my learning path, passed the practice exam once more and improved the result. However I’m still not fully confident on when to prefer Kubernetes over the Managed Instance Groups.
The day before the exam I passed the training once more.
Exam
The exam was pretty straightforward: a number of questions and possibility to review the answers prior the final submission. Right after the submission I was able to see the binary outcome: «pass». There was also a comment that it takes them up to a week or so to confirm thee result of the exam. I was happy and patiently waited for the confirmation email.
Certificate
Earning this certificate was not too difficult. But still, I had to go through something new. I had a chance to discover new ways of deploying and managing a distributed web app. Finally I can differentiate amongst different types of compute, storage and networking products.
What next?
Now I’m going through the study guide of the next planned exam: Mobile web specialist. It’s purely frontend developer one. Since I’m a full-stack developer I have always felt that I missed some topics in the frontend world. The study guide proves my feelings are correct.
Later on I will proceed to the next GCP Certificate. And this will require me to get more hands-on experience.