Browsing Category

Comment apprendre?

Cette catégorie définit l’ensemble des articles abordant les moyens d’apprendre pour devenir Data Scientist (MOOC – Massive Online Open Courses, sites d’auto-apprentissage…)

Comment apprendre?, Formations

Formation DevOps : pourquoi et comment devenir expert certifié ?

Alors que la méthode DevOps connaît un essor sans précédent, suivre une formation DevOps permet d’acquérir une expertise très recherchée en entreprise et hautement rémunérée. Découvrez pourquoi et comment suivre un tel programme !

Le monde a changé, transformé par internet et les logiciels. Dans toutes les industries, les applications logicielles occupent désormais une place essentielle en entreprise.

Ceci est valable pour tous les secteurs, de la banque au divertissement en passant par le commerce de détail ou la santé. Le logiciel fait désormais partie intégrante de toutes les divisions d’un business.

Des services en ligne sont utilisés par les entreprises pour interagir avec leurs clients, mais aussi pour optimiser la logistique et accroître la productivité au quotidien. Par conséquent, les exigences en termes de qualité ont fortement augmenté.

Les bugs et les dysfonctionnements ne sont plus tolérables, et de nouvelles fonctionnalités doivent être constamment ajoutées au fil du temps. Afin de s’adapter à ces nouvelles attentes, les entreprises adoptent désormais le modèle DevOps.

En combinant le développement et l’exploitation, le DevOps permet aux développeurs de mettre à jour leurs logiciels en continu en se basant sur les retours des utilisateurs. De même, les problèmes techniques peuvent être résolus beaucoup plus rapidement.

Le logiciel est évalué continuellement, et mis à jour en fonction. Cette méthodologie permet des logiciels plus stables, et par extension un produit de meilleure qualité pour l’utilisateur final.

Le DevOps s’impose aujourd’hui comme la principale approche du développement logiciel. Pour cette raison, les ingénieurs DevOps sont très recherchés en entreprise.

Ces experts sont hautement rémunérés, et le nombre d’offres d’emploi explose d’année en année. Suivre une formation DevOps permet d’acquérir toutes les compétences requises pour exercer cette profession.

Qu’est-ce que le DevOps ?

DevOps est une approche du développement logiciel. Elle repose sur la collaboration entre l’équipe de développement (Dev) et l’équipe d’exploitation (Ops).

Cette collaboration a lieu à toutes les étapes du développement logiciel, incluant la conception du produit, le testing, le déploiement et la maintenance technique.

 

En savoir plus sur le DevOps

Il s’agit d’un ensemble de pratiques et d’outils, mais aussi d’une culture et d’une philosophie permettant à une organisation de délivrer des applications et services beaucoup plus rapidement qu’avec les processus traditionnels.

Auparavant, les développeurs et les ops travaillaient en silo. Les développeurs étaient chargés de créer le logiciel, et l’équipe d’exploitation le prenait ensuite en charge intégralement.

Cette méthode présentait de nombreux défauts, et c’est pourquoi DevOps a vu le jour. Les deux équipes sont désormais unies, et les ingénieurs DevOps travaillent sur l’application tout au long de son cycle de vie : du développement au déploiement en passant par le testing, puis à l’exploitation au quotidien.

Les équipes DevOps automatisent les processus historiquement lents et manuels, et utilisent un stack technologique permettant de gérer et d’améliorer les applications de façon rapide et fiable.

En outre, cette nouvelle approche priorise le bon fonctionnement du logiciel. Ceci évite à la fois la frustration des équipes internes, et celle de l’utilisateur final.

Pourquoi suivre une formation DevOps ?

Suivre une formation DevOps permet d’accéder au métier d’ingénieur DevOps. Toutefois, un tel cursus peut s’avérer bénéfique pour tout professionnel impliqué dans la création de logiciels. Ceci concerne aussi bien le développement que l’exploitation quotidienne.

De manière générale, DevOps apporte de nombreux avantages aux organisations. Cette méthode permet tout d’abord de raccourcir le cycle de production, en éliminant les silos fonctionnels via la collaboration entre les équipes.

Elle permet également d’accroître le taux de succès des déploiements, en offrant la capacité de détecter les erreurs de programmation de manière précoce. Là encore, la collaboration permet de résoudre les problèmes techniques très rapidement.

Un autre avantage est l’automatisation des processus manuels de développement et de testing. En mettant l’accent sur la qualité du logiciel tout au long du processus de développement, DevOps réduit aussi les risques d’imprévus. Dans la même logique, l’approche DevSecOps consiste à ajouter la sécurité au cycle de développement pour éviter les problèmes par la suite.

Par ailleurs, une formation certifiante DevOps permet d’accroître votre employabilité et votre valeur sur le marché du travail. Les ingénieurs DevOps et autres experts comptent parmi les professionnels les plus recherchés et les mieux rémunérés du domaine de l’informatique.

À titre indicatif, selon Glassdoor, le salaire annuel moyen aux États-Unis s’élève à 92 000 $ pour un DevOps Release Manager, 125 000 $ pour un ingénieur de fiabilité des sites (SRE) et 115 000 $ pour un ingénieur DevOps. En France, selon Talent.com, un manager DevOps gagne 58 000 $ par an, un ingénieur DevOps 45 000€ par an, et un SRE 60 000€ par an.

Selon une étude de Grand View Resarch, le marché mondial du DevOps atteindra une valeur de 12,85 milliards de dollars en 2025. De plus, le Bureau of Labor Statistics des États-Unis prévoit une augmentation des offres d’emploi de 22% jusqu’en 2030 pour l’industrie du logiciel, contre 8% pour l’ensemble des emplois.

Quel est le programme d’une formation DevOps ?

Commencer une formation DevOps

En choisissant de suivre une formation DevOps, vous pourrez acquérir toutes les compétences requises pour devenir un professionnel de ce domaine. Voici les différentes notions que l’on retrouve dans ces cursus.

Tout d’abord, un langage de programmation comme Python est indispensable pour écrire des scripts et automatiser les tâches. Dans certains cas, la maîtrise de VB-Script et Windows PowerShell est également requise pour un poste DevOps.

L’expert doit aussi savoir créer des tests automatisés à l’aide d’outils dédiés. Ces derniers doivent être incorporés au processus de relaxe automatisé du logiciel.

Les ingénieurs DevOps passent aussi beaucoup de temps sur la configuration des systèmes d’automatisation. Ils doivent aussi maîtriser l’infrastructure en tant que code (IaC) pour configurer l’infrastructure et l’environnement à l’aide d’un langage de programmation.

Une autre compétence essentielle du DevOps est le maniement des systèmes de gestion de version comme Git. Ces outils permettent le suivi des changements apportés à la base de code, et la restauration des versions précédentes en cas de problème.

Par ailleurs, de solides compétences en networking sont indispensables. La connaissance du protocole IP, des certificats et du routing est un précieux atout pour résoudre les éventuels problèmes liés au réseau. Même au sein d’un environnement cloud ou d’un conteneur, il est important de savoir comment fonctionnent les réseaux.

 

Quels sont les principaux outils DevOps ?

Une formation DevOps permet aussi d’apprendre à manier les outils DevOps les plus populaires. En guise d’exemple, on peut citer Puppet permettant de délivrer et déployer des changements rapidement et fréquemment sur un logiciel avec des fonctionnalités de gestion de version, de testing automatisé et de livraison continue.

Avec Ansible, les équipes peuvent automatiser tout le cycle de vie d’une application et gérer les déploiements les plus compliqués. Un autre outil de gestion continue est Chef.

Les experts DevOps doivent aussi manier les solutions d’intégration continue comme Travis CI, Bamboo et Jenkins. L’outil de conteneurisation Docker permet de tester des applications au sein d’un environnement isolé incluant le système d’exploitation et toutes les dépendances, sur un serveur ou une machine virtuelle.

Nagios permet quant à lui la surveillance de l’infrastructure IT, et aide à détecter les erreurs pour les corriger rapidement. C’est un outil de monitoring continu, à l’instar de Sensu et Splunk.

Les certifications DevOps

Les meilleures formations DevOps permettent d’obtenir une certification professionnelle. Un tel titre vous permet d’étoffer votre CV, d’augmenter vos prétentions salariales, et de démontrer votre expertise.

Il existe de nombreuses certifications DevOps, mais certaines sont plus reconnues que d’autres par les employeurs. Voici quelques exemples des plus valorisées.

La certification AWS Certified DevOps Engineer démontre la capacité à tester et déployer l’infrastructure et les applications AWS. Elle témoigne aussi d’une expertise sur les plateformes cloud en général, notamment pour l’implémentation et l’automatisation des processus de gouvernance ou des contrôles de sécurité.

Amazon Web Services étant la plateforme de cloud public la plus utilisée, ses certifications comptent parmi les plus demandées en entreprise. Selon Indeed, on comptait plus de 32 000 postes d’ingénieurs DevOps AWS début 2022, rien qu’aux États-Unis. Cette certification est idéale pour les ingénieurs DevOps travaillant sur AWS ou un autre cloud.

En guise d’alternative, la certification Azure DevOps Engineer Expert est également très reconnue. Elle démontre la maîtrise des processus DevOps, et plus particulièrement la capacité à travailler avec des personnes, des processus et des technologies pour délivrer une valeur continue.

Vous devrez manier les stratégies d’ingénierie de fiabilité des sites, de sécurité et de conformité. Les compétences en gestion de version, en intégration continue et en collaboration sont également évaluées. De plus, la maîtrise du cloud Microsoft Azure est attendue pour cette certification spécialisée.

La certification Docker Certified Associate (DCA) confirme la maîtrise de l’outil Docker simplifiant le développement et le déploiement de logiciels grâce aux conteneurs. Il s’agit d’un outil phare du DevOps, notamment pour le testing continu.

Pour l’obtenir, vous devrez apprendre à manier Docker et les conteneurs en général. Les compétences en orchestration, création d’images, gestion, installation, configuration ou encore en sécurité sont nécessaires. Comptez environ un an d’expérience sur Docker pour réussir l’examen.

La certification Certified Kubernetes Administrator (CKA) indique une capacité à gérer et configurer des clusters sur Kubernetes : la plateforme open source de gestion de conteneurs logiciels.

Elle s’adresse aux professionnels IT gérant des instances Kubernetes, tels que les administrateurs Kubernetes et les administrateurs cloud. Pour l’obtenir, vous devrez prouver vos connaissances en architecture de cluster, en installation, en configuration, en networking, en workloads et en stockage.

Les professionnels DevOps utilisent aussi Puppet pour automatiser les processus, afin de délivrer des changements d’infrastructure plus rapidement et créer de meilleurs logiciels. Cet outil de gestion de système permet d’automatiser et de gérer la configuration de serveur.

Ainsi, l’examen Puppet Certified Professionnal permet d’obtenir une certification validant la maîtrise du logiciel Puppet. Vos compétences techniques et votre expérience seront mises à l’épreuve, et vous devrez comprendre les concepts liés aux stratégies de classification, à la résolution de problèmes dans le code, à la création de modules, à l’orchestration ou à l’administration.

Comment suivre une formation DevOps ?

Pour acquérir une expertise DevOps, vous pouvez choisir DevUniversity. Nos formations vous permettent d’apprendre à manier les outils DevOps, et à appliquer les meilleures pratiques liées à cette méthodologie.

Le cursus se complète intégralement à distance, et notre organisme est éligible au Compte Personnel de Formation pour le financement. N’attendez plus et découvrez DevUniversity !

S’inscrire à une formation DevOps

logo-flask
Comment apprendre?

Tutoriel API Flask : Comment programmer une API avec Python ?

Bonjour à tous et bienvenue dans ce Tutoriel sur Flask. Dans la suite de cet article, vous allez apprendre à mettre en place une API sous Python à l’aide de cet outil de plus en plus utilisé.

Qu’est-ce qu’une API ? Quand est-ce utile ?

Nous allons commencer ce tutoriel sur Flask en parlant des APIs. Les API (application programming interface / interface de programmation d’application) sont des interfaces. Elles vous permettent de déclencher des fonctionnalités d’un projet. Vous pouvez vous imaginer un panneau de commandes. Et Flask est un outil qui permet de construire des API avec python.

Si vous disposez de code qui vous sert à réaliser des tâches, peu importe lesquelles, vous pourriez vouloir le rendre disponible, permettre à des utilisateurs d’envoyer des requêtes à votre service. Et c’est dans ce contexte que mettre en place une API vous intéressera.

Exemple :

Pour donner l’exemple d’une situation dans laquelle vous auriez besoin d’une API : imaginez que vous veniez de développer une fonctionnalité permettant, à partir d’une image, d’obtenir une valeur numérique.

On a la fonction « fonction1 » qui prend en paramètre un objet de type bytes (une image) qui sera traité et qui fournira en sortie une variable de type string.

Dire que vous aimeriez mettre en place une interface pour qu’un utilisateur distant puisse lui envoyer une requête, que cet utilisateur puisse dire à votre programme « s’il te plait, exécute le code sur l’image que je te fournit et renvoie moi le résultat » c’est comme dire que vous aimeriez mettre en place une API.

Les types de requêtes

En travaillant sur la mise en place d’API, on a remarqué que les requêtes qu’on voulait implémenter se catégorisent très souvent parmi ces quatre :

  •     Créer un élément
  •     Modifier un élément
  •     Supprimer un élément
  •     Récupérer une liste d’éléments

Nous allons donc voir dans ce tutoriel sur flask comment implémenter des requêtes de type : get (récupérer), post (envoyer), put (modifier), delete (supprimer).

Il existe d’autres types de requêtes, vous n’en aurez surement pas besoin mais vous pourrez les trouver ici.

Adresse et routes

Vous allez run votre service sur une machine, que ce soit la vôtre ou celle que vous louez dans un datacenter.

Elle aura une adresse IP. Notez que l’adresse 127.0.0.1 signifie « moi-même ». Si vous envoyez une requête à cette adresse, c’est vers votre PC que vous vous dirigez.

Votre ordinateur ou le serveur sur lequel vous voulez faire fonctionner le service sont des machines et elles ont des « ports » sur lesquels les services peuvent communiquer.

Votre API, ce sera un programme qui sera en écoute sur un port de la machine sur laquelle il est installé.

Si vous lancez votre API sur le port 1234 de votre machine, vous pourrez lui envoyer des requêtes en précisant l’url 127.0.0.1:1234

Une dernière chose : mettons que j’ai deux fonctionnalités : fonction1 et fonction2 qui sont toutes deux des requêtes de type get. Comment mon utilisateur pourra m’indiquer celle qu’il veut utiliser en ne fournissant que l’adresse 127.0.0.1:1234 ?

On pourrait imaginer que pour déclencher la fonction1, il puisse s’adresser à 127.0.0.1:1234/ici et que pour déclencher la fonction2, il puisse s’adresser à 127.0.0.1:1234/la. Eh bien c’est comme ça que cela fonctionne et on appelle /ici et /la des « routes ».

Notez que « / », est la route par défaut. Si vous envoyez une requête à 127.0.0.1:1234, on considèrera que vous vous adressez à 127.0.0.1:1234/

Prise en main de flask et implémentation de routes

La base

Le module Flask de python permet d’implémenter des API : pip install Flask.

module-flaskunnamed-13unnamed-14

Voici le snippet dont ces images sont extraites. Il est accessible via ce github repository.

Dans le répertoire où se situe le main.py, vous pouvez lancer la commande « python main.py ».

On aura alors un programme python en écoute sur le port 5000 (voir main.py ligne 14).

Il accepte des requêtes de type get à la route exemple_route (voir main.py ligne 11 et ligne 5 ainsi que routes/exemple_route.py ligne 4).

Les paramètres

Pour que les choses deviennent plus intéressantes, on accepte des paramètres. Voici le même snippet avec quelques lignes supplémentaires (exemple_route_/exemple_route.py : lignes 4; 5; 6; 10 et 11).

unnamed-15

Tester son API

Pour tester vos routes, je vous propose dans ce tutoriel sur flask, d’utiliser postman ou la bibliothèque requests de Python :

Une API CRUD (Create Read Update Delete)

Vous pouvez consulter ce github repository qui permet de faire les quatre types de requêtes (get, post, put, delete) et qui présente deux routes : exemple_route et exemple_route_all.

Les requêtes acceptées sont :

  • exemple_route get : prend « user » en paramètre et renvoie son mot de passe s’il existe
  • exemple_route post : prend « user » et « password » en paramètres et ajoute une valeur à notre liste d’utilisateurs
  • exemple_route put : prend « user » et « password » en paramètres et modifie le mot de passe de l’utilisateur user s’il existe
  • exemple_route delete : prend « user » en paramètre et supprimer l’utilisateur s’il existe
  • exemple_route_all get : ne prend pas de paramètre et renvoie la liste des utilisateurs et leur mot de passe

En inspectant le code, on se rend compte qu’il existe une variable « données » (exemple_route/exemple_route.py  ligne 14). Elle sera récupérée dans les méthodes implémentées à la suite grâce à la ligne de commande « global données « .

Pour vous permettre de créer une API, je vous suggère :

  • de disposer des bibliothèques : Flask, flask_cors, flask_restful
  • de partir d’un clone du repository Small_flask_api
  • d’y ajouter des fichiers dans le dossier routes pour contenir vos classes et la définition de leurs paramètres en vous inspirant du repository Exemple_API_1
  • d’ajouter les imports de classes dans le main.py et de déclarer leur associations

Je vous fournis un programme disponible sur ce repository. La fonction approximation_lagrange du fichier utils.py prend une liste de points en paramètres et renvoie une liste de coefficients d’un polynôme d’interpolation. La fonction écrire_polynome du fichier operations.py prend cette valeur dernièrement retournée pour rendre la syntaxe de l’écriture du polynôme interprétable par un éditeur LaTeX.

Je vous propose d’implémenter une API qui permette d’opérer sur une liste de points : récupérer, ajouter, supprimer. Elle permet également de récupérer l’expression d’un polynôme passant par les points de contrôle.

Vous trouverez une solution ici.

La documentation Flask

Pour continuer d’apprendre et acquérir des compétences après ce tutoriel sur flask, il vous faudra expérimenter au travers de projets, personnels et/ou professionnels. Vous aurez surement besoin de consulter la documentation flask et les forums d’entraide en cas de besoin, notamment Stack Overflow.

Envoyer un fichier ou une image

Envoyer une image en réponse est fréquemment demandé, ainsi je vous explique comment faire.

Importer send_file de la bibliothèque flask et l’appeler au retour d’une route en spécifiant le chemin pour situer le fichier. Vous pouvez consulter ce repository illustrant le renvoie d’images.

Se former sur Flask

Datascientest propose la formation au métier de data engineer qui permet non seulement d’apprendre à construire des API avec Flask, mais aussi d’utiliser FastApi et de, par la suite, conteneuriser les services API. La conteneurisation est un procédé utilisé pour isoler ses services, simplifier leur scalabilité et leur déploiement cross-platform.

Découvrir la formation Data Engineer

Comment apprendre?

S’entraîner à coder en javaScript en toute simplicité !

Coder en JavaScript est indispensable à tout data scientist travaillant de près ou de loin avec un site web. 1er réflexe, suivre assidûment les cours JavaScript de codecademy, bien sûr !

Mais ce n’est pas tout ! Etant donné que ce language est la partie dynamique et interactive d’un site web, et qu’il s’intègre avec le code html présent sur la page, pourquoi ne pas s’entraîner sur page créée de toute pièce ?

Et oui, il y a une app’ pour ça ! On m’a récemment fait connaître (merci Clément !) un petit bijou que je souhaite partager avec vous aujourd’hui 🙂

Continue Reading