Archives de
Auteur : corexpert

Ils nous ont rejoint : découvrez le témoignage de Christophe, Gautier et Gaspard !

Ils nous ont rejoint : découvrez le témoignage de Christophe, Gautier et Gaspard !

Aujourd’hui nous vous proposons de découvrir Christophe, Gautier et Gaspard, trois jeunes talents qui ont rejoint Corexpert en 2020. Découvrez leurs profils, leurs parcours et leurs choix de rejoindre Corexpert sous forme d’interview. Bonne lecture !

arrivees

Interview croisée

Comment avez-vous découvert Corexpert ?

Christophe : « J’ai découvert Corexpert par Internet. En effet, je voulais travailler dans le secteur du Cloud AWS et je devais effectuer ma formation à Lyon. J’ai donc cherché les entreprises faisant du Cloud à Lyon et je suis tombé sur Corexpert. »

Gautier : « J’ai découvert Corexpert grâce à une personne de mon réseau. »

Gaspard : « Fin 2018 je cherchais un stage de première année de Master qui me permettrait de progresser sur AWS, j’ai donc naturellement postulé de manière spontanée via le site de Corexpert. Après le stage, j’ai prolongé l’aventure avec Corexpert grâce à un contrat de professionnalisation dans le cadre de l’alternance avec les cours de ma deuxième année de Master. »

Pourquoi avoir choisi le Cloud ? Et pourquoi le Cloud d’AWS ?

Christophe : « Dans le vaste monde des réseaux, beaucoup de domaines m’intéressaient et, ne sachant pas par où commencer, je me suis dit : « commence dans une entreprise ‘traditionnelle’ d’architecture réseaux et tu verras bien si ça te plait ». Cependant, je n’étais pas bien sûr de mon raisonnement. J’ai alors appelé des amis ayant suivis le même parcours que moi pour me conseiller et l’un d’entre eux m’a suggéré de faire du Cloud, secteur très porteur dans les années à venir. Après quelques recherches dans ce domaine, mon choix s’est naturellement tourné vers le Cloud AWS, leader du marché (et de loin). »

Gautier : « Pour moi, le Cloud est un passage obligé pour les entreprises actuelles et futures en termes d’agilité et de réduction des coûts. C’est à mon sens LA solution à privilégier. Travailler au sein d’une entreprise qui est partenaire AWS répond totalement à mes ambitions d’avenir. Amazon est le leader mondial du cloud computing, les grandes entreprises utilisent les services AWS, intégrer Corexpert assure une collaboration avec le numéro un du marché. »

Gaspard : « Lors de ma licence professionnelle j’ai eu l’occasion de découvrir quelques services du Cloud D’Amazon. Cette première expérience m’ayant particulièrement plu, je souhaitais absolument poursuivre dans ce domaine et approfondir mes connaissances. »

Quel est votre parcours ?

Christophe : « Après le lycée, j’ai intégré la classe préparatoire CPE Lyon. Une fois l’école intégrée, j’ai passé deux ans dans la filière Sciences du Numérique en me spécialisant les six derniers mois dans le domaine des réseaux. Après ces deux ans, j’ai fait une année de césure, et j’en ai profité pour faire un stage dans l’entreprise Infineon Technologies à Munich dans le but d’améliorer mes compétences techniques et ma maîtrise des langues étrangères.

Cependant, une fois là-bas, j’ai compris que pour gagner en expérience rapidement, je ne devais pas intégrer la dernière année du cycle d’ingénieur de manière traditionnelle (six mois de formation suivi de six mois de stage). J’ai découvert qu’il était possible de faire un diplôme en alternance à Lyon 1, le master SRIV, en parallèle de mes études à CPE Lyon. Et j’ai opté pour cette seconde option. »

Gautier : « Je suis étudiant en informatique, et j’ai obtenu un bac scientifique mention bien en 2018. A l’issue, j’ai été admis dans une école d’ingénieur, cependant au bout d’un semestre j’ai décidé d’intégrer l’IUT Informatique directement en Janvier 2019 qui correspondait plus à mes attentes. L’obtention du DUT Informatique est prévue en Janvier 2021. »

Gaspard : « J’ai commencé mes études par un DUT Informatique à Valence, pour donner suite à mon stage de fin de diplôme réalisé à Lyon, j’ai choisi de poursuivre avec une licence professionnelle DEVOPS à l’Université Lyon 1. Malgré la licence professionnelle qui théoriquement mène à l’emploi, j’ai fait le choix de continuer mes études et j’ai passé deux ans à Vichy dans le cadre du Master SIPPE (Stratégie d’Internet et Pilotage de Projet en Entreprise) de l’Université Clermont-Auvergne. »

Qu’attendiez-vous de votre stage/alternance chez Corexpert ?

Christophe : « J’attends de mon stage chez Corexpert de gagner en expérience et en autonomie dans le domaine du Cloud tout en vérifiant que c’est bien un secteur qui me correspond et qui me plait. »

Gautier : « J’espère accroître mes connaissances et mes compétences sur les services AWS le plus possible, et particulièrement celles centrées purement informatique tels que l’algorithmie… etc. »

Gaspard : « Mon stage et mon année d’alternance étaient pour moi l’occasion de confirmer mon choix d’orientation professionnelle tout en approfondissant mes compétences sur AWS. »

Sur quels sujets avez-vous travaillés durant votre stage/alternance chez Corexpert ?

Christophe : « J’ai commencé mon stage il y a peu, je suis donc en pleine découverte de la plateforme AWS, étape indispensable avant de travailler avec des clients. »

