L'article explore les concepts fondamentaux de la conception de systèmes, essentiels pour les développeurs et les ingénieurs logiciels. Il aborde des sujets variés tels que l'architecture client-serveur, les adresses IP, le DNS, les proxys, la latence, les protocoles HTTP/HTTPS, les APIs, les bases de données SQL et NoSQL, ainsi que des techniques de mise à l'échelle comme le scaling vertical et horizontal, l'équilibrage de charge, l'indexation des bases de données, la réplication et le sharding. L'article vise à simplifier ces concepts pour les rendre accessibles, que ce soit pour des entretiens techniques ou pour la conception de systèmes scalables dans un environnement professionnel.
Les 7 commandes :
- lscpu : concerne le CPU
- lsblk : infos sur le stockage
- lsusb : infos sur les périphériques USB
- lspci : infos sur le périphériques PCI
- free -m : infos sur la RAM
- dmidecode : infos générales (voir les options memory, bios, system)
Il s'agit d'un algorithme utilisé dans les systèmes distribués.
Une image illustrant les différents composants d'un système Linux, avec les outils permettant de les observer
Tout est dans le titre