An original version of this post was published in Portuguese on LinkedIn.
Developers should consider CFCD
As you can imagine from the blog title, I came here to share the reasons that led me to get certified on Cloud Foundry and to talk a little about the technology and its relevance for those who don’t know it yet. In addition, I’ll give tips on the exam.
This article is especially relevant for developers, as it is a certification for this audience. It can also be useful for managers and IT directors who are typically forced to do more with less every year. The article is especially relevant if you work in a large organization.
Don’t expect a deeply technical article.
Software development scenario in 2020
Imagine that your company has created 30 systems over the years (and this number is tiny for many companies out there) — and that they were created at different times, in different languages, with different development teams, etcetera, but all maintained and supported to the present day. It is natural with this type of scenario to have a very big distinction in the development cycle of each application.
- How do we deploy in production the bug fix of an export system made in Java?
- How do we transport the new version of the API made in NodeJS to the quality environment?
- How do we update the PHP version of the company’s website to support new features?
Most likely, each activity above is done with a potentially different set of tools: precisely because of the plurality of technologies involved. Also because of these facts, such activities are done by different people.
And the complexity doesn’t end there.
For some time now, developers often don’t depend on an infrastructure team to provide services such as databases, servers, etc. It is the “as a service” nature in which we live, thanks to AWS and other related companies. With that in mind:
- How do we manage which developers can update a given application in production?
- How do we define which developers can create a database as a service?
- How do we know which applications are up and running?
- How do we know which micro-services have had any problems recently?
When we put this on paper, we noticed that to support 30 applications in the company, we use another 60 tools, systems and platforms out there.
And the higher the complexity, the higher the costs.
And in 2020 you can’t escape complexity. Or at least part of it.
Cloud Foundry’s value proposition
Broadly speaking, Cloud Foundry standardizes the way a company manages the lifecycle of its various applications (not exactly all of them; we don’t include mobile apps here).
No matter the language, no matter if it runs on Windows or Linux, no matter the development team: everyone manages the applications in the same way and using the same tools.
Cloud Foundry is an Open Source project — which is an advantage against one of the biggest fears of many corporations: vendor lock-in.
If you are a well-informed developer and reading the above paragraphs, it might seem to you that Cloud Foundry is something like Git and/or Docker and/or a combination of things that already exist in AWS or some DevOps tool… well… not really. Cloud Foundry is a PaaS (Platform as a Service). Generally, Cloud Foundry will be used in combination with these tools. (If this got cloudy for you, comment on this blog or Slack me at fabiopagoti on Cloud Foundry Slack, and I’ll be glad to explain it in more depth).
Who provides Cloud Foundry?
On the Cloud Foundry Foundation website, you can see which companies provide the Cloud Foundry platform. The image below is taken from the site.
(It is worth mentioning that VMware was recently acquired by VMware.)
The fact that it’s the same platform internally across all Certified Providers means that you publish an application on VMware Cloud Foundry in the same way and using the same tools you use to publish the application on the IBM Cloud Foundry Enterprise Environment (CFEE) or SAP Cloud Platform, etc.
This means you don’t get stuck with one vendor — as long as the other uses this technology as well. And if none pleases you, it’s possible for your company to have its own Cloud Foundry platform.
There’s a lot more to talk about Cloud Foundry itself, but let’s get to the certification part that’s the focus of this article. If you want to know more about Cloud Foundry, visit the Why Cloud Foundry page, join Cloud Foundry Slack or reach out to me directly.
Why did I decide to do Cloud Foundry certification?
- Cloud Foundry is a stable and modern technology, not hype
- Cloud Foundry is used by giants like VMware/VMware, SAP, IBM
- Most end users are giant corporations
- HANA XSA (SAP technology that is relevant in my niche), is based on Cloud Foundry
- SAP has invested heavily in Cloud Foundry (and I work with SAP technologies on a daily basis)
- It’s open source and potentially useful no matter what language I work with in the future
- Apparently there aren’t that many certified developers out there (compared to other certifications)
These were the main reasons that led me to take the certification test.
Cloud Foundry Certified Developer (CFCD)
In mid-December 2018 I saw a tweet (unfortunately I don’t remember from whom but I recall it being a fellow SAP Mentor) saying that s/he had passed the Cloud Foundry certification exam known as CFCD.
I already had contact with Cloud Foundry by working with SAP technology and teaching some SAP-related courses at OVLY, but I didn’t know about the certification. I started researching it immediately.
I took an extremely basic course called “Introduction to Cloud Foundry and Cloud Native Software Architecture” on the edX website. This is a great course if you want to spend 2 or 3 hours looking at the basics of the concepts to understand what it is all about. However, this course does not cover 5% of what the certification requires.
To make it clear: you are not required to take the official course to take the exam. You can take (and pass) the certification exam without taking the course if you are already a Cloud Foundry expert.
Exam format and tips
The exam is online. You basically install a Google Chrome extension, open a website and through it access a Linux virtual machine.
While you complete the exam, an inspector watches you via your webcam and your monitor. Before the test starts, you need to show the inspector where you are because there cannot be other people, other electronic devices or other things in the room. I only had a microphone on the table and I still had to show that it was really a microphone. The inspection is mega rigid.
Everything in the test is done on the command line using a Cloud Foundry tool called CF CLI. Through it, a developer interacts with the platform. It’s a Linux without a graphical interface, so in some moments you need to open, edit, copy and move files and folders using commands.
In everyday life, the CF CLI is just an option. Each provider mentioned above has a portal that allows you to do almost everything the CF CLI allows, but using a graphical interface.
The minimum score to pass the exam is relatively high compared to other IT certifications: 80%.
The test is divided into two parts: practical and theoretical.
The theoretical part consists of 10 questions and counts 15 points at the end of the test.
The practical part consists of 10 labs/exercises (many troubleshooting) and counts 85 points at the end of the test. Therefore, practice is much more important.
The total test time is 3 hours and I, before taking the test, saw many comments saying that this time is necessary. I agree: it took me 2 hours and 30 minutes to complete the exam. I had difficulties in only one of the exercises. So the content needs to be sharp because if you lose time in the first exercises, you will certainly have difficulty in the last ones. As the exercises have the same weight, you can, at most, miss 2 of them + 2 questions from the theoretical part.
There is good news for those who want to take the test:
- The proposed scenarios are not complex. In fact, those who are used to using Cloud Foundry on a daily basis will not have greater difficulties in the test.
- You can consult the official documentation in an extra tab of your browser. Google is not allowed. Only the official Cloud Foundry site. However, believe me, there is no time for you to search through the site if you are not used to finding what you need there quickly. This detail of being able to consult makes total sense. That’s what a good developer does every day: s/he works with the documentation. The exam does not check whether you are able to simply memorize every minor technical detail.
- Finally, there is no contact with any kind of source code in the exam, although the certification is directed at developers. The focus is on the use of the platform.
The result of the exam comes out in up to 3 days. I imagine this is because the correction is not automatic: someone needs to see what you did in the environment and how you did it.
Since it’s easy to prove that your answer works and is correct during the test, you end the exam with a good sense of how well you’ve done.
At the end of the test, I was sure I had a good chance of getting an excellent score. Luckily I got everything right. The result came by e-mail right on Christmas Eve.
Cloud Foundry is definitely a technology worth understanding. Much of what you see out there explains how the platform works internally. Although interesting from a technical point of view, the most interesting thing in my opinion is the productivity that a company can gain by having a team of developers who have been certified on Cloud Foundry — and the productivity gain that developers achieve by becoming certified.
- Does your company use Cloud Foundry or are you considering using it?
- Are you interested in taking the test?
- Have you ever read about Cloud Foundry and been interested in it?
- Do you want to read more articles about it?
I imagine that if you’ve gotten this far in reading, some of these questions make sense to you.
I hope this article is the beginning of an excellent learning experience. Don’t forget to comment or Slack me if you are in any of these situations. Good luck!