Gautier : « Tout d’abord, durant les premiers jours j’ai découvert les services AWS avec mon maître de stage afin de basculer vers un projet concret. Puis, après ces quelques jours d’intégration j’ai migré vers un projet interne à l’entreprise qui consiste à développer une application web permettant de visualiser un certain nombre de paramètres (les coûts, le stockage…etc) des projets en cours, à venir et effectués de Corexpert. »

Gaspard : « Durant mon stage j’ai eu l’opportunité de participer au développement d’applications web React et d’infrastructures AWS Serverless, à la fois sur des projets internes à Corexpert ou sur des Proof of Concepts. Lors de l’alternance j’ai pu poursuivre le développement de projets internes et ainsi voir le cycle de vie complet d’un projet AWS, mais j’ai aussi eu la possibilité de participer au développement de projet client. »

Comment s’est passé votre intégration chez Corexpert ?

Christophe : « Je suis arrivé à Corexpert fin septembre 2020 c’est-à-dire en pleine crise du Covid 19. J’ai pu commencer à travailler à la Tour pendant un peu plus de trois semaines et l’ambiance était très bonne (malgré le fait qu’une grande partie de mes collègues étaient en télétravail). »

Gautier : « J’ai intégré Corexpert le 2 Novembre 2020, la semaine qui a suivi l’annonce du deuxième confinement. L’intégration s’est très bien déroulée, malgré le distanciel. J’ai pu découvrir mes collègues de manière virtuelle mais j’espère les rencontrer d’ici la fin de mon stage. »

Gaspard : « Les « weekly meetings » et les « code review » m’ont permis de bien m’intégrer au sein du pôle développement, tout en ayant une vision d’ensemble des projets en cours, des technologies utilisées et des contextes clients. De manière plus global les ateliers (REX, veille technologique, Hackathon) du vendredi après-midi, les pauses déjeuners et les parties de baby-foot m’ont permis d’apprendre à connaitre chaque collaborateur de Corexpert. »

Dans quel cadre de travail avez-vous évolué ? Comment s’est passé l’adaptation au contexte actuel (télétravail, distance, confinement, etc…) ?

Christophe : « Comme j’ai pu le dire dans la réponse précédente, j’ai commencé à travailler à la Tour avant de migrer chez moi à cause du confinement. Personnellement, je n’ai pas trop de mal à travailler chez moi puisque j’ai de la place et je n’ai pas vraiment de problème de concentration. D’un point de vu matériel, Corexpert a su répondre à mes besoins et ce dès que j’ai commencé mon stage en me mettant à disposition un ordinateur. »

Gautier : « J’ai vécu le premier confinement en étant en cours en distanciel, et le télétravail n’est pas si différent. Un bilan régulier de l’état d’avancement du projet, que je réalise en autonomie, est effectué avec mon supérieur. De plus, dans ce bilan on évoque les attentes et les points à améliorer. Ce qui est très similaire à ce qu’on fait en présentiel. Le seul point qui n’est pas évident à gérer, c’est lorsque je rencontre des points bloquants au niveau du projet, il ne faut pas hésiter à contacter ses collègues pour demander un support. »

Gaspard : « Le stage et l’alternance m’ont permis d’évoluer dans tous les environnements. En effet j’ai d’abord été en stage pendant six mois dans les locaux de Corexpert, ensuite j’ai été en alternance entre mes cours à Vichy et Corexpert à Lyon et pour finir j’ai été à 100% en télétravail à la suite de la pandémie de COVID-19. Cela m’a permis de gagner en autonomie et de trouver la formule qui me convenait le mieux pour allier ma vie professionnelle et ma vie personnelle. »

Quelle conclusion de votre expérience professionnelle chez Corexpert, quel futur ?

Christophe : « Je pense que c’est un peu tôt pour parler du futur mais je suis très satisfait de Corexpert et travailler dans l’architecture Cloud qui me passionne pour le moment. »

Gaspard : « À la suite du stage et de l’alternance, Corexpert m’a donné l’opportunité de continuer avec eux, je fais donc maintenant partie de l’équipe de développement en tant que développeur AWS. »

Que sont les « Cloudformation Custom Resources » et comment les utiliser

Que sont les « Cloudformation Custom Resources » et comment les utiliser

AWS Cloudformation, qu’est-ce que c’est ?

Cloudformation est un outil très important dans la vie de tous les jours des personnes travaillant sur le cloud AWS. Il permet d’implémenter toutes les ressources AWS d’une manière rapide et efficace. C’est un très bon exemple de IaC : Infrastructure as Code.

Cloudformation facilite donc les déploiements, la maintenance et les évolutions d’environnement entier, mais permet aussi de templatiser ces infrastructures.

Les différents services du catalogue AWS évoluent de manière continue, et totalement indépendante. On peut comparer la plateforme AWS à une immense architecture en micro-services.

Il se peut donc que Cloudformation ne soit pas à jour par rapport aux nouveautés des services. Une fonctionnalité ou un paramètre spécifique peut ne pas être implémenté dans Cloudformation, cela rendra inutilisable la stack Cloudformation pour la ressource en question.

La suite de cet article a pour but de montrer comment contourner cette limitation, et construire toutes les ressources AWS comme on le souhaite.

Les « Custom Resources »

Heureusement, les Custom Resources sont là pour nous aider. Elles permettent de provisionner les ressources AWS à chaque fois qu’une stack Cloudformation est créée, mise à jour ou supprimée.

Alors, comment ça marche ?

De manière très simple, sur un changement, Cloudformation appelle une fonction Lambda avec un event spécifique, et attendra un retour de cette fonction de manière à définir si la ressource a été correctement modifiée, ou non.

Nous remarquons ici la possibilité d’utiliser l’un des SDK proposés par AWS, par le biais de la fonction lambda ( Python, Java, Node.js, … ).

Voici le template de l’event envoyé par Cloudformation à la Lambda :

NB : Le champ ResourceProperties permet de personnaliser les paramètres de la fonction

On remarque aussi que l’event contient une URL qui correspond à l’endpoint qu’il faudra appeler quand le travail de la lambda est terminé. L’endpoint attend un statut des actions menées.

Voici un exemple de ce qu’attends l’URL :

Custom Resources : use case & implémentation

Comme souvent, lorsque je travaille pour un client, je commence par construire la solution « à la main » via la console AWS, ceci me permet d’avoir rapidement une solution exploitable. Une fois cette étape terminée, je construis l’IaC via Cloudformation, afin de fournir des templates qui seront utilsés pour construire les environnements de travail jusqu’à la production.

Travaillant sur un projet AWS AppStream, j’ai eu la surprise de voir qu’il était impossible à ce jour de joindre un rôle IAM ni à l’image builder, ni à la flotte en utilisant les ressources natives Cloudformation.

J’ai pris la décision d’utiliser le SDK et ainsi développer mes propres Customs Resources.

Construire la fonction Lambda

Commençons par construire la fonction Lambda permettant de créer et détruire les ressources.

Nous retrouvons les paramètres personnalisés depuis l’event :

Ensuite, on vérifie dans l’event quelle est l’action à  effectuer :

  • Création :

  • Destruction : Dans cet exemple, la flotte doit être stoppée avant d’être supprimée

Comme expliqué, la Custom Resource attend un statut que je remplacerai par un code retour.

  • Ci-dessous le code permettant de faire cet appel :

Construire le template Cloudformation

Ensuite, nous passons à la création du template Coudformation. On peut voir dans cet exemple que l’Image Builder et la flotte sont une seule et même ressource, de type : Custom::IBAndFleetBuilder, et que le champ ServiceToken correspond  à l’ARN de la Lamda.

Conclusion

Grâce aux Custom Resources, j’ai pu livrer au client un template Cloudformation opérationnel, qu’il peut utiliser pour déployer automatiquement toutes ses ressources AppStream en un clic, mais aussi pour les supprimer lorsqu’il le souhaite.

Il est important de noter que la stack Cloudformation fait un appel à la Custom Resource lorsque celle-ci est mise à jour, ainsi pour éviter ce comportement, nous pourrons donc implémenter une fonction spécifique dans la Lambda qui sera en charge d’effectuer cette partie.

Références : 

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html

Corexpert obtient la compétence AWS DevOps

Corexpert obtient la compétence AWS DevOps

LYON, September 09, 2020– Corexpert is pleased to announce the Amazon Web Services (AWS) DevOps Competency status.

This designation recognizes that Corexpert provides a holistic approach to Devops implementation and that it has a proven track record of implementations of Devops tools.

This competency furthermore proves to our customers that the quality and calibre of our AWS-specialist consultancy is of the highest possible standard.

Corexpert has namely a proven customer success with specific focus on Continuous Integration & Continuous Delivery, Monitoring Performance and Infrastructure as Code.

“This AWS DevOps Competency is an important achievement in Corexpert’s journey” said Alexis Dagues CEO.

“This latest competency alongside our accreditation to deliver Well Architected Reviews and the SAP Competency is a statement that our team is dedicated to helping companies achieve their technology goals by leveraging the agility, breadth of services, and pace of innovation that AWS provides.”

About AWS

AWS is enabling scalable, flexible, and cost-effective solutions from startups to global enterprises. To support the seamless integration and deployment of these solutions, AWS established the AWS Competency Program to help customers identify Consulting and Technology APN Partners with deep industry experience and expertise.

About Corexpert

Corexpert is a cloud-native company with 14 years of experience. AWS Advanced Consulting Partner and Value-Added Reseller. The company joined TeamWork Group (in 2017) and deploy AWS competency in all of its 18 locations world-wide. With a strong expertise on SAP workloads, Big-Data, Web stacks and massive migration to AWS, Corexpert and TeamWork can deliver globally.

Corexpert – Organisme de formation officiel et autorisé par AWS

Corexpert – Organisme de formation officiel et autorisé par AWS

Corexpert, APN (AWS Partner Network) Advanced Consulting Partner et intégrateur AWS depuis 2010, est fier d’annoncer son nouvel agrément en tant que partenaire de formation APN.

Celui-ci reconnaît notre expertise éprouvée et fiable dans la diffusion et animation de formations techniques, en tant que professionnels de l’informatique spécialisés sur le Cloud AWS.

Au travers du programme de partenaire de formation APN, nous transmettrons notre expertise et savoir-faire aux entreprises afin de leur enseigner les meilleures pratiques AWS tout en leur permettant d’échanger en direct avec nos instructeurs AWS agréés. Parmi notre offre de formations, les apprenants pourront notamment retrouver des sessions de préparation aux examens de certification AWS.

Nous fournirons les meilleures ressources d’apprentissage et les connaissances approfondies nécessaires aux entreprises pour l’innovation IT et la construction de leur avenir sur le Cloud AWS. Le contenu de la formation AWS sera basé sur les connaissances natives d’AWS et donnera aux apprenants la possibilité de faire progresser leur carrière au travers du formation certifiante et d’accompagner la transformation de leurs organisations.

 

Un webinar en ligne et gratuit sera organisé le 29 Septembre de 10h à 12h (CEST) sur le thème suivant : AWS Discovery Day – An introduction to AWS.

Merci de vous inscrire sur ce lien : https://go.aws/2FXAytB

Plus d’informations : https://www.corexpert.net/fr/contact/

corexpert-apn-training-partner

Big Data dans le cloud : Data Science as a Service

Big Data dans le cloud : Data Science as a Service

Cas d’utilisation dans la Data Science

Le client, Sanofi, troisième entreprise mondial selon le chiffre d’affaires dans le secteur de la santé, pose la problématique de créer un écosystème applicatif pour traiter et analyser l’arrivée d’un flux constant de données cliniques (essais, données patients, etc…). L’environnement se doit d’être sécurisé du fait du recueillement d’informations sensibles liées au monde médical.

Le besoin est très spécifique et fait partie du domaine du Big Data et de la Data Science.

Cela demande, d’une part, la création d’un data center capable d’assurer le stockage d’une volumétrie en constante augmentation et d’autre part la création d’outils permettant d’analyser les données pour en extraire de la valeur métier.

La donnée en question est acquise régulièrement via des laboratoires et tierces entreprises. Un traitement indispensable d’anonymisation, de formatage, et de compression est nécessaire avant d’être ingéré dans le data center.

En moyenne, on ingère 1 Téraoctet de donnée clinique tous les mois pour être traitée et stockée.

Pour rendre la donnée stockée utile, il faut assurer une haute disponibilité et la rendre requêtable d’une façon flexible, performante et en minimisant les coûts, étant donné qu’il s’agit d’une grande volumétrie de data.

En même temps, il faut assurer la sécurité de la donnée pour garantir la confidentialité du client.

Une fois accessible, une application web donnera accès à cette donnée aux utilisateurs, principalement des Data Scientists (internes ou prestaires du client) pour l’analyser.

L’application doit permettre aux Data Scientists de provisionner en « self-service » des machines virtuelles capables d’exécuter des opérations de statistique, big data et machine learning, exigeantes en termes de puissance de calcul.

On doit de même être capable de tracer les coûts par utilisateur ainsi que les flux de données depuis le data center crée.

Une infrastructure de ce genre et des machines dédiées au Data Science de cette puissance auraient un coût très élevé sur des environnements «on-premise».

Dans le cloud on va pouvoir répondre avec des solutions scalables, en donnant accès à des ressources facturées à l’utilisation avec des architectures à la hauteur des plus grandes exigences de sécurité.

DataLibrary

Data Science as a Service

Data Lake

Pour répondre à la problématique du stockage de la data on propose un data center particulier, AWS Data Lake.

Data Lake est un data center centralisé pour tout type de donnée (structurée ou pas) et accessible à plusieurs services comme AWS Glue, AWS Athena, AWS API Gateway et ce d’une façon performante et enrichissante du point de vue métier.

DataLake.

AWS Service Catalog

Ensuite, pour donner accès aux utilisateurs à la donnée stockée nous faisons appel à AWS Service Catalog. Ce service nous permet de provisionner des machines virtuelles (AWS EC2) pour lesquelles on définit la capacité de calcul (Processeurs, CPU, RAM, débit, …) avec des environnements de travail préchargés : langages (Python et R), librairies et outils définis en amont dans des templates Cloudformation.

Service Catalog nous permet de générer un catalogue de machines, chacune avec un environnement de travail spécifique pour répondre aux différents besoins des utilisateurs.

Pour répondre aux besoins en termes de puissance, on choisit les m5.2xlarge, la toute dernière génération d’instance d’AWS, avec des Processeurs Intel Xeon® Platinum 8175 d’une fréquence maximale de 3,1GHz, 8 processeurs virtuels et 32 Gio de mémoire.Service Catalog.

Le prix d’une machine on premise equivalente est proche de 6000 euros.

Grace au modèle de facturation à l’utilisation, on peut donner accès à ces machines aux utilisateurs à un prix de 0,35€ par heure.

Avec Service Catalog on fait aussi la gouvernance de tous les produits provisionnés. On peut provisionner, terminer, hiberner, réveiller nos machines instanciées, à l’image de notre catalogue de produits, d’une façon rapide et flexible.

Ceci va nous permettre entre autres d’avoir une traçabilité complète des produits, leur durée de vie et donc aussi les coûts générés.

Architecture serverless

Architecture

L’architecture de la partie web utilise les briques classiques AWS d’une « single web page application », stockée dans un Amazon Bucket S3 délivrée par le CDN d’AWS, Amazon Cloudfront.

Pour l’authentification, nous utilisons AWS Cognito, lié au LDAP du client donnant accès aux appels API, créée avec AWS API Gateway.

On utilise la base de données No-SQL, Amazon DynamoDB pour stocker toutes les données nécessaires au fonctionnement de l’application.

L’ensemble de l’exécution du code de la partie backend repose sur AWS Lambda.

Ensuite, Service Catalog sert à provisionner et gérer les machines virtuelles, définies avec AWS CloudFormation.

La donnée clinique, stockée dans AWS Lake Formation, se retrouve dans des Buckets S3 « montés » au sein des machines virtuelles, dans un réseau isolé, afin de protéger l’accessibilité de la donnée.

Le versioning des projets sauvegardés par les utilisateurs et l’installation de librairies sont gérés grâce à des Git et Nexus internes pour garder le réseau fermé et éviter toute fuite de données.

Retour client

Le projet, toujours en cours, avec des nouvelles évolutions, réalisé par trois personnes, a été mis en production en moins de 6 mois. Et selon notre client :

« Travailler dans le cloud nous a permis en temps record de déployer une solution à une problématique interne qui autrement aurait nécessité plus de temps, de budget et des solutions on-premise qui auraient complexifié le projet et obligé à faire un plus grand investissement en termes de ressources. »

Notamment l’accès aux machines virtuelles de telles capacité ou d’autres services plus spécifiques comme l’Intelligence Artificielle, ouvrent les portes à la conception de solutions dans des domaines plus spécialisés.

Amazon Athena ou comment analyser facilement ses données

Amazon Athena ou comment analyser facilement ses données

De nos jours, il est courant d’avoir un nombre très importants de données issus d’applications et de bases de données comme par exemples des logs ou des statistiques. C’est l’analyse et le traitement de ces données qui permettent d’optimiser et de mieux comprendre les usages et d’enrichir en fonctionnalités les produits. AWS propose un large éventail de services concernant les datalakes et les solutions d’analyse de données. Dans cet article, nous allons nous pencher un peu plus sur Amazon Athena, un service managé permettant de facilement analyser des données sur Amazon S3.

En quoi consiste Amazon Athena ?

Amazon Athena est un service permettant d’interroger rapidement des données stockées dans Amazon S3 (d’autres sources seront sans doute supportées plus tard) en utilisant le langage SQL. Le service supporte de nombreux formats de fichier : CSV, JSON, ORC, Apache Parquet et Avro.
Athena est basé sur le moteur Presto 0.172 mais n’en supporte pas toutes les fonctionnalités.

Un des avantages d’Athena est de fonctionner entièrement en serverless : aucun coût d’infrastructure et pas de maintenance à gérer soi-même.
Le service est facturé en fonction du volume de données parcouru par requêtes et plusieurs méthodes existe pour optimiser le coût d’utilisation des services :
Compresser les données ayant vocation à être analysé par Athena.
Partitionner les données horizontalement en utilisant des préfixes dans S3.
Pour des données classées par date, nous pouvons utiliser le préfixe suivant : s3://nom-du-bucket/année/mois/jour/heure/nom-des-fichiers.csv.gzip. Cela permet à Athena de ne pas parcourir tous les fichiers à chaque requête.
• Utiliser des formats de fichier en colonne comme Parquet. De cette manière quand une requête ne porte que sur certaines colonnes, seul le volume de données de ces colonnes est facturé..

Athena n’est pas recommandé pour être un entrepôt de données (data warehouse). Pour ce besoin, il vaut mieux se tourner vers Amazon Redshift pour obtenir des performances et un résultat plus intéressant.
En continuant les comparaisons avec les services Data de AWS, Athena est limité à des requêtes SQL uniquement à la différence de Amazon EMR qui propose d’autres frameworks.

Création d’une table sur Athena

Pour pouvoir requêter des données avec Athena, il faut au préalable créer des tables avec un DDL (Data Definition Langage). Suivant la complexité de la structure de nos champs et le nombre de sources de données, les DDL peuvent vite devenir complexe à rédiger.
Voici un DDL servant à la création d’une simple Table dans Athena :

Utilisation combinée avec AWS Glue

AWS Glue est un service d’ETL (Extract-Transform-Load) mis à disposition par AWS et reposant sur des indexeurs (crawlers).
Le crawler Glue est capable de parcourir et d’analyser automatiquement des sources de données afin d’en déterminer la structure et par la suite de créer des tables dans un catalogue appelé « Glue Data Catalog ». C’est ces catalogues qui sont ensuites accessibles depuis Athena.
En combinant l’utilisation du crawler Glue avec Athena, il est possible d’accéder de manière très rapide à des données déja triées.
Il est possible de planifier de manière périodique l’exécution du crawler Glue afin de réduire les interventions humaines et de faciliter l’accès aux données par le business.

Cas d’usage

Présenté lors de la RE:Invent 2017, ce cas d’usage repose sur S3, Lambda, Glue et bien sûr Athena. L’objectif est d’utiliser Athena afin de faciliter la consultation de backup de base de données.

Use Case Athena.Une base de données est copiée depuis un SGBDR via AWS DMS vers S3. Les fichiers sont sauvegardés au format parquet.
Le dépôt des fichiers dans S3 déclenche l’exécution d’une fonction Lambda qui va lancer le crawler Glue.
Le crawler va parcourir les données afin de mettre à jour le Data Catalog Glue.
Grâce aux catalogues, la base de données et les tables associées à celle-ci sont accessibles directement depuis Athena.

De cette manière, nous avons à disposition un backup accessible sans coût d’infrastructure associé. Seul le volume de données dans S3 et les données parcourues par Athena sont facturés.

Des outils de visualisation tels que Tableau ou Amazon Quicksight peuvent éventuellement être utilisés afin de mettre en places des dashboards.

Vous avez un projet d’entrepots de données ? Des conseils pour optimiser votre architecture existante ? N’hésitez pas à faire appel à nos experts pour vos projets !

DevOps : concepts et base

DevOps : concepts et base

Le DevOps est un mot à la mode en ce moment dans le monde de l’IT mais il est toujours difficile de cerner exactement ce qu’apporte ce concept protéiforme. Nous allons nous pencher un peu plus sur ce (vaste) sujet et aborder les bases de ce qui constitue le DevOps.

Qu’est-ce que le DevOps ?

Vous l’aurez peut-être deviné, DevOps provient de la contraction des mots développement et opérations. Il s’agit d’une approche culturelle et technique reposant sur des principes agiles et visant à renforcer la collaboration entre les équipes métiers, développement, opérations et assurances qualité dans le but de délivrer des logiciels de manière continue. Cette organisation permet à une entreprise de profiter plus rapidement de certaines opportunités de marché et d’avoir un retour client accéléré.

Dans une approche DevOps, les équipes de développement et d’opérations collaborent pleinement et peuvent même fusionner. Ces équipes travaillent ainsi sur tout le cycle de vie des applications comme l’illustre le schéma au dessus.

Il est important de garder à l’esprit qu’une approche DevOps n’est pas uniquement technique : elle est aussi culturelle et relationnelle. Elle repose sur la communication entre tous les services d’une entreprise au-delà des équipes purement techniques (développement et opérations). L’approche DevOps doit ainsi englober les parties prenantes d’un projet tels que : le marketing, la direction et même les clients…

Les bénéfices d’une approche DevOps

La mise en application de l’approche DevOps au sein des équipes et des environnements garantit de nombreux avantages comme la facilité de la maintenance, l’automatisation des tâches ou l’amélioration de la communication inter-équipes.

  • Publications plus rapides et plus légères.
    La publication fréquente de nouvelles versions d’un logiciel va permettre de mettre à disposition les nouvelles fonctionnalités plus rapidement aux client (gain de compétitivité à la clé). Avec des déploiements plus fréquents, ces derniers sont moins importants et posent potentiellement moins de problèmes. La remontée de bugs est également accélérée.
  • L’automatisation, gage de fiabilité
    Une approche DevOps permet un gain non négligeable en termes de sécurité et de fiabilité. Grâce aux processus automatisés, on ne risque plus d’erreurs humaines liées aux tâches manuelles. De nombreux tests et vérifications automatiques sont effectués avant d’arriver à une phase de déploiement qui devient un non-événement.
  • Automatisation & productivité
    Du fait de cette forte automatisation, on bénéficie aussi d’un gain en termes de productivité. On peut profiter de plus de temps pour travailler sur de nouvelles fonctionnalités au lieu d’effectuer des tâches manuelles et lentes de tests, gestion d’infrastructures ou encore de déploiement.
  • Facilitation de la communication interne
    Le DevOps vise aussi à améliorer la collaboration entre les équipes, qu’elles soient techniques ou non. L’objectif de la philosophie DevOps est d’aligner tout le monde sur le même objectif pour éviter les conflits. Par exemple, de nombreux outils de supervisions retranscrivent sous forme de tableau (dashboard) les données et facilitent la compréhension et le suivi par tous.

DevOpsBenefits.

Quelques pratiques de l’approche DevOps

L’automatisation étant au cœur de la philosophie DevOps et de nombreuses pratiques y participent mais ces changements techniques impliquent aussi une organisation différente. Voici quelques grandes pratiques DevOps.

  • Intégration continue
    Méthode de développement logiciel permettant d’intégrer régulièrement chaque changement du code au niveau d’un dépôt de code source (GitLab, Bitbucket). A la suite de cette intégration, des opérations automatisées de build et de tests sont lancés avec le nouveau code source.
  • Livraison et déploiement continue
    Il s’agit de l’extension même de l’intégration continue. En effet, si le processus d’intégration continue permet de tester l’application à chaque changement de manière optimale, on peut se permettre par la suite de préparer un livrable ou bien de carrément déployer l’application quand tous les tests sont au vert et ce de manière automatisée.
  • Infrastructure as Code
    Le concept d’Infrastructure as Code se réfère au fait de décrire son infrastructure sous forme d’un fichier texte (JSON/YAML). L’infrastructure peut alors être gérée comme du code source normal en étant versionnée ou encore passée dans un processus d’intégration ou de déploiement continu.
    Grâce aux API proposés par les différents Cloud providers, l’IaC est désormais accessible grâce à des outils comme Terraform ou AWS Cloudformation (pour ne citer qu’eux) qui prennent en entrée ce fichier respectant une certaine norme puis déploient et configurent l’infrastructure décrite de manière automatisée. Cela permet une forte standardisation, une limitation des risques d’erreurs de configuration mais aussi une reproductibilité grandement simplifiée.
  • Monitoring et feedback
    Dans une démarche DevOps le monitoring aussi bien au niveau de l’application que de l’infrastructure est important pour détecter les problèmes de performances, de sécurité ou encore d’expérience utilisateur.
    Cela constitue la boucle de feedback de la démarche DevOps qui permet de mettre en lumière les problèmes posés par les mises à jour et les potentielles améliorations à apporter. (On peut citer par exemple Grafana, qui a été l’objet d’un article précédemment.)
  • Communication et collaboration renforcées
    Au-delà de la partie technique, comme nous l’avons évoqué en début d’article, une démarche DevOps passe aussi par l’amélioration de la collaboration au sein et entre les équipes techniques (développement, opérationnel) et non techniques (marketing, direction …).
    Le DevOps casse les frontières et implique un partage de l’information entre toutes les parties prenantes à un projet dans le but de garder un objectif commun.

cloudappsdevops

En conclusion

L’approche DevOps apporte de nombreux avantages en termes de productivité, de fiabilité et de maintenance. En facilitant la communication entre les pôles d’une équipe, l’approche DevOps est aussi un facteur de cohésion : grâce à des métriques fiables et communes, un environnement peut être analysé et optimisé par l’ensemble de l’équipe. L’automatisation des processus est important aussi bien en termes d’efficacité que de fiabilité. L’approche DevOps reposant sur les concepts d’agilité, les retours utilisateurs peuvent être intégrés rapidement au sein des solutions déployées.

L’approche DevOps serait donc le saint Graal du monde de l’IT ? Sans doute mais la mise en place des principes DevOps est toujours une gageure quelle que soit la structure. La bonne application des pratiques nécessite des équipes volontaires aussi bien dans la technique (CI/CD et utilisations d’outils IaC) que dans le relationnel (partage de l’information renforcée, amélioration de la communication). Comme souvent, une bonne synchronisation des équipes et l’application de bonnes pratiques sont la base d’un travail efficace.

How-to : Grafana 6 sur AWS avec Docker

How-to : Grafana 6 sur AWS avec Docker

Le maintien d’une infrastructure et l’optimisation des ressources sont des tâches qui nécessitent une vigilance quotidienne et des plateformes comme Grafana, Kibana ou Chronograf sont une pierre angulaire dans la surveillance des systèmes d’information.

Cette supervision est très importante dans un contexte DevOps : une meilleure vision des ressources facilite les prises de décisions, facilite le suivi de performance et permet de réfléchir plus durablement sur l’intérêt d’automatiser les tâches. La bonne mise en place et configuration de ces outils de supervision facilite une notion importante du DevOps : le dialogue entre le Dev et les Ops renforcé par des métriques fiables et partagées.

Nous allons nous pencher sur Grafana et plus spécifiquement la version 6 (une des dernières versions disponibles au moment où nous écrivons cet article). Dans un premier temps, nous aborderons l’intérêt de se baser sur AWS pour établir son outil de monitoring puis nous suivrons pas à pas la mise en place de l’infrastructure proposée.

Grafana est une plateforme open source de visualisation de métriques et de surveillance permettant de réaliser des tableaux de bord et des graphiques. La visualisation des métriques est remontée dès que les données sont disponibles et la plateforme supporte des data sources comme Cloudwatch, Influxdb, Elastichsearch ou Prometheus… Un des avantages de Grafana est aussi sa comptabilité avec plusieurs types d’authentification et ne nécessite donc pas d’utilisateurs IAM à gérer.

Voici quelques avantages à déployer Grafana sur AWS :

• Scalabilité de la base de données
Par défaut Grafana utilise SQLite3 en local mais supporte également MySQL et PostgreSQL. En utilisant Aurora MySql serverless, plus de problème d’évolutivité et le coût est indexé sur l’activité (pay as you go).

• Services managés
Avec des services comme Amazon Aurora ou l’utilisation de Docker avec Amazon ECS et AWS Fargate, plus besoin de gérer la maintenance de base de données ou de cluster ce qui se traduit par un gain de temps considérable.

Notre architecture de test

L’architecture est la suivante : un Application Load Balancer redistribue la charge sur le cluster ECS Fargate qui interroge la base de données Aurora MySQL Serverless.
D’autres services sont appelés afin de superviser (CloudWatch) ou de sécuriser (IAM, Certificate Manager et Route 53).

grafana-architecture

Place à la pratique

Pour ce tutoriel, on part du principe que le compte AWS est opérationnel et que la couche réseau (VPC, Subnets …) a été créée au préalable.

Création de la base de données Aurora MySQL

grafana-auroramysql

Création du cluster ECS

grafana-cluster-ecs

+ Configuration du cluster : création de Task definition Grafana (utilisation du Docker hub pour récupérer l’image Docker)

grafana-taskdefinitionDocker

+ Configuration du cluster : inclure les variables d’environnement qui commence par GRAFANA_DATABASE_*

grafana-databaseconfig

Task Definition ECS Fargate

grafana-fargate

+ Configuration de ECS Fargate : création du Service ECS

grafana-fargate-serviceecs

+ Configuration de ECS Fargate : Configuration du réseau

grafana-reseau

Permettre l’accessibilité de Cloud Watch <> Grafana avec les policies IAM

Ajouter l’IAM Policy (JSON) disponible sur le site de Grafana.

Configuration des data sources pour Grafana

grafana-datasources

Cas d’usage : monitoring le coût de run efficacement
IAM Policy pour avoir l’accès à la facturation :

Un exemple d’un tableau de bord concernant la facturation de services AWS.

grafana-dashboard-billing

Conclusion

Comme vu précédemment, la mise en place d’une plateforme de supervision est une pierre angulaire dans un environnement. Une supervision centralisée, résiliente et capable de croitre selon les besoins peut ne pas être un besoin critique au départ mais s’avère rapidement indispensable. Grâce à AWS, la notion d’agilité est possible grâce au scalling in / out et au paiement à la ressource consommée.

Vous êtes intéressés par le sujet du DevOps ? Notre prochain article à paraitre courant juin, reprends quelques bases sur ce sujet complexe !

Corexpert, way to performance !

Corexpert, way to performance !

Le chef de projet est la personne dans l’entreprise organisant et assurant le bon développement de projet jusqu’à sa réalisation. Son objectif est de superviser les différentes tâches telles que le respect des deadlines, la maîtrise des coûts ou la répartition du travail au sein d’une équipe…

Chez Corexpert, deux chefs de projets pilotent notre équipe de développeurs et d’architectes : Robin présent dans l’entreprise depuis 5 ans et Gaël arrivé dernièrement. Pour nos deux experts, le métier de chef de projet a été un développement professionnel qui s’est greffé à leur ancien poste de développeur.

Gaël a débuté en tant que développeur au sein d’une grande entreprise de construction puis est devenu responsable suivi de production. Aujourd’hui chargé du suivi de l’infrastructure, sa précédente expérience lui a permis d’avoir une vision générale sur le sujet : grâce à son savoir technique, Gaël a rapidement pris ses marques au sein de Corexpert et il supervise de nombreux projets de l’avant-vente à la mise en production.

Avant de devenir chef de projet, Robin a effectué ses 8 premiers mois chez Corexpert, en tant que développeur mobile IOS. Au fur et à mesure, Robin a aménagé son temps entre développement et gestion de projet afin de répondre au mieux aux problématiques clients. Cela fait maintenant trois ans qu’il est chef de projet à plein temps orienté développeur.

Même si Robin et Gaël ont la charge d’équipes à la fois distinctes et complémentaires, rien ne les empêche d’avoir une perspective globale sur l’ensemble des projets en cours qu’ils soient développeurs ou architectes. Les deux pôles sont complémentaires et ceux malgré le fait que les projets ne mobilisent pas les mêmes compétences. Le cœur de la gestion d’un projet reste identique, le but étant de mener à bien le projet et ce dans les temps et avec le budget alloué.

Pour Robin, il est primordial d’avoir des connaissances dans les deux pôles « on a besoin d’avoir des connaissances dans les deux domaines que ce soit de l’infrastructure ou du code. De mettre en commun nos compétences pour arriver à un projet solide et fiable, capable de satisfaire les besoins de nos clients ». Gaël, rejoint l’idée de Robin en ajoutant le fait que le fait de posséder un savoir large permet de se partager plus efficacement les projets afin d’être plus disponible pour le client.

Fonction Chef de Projet

La plateforme leader du cloud, AWS, dispose de nombreux services : le choix du service à mettre en place pour accomplir le projet est souvent matière à réflexion. Pour Robin, la gestion de projet repose sur la complémentarité d’une équipe : « La plateforme AWS dispose d’une multitude de services, l’équipe sait comment les utiliser mais le chef de projet va savoir orienter son équipe sur les meilleurs services en termes de performances et de coûts. » C’est d’autant plus vrai que chaque membre de l’équipe tend à se spécialiser et une bonne organisation des tâches favorise un environnement de travail agréable : le client est assuré d’avoir un expert positionné sur la question et l’expert travaille sur un projet qui l’intéresse.

De plus, avoir été « sur le terrain », permet selon Robin et Gaël, de bénéficier d’une connaissance globale d’AWS et de gagner en réactivité : nul besoin de solliciter les équipes pour certaines questions auxquelles le chef de projet peut répondre sereinement. Les besoins des clients sont plus rapidement cernés et l’offre est adaptée à leurs besoins.

Si vous êtes intéressés à travailler avec les équipes de Corexpert, n’hésitez pas à nous contacter ! Nous saurons vous accompagner dans vos projets de machine Learning, Big Data, migration…

 

Réseau mondial, où centraliser ses données ?

Réseau mondial, où centraliser ses données ?

Introduction

Grâce à ses multiples régions à travers le monde, AWS offre la capacité de créer une infrastructure réseau couvrant la totalité du globe. Dans ce cadre la question de l’emplacement des données se pose : doivent-elles être centralisées dans une région, ou réparties selon les besoins ?
Pour apporter un élément de réponse à cette problématique, nous nous sommes penchés sur les vitesses de transfert de données inter-région. Pour cas d’usage, nous avons pris un environnement Windows avec des utilisateurs travaillant sur des machines pour traiter/manipuler des données de projets hébergées sur un serveur de fichiers.

Un peu de théorie

Lorsque qu’un message est envoyé d’une machine à une autre, il va mettre un certain temps pour parcourir le chemin à travers le réseau. Ce temps est appelé la latence. On peut consulter un tableau des latences entre les régions AWS sur le site www.cloudping.co :

graphique-1

On vous déconseille de transférer des fichiers de São Paulo à Mumbai.

Lors du transfert d’un fichier, plusieurs messages sont échangés entre les machines, notamment à l’initialisation de la connexion puis durant le transfert car le fichier va être découpé en plusieurs messages. Le nombre d’échanges est dépendant du protocole de communication utilisé. Plus il y a d’échanges, plus la latence va impacter le temps total de transfert.

En pratique

Durant nos tests, en plus de comparer les temps de transfert entre les régions, nous avons également voulu voir l’impact de la version de Windows Server du côté de l’hébergeur et de la consommation des données.

Notre protocole de test :

  • Infrastructure réseau répartie sur les régions Oregon, Ireland et Singapore (liaison avec VPC peering)
  • 4 serveurs Windows Server 2008 R2, 2012 R2, 2016 et 2019 par région
  • Fichiers de test : un dossier de 400Mo contenant 210 fichiers allant de 52k à 100Mo
  • Outils de transfert : robocopy

La mise en place de l’infrastructure et les tests ont été automatisés à l’aide des services AWS CloudFormation et AWS System Manager.

Infrastructure réseau :

Infra Reseaux TestQuatre type de Windows Server (2008 / 2012 / 2016 / 2019) dans trois régions AWS distinctes (Oregon / Ireland / Singapore)

Les latences observées entre les régions :

  • Oregon – Ireland : 160 ms
  • Oregon – Singapore : 170 ms
  • Ireland – Singapore : 190 ms

Résultats des transferts :

graphique-2

graphique-3

graphique-4

On peut constater plusieurs points :

  1. Les temps de transfert sont sans commune mesure à l’intérieur d’une même région.
  2. La liaison Oregon-Ireland est plus rapide qu’Oregon-Singapore
  3. Selon la version de Windows Server, on peut avoir près de 50% de temps de chargement en plus.

Conclusion

Malgré la qualité des connexions réseaux, la distance entre les données et les utilisateurs est un facteur primordial pour une expérience de travail optimale. Il faut donc privilégier les courtes distances.

Pour pallier ce problème, nous pouvons nous appuyer sur l’offre End User Computing d’AWS qui fournit des machines de travail au plus près des données : Amazon WorkSpaces et Amazon AppStream 2.0. L’un est un service de desktop streaming et l’autre d’application streaming.

Tous deux sont accessibles par internet depuis le monde entier et utilisent des protocoles sécurisés et optimisés. En les intégrant dans un domaine Active Directory, ils offrent une porte d’entrée sécurisée vers votre système d’information, sans contraintes de mise en place de configuration réseau entre vos utilisateurs ou prestataires externes.

Vous voulez en savoir plus sur les possibilités de déploiement de Amazon WorkSpaces et Amazon AppStream 2.0 ? N’hésitez pas à nous contacter !