Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Becoming KCNA Certified

You're reading from   Becoming KCNA Certified Build a strong foundation in cloud native and Kubernetes and pass the KCNA exam with ease

Arrow left icon
Product type Paperback
Published in Feb 2023
Publisher Packt
ISBN-13 9781804613399
Length 306 pages
Edition 1st Edition
Arrow right icon
Author (1):
Arrow left icon
Dmitry Galkin Dmitry Galkin
Author Profile Icon Dmitry Galkin
Dmitry Galkin
Arrow right icon
View More author details
Toc

Table of Contents (22) Chapters Close

Preface 1. Part 1: The Cloud Era
2. Chapter 1: From Cloud to Cloud Native and Kubernetes FREE CHAPTER 3. Chapter 2: Overview of CNCF and Kubernetes Certifications 4. Part 2: Performing Container Orchestration
5. Chapter 3: Getting Started with Containers 6. Chapter 4: Exploring Container Runtimes, Interfaces, and Service Meshes 7. Part 3: Learning Kubernetes Fundamentals
8. Chapter 5: Orchestrating Containers with Kubernetes 9. Chapter 6: Deploying and Scaling Applications with Kubernetes 10. Chapter 7: Application Placement and Debugging with Kubernetes 11. Chapter 8: Following Kubernetes Best Practices 12. Part 4: Exploring Cloud Native
13. Chapter 9: Understanding Cloud Native Architectures 14. Chapter 10: Implementing Telemetry and Observability in the Cloud 15. Chapter 11: Automating Cloud Native Application Delivery 16. Part 5: KCNA Exam and Next Steps
17. Chapter 12: Practicing for the KCNA Exam with Mock Papers 18. Chapter 13: The Road Ahead 19. Assessments 20. Index 21. Other Books You May Enjoy

Monolithic versus microservices applications

To understand the difference between monolithic and microservice-based applications, let us reflect on a real-world example. Imagine that a company runs an online hotel booking business. All reservations are made and paid for by the customers via a corporate web service.

The traditional monolithic architecture for this kind of web application would have bundled all the functionality into one single, complex software that might have included the following:

  • Customer dashboard
  • Customer identity and access management
  • Search engine for hotels based on criteria
  • Billing and integration with payment providers
  • Reservation system for hotels
  • Ticketing and support chat

A monolithic application will be tightly coupled (bundled) with all the business and user logic and must be developed and updated at once. That means if a change to a billing code has to be made, the entire application will have to be updated with the changes. After that, it should be carefully tested and released to the production environment. Each (even a small) change could potentially break the whole application and impact business by making it unavailable for a longer time.

With a microservices architecture, this very same application could be split into several smaller pieces communicating with each other over the network and fulfilling its own purpose. Billing, for example, can be performed by four smaller services:

  • Currency converter
  • Credit card provider integration
  • Bank wire transfer processing
  • Refund processing

Essentially, microservices are a group of small applications where each is responsible for its own small task. These small applications communicate with each other over the network and work together as a part of a larger application.

The following figure demonstrates the differences between monolithic and microservice architectures:

Figure 1.4 – Comparison of monolithic and microservice architectures

Figure 1.4 – Comparison of monolithic and microservice architectures

This way, all other parts of the web application can also be split into multiple smaller independent applications (microservices) communicating over the network. The advantages of this approach include the following:

  • Each microservice can be developed by its own team
  • Each microservice can be released and updated separately
  • Each microservice can be deployed and scaled independently of others
  • A single microservice outage will only impact a small part of the overall functionality of the app

Microservices are an important part of cloud-native architectures, and we will review in detail the benefits as well as the challenges associated with microservices in Chapter 9, Understanding Cloud Native Architectures. For the moment, let’s get back to containers and why they need to be orchestrated.

When each microservice is packaged into a container, the total number of containers can easily reach tens or even hundreds for especially large and complex applications. In such a complex distributed environment, things can quickly get out of our control.

A container orchestration system is what helps us to keep control over a large number of containers. It simplifies the management of containers by grouping application containers into deployments and automating operations such as the following:

  • Scaling microservices depending on the workload
  • Releasing new versions of microservices and their updates
  • Scheduling containers based on host utilizations and requirements
  • Automatically restarting containers that fail or failing over the traffic

As of today, there are many container and workload orchestration systems available, including these:

  • Kubernetes
  • OpenShift (also known as Open Kubernetes Distribution (OKD))
  • Hashicorp Nomad
  • Docker Swarm
  • Apache Mesos

As you already know from the book title, we will only focus on Kubernetes and there won’t be any sort of comparison made between these five. In fact, Kubernetes has overwhelmingly higher market shares and over the years, has become the de facto platform for orchestrating containers. With a high degree of confidence, you can concentrate on learning about Kubernetes and forget about the others, at least for the moment.

You have been reading a chapter from
Becoming KCNA Certified
Published in: Feb 2023
Publisher: Packt
ISBN-13: 9781804613399
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime