{"id":2357,"date":"2024-10-22T14:02:37","date_gmt":"2024-10-22T12:02:37","guid":{"rendered":"https:\/\/cmi-2i2a.univ-avignon.fr\/?p=2357"},"modified":"2024-10-22T14:02:37","modified_gmt":"2024-10-22T12:02:37","slug":"stage-chez-quadient-une-plongee-dans-lingenierie-logicielle-et-les-microservices","status":"publish","type":"post","link":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/2024\/10\/22\/stage-chez-quadient-une-plongee-dans-lingenierie-logicielle-et-les-microservices\/","title":{"rendered":"Stage chez Quadient : Une Plong\u00e9e dans l\u2019Ing\u00e9nierie Logicielle et les Microservices"},"content":{"rendered":"\n<p>Durant ma premi\u00e8re ann\u00e9e en informatique, j\u2019ai eu l\u2019opportunit\u00e9 d\u2019effectuer un stage au sein de <strong>Quadient<\/strong>, une entreprise internationale sp\u00e9cialis\u00e9e dans la gestion de lockers. Cette exp\u00e9rience m\u2019a permis d\u2019int\u00e9grer l\u2019\u00e9quipe <strong>Packcity Management Dashboard (PMD) Core<\/strong>, charg\u00e9e du d\u00e9veloppement du backend de l\u2019entreprise. Mon objectif principal : mettre \u00e0 jour la librairie <strong>SocketCluster<\/strong> utilis\u00e9e pour la communication entre les machines de type GEN3 et les serveurs.<\/p>\n\n\n\n<p><strong>Quadient : Un acteur cl\u00e9 des solutions automatis\u00e9es<\/strong><\/p>\n\n\n\n<p>Quadient, anciennement Neopost, est une entreprise mondiale avec plus de 6000 employ\u00e9s \u00e0 travers le monde. Sp\u00e9cialis\u00e9e dans les solutions de gestion de lockers et la gestion de courrier \u00e0 grande \u00e9chelle, Quadient est un leader dans ce domaine. L\u2019\u00e9quipe PMD Core, au sein de laquelle j\u2019ai travaill\u00e9, est responsable de l\u2019API backend, une infrastructure cl\u00e9 qui permet la gestion des casiers automatis\u00e9s \u00e0 grande \u00e9chelle. Cette API est d\u00e9velopp\u00e9e en <strong>NodeJS<\/strong> et repose sur une architecture de microservices h\u00e9berg\u00e9e dans un environnement <strong>Kubernetes<\/strong>.<\/p>\n\n\n\n<p><strong>Mission : Mise \u00e0 jour de la librairie SocketCluster<\/strong><\/p>\n\n\n\n<p>Ma mission \u00e9tait de mettre \u00e0 jour la librairie <strong>SocketCluster<\/strong> dans le contexte des machines GEN3. Ces machines utilisent des websockets pour transmettre des informations en temps r\u00e9el, comme l\u2019\u00e9tat des colis, entre les machines et le backend. L\u2019enjeu principal \u00e9tait de mettre en \u0153uvre cette mise \u00e0 jour pour am\u00e9liorer la s\u00e9curit\u00e9 et profiter des nouvelles fonctionnalit\u00e9s de la librairie.<\/p>\n\n\n\n<p>Cette t\u00e2che repr\u00e9sentait un d\u00e9fi technique important. J\u2019ai d\u00fb d\u2019abord me familiariser avec l\u2019architecture de microservices, un paradigme tr\u00e8s diff\u00e9rent du mod\u00e8le monolithique que je connaissais. Ensuite, il a fallu ma\u00eetriser les subtilit\u00e9s de la <strong>programmation asynchrone<\/strong> en NodeJS et int\u00e9grer cette mise \u00e0 jour dans un environnement de production d\u00e9j\u00e0 existant.<\/p>\n\n\n\n<p><strong>D\u00e9fis rencontr\u00e9s et solutions mises en place<\/strong><\/p>\n\n\n\n<p>L\u2019un des principaux obstacles a \u00e9t\u00e9 la prise en main du code pr\u00e9existant, \u00e9crit par d\u2019autres d\u00e9veloppeurs, ainsi que l\u2019int\u00e9gration dans une \u00e9quipe de professionnels d\u00e9j\u00e0 bien rod\u00e9s. La complexit\u00e9 des microservices et des tests automatis\u00e9s (r\u00e9alis\u00e9s via <strong>Cucumber<\/strong>) a \u00e9galement n\u00e9cessit\u00e9 une phase d\u2019adaptation.<\/p>\n\n\n\n<p>Pour relever ces d\u00e9fis, j\u2019ai b\u00e9n\u00e9fici\u00e9 de l\u2019aide pr\u00e9cieuse d\u2019un architecte de chez Quadient, avec qui j\u2019ai pu travailler sur la r\u00e9\u00e9criture du code li\u00e9 \u00e0 l\u2019ancienne version de SocketCluster. Mon travail consistait \u00e0 effectuer cette mise \u00e0 jour sans alt\u00e9rer les fonctionnalit\u00e9s existantes, tout en assurant que les tests automatis\u00e9s continuent de passer avec succ\u00e8s.<\/p>\n\n\n\n<p><strong>R\u00e9sultats et impact<\/strong><\/p>\n\n\n\n<p>Gr\u00e2ce \u00e0 cette mise \u00e0 jour, l\u2019\u00e9quipe a pu renforcer la <strong>s\u00e9curit\u00e9<\/strong> des communications entre les machines GEN3 et les serveurs, tout en am\u00e9liorant la <strong>scalabilit\u00e9<\/strong> du syst\u00e8me. Cette r\u00e9ussite sera un mod\u00e8le pour la mise \u00e0 jour des autres g\u00e9n\u00e9rations de machines \u00e0 l\u2019avenir.<\/p>\n\n\n\n<p><strong>Bilan personnel : Une exp\u00e9rience formatrice<\/strong><\/p>\n\n\n\n<p>Ce stage chez Quadient m\u2019a permis de d\u00e9velopper de nombreuses comp\u00e9tences, tant professionnelles que techniques. J\u2019ai appris \u00e0 travailler dans un environnement <strong>agile<\/strong> avec des m\u00e9thodologies comme <strong>Scrum<\/strong>, et \u00e0 manipuler des technologies comme <strong>websockets<\/strong> et <strong>NodeJS<\/strong>. Malgr\u00e9 la difficult\u00e9 de travailler \u00e0 distance, j\u2019ai pu m\u2019adapter et m\u2019immerger dans un environnement de d\u00e9veloppement de haut niveau.<\/p>\n\n\n\n<p>Cette exp\u00e9rience m\u2019a \u00e9galement permis de r\u00e9aliser \u00e0 quel point le travail en \u00e9quipe et la communication sont essentiels dans un projet d\u2019envergure. Bien que ce stage ait mis en lumi\u00e8re certaines lacunes dans ma formation initiale, il m\u2019a aussi donn\u00e9 les outils pour continuer \u00e0 progresser et \u00e0 approfondir mes connaissances.<\/p>\n\n\n\n<p>Ce stage chez Quadient a \u00e9t\u00e9 une \u00e9tape cl\u00e9 dans mon parcours, me donnant non seulement un aper\u00e7u du monde professionnel, mais aussi des comp\u00e9tences techniques concr\u00e8tes qui me seront utiles pour la suite de ma carri\u00e8re.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Durant ma premi\u00e8re ann\u00e9e en informatique, j\u2019ai eu l\u2019opportunit\u00e9 d\u2019effectuer un stage au sein de Quadient, une entreprise internationale sp\u00e9cialis\u00e9e dans la gestion de lockers. Cette exp\u00e9rience m\u2019a permis d\u2019int\u00e9grer l\u2019\u00e9quipe Packcity Management Dashboard (PMD) Core, charg\u00e9e du d\u00e9veloppement du backend de l\u2019entreprise. Mon objectif principal : mettre \u00e0 jour la librairie SocketCluster utilis\u00e9e pour la communication entre les machines de type GEN3 et les serveurs. Quadient : Un acteur cl\u00e9 des solutions automatis\u00e9es Quadient, anciennement Neopost, est une entreprise&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/2024\/10\/22\/stage-chez-quadient-une-plongee-dans-lingenierie-logicielle-et-les-microservices\/\">Lire la suite<span class=\"screen-reader-text\"> Lire la suite<\/span><\/a><\/p>\n","protected":false},"author":55,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[204],"coauthors":[203],"class_list":["post-2357","post","type-post","status-publish","format-standard","hentry","category-non-classe","tag-stagecmi"],"_links":{"self":[{"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/posts\/2357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/comments?post=2357"}],"version-history":[{"count":1,"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/posts\/2357\/revisions"}],"predecessor-version":[{"id":2358,"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/posts\/2357\/revisions\/2358"}],"wp:attachment":[{"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/media?parent=2357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/categories?post=2357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/tags?post=2357"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cmi-2i2a.univ-avignon.fr\/index.php\/wp-json\/wp\/v2\/coauthors?post=2357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}