Learning Objectives
Understand how Kubernetes can be used to scale an application
Develop an understanding of core technical concepts
Gain a recognition for the importance of standardising processes
Poppy proposes opening up a restaurant to scale the business more efficiently. After carrying out lots of research and speaking with other restaurant owners in the community, she understands that setting up a successful restaurant requires:
To incorporate these three aspects, she drafts out a diagram of what the restaurant should look like.
In the kitchen, Poppy proposes that Tommy needs documented ingredients and detailed recipes for all his dishes so that any prep chef in the kitchen can produce a meal at the same quality. They start with Tommy’s best-selling burger, which he has been making for years and knows like the back of his hand.
Tommy tells the prep chefs that his secret herbs and spices mix, combined with onion and mince, is the key to his unique burger taste and keeps his customers coming back for more.
To ensure any prep chef can recreate his famous patty, Tommy documented the process of combining his secret herbs and spices mix with other ingredients into a detailed recipe for how to create the famous burger.
Tommy relies on external providers to make life easier. For many years, a community bakery has perfected and shared its burger bun recipe, and cheese from a dairy conglomerate is the perfect topping for Tommy's burger.
Documented ingredients - Developers, like the prep chefs, require standardised processes for combining their code with any dependencies it needs to run (such as settings, libraries, system tools).
Detailed Recipes: Developers write instructions on how to run their code, that has been packaged with its dependencies, on any computer. They create containers based on these instructions, which can then be easily executed on any computer at scale.
Next, Poppy and Tommy work with the prep chefs to create predefined menus which define what the customers can order including a description of each dish and what preferences they have for their meal.
Poppy requests a list from the prep chefs outlining available dishes, including ingredients and preparation instructions. She uses this to create a menu for the front desk to offer customers.
The menu includes a list of customer preferences, such as choosing how much they want their meat cooked: rare, medium or well-done.
Customers order from the front desk, where a receptionist inputs the order into a database. All staff use iPads connected to this database so they can track order lifecycles in real-time from the restaurant floor.
- Predefined menus: Just like in a menu, developers need to define tasks, configurations, and requests that users can make to a developer's code. They define this using Workloads.
- Developers use a database in Kubernetes to track the lifecycle of all these requests to spin up containers.
Next, Poppy thinks about how the overall restaurant will function between the kitchen, front desk and dining area. She introduces defined roles and responsibilities to coordinate staff during the customers dining experience.
The maître d' assigns customers to tables, which focuses on a collaborative seating style where different groups can share tables. It's important for the maître d' to track available and occupied seats on each table.
The customer then goes to the front desk to order their food, and a dedicated waiter is assigned to them who is responsible for making sure the order is a success from start to finish.
Poppy assigns a dedicated chef to cook meals at each table to ensure each customer has the same consistent, high quality dining experience. She sees this as being a pivotal role in the operation of the restaurant.
- Workloads provide a clear definition of what can be requested from a developer's code.
- Just as a restaurant will have defined roles and responsibilities to coordinate staff, Kubernetes will ensure that code is deployed to multiple places in a consistent manner at scale
So, whether you're cooking up a delicious meal or developing code, clear processes and standardisation are key to success!
In this section we learned...
Containers package code with dependencies so it can run anywhere
Workloads define what can be requested from your code
Kubernetes is an open source orchestration system that ensures consistent deployment of code at scale
Let's learn how to standardise the preparation of code with Containers.