Je sais pas par quoi commencer en vous écrivant tout ça mais j'aimerai juste que vous alliez lire la description du post insta après avoir lu tout ce qui suit, vraiment ça me tient à coeur comme jamais
J'ai 27 ans aujourd'hui et après avoir eu un déclic que récemment dans ma vie, après avoir baigné longtemps dans le haram et la bêtise, j'aimerai juste qu'on remette tous ensemble mes frères et soeurs le dine au centre de nos vies. Qu'on en fasse notre priorité. WAllah on a encore la chance d'être en vie et ça c'est inestimable on s'en rend même pas compte. Ceux qui nous ont quitté aimeraient tous pouvoir revenir pour faire ne serait-ce qu'une hassanate de plus même si ils devaient ramper au sol sur des kilomètres pour pouvoir la faire
Plus jeune j'aurai pu lire tout ce que je suis en train d'écrire là et me dire ah ouais il a raison puis me remettre à scroll vers d'autres choses sans rapport. Je vous supplie de pas agir comme ça là maintenant la famille, même si c'est dur car nos coeurs sont devenus en pierre, et je vous demande sincèrement de vérouiller votre tel et d'aller faire une ablution même si ça fait des années et des années que vous n'en avez pas fait, puis de faire une salat en vidant tout ce que vous avez sur le coeur à Allah.
C'est dans ça et rien d'autre qu'on aura la paix, la baraka et que nos vies changeront, et qu'on pourra invoquer pour nos frères et soeurs qui subissent injustice, génocide et oppression dans le monde
On est pas parfait et on le saura jamais et on fera toujours des erreurs tout au long de notre vie. Mais si on commence par là en améliorant notre relation avec Allah, en se repentant et en invoquant pour nous même et pour les autres alors ca sera le début de quelque chose de magnifique pour nous tous
Je veux le meilleur pour vous wAllah les reufs et je m'en voudrais trop de jamais vous parler comme ça de temps en temps
Qu'Allah nous guide et nous accorde une belle fin, et qu'Il reprenne nos âmes que lorsqu'Il sera satisfait de nous
Amin
https://t.co/7N7UJRp3wC
C’est quoi Docker ? 🚢
Qu’est ce que c’est ? Comment ca marche ? En quoi c’est utile ?
Et on verra un peu de vocabulaire.
C’est parti.
Le problème des environnements hétérogènes
Imagine la situation suivante :
Tu dév un projet en PHP. Ton environnement à toi est sur WAMP (windows, apache, mysql, php).
Tu commit et push ton code. Un collègue à toi doit aussi continuer le Dev. Il est sous Mac. Il a donc installé MAMP :)
Maintenant vous avez à peu près fini et vous poussez ça sur votre linux hébergé. Votre VPS sera sous LAMP.
Il y a de forte chance, si personne ne fait gaffe, que les versions PHP et Mysql entre les 3 environnements ne sont pas les mêmes.
Il y a aussi des chances que les modules PHP ne sont pas à la même version, ou ne sont pas installés carrément.
Le risque c’est d’avoir du code qui marche pas d’une plateforme à l’autre. Pire, un code qui bug sans que l’on comprenne a priori pourquoi.
Et tu finis par dire la fameuse phrase :
“Mais ca marchait sur ma machine !!! J’comprends pas !”
Le but de Docker, c’est justement de simplifier tout ca : Garantir un environnement qui est exactement le même quelles que soient les plateformes et les gens qui participent au projet. Et sans s’arracher les cheveux !
Comment ca marche ?
On peut faire un parallèle avec du code.
Tu définis une Class. Quand tu fais “new Class” tu obtiens un Objet qui vit sa vie, qui est une instance de ta classe. Tu peux faire plusieurs “new Class” et ca te donne autant d’objets qui sont chacun indépendants et peuvent vivre en même temps tous basés sur le même moule (la classe).
Docker, c’est pareil. Tu as des “images”, et chaque instance est un container. Tu peux en créer plusieurs et chacun vit sa vie.
Une image = une classe
Un container = un objet.
Donc, pour t’assurer d’avoir le même environnement partout, tu dois créer une image. Elle sera mise à disposition et utilisée sur chaque plateforme.
Dans une classe, tu définis des méthodes et des propriétés et tu écris tout ça dans un fichier dédié.
Dans Docker, tu dois créer la définition d’une image dans un fichier Dockerfile : quel OS, quelle version de php, quels modules php, le code source de ton app…
Le Dockerfile est une liste d’instructions qui automatise la création de ton environnement. Ca s’appelle le build de l’image à partir du Dockerfile.
Le container, quant à lui, assure l’exécution de ce qui est défini dans l’image sans impacter la plateforme sur laquelle tu es (en effet, Docker n’installe pas de PHP ou quoique ce soit sur ta machine, il utilise ce qui est présent dans l’image, un peu comme un serveur virtuel)
Ca s’apelle run un container à partir d’une image.
Maintenant, tu peux run ton container sur n’importe quel machine/serveur, tu es sur que ca s’exécutera de la même manière.
Tu me suis toujours ?
Petit récap en image :
Maintenant quand tu livres en production ton code, tu livres avec ton Dockerfile. Ca permet à n’importe qui de le build pour être sûr de le tester dans les bonnes conditions : sur la machine de dev de ton collègue, sur le serveur de production…
Voilà pour la base sur Docker.
Pour aller plus loin
Reprenons l’exemple d’une class que tu as dev. Bien souvent tu fais appel à des lib extérieurs pour ne pas réinventer la roue.
Avec Docker, c’est pareil. Tu peux imbriquer des images les unes dans les autres
Si par exemple tu veux une Debian 11, avec PHP 8.1.2, tu ne vas pas t’amuser à faire un Dockerfile qui fait toutes les installations
Dans ton Dockerfile, tu dis d’utiliser l’image Debian 11 mis à disposition sur des dépôts (idem pour PHP)
Par contre, dans ton Dockerfile, tu mets qu’il faut aussi ajouter ton code source qui se trouve sur tel repo git par exemple
Donc ton Dockerfile devient assez simple si tu utilises des images déjà prêtes
Tu peux faire pareil pour ton projet :
Au lieu d’uniquement publier ton code, tu peux publier une image docker déjà buildée docker.
Ca permet aux gens de ne pas faire d’installation. Ils téléchargent juste l’image et peuvent la run dans un container directement
Ca simplifie les choses
Tu peux gérer ton dépôt à images comme un dépôt Git public/privé
Gestion des versions …
Dans la définition de ton image, il y a énormément de paramètres personnalisables
Comment sont gérés les espaces de stockages, les ports réseaux, l’utilisation CPU et RAM …
Ca mérite une formation complète, je pense
Tu peux orchestrer le run de plusieurs images différentes pour lancer une mini infra d’un coup
Par exemple : lancer une image Mysql, puis une image PHP
En remplacement de ton MAMP, LAMP, WAMP
Conclusion
On a effleuré à peine tout ce que Docker peut faire. Le but est ici juste te permettre de mettre le pied dedans, d’avoir les bons termes. Tu peux à partir de là continuer à te former et à monter en compétences (ou juste t’arrêter là, parce que ca ne te sert pas vraiment)
Mais au moins, tu pourras sortir des phrases stylées en soirée :
“Hum, j’ai run mon image buildée sur un docker host en prod ! C’est passé crème”
Imrane 🏖
PS : je parle généralement de comment se lancer en Freelance quand on est Junior/En reconversion ou Salarié.
PPS : Mais j'aime de temps en temps parler Tech et DevOPS
@ryan_chls@Baswa_ Si par série tu fait 30s + 1min de repos fois 3 ça fait 5min30 par exo fois 2 par muscle fois 6 pour tous les muscles ça fait 1h6min sans échauffement revoit tes calculs
J’ai passé plus de 30 entretiens avec des personnes qui débutent dans l’informatique, pour la plupart en reconversion, et voici ce que je retiens #Thread
C’est avec une tristesse et une douleur indescriptible que j’écris ces mots aujourd’hui, Ma mère est partie en ce jour. Après des annees de combat acharné contre la maladie. SVP j’ai besoin de vs au max pour sa Janaza, convertie depuis le 11/08/19 ma mère a besoin de vous Jeudi