Chapter 1. Introduction to the KCNA Certification and Study Guide
The momentum of the cloud native movement is unstoppable. Not only because of the Kubernetes project (don’t worry, if you don’t know about it, this book will equip you with all relevant information), but also thanks to the exponential growth and contributions of the cloud native community in recent years. Community-led ecosystems exist today for organizations, professionals, and even investors, and the Cloud Native Computing Foundation (CNCF) is playing the primary role as a catalyst. If you look at the CNCF Landscape, you’ll see more than 1,200 tiles that represent the large and small companies involved in cloud native activities, about 820 company members, and a rich list of projects with an amazing level of community engagement.
Defining Cloud Native
But before we dive in, what exactly is “cloud native,” and what does it mean for an adopter company? We will discuss the difference between general cloud computing and cloud native later, but even if “cloud native” has no single definition, let’s take a look at CNCF’s definition as a guiding force:
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
In short, this means having access to technical benefits typically related to cloud-enabled systems, regardless of the work environment. Let’s look at other definitions from big technology companies, which are obviously related but bring different perspectives, depending on the organization and its experience:
-
Cloud native is an approach to building and running scalable applications to take full advantage of cloud-based services and delivery models.
- Red Hat
-
Cloud native applications are a collection of small, independent, and loosely coupled services. They are designed to deliver well-recognized business value, like the ability to rapidly incorporate user feedback for continuous improvement.
- Microsoft
-
Cloud native architecture and technologies are an approach to designing, constructing, and operating workloads that are built in the cloud and take full advantage of the cloud computing model.
- IBM
-
A cloud native application consists of discrete, reusable components known as microservices that are designed to integrate into any cloud environment.
- Oracle
-
The term cloud native refers to the concept of building and running applications to take advantage of the distributed computing offered by the cloud delivery model. Cloud native apps are designed and built to exploit the scale, elasticity, resiliency, and flexibility the cloud provides.
- Amazon Web Services (AWS)
-
Cloud native applications are software programs that consist of multiple small, interdependent services called microservices. Traditionally, developers built monolithic applications with a single block structure containing all the required functionalities. By using the cloud native approach, software developers break the functionalities into smaller microservices. This makes cloud native applications more agile as these microservices work independently and take minimal computing resources to run.
Besides the fact that cloud native is a fundamental building block for all these companies’ businesses, and regardless of the specific definitions, the important point of cloud native development is the ability to leverage capabilities from cloud computing, and to develop applications in a sustainable and scalable way by applying microservices, containerization, and other technologies and approaches.
But this level of adoption took some time. Over the last two decades, we have seen the beginning of what we define as the new era of cloud native. It is a new era because of the appearance of CNCF, which has been growing since its founding in 2015, at both the community and technology level (we will explore this further in Chapter 3). This generated not only a wide level of adoption of cloud native technologies such as Kubernetes, but also the creation of a solid community of experts and adopters. Last but not least, the Foundation has provided a multitude of events, training options, resources, and new projects in recent years.
In parallel, the initial resistance of some public and private organizations to any cloud-related topic, due in part to data residency and privacy concerns, is progressively disappearing. The cloud paradigm is becoming clearer for everyone, as well as its advantages for adopters. People are searching for ways to leverage the numerous cloud benefits. Bottom-up tool adoption from technical teams is guiding company-level overall maturity and making the decision process a bit easier, and the relevance of cloud economics and FinOps (i.e., financial operations oriented to optimize cloud investments) practices are helping companies to trust and control their cloud-related investments. All this makes for the perfect combination and timing for cloud native technologies.
But the best way to understand its success and advantages is by sharing tangible examples. Let’s explore a few public success stories from all sorts of companies making the most of cloud-enabled technologies.
Inspirational Success Stories
Companies have progressively adopted cloud computing and cloud native technologies over the last two decades. Initially, these powerful technologies were available to only a small group of technology-enabled companies including Google and AWS, but other organizations have leveraged them and showcased how to adopt them and transform their businesses. Here are a few examples from the public CNCF and Kubernetes.io case studies:
- Boxed (acquired by MSG Distributors in 2023)
-
This online wholesale retailer offered direct delivery of bulk-sized packages. As its customer base grew, it began seeking more agile and scalable infrastructure solutions to handle its ecommerce operations. As the company began to experience increased traffic, it was clear that the existing infrastructure wouldn’t suffice for the surges in demand, especially during sales or holiday seasons. Boxed faced the typical challenges of shifting to Kubernetes, including training its team, managing stateful services, and monitoring in a distributed environment. Boxed’s journey with Kubernetes and cloud native emphasizes that even if a company is not a global giant, the principles of scalability, resilience, and agility provided by Kubernetes are great proof of the democratizing power of open source technologies, allowing companies of all sizes to harness top-tier tech solutions.
- Airbnb
-
Airbnb is a leading peer-to-peer service platform for people to list, discover, and book accommodations globally. As its platform rapidly grew, it found itself dealing with infrastructure that couldn’t easily scale with its needs.
As traffic increased, deployment with its existing monolithic architecture became riskier, slower, and more error prone. To break away from the limitations of a monolithic structure, Airbnb looked toward a microservices architecture, where each function of its platform could operate as a distinct service.
Airbnb began by containerizing individual services, progressively transitioning them onto Kubernetes. By starting with less critical services, it could ensure that any potential issues didn’t critically impact its platform, allowing it to learn and adjust approach. Airbnb’s adoption of Kubernetes highlights how even platforms with millions of users and listings can leverage cloud native technologies to achieve high levels of scalability, efficiency, and agility. Its journey serves as an inspiration to companies worldwide, emphasizing the importance of adaptable infrastructure in today’s digital age.
- Zalando
-
Zalando is one of Europe’s leading online fashion platforms. With millions of customers, a vast inventory, and numerous daily transactions, it needed a robust and scalable technical infrastructure to support its operations. Zalando has actively embraced a mix of cloud native technologies to bolster its technical infrastructure, including tools like Kubernetes, Helm, Argo, and Prometheus.
For example, Zalando transitioned to Kubernetes for orchestrating its containerized applications but needed a way to manage Kubernetes applications effortlessly. Helm, a package manager for Kubernetes, was adopted to streamline deployments. Argo, a set of Kubernetes-native tools, was integrated to facilitate continuous delivery in its Kubernetes environment. Zalando could maintain and manage Kubernetes resources using declarative configurations, streamlining its deployment process. It also used Prometheus to monitor its services, set up alerts, and gain insights into its system’s health in real time. Zalando’s journey illustrates how a blend of cloud native technologies can supercharge a company’s infrastructure.
- The New York Times
-
The New York Times, one of the world’s most renowned newspapers, has been transitioning into the digital age, with a vast portion of its readership now accessing content online. With the rise in digital users and the delivery of news in real time, there was a need to ensure that its infrastructure could support the demand. The company initially relied heavily on monolithic applications, which were becoming increasingly difficult to scale and maintain, especially with a growing global readership and the demand for faster content delivery. To better serve its readership, the Times wanted to break its monolithic application into microservices. Kubernetes was chosen as the orchestration platform because of its technical features, community support, and growing ecosystem.
The New York Times began its Kubernetes journey by containerizing its applications and then moving them to Kubernetes. The team decided to start with noncritical applications to understand Kubernetes better and to mitigate potential risks. Over time, as it gained confidence and expertise, more critical parts of its infrastructure were migrated. Thanks to this, the Times handled reader traffic spikes more efficiently and started to run its infrastructure more cost-effectively.
- A.P. Moller - Maersk
-
Maersk is one of the world’s largest shipping companies. As global trade dynamics and customer expectations evolved, Maersk recognized the need to modernize its IT infrastructure to improve efficiency, reduce costs, and offer better digital solutions to its customers. Its legacy systems were disparate, slow, and often siloed, and the company wanted to consolidate its IT operations and introduce more agility and scalability into its system. There was also an urgent need for real-time tracking, digital booking systems, and predictive analytics.
Maersk decided to partner with Microsoft Azure to leverage its robust cloud infrastructure and services. Azure Kubernetes Service (AKS, Microsoft’s managed Kubernetes service) became a core part of this transformation as the way to deploy, manage, and scale containerized applications using Kubernetes, without the complexity of managing Kubernetes clusters. Leveraging Azure’s analytics and AI tools in tandem with its Kubernetes-deployed applications, Maersk could derive actionable insights from its data, leading to better decision making. Maersk’s story exemplifies how even century-old companies, traditionally not seen as tech innovators, can leverage modern cloud native solutions like Azure and Kubernetes to revolutionize their operations and enhance customer experiences.
These are just a few examples illustrating the importance of cloud native technologies and how companies are making the most of them. Keep in mind that the increasing technology demand has a positive consequence: huge talent demand, which means a lot of professional opportunities for learners like you.
The next section includes a self-assessment that will help you honestly analyze those topics that will require more effort. This study guide was built for an audience with varying degrees of experience and knowledge; some readers will certainly know a lot about some topics and less about the rest. Once you determine your level of expertise, you can continue your exploration through this book, devoting more time to the topics you struggled with.
Self-Questionnaire for New Cloud Native Practitioners
As a cloud native learner, you have a double mission here: to broaden your mind to the interesting and vast Kubernetes landscape and cloud native ecosystem, and (of course) to help you pass the KCNA exam. For that to happen, there are several areas of knowledge you will need to cover before even trying to take it.
This self-questionnaire will help you identify your current gaps and direct you to the areas you should focus on. Don’t try to find the right answers; this is about evaluating your actual level of knowledge. If you are totally new to cloud native and/or Kubernetes and know very little, these questions will function as a preliminary structure for your study guide.
There are 45 multiple-choice questions for the following topics:
-
Seven questions related to the CNCF ecosystem, mostly focused on high-level details of the Foundation and its mission and mechanisms.
-
Eight questions on cloud native concepts, as an initial test of your understanding of cloud computing and cloud native.
-
Eight questions on Kubernetes and orchestration topics, to assess the knowledge required for the KCNA certification.
-
Five questions for Kubernetes commands, which are the
kubectl
instructions required to manage technical aspects of Kubernetes. If you have never worked with Kubernetes on a technical level, don’t worry; we will explore these commands in Chapter 6. -
Eight questions related to Linux fundamentals, which are technically not part of the official exam curriculum as we explain in Chapter 2, but will help you not only understand some Kubernetes-related areas of knowledge but also perform better at work.
-
Last but not least, nine questions related to other cloud native projects, to explore the ecosystem of tools and projects (besides Kubernetes). We describe them in Chapter 3, but it is good for you to know whether you have some initial or high-level knowledge of those tools.
Again, don’t try to guess or find the right answers just to “pass” this test. Focus on choosing an answer based on your current level of knowledge, and take notes while you review the correct answers, especially for those areas you know less about. Solutions can be found in Appendix B.
Part 1: The CNCF Ecosystem
-
What’s the primary role of CNCF?
-
To deploy new cloud native applications, as a service for anyone to use them
-
To make cloud native universal and sustainable, by evangelizing and supporting projects
-
To fund Kubernetes-related projects that could benefit the rest of the community
-
To convert existing closed projects into open source so everyone can adopt them and reuse their code
-
-
What does the second “C” of “CNCF” stand for?
-
Containers
-
Cloud
-
Computing
-
Containerization
-
-
What does the term “cloud native” primarily refer to?
-
Applications hosted exclusively on public clouds
-
Traditional monolithic applications migrated to cloud platforms
-
Designing and building applications to run on cloud-based infrastructure
-
Applications that use native APIs specific to a cloud provider
-
-
How does CNCF typically support its projects?
-
By providing a monetary incentive to project maintainers
-
By offering governance, marketing, and technical resources
-
By mandating the direction and feature set of projects
-
By taking ownership and commercializing open source projects
-
-
What is CNCF’s stance regarding vendor neutrality?
-
CNCF promotes only one vendor for each cloud native technology
-
CNCF endorses whichever vendor provides the most funding
-
CNCF maintains a strict vendor-neutral position to ensure a level playing field
-
CNCF is primarily tied to a single cloud provider
-
-
How are projects typically categorized within CNCF’s ecosystem?
-
By their popularity and number of users
-
By their age and the duration they’ve been in the market
-
By stages, such as sandbox, incubating, and graduated
-
By the programming languages they are written in
-
-
Why does CNCF emphasize end-user involvement and feedback in its community?
-
To prioritize the commercialization of projects
-
To understand real-world challenges and drive relevant innovation in its projects
-
Solely for marketing and promotional activities
-
To increase the sale of CNCF-branded merchandise
-
You may have missed some questions, but that’s easy to remedy as you will soon know the role and details of CNCF. Explore Chapter 3 to learn more about this and other related topics.
Part 2: General Cloud Native Concepts
-
What is the difference between monolithic and microservices architectures?
-
I am not familiar with these terms.
-
They are both different software design and architecture approaches, based on one versus several development “blocks.”
-
The connection between data services from different pieces of the software solution.
-
They are similar, only frontend/UI differences.
-
-
What are the main advantages of containers when compared to traditional virtual machines?
-
Containers run the whole operating system (OS).
-
Containers are lighter and portable, and more efficient in terms of resources required.
-
Virtual machines are more agile and portable.
-
Virtual machines are cheaper and more scalable.
-
-
Find the term that is not directly related to cloud native:
-
Infrastructure as code (IaC)
-
DevOps
-
Distributed ledger technology (DLT)
-
Elasticity (ability to scale units of workload up or down)
-
-
Which of these is an actual cloud-as-a-service model?
-
Platform as a service (PaaS)
-
Backend as a service (BaaS)
-
Deployment as a service (DaaS)
-
Frontend as a service (FaaS)
-
-
Which of the following is a key advantage of a microservices architecture?
-
It requires a single technology stack for all services.
-
It allows each service to be developed, deployed, and scaled independently.
-
It ensures that a failure in one service will cause the entire application to fail.
-
It simplifies the application as a single, indivisible unit.
-
-
In a cloud native environment, what is the main purpose of containerization?
-
Increase the size of applications for better performance
-
Package applications with their dependencies and configurations for consistent deployment
-
Replace virtual machines entirely
-
Store large volumes of data more efficiently
-
-
What is a primary advantage of continuous integration and continuous deployment (CI/CD) in cloud native development?
-
It requires manual testing after every change to ensure quality.
-
It allows for faster and more frequent release cycles.
-
It restricts developers from using new tools and technologies.
-
It eliminates the need for version control systems.
-
-
In the context of cloud native architectures, what does “observability” primarily refer to?
-
The ability to observe team meetings and discussions
-
Monitoring tools that provide visibility only when systems fail
-
The ability to understand the internal state of a system from its external outputs
-
Tools that offer only static metrics and logs
-
These questions are easy to answer if you are familiar with cloud native content, but a bit challenging if you are just starting. If you struggled with these questions, pay particular attention to Chapter 4, which discusses these and other cloud computing and cloud native terms.
Part 3: Kubernetes Topics
-
Choose the correct compute concept hierarchy, from small to large:
-
Container, Pod, node, cluster
-
Cluster, container, node, Pod
-
Cluster, Pod, container, node
-
Orchestration, cluster, Pod, container, node
-
-
Find the nonexistent type of node in Kubernetes:
-
Master
-
Worker
-
Control plane
-
Task
-
-
Which of these topics is not related to Kubernetes?
-
Observability
-
Networking
-
Data flows
-
Policies
-
-
Which object is responsible for scaling and managing a set of replica Pods?
-
ReplicaSet
-
Deployment
-
StatefulSet
-
Pod
-
-
Which of the following is a Kubernetes service that is used to externally expose your Pod?
-
ClusterIP
-
NodePort
-
PodPort
-
ExposePod
-
-
In a Kubernetes cluster, what is the main role of the etcd component?
-
Scheduling Pods on nodes
-
Load balancing the traffic to services
-
Storing configuration data in a key-value format
-
Container runtime for executing the Pods
-
-
What type of Kubernetes controller is best suited for managing stateful applications?
-
ReplicaSet
-
DaemonSet
-
StatefulSet
-
Deployment
-
-
What is the primary purpose of a ConfigMap?
-
To store secret data and passwords
-
To define the desired state of a Pod
-
To store configuration data and parameters for Pods to use
-
To allocate CPU and memory resources for a Pod
-
These Kubernetes topics are the core building blocks of the KCNA exam. Don’t worry if you don’t have the answers for some of them; you will certainly get the required knowledge in Chapters 5 and 6.
Part 4: Kubernetes Commands
-
Which
kubectl
command is used to view the detailed state of a specific resource?-
kubectl look
-
kubectl show
-
kubectl describe
-
kubectl watch
-
-
If you want to view the logs of a particular Pod, which
kubectl
command would you use?-
kubectl logs POD_NAME
-
kubectl get logs POD_NAME
-
kubectl describe logs POD_NAME
-
kubectl show POD_NAME
-
-
Which of the following
kubectl
commands would you use to deploy a container using a YAML configuration file named deployment.yaml?-
kubectl create deployment.yaml
-
kubectl apply -f deployment.yaml
-
kubectl push deployment.yaml
-
kubectl start -f deployment.yaml
-
-
If you want to get a list of all nodes in a Kubernetes cluster, which
kubectl
command would be appropriate?-
kubectl get nodes
-
kubectl describe nodes
-
kubectl list nodes
-
kubectl show nodes
-
-
Which
kubectl
command allows you to enter the shell of a specific container?-
kubectl into POD_NAME -c CONTAINER_NAME
-
kubectl exec -it POD NAME -c CONTAINER NAME -- /bin/bash
-
kubectl shell POD_NAME -c CONTAINER_NAME
-
kubectl run POD_NAME -c CONTAINER_NAME
-
Kubernetes kubectl
commands are a core area of knowledge, not only for the exam but for your professional activities. We include relevant information and additional resources for you to make sense of these technical commands in Chapter 6.
Part 5: Linux Fundamentals
-
Which command is used in Linux to view the contents of a directory?
-
view
-
watch
-
dir
-
ls
-
-
In Linux, what is the primary purpose of the
chmod
command?-
Change the ownership of a file
-
Change the file’s modification time
-
Change the permissions of a file
-
Change the location of a file
-
-
Which of the following directories typically contains system configuration files?
-
/bin
-
/etc
-
/usr
-
/tmp
-
-
Which command in Linux is used to display your current working directory?
-
cwd
-
dir
-
pwd
-
locate
-
-
What is the primary role of the Linux kernel?
-
Providing a graphical user interface for users
-
Running shell commands and scripts
-
Managing the system’s hardware and resources
-
Offering network services like DNS and SSH
-
-
Which command in Linux is used to kill a running process?
-
terminate
-
stop
-
exit
-
kill
-
-
Which file contains the system-wide environment variables?
-
/etc/passwd
-
/etc/shadow
-
/etc/profile
-
/etc/network
-
-
Which command do we use to view the end of a file as it grows in real time?
-
cat
-
more
-
tail -f
-
head
-
Your background and experience will determine how you performed on these questions. In Chapter 3, we will expand on a variety of Linux-related topics, as well as some existing O’Reilly and external resources that will help you catch up and gain some base knowledge before taking the KCNA exam.
Expert Insights: Walid Shaari
Adrián: Hi. Welcome to this series of expert insights for the KCNA exam. Today we have the pleasure to welcome Walid Shari, who is an expert in the cloud native community.
Walid: Thank you for inviting me to participate.
Adrián: Many of our learners here are getting started on their cloud native journey, so let’s start with an introduction. Who is Walid, and what’s your relation with the cloud native ecosystem?
Walid: I’m currently working for Amazon Web Services for the public sector as a journalist and as a part of the containers community team, advocating for container services. Before this, I was leading the Ansible and the Docker community in Saudi Arabia, where the adoption of containers and cloud native technology is still in its early stages. So when Docker took the world by surprise, I started the meetup, and it was quite an eye-opener. There was a lot of interest in containers, especially from developers. And it opened a lot of doors for me. In fact, my current career is a result of this community. So for the question of who’s Walid, I see myself as a bridge between different cloud communities. I’m passionate about open source. And one thing about CNCF and about the cloud native community, it’s the best community in terms of inclusiveness and knowledge sharing. This sort of culture is exhibited during KubeCon sessions and other events.
Adrián: Because everyone demystifies the fact that we cannot learn everything, the ecosystem is huge. It’s not only about Docker and Kubernetes now; it’s about all the projects around the community, all the certifications, all the training. So we are part of an ecosystem.
Walid: Exactly. The CNCF, the Cloud Native Computing Foundation, was established with the first project, Kubernetes, donated by Google. The CNCF saw the gap between the enterprises, the organizations, and the people, one of them being the skill gaps, which it solved by providing curriculum, training, and measures for the companies to check. Are these people qualified enough to be on my team, or how can I upskill my team to be good enough? How can I have some kind of measure to qualify people within my team or even incentivize them to learn? Because of this, I’m very grateful to the CNCF in terms of finding these gaps and addressing them and bridging between us, the individuals, and the enterprises that need us.
Adrián: You have been leading various activities of CNCF, even some local events. I think it was exactly related to this exam as well, right?
Walid: Right, I was a beta tester for the KCNA exam. It was really tough at that time because basically you didn’t have any content that you could rely on except whatever is publicly available or on Slack channels. I was also a beta tester for the Prometheus observability exam. It’s good to do the beta testing because you don’t have content to learn from. You end up learning a lot because you don’t have resources and you try to work with the community and create resources or find your way out.
Adrián: Right now, there is a lot of content out there. We are not lacking in content and documentation. In the book, we mention the glossary from the CNCF that is growing and improving. The official documentation from Kubernetes is amazing now. But that’s the challenge when a new certification is coming out, right? We may not know the topics or maybe we know the topics because of a curriculum but it’s not clear what kind of questions we will get. I remember you were leading some events to help prepare for this exam at some point. And there were some good video sessions that were very helpful, even for me, to get some additional knowledge.
Walid: Yes. I worked with Sayem Batak, who is a CNCF ambassador and a very well-known advocate when it comes to cloud native. His company, Cebu Cloud, also has the Kubernetes Academy, which is a good resource for many certifications in the cloud native ecosystem. I participated with Sayem and Sysdig in doing events with the local communities. The challenge here is that you have to keep it fresh and keep up-to-date. Exams like the CKA (Certified Kubernetes Administrator), CKD (Certified Kubernetes Developer), and CKS (Certified Kubernetes Security Specialist) change quite often. They get updated every six months or so with the release of Kubernetes. For the KCNA, however, I’m not aware of changes because it’s supposed to be the 10,000-foot level, but it’s not really, because it was written by engineers. So you’ll still find command lines; you’ll still find technical details. And these are the questions that might confuse you.
When I took the exam for the first time, there were questions that stumped me. The answer choices look quite similar. For example, scheduling. If you want to protect the workload from running in a certain node, what do you use? Do you use labels or do you use affinity? Do you use annotations? The answers are very close to each other. The other challenge with this kind of exam is that because it is multiple-choice, it’s not hands-on. If it was hands-on and you know the answer, then absolutely it cannot be vague. The questions could be vague, but if the deliverables are clear, it’s not an issue. And usually the exam questions are a paragraph. So there are enough details there to understand what is being asked. In the case of the KCNA, however, the questions were very, very concise. Most of them are a single line. I don’t remember if I saw a question that was a paragraph or a couple of lines long at that time.
Adrián: I agree, I have seen a good variety of the different questions of the exam. And they are focusing on specific details within a system. And this kind of example you provided was perfect because this is the kind of detail that you can expect. That is normally unexpected when we talk about an associate level kind of certification. That’s the reason testers need to go deeper in their preparation, even if it’s an intro-level certification. Because that’s the kind of question they will get. And the other part is, all the command lines. You mentioned the command lines. If I ask you about the trickiest kind of questions that people can expect in a KCNA, what do you think will be the trickiest one?
Walid: The trickiest one for newcomers is they need to remember the command lines. If you are on the terminal, it will be very easy to get help, but if you are a newcomer and you don’t have enough hands-on experience, you might find it tricky to find the right answer. Let’s say, for example, they are asking you about the CPU utilization across nodes for the Pods, or the Pods utilization or something like this. You need to be familiar with the Linux command line. In the Linux command line, you usually use ps
(list processes), aux
, etc. This concept is not in the Kubernetes world. In the Kubernetes world, there’s kubectl top
. You may be familiar with kubectl top
or kubectl ps
in Kubernetes. I can try to confuse you with some Linux commands that look genuine, but they are not. It could be a Linux command mixed with kubectl
commands.
Adrián: And if we add the prefixes, affixes, and stuff, it gets tricky.
Walid: Yes. The other confusing thing is when you get into details. I would say 60% of the exam is actually Kubernetes focused. The other 40% is the ecosystem. It’s the CNCF organization and the ecosystem of data observability and application delivery, GitOps and things like that. So in this 60%, some of it really goes into details, like the scheduling. I remember I got one question wrong. I don’t remember it exactly now, but I got it wrong because I didn’t think about it at that time, and I didn’t really prepare. So basically, for newcomers, who this exam is actually targeted for, they need to know their theory, and they need to have some hands-on knowledge.
Andrew Brown has a free 14-hour course, with some hands-on follow-up. Basically, he walks you through some exercises. Cloud Guru also has a course with hands-on training. I’m sure you also provide enough hands-on exercises and labs that people can go through. It’s a pity that we lost some of the online available hands-on materials on Katacoda. Some vendors like Red Hat have some available training, but it’s very focused on their own distribution, OpenShift. So they have some tutorials that people can follow in GitOps. The other 40% of the test is more what I call 101 content. For example, what is a service mesh? And what are the prominent solutions out there? What about solutions that have been promoted or the ones that are not in the sandbox? What is the sandbox? What does it mean for a project to be graduated? The lifecycle of a project in CNCF.
Adrián: You mentioned the ecosystem including activities and projects. We know that besides Kubernetes, other projects are relevant for monitoring or for application delivery, etc. What are the projects that a new learner should be aware of?
Walid: The objective of the KCNA is to target newcomers and nontech people who are in the Kubernetes world. If you think about Kubernetes as a platform to host other platforms, especially applications, the first thing one needs to do is to make sure that they can deploy an application. This is the first thing I ask myself. So deploying the applications from manifest, from YAML manifest, and then how to do it in the automated way. For example, packaging using Helm charts, templating using customize, automating the delivery using GitOps. So basically, there is the Flux project, there is the Argo CD project. There are so many demos, there are so many solutions out there from cloud providers and from people who are supporting Argo CD that allow you to practice. There are also certifications as well.
Say I have a cluster, Kubernetes, and this cluster could be managed in the cloud. What is the next thing I need to be aware of? Monitoring. Observability. In the past, we would consider logs, but now it’s more than logs. It’s the traces because we are dealing with microservices. So which services talk to each other? Where are my bottlenecks? How’s the latency? How’s the performance? How can I troubleshoot in real time? So observability is a must. Tools like Prometheus, Grafana, and Loki and their integration with each other to provide me with situational context. Maybe I have an error, and I can see the metrics. How can they relate to each other?
For any newcomer, they shouldn’t really focus on the technology. They should focus on problem-solving. So why did Kubernetes come into place? Why did containers take the technology world and the business world by storm? The portability, the resiliency, the business value. FinOps is part of the exam, but it’s not very obvious. The total cost of ownership, and the cloud adoption value. This is an area where I see every customer is focused on the FinOps, on the cost, on how to optimize cost, and how to get better at chargeback and monitoring cost. Optimizing not just for cost, but also for sustainability. Because the more you optimize for cost, you optimize usually for sustainability at the same time. It’s a win-win situation. I’m not aware if the exam actually has been addressing it lately or not. It used to be a very weak area, but it’s one of the areas that needs to be there. Back then, there was only one project, KubeCost. I think KubeCost was the primary open source project for monitoring FinOps.
Adrián: This is a good example, given that this topic related to FinOps is a piece of knowledge that is not officially or in a very specific way a part of the official curriculum of the KCNA. However, it helps learners, because preliminary knowledge like this will help people perform better on the exam and even better understand the concepts that are related.
For example, I’m a telematics engineer, so working with Kubernetes is more natural to me. Not saying that it’s easy, it’s very difficult, but it’s more natural for me to understand because I have that background. With the variety of learners’ profiles that we get on this exam, we can assume that people will have stronger background in some specific areas and then weaker in others, so we are encouraging them to analyze where they need to improve based on their existing knowledge. What’s the best way to practice today’s exam topics? You have mentioned a couple of them.
Walid: Nowadays, I mean, if you want to practice, if someone wants to practice on their own laptop and learn about Kubernetes, there is Kind, Kubernetes, and Docker. First, they need to cover the basics, especially with Docker, where there are good free courses out there. There is Kind, minikube, and other services where you can have a managed cluster. There are lots of YouTube videos. There are books, this book, for example. There are meetups. The meetups are good because they are interactive. And there are conferences like KubeCon and Kubernetes Community Days.
CNCF saw that it cannot scale when it came to conferences and that these conferences are getting really huge and starting to be expensive. So one way to scale them up is to do Kubernetes Community Day around the world, and we see lots of them nowadays. Usually, there are workshops around them also. Around the big events, usually there are other events for specific technologies like GitOps, service mesh, networking, special distributions, and the operator framework from Rancher. The operator in Kubernetes is how to combine human knowledge, operator knowledge, and technology, especially for stateful applications, into a packaging. And with this packaging, it becomes easy to install a software stack like a Postgres cluster and see how to update it, how to monitor it. So it takes you from day zero to day two and beyond, hopefully.
There are many resources. The CNCF Slack is one resource. The CNCF events in terms of meetups, in terms of chapters, in terms of conferences. Books from O’Reilly and from all other publishers. And the local events. There are some GitHub resources also where they aggregate and curate some content. And the best thing is actually to participate in projects. If someone wants to learn more about something and they have a business problem or university challenge or project, it’s better to participate in this project and explore and ask the community. Just ping somebody from the community to ask, especially in Slack.
Adrián: In the book, we explain the notion of a contributor and maintainer, two different types of roles. Have you been a contributor to any project or a maintainer?
Walid: Unfortunately, not for a software project. I have been maintaining resources for the CKA and CKS resources. For projects, when I see an issue, I usually raise an issue at the very least, if I cannot create a pull request. I’m trying to get involved with the documentation. In a CNCF-related project, there are tags for the first-time contributors. Basically, these tags help you find the easiest issues and challenges where you can start. There are mentor programs. You can be part of the release team. They always publish that on X (formerly Twitter) or Slack. With every new release of Kubernetes, regardless of your experience, regardless of your past contributions, they always welcome new, fresh people, because of the diversity and inclusion, to shadow and to learn from them. That’s how the project has been going. I haven’t seen this in other projects.
Adrián: That’s gold, because it offers beginners like many of our exam takers here an opportunity to join projects. It doesn’t mean that we need to develop a core functionality of Kubernetes, but we can help with some documentation or checking bugs. It can be joining just the meetings to learn. And that’s part of cloud native upskilling. There are different ways to do it, but I totally agree.
Walid: Giving feedback and helping with documentation, helping with localization, these are the easiest ways in.
Adrián: Perfect. I think we have covered more or less all the important topics for exam preparation for exam takers, but are there any other recommendations or topics that you would like to highlight that you think will help people preparing for their associate-level exam?
Walid: For the associate-level exam, I would focus on the KubeCon business tracks. There haven’t been that many, but they have been recent. You can learn about the ecosystem if you look at the keynotes from KubeCon and the business cases, especially for observability, for premieres, especially for the application delivery, GitOps, and stuff like this. Other than that, X (formerly Twitter) is good. Follow James Barron, Rawkode, and David Flanagan. He has Rawkode Academy, and every couple of weeks he has a new topic. He’s discovering a new technology or a new software stack or playing with it. There is also Thank God It’s Kubernetes (TGIK) run by Heptio earlier and then later VMware.
You can also follow people in the community through social networks and LinkedIn. For me, I get my feeds from X (formerly Twitter) and LinkedIn. I follow specific people on LinkedIn and I get the updates and news from them of what the new projects are. For me, I found out that OpenShift TV or OpenShift Red Hat streaming, especially GitOps Guide to the Galaxy, is very nice. They are more focused on OpenShift, in general. Containers from the Couch is another one. Brendan Burns from Microsoft has short videos. VMware has the same short videos. I like these small nuggets, actually. Maximum 15 minutes.
Adrián: Yes, like a mini-Netflix show. You mentioned Brendan Burns from Microsoft, Joe Beda’s videos from VMware. There is lots of material. We recommend the videos as well. You mentioned it once when we were reviewing the book; it’s very illustrative.
This is wonderful. If we had to use one word to prepare people for their journey, it would be awareness. Be aware of the existence of things, the kind of projects that are there, the ways to contribute or to participate, the kind of questions that you can get. That’s what we’re trying to cover in this book as a study guide. And as we always mention, no book or study guide will be a single resource to prepare for Kubernetes or cloud native topics. You need to go and check all the resources and complement it and create your own mix. But this is very aligned with what we’re trying to do there.
Walid: Yes. Different people have different tastes. Some people like books, some people like videos, some people like podcasts. Whatever floats your boat. But start with the Linux Foundation, start with the GitHub repo. CNCF has a GitHub repo for its exam curriculum. They keep updating it. They actually mention some resources there.
Adrián: Yes. Very good selection. This book also includes champions in the community, including yourself, your personal repositories, which you are recommending already, as a good structure for this exam. I remember other people doing the same. These are good resources that are helping learners around the world. Thank you.
Walid: Yes. Thank you.
Adrián: Well, I’m very happy we got some time to discuss these topics. I cannot wait to share everything, the material, and all the resources you have mentioned to help people pass the exam. It’s not necessarily easy, even if it’s beginner level, but I think that this is the way.
Walid: This is the way. True. Perfect.
Adrián: Well, thank you very much again. Have a lovely day.
Walid: Thank you, Adrián. Thank you very much.
Summary
We have now concluded the first of seven chapters. At this point, you should have a good initial idea of what the KCNA exam is about and the learning approach of this study guide. You have also gained insight on the KCNA exam creation process and gotten some recommendations on how to start studying for it. If you feel like you are still missing some details, at both the logistics and knowledge levels, don’t worry. We will continue to walk you through everything you need.
Get Kubernetes and Cloud Native Associate (KCNA) Study Guide now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.