Retry

Although it brings lot of benefits, microservices environment is far more complicated than the legacy monolithic environment. In microservices environment, if retry is not handled very well, it may cause the breakdown of all downstream services – cascading failure.

As a former Java developer, I love Hystrix framework library. It provides excellent fault tolerance and latency tolerance for the interaction between microservices. I still could not find any similar libraries for Javascript and Golang.

When choosing or developing a retry library, what are important factors to consider? For me, there are 3 things to look at:
1. whether it supports exponential back-off
2. whether you can configure maximum number of retry as a circuit breaker
3. whether you can use and configure the library in a central place

There are a few articles I would recommend to read if you are interested in this topic:
Transient Faults Handling
Understanding Retry Pattern with Exponential Back-off and Circuit Breaker Pattern



Google Cloud Professional Cloud Architect Certificate

In the last few months, I have been spending my free time learning Google Cloud. I am glad that I passed the Google Cloud Professional Cloud Architect Certificate exam few days ago.

The whole story starts from early this year when I attended the Google Cloud OnBoard Melbourne. It brought my memory back to the time I was using Google App Engine and noticed how much progresses Google Cloud has made. I decided to learn more. So I did the whole Coursera specialization: Architecting with Google Cloud Platform. To be honest, I did not have much industrial experience at Google Cloud. But the courses were really helpful.

The difficulty level of exam is easier than what I was expecting. The style is quite similar to the AWS Professional Solution Architect Certificate exam, which includes case studies. I believe my expertise in the AWS helped me a lot in answering the questions.

One thing that I think Google Cloud Certificate exam is better than the AWS one is when you pass, you will have chance to choose a perk from google store.

My AWS Certification Journey

Recently, I passed my 5th AWS certification exam – AWS Certified DevOps Engineer Professional. And from last week’s AWS Certification Appreciation party, I was glad to know that I am one of few people who got all 5 AWS core certifications in Melbourne. I would like to share some tips here. 

Difficulty Levels

I started the whole AWS certification journey with the Certified Solutions Architect Associate exam, and then the Certified Solutions Architect Professional, followed by Developer, SysOps and DevOps exams. I would rank the difficulty levels from easy to hard: Developer, Solution Architect Associate, SysOps, DevOps, and the most difficult one, Solution Architect Professional.

There are some overlaps in the content requirement between Solution Architect Associate and Developer exams. It is not a bad idea to start with these two first if you are interest in getting certified.

Also, it is worth noting that it is a big jump in terms of difficulties from Associate level exams to the Professional level exams. For example, for the Certified Solution Architect Professional exam, most of time, you will be given long questions and all correct choices but you are required to choose the best one. If you do not have the deep understanding on the domains, it is very hard to get the expected answers. Furthermore, 170 mins for 80 questions, average 2 mins for 1 questions, I found it was very challenging. From my memory, I only had about 10 minutes of spare time after finishing all the questions for both professional level exams.

Training

Although I started using AWS since 2010 and have quite a lot of AWS project experiences, I used only less than half of AWS offerings. Taking online courses was a good way for me to cover the knowledge gaps. As suggested by many other people, A Cloud Guru and Linux Academy are two course providers I used for the preparation of the exams. I have done all the ACloudGuru AWS certification training courses and professional level training courses from LinuxAcademy. A Cloud Guru courses cover the domains required for the exams very well, while Linux Academy courses cover some important subjects in depth, are more updated and include well-designed practice exams. You may not need to do any of the Associate level courses if you have used AWS services on a daily basis.

Definitely, attending all of these courses will not guarantee that you will pass the exams. However, it is very helpful to form an idea on what knowledge you will need to pass the exams. For the services that you do not have any hands-on experience, it is beneficial to follow the hands-on labs and try them out.

Readings

On the AWS’ Certification Preparation guides, it is recommended to study a list of whitepapers based on the exams and review AWS FAQs. I found these to be very important. Since there are a lot of questions requiring deep understanding of AWS services, the whitepapers and FAQs are good resources for digging into the details. After finishing the online courses, I found them very clear to understand.

Practice Exams

For the professional level exams, after you think you have done enough preparation but before registering the exam, I would suggest you try the practice exams offered by AWS itself. Yes, it is not that cheap. It costs USD $40 for the Solution Architect Professional and USD $27 for the DevOps Engineer Professional. But they will give you an indication on whether you are ready for the exam, which will cost you USD $300 each exam. It took me 2 times to pass the Professional Solution Architect practice exam and at the end I only got 73% in the real exam, just right above the pass score.

Overall, I would say that compared with other certification exams I have achieved (e.g, Microsoft), AWS certifications, especially the professional level ones, are far more complex and they require a good level of working knowledge across the breadth and depth of the whole AWS platform. The entire process has been more difficult than I expected at the beginning. However, the journey was amazing and I feel like I have learnt a lot through the preparation. AWS will keep evolving at a fast pace, my learning will continue.