Bordeaux Engineers Share & Talk #14
⏱ Estimated reading time: 10 minutes
Table of Contents
Cooking Kubernetes
By Juliette Bouseau, Junior Technical consultant @ ekino
Introductions
Kubernetes is a container orchestration platform. It’s like a box that can store and run apps, lives between your software and the operating system and is relarively isolated from the computer. You might want to compare it to a virtual machine (VM), but that would be wrong! Indeed, a VM simulates a full computer within a computing device where Kubernetes organizes and runs workloads between multiple computers.
IF you’d like to learn more about VMs, check out VirtualBox, BrowserStack or Wine, which are classic examples.
Now, say a computer is like a restaurant:
- A VM would be a full restaurant within the restaurant. Everything would take more time in a VM;
- A container would take some space and resources from a room.
What is a cluster?
In a Kubernetes cluster, there are many things including Nodes. Nodes are often organized into Node Groups or Node Pools. This “herd-like” grouping, while common, is not a native construct but rather one that facilitates operations and integration with Cloud offerings.
Then you have the Control Plane, which is the undisputed chef of the kitchen. This chef does not cook in the kitchen, but it handles the responsibilities of defining workloads, deploying, assigning workloads to available matching resources. They know the kitchen, the employees and they run the show.
Between the cluster and the workloads, the apiserver acts as a waiter, taking orders and doing the back-and-forths between the kitchen and the patron. Incorrect orders get rejected by the waiters, like they are rejected by the apiserver.
Deployments are like a menu. A
menu specifies what the patrons can eat. Likewise the Deployment specifies what the app needs to run on the cluster
and its lifecycle. Deployment manifests are sent to the control plane where apiserver validates its contents then
provision the contents on nodes.
Let’s switch to the compute. There, a node is like a seating table. It runs the actual workloads organized into
Pods, which are like individual plates. A Pod
is an execution environment containing one or more workloads. Even though they represent the base indivisible unit in
Kubernetes, they are not the smallest division for workloads. This distinction goes to the containers which store and
execute one workload and one only.
Finally, kubelets represent the control plane in the Nodes. They register their node with the apiserver and they monitor the Kubernetes-managed containers to ensure they are running and healthy. They are the chef-de-partie of the kitchen.
Questions and Answers
When should Kubernetes be recommended?
Kubernetes is a very complex piece of software that was initially created to standardize app development and orchestration. It is not suitable for companies running a few small apps here and there. Use it when there is a need to orchestrate compute resources for many complex apps with dependencies and such. This is likely the case if you run a digital factory.
Let’s rediscover unit tests
By Nerea Enrique, PHP Engineer @ ekino
Tests come in all shapes an sizes, but when it comes to application tests and broadly testing strategy, there really are two big schools:
- The Pyramid: a large collection of unit tests, a smaller collection of slower integration tests and a small collection of end-to-end tests;
- The Diamond: they replace the large base of unit tests with a small set of fine-grained unit tests and a larger set of coarse-grained unit tests.
What is the difference between these two sets of unit tests?
- Fine-grained unit tests are fully isolated, they mock every component they need and due to their nature are usually less maintainable because they are vulnerable to app code changes;
- Coarse-grained unit tests are isolated from outside effects and integrated to the product as they test features. Thanks of this, they protect against feature regressions, hence why a large quantity of them is preferable.
Many test types such as these ones exist, thus the importance of agreeing on their definitions before implementing them.
Quality Assurance
By Elie Sloïm, Founder & President @ Opquast
If, on top of your head, you had to recite common faux-pas on the web, what would you say? Perhaps some of these would come to mind:
- An Apache index page when navigating a Wordpress site;
- You can’t copy-paste to a text field;
- Prohibited characters in name fields;
- Failing translations showing the base language strings or codes.
About Quality Assurance
Quality is a subjective notion. Every person has a different view and approach of each notion or theme. Thus, quality management / assurance / other requires setting a standard. “Doing quality” is a technical truism: who would deny it? Giving the guarantee that what is being done is objectively qualitative is an entirely different thing: there are standards, methods, referentials, indicators, certifications and so on.
AFNOR (Association Française de Normalisation) has an information page about the Quality Manager job. On LinkedIn, there are about 1000 of them just in France.
Don’t skimp on the box-checking, as unglamourous as it may sound. The boxes all need to be checked for a reason and Quality professionals have designed them so that they collectively implement a framework that enables your company to do their objectively best work.
And its low mindshare on the web
It’s mostly about maturity: the vast majority of websites are small and don’t have a webmaster. Most of these are produced rapidly using CMS and frameworks so that they deliver something simple. “Just” a form on a page for a shop. Conversely, this leads to websites that are quickly put together but don’t work for everyone because they don’t consider the whole range of web uses and users: accessibility, SEO, printing, ergonomics, performance, servers, security, mobile, translation and so on.
While technological progress means that some of these topics are being handled, sometimes transparently, organizing satellite topics is still messy. This is why new regulation frameworks are specifing the web experience. Of them:
- RGPD for personal data;
- RGAA against discrimination;
- RGESN for eco-friendly design;
- RGS for information security.
Your Quality Assurance team does the testing and everything is a sea of green, but how do you ensure they are testing the right things?
Tools and frameworks
VPTCS
Coined by Opquast, VPTCS stands for “Visibility, Perception, Technical, Contents, Services”:
- Visibility: finding the website or service, eg. referencing, marketing, communication;
- Perception: using the website or service, eg. ergonomics, usability, graphics, navigation;
- Technical: ensuring the website or service operates, eg. security, performance, hosting;
- Contents: ensuring content quality, eg. writing, translation, legal, internationalization;
- Services: ensuring the quality post-visit, eg. e-commerce, logistics, customer care.
VPTCS can be used in different ways:
- To evaluate a website or service from the user standpoint;
- To structure the objectives of a web project;
- To delineate the differences between user experience and interface;
- To divide and assign responsibilities between teams or service providers.
In this context, the scope of UI goes from Perception to Contents, while UX encompasses the whole VPTCS spectrum. Similarly, a company wishing to have control over the strategic parts of their online presence may leave Visibility to Technical to a third party while taking charge of Contents and Services.
Opquast Digital Quality checklist
This extensive checklist, which fifth version can be found here, has been published in French, English and Spanish, has international visibility and contains 245 rules for improving diverse aspects of websites and online services. Each rule comes with explanations, objectives and implementation procedures.
Diverse implementation
Organisationally speaking, there are multiple ways to implement Quality Assurance. Nowadays, the most organization-spanning are to be preferred, as they involve executive sponsors as well as technicians. While the following methods are not mutually exclusive, they achieve different results and might be suitable for different audiences, at your appreciation:
- Audits & Inspection;
- Training & Awareness raising;
- Management & Steering.
Cost-Quality-Time
The infamous triangle that links these three notions, sometimes intertwined with “Scope”. Quality Assurance represents between 20% and 30% of the cost of a new car! Even though this may seem excessive, it actually reduces the real cost of the vehicle: no Quality Assurance would cause a surge in production issues and significantly increase waste and spend. This applies to almost all industries.
In a way, we love Quality Assurance without even realizing it. Let’s love it back.
Questions and Answers
Quality Assurance practitioners are spreading to big companies. What makes a good QA?
Some Quality Assurance practitioners have never dug into accessibility or are not trained for the web. They are Quality Assurance practitioners in the traditional sense. QA are necessary but sufficient to guarantee the consistency and output quality of a final product. What makes a good QA, then, is their ability at keeping up with the set of references and norms they work with.
How automatable is QA?
Current norms and references are about 30% automatable. AI (conventional and generative) could help automating the rest with human supervision. Whenever QA is fully automatable, practitioners would be in great danger.