This was one of the certifications I've enjoyed the most. Maybe because it's covering certain topics which I'm into, things around cloud-native space. It was really fun to learn in the process of preparing this exam a lot around Kubernetes, serverless, design patterns and so on. I ended up finding things I didn't knew, although I'm working with this stuff daily. If you're thinking about taking this exam, it might be useful to check my thoughts below to prepare properly.
At the moment I'm writing this, Oracle is offering for free the training (the OCI Developer Learning Path on Oracle Education) and the exam. If you ask me, this is an opportunity which cannot be missed.
The official learning path is the best place to start. However, I don't think you will be able to pass the exam only with that content. You need to have a fairly good understanding of cloud-native, Kubernetes, serverless and so on. More than this, although the certification is covering some core services (Oracle Functions, Container Engine, Events, etc.) you need to know how everything fits together in the bigger cloud picture. Questions related to IAM and networking will pop-up through the quiz. I don't know how it works for you, but I would not be able to pass any exam without hands-on experience, so this is something I highly encourage. Especially for this certification.
Topics covered by the exam
If we start by taking a look at the official Study Guide, you will quickly notice that the topics are split into five big categories. I will do the same and cover each one by highlighting what you should focus on.
- What cloud-native is and what are the key advantages of following a cloud-native approach. Don't think only about the technical stuff, take into consideration also the operational and economical benefits.
- Key differences between containers/micro-services and functions: when to use which and what kind of administration tasks are required. Most of the questions are scenario-based, you having to choose the optimal solution.
- Cloud-Native design patterns and cloud communication protocols: things like choreography, aggregator and so on. There are plenty of useful resources on the internet covering this topic.
Developing Cloud-Native Applications
- Oracle Functions: check all the pages in the documentation and pay attention to details. You need to know the service inside-out: IAM policies, command line, how you can invoke the functions, etc. While for Oracle Cloud certifications you don't need to remember values for the limits, there is some key design consideration related to functions: execution time, max payload, etc. If you worked with Functions at least for a little bit, you will nail it :)
- Container Engine: Kubernetes knowledge is required. The questions are not going to assess your k8s competencies, but more the key differences when it comes to Container Engine. Being a managed Kubernetes service, there are things specific to OKE and the questions are addressing exactly that. Keep in the back of your mind how you operate OKE what needs to be changed in .yaml configuration files. Service Broker is important also.
Securing Cloud-Native Applications
- Focus on security: you need to know how each service is authenticating. Anything related to implementing security for a specific service can and probably will be covered by the questions.
- Defense-in-depth: the concept is explained really well by Oracle Education in the learning path, but if I would be you, I will research a little bit more on this topic. It's important not only for the exam but also to understand the principles behind Oracle Cloud.
Testing Cloud-Native Applications
To be honest, on this topic I didn't know too much. Not because I was not finding it interesting, but I never end up in the situation to run this kind of activity in production. And you know what? It was maybe the most fun and exciting part of the learning process. I ended up reading two books on testing software and especially testing cloud-native in the context of CI/CD. Besides the certification, this knowledge comes as the 2nd best outcome.
Operating Cloud-Native Applications
- There are some auxiliary services which help to glue up everything together: Events, Streaming, Notifications, etc. Don't oversee those! Maybe they are not as sexy as Functions, but if you're planning to operate solutions built using OCI in production, you will end up coming in love with them. Think about the patterns which can be implemented and how you would easily operate your solutions using alarms, automated responses, etc.
- Monitoring: you need to build, but you also need to maintain. Spend your time on Monitoring and it's querying capabilities, it will quickly become your best bud in the cloud.
Was it hard? If you have past experiences with Oracle certifications, I would say it's the same level of difficulty. You will find it much easier if you have hands-on experience. I've spent around 40 minutes going through the questions, and there was plenty of time left to review each question once again.
I didn't get the perfect score, so you should thoroughly check every question and make sure that you've properly understood it.
A certification for me is beneficial only if I'm going to use the knowledge I end up in real life. The certification itself is nice to have, but the knowledge to apply that in your daily activities is way more important. The benefit of the certification is that you're following a structure and you can be sure that you're focusing in the right direction. OCI Developer exam will enhance your technical expertise if you are an everyday OCI user or not.