jeudi 29 novembre 2018

C'est quoi l'outil de Gestion de Configuration Puppet ?

C'est l'objectif de ce blog que de décrire ces outils pour s'y retrouver un peu et tenter de trouver les outils qui conviennent le mieux pour vos développements, alors cette fois on me parle de Puppet.

L'outil puppet c'est quoi ?

Wikipédia - Puppet
Gestion de la configuration de serveurs esclaves ... Puppet est écrit à l'aide du langage Ruby. Déploiement de systèmes applicatif sur des machine virtuelles Amazon EC2. Version commerciale qui gère en plus les machines Virtuelles VMware. Automatisation et orchestration des déploiements.

Puppet est utilisé dans la suite Satellite de Red Hat. Il existe une version pour Windows !?

https://puppet.com/download-puppet-discovery
https://puppet.com/download-puppet-discovery

Le site : https://puppet.com/

Puppet - Products
Puppet - Products

Quelques images pour se donner une idée de l'interface graphique et de sa complexité :

Puppet - Cluster
Puppet - Cluster

Et le Puppet Projects :

Puppet - Projects

Puppet - Pipline for containers :

Fournir des applications natives vers le Cloud de Kubernetes.

Puppet - Pipline for containers
Puppet - Pipline for containers

Quelques définitions des fonctionnalités trouvées sur le site de Puppet :

Les Pipelines de Puppet simplifient la diffusion continue et offrent à vos développeurs une automatisation simple, en libre-service, leur permettant ainsi de livrer des applications sans délai, sans attendre quelqu'un d'autre.

Puppet automatise la création et le déploiement de vos applications, qu’il s’agisse d’applications traditionnelles empaquetées ou natives sur le cloud, exécutées sous Kubernetes, et vous offre une visibilité approfondie et des traces de vérification pour chaque action entreprise.

Tout ceci à l'air extrêmement complexe et complet espérons le. Je trouve des versions d'essai et toute la documentation nécessaire.

Voilà maintenant j'ai une idée un tout petit peu plus de clair de ce qu'est Puppet ...

Puppet 5 Beginners's Guide

Et sinon il y a des scéances de cours :

Getting Strated With Puppet

On est quand même sur du $2,400 USD pour trois jours de cours Puppet ...

De toutes les façons, sur leur site, où que vous essayez d'aller, vous allez vous trouvez face au fameux formulaire :

"Enregistrez-vous pour démarrer maintenant" :

Puppet - Sign Up
Puppet - Sign Up

Je n'aime pas beaucoup cette pratique, pas de cas d'utilisation pas de comparaison par rapport à d'autres solutions, vous êtes jeté dans le grand bain et à vous de vous démerder pour apprendre à nager. 

C'est votre temps que vous devez investir. Il faudra trouver une autre solution pour évaluer cet outil de façon plus approfondie...

Have fun!

vendredi 23 novembre 2018

C'est quoi Ansible ? IT automation tool ?

On est dans le vif du sujet, la prolifération des outils de développement logiciel est faramineuse et leurs noms n'évoquant absolument rien il est bien difficile mémotechniquement de retenir tout ça. Alors Ansible c'est quoi ?

Je cherche un peu, je tombe bien directement sur la documentation : Doc Ansible
 
Documentation Ansible
Documentation Ansible

Et si on en croit la documentation c'est un outils d'automatisation des tâches de l'intégration continue avec un temps nul de retour en arrière. Autrement dit si un erreur est détectée durant le déploiement d'une nouvelle release on peut retrouver rapidement l'état précédent de fonctionnement correcte.

Et dans la doc :

Control Machine Requirements
Currently Ansible can be run from any machine with Python 2 (version 2.7) or Python 3 (versions 3.5 and higher) installed. Windows isn’t supported for the control machine.
This includes Red Hat, Debian, CentOS, macOS, any of the BSDs, and so on.

Dommage !


Une belle vidéo :
With Ansible - Solve IT, Automate IT, Share IT

On dirai que c'est un peu lié à la distribution Linux Red-Hat :

Ansible & RED HAT

Ansible is a Tower.

Oui mais ce n'est pas pour Windows. Encore que : Ansible Windows Guide

A creuser !


Découvrons les outils de la Business Intelligence (BI ou décisionnel)

A quoi servent ces outils de la Business Intelligence quels sont-ils ? Comment comprendre leurs fonctionnalités pour les mettre en œuvre rapidement. Il me semble que cela concerne le traitement des données d'une base de donnée mais pas seulement.

Les outils de la Business Intelligence (BI)
Les outils de la Business Intelligence (BI)

Je tombe sur une annonce pour l'emploi de la société Business & Decision : ils cherchent un Consultant Talend au sein du Business & Decision Corporate Services et dans l'annonce il est stipulé que bien évidemment : "Vous maitrisez au moins un outil décisionnel (ODI, Datastage, Informatica, Qlikview, Tableau Software, BO, Cognos, Talend, Power BI, SQL Server, Oracle, etc)

J'avoue, je suis surpris par autant d'outils et en même temps je trouve cela un peu présomptueux de connaitre tout cela. Forcément je connais SQL Server et encore pas complétement les outils BI qui sont autour d'SQL Server. Je connais également Oracle pour avoir été obligé de travailler avec.

Alors faisons le tour de tous ces outils de la Business Intelligence (BI) afin de voir ce que cela implique comme connaissances et ce que l'on va bien pouvoir faire avec ça.

Power BI

On plutôt Microsoft Power BI, c'est un outil d'analyse qui délivre des insights qui permettent des décisions rapides, en toutes connaissances de causes.
Passez des données aux insights en quelques minutes.

Du blabla non ?

Microsoft Power BI
Microsoft Power BI

Des graphiques pour analyser vos données.


Télécharger gratuitement
Un .msi  de  200 Mo pour l'installation de Power BI Desktop.

Talend

Puisque cet outil de Business Intelligence qui est mis en avant dans l'annonce APEC que je sitais ci dessus, voici donc Talend outil BI :

Talend : Déplacez vos données
Talend : Déplacez vos données

Cette fois ce n'est pas facile de comprendre ce que fait cet outil. A peine vous cliquez on vous vous inscrire dans une appli web pour faire un essai de 30 jours !

talend - S'enregistrer
talend - S'enregistrer

Oui d'accord s'enregistrer mais pourquoi faire, ce n'est pas claire.

talend - Big data - Data integration - Data preparation
talend - Big data - Data integration - Data preparation

Et maintenant trois outils différents c'est encore moins claire.

Le menu Solutions

talend - les Solutions
talend - les Solutions

Je comprends que les outils BI talend peuvent adresser tous les clouds AWS, Azure, Google, Snowflake, Cloudéra Altus, Hadoop,

Peut être que le début commence avec TALEND DATA FABRIC

talend data fabric
talend data fabric

Et tout redevient flou où aller ? ESSAI GRATUIT ? Un formulaire pour demande votre version d'essai gratuite.

Il existe par ailleurs nombre d'outils gratuits :

talend outils gratuits
talend data fabric - outils gratuits

Alors j'ai eu l'occasion d'utiliser Talend et je dois dire que c'est un formidable outils de BI pour manipuler organiser les données de vos bases de données. Au moment où je l'ai utilisé il était gratuit sans restriction vous pouviez tout faire et des fonctionnalités il y en a.

C'est un outil graphique très facile à utiliser que je vous recommande.

Informatica

Outils d'intégration de données créer en 1993

Qlikview

Tableau Software

BO

Business Object

Cognos
SQL Server
Oracle

Imaginez ... et à continuer. Voici, c'était le monde de la Business Intelligence (le monde du décisionnel)

To Be Continued!

Connaissez-vous Kubernetes ? Outil du DevOps

Parmi les outils du DevOps voici Kubernetes, un outil qui a le vent en poupe. Intéressons nous aux fonctionnalités qu'il procure. Cet outil permet de gérer les applications mises en containers.

Les outils du DevOps Kubernetes
Les outils du DevOps Kubernetes

Définition : Kubernetes est un système open source permettant de gérer des applications contenairisées sur des hôtes multiples. Il fournit des mécanismes de base pour le déploiement, la maintenance et la mise à l'échelle (scale up) d'applications.

Ce projet open source est hébergé par le Cloud Native Computing Foundation (CNCF).

J'ai trouvé à travers la documentation quelque graphiques simples pour présenter cet outil :

Learn Kubernetes Basics

Qu'est-ce que Kubernetes peut faire pour nous ?

Avec les services Web modernes, les utilisateurs s'attendent à ce que les applications soient disponibles 24 heures sur 24, 7 jours sur 7, et les développeurs s'attendent à déployer de nouvelles versions de ces applications plusieurs fois par jour. 

La containeurisation aide les progiciels à atteindre ces objectifs, permettant ainsi aux applications d'être publiées et mises à jour de manière simple et rapide, sans temps d'arrêt.

Kubernetes vous aide à vous assurer que ces applications containeurisées s'exécutent où et quand vous le souhaitez et les aide à trouver les ressources et les outils dont elles ont besoin pour fonctionner.

Kubernetes est une plate-forme open source prête pour la production, conçue avec l'expérience accumulée de Google dans l'orchestration de conteneurs, associée aux meilleures idées de la communauté.

Kubernetes Basics Modules - Basic workflow

  1. Créer un cluster Kubernetes
  2. Deployer une application
  3. Explorer votre application
  4. Exposer votre application publiquement
  5. Scale up votre application
  6. Mettre à jour votre application

Voilà c'est tout pour l'instant, je garde en tête le nom de cet outil et s'il permet de faire facilement tout cela. Dans le cadre du DevOps, il est indispensable d'automatiser toutes les tâches possibles pas seulement pour gagner du temps mais pour supprimer les erreurs humaines également.

J'ai passé du temps à recueillir ces informations et pourtant ce n'est pas exhaustif, je ne sais même pas sur quelle plateforme cet outil s'installe !

Mise à jour, de plus en plus de client cherchent des compétences sur Kubernetes

Je me suis retrouvé dans un Bootcamp :

kubernetes bootcamp 1
kubernetes bootcamp 1

La seule commande que j'ai su taper c'est :

>exit

En fait, il faut cliquer sur les commandes dans la fenêtre de gauche sous "Cluster up and running" et vous verrez les commandes :

>minikube version

>minikube start ...

Vous avez alors les commandes qui s'exécutent et affichent leur déroulement dans la console.

Kubernetes dans le Cloud Azure de Microsoft

Je trouve toute une littérature sur le sujet, sur le site de Microsoft je trouve :

Kubernetes dans le Cloud Azure
Kubernetes dans le Cloud Azure

Microsoft - Azure Kubernetes Service (AKS)

AKS réduit la complexité et les coûts opérationnels liés à la gestion de Kubernetes en déléguant une grande partie de cette responsabilité à Azure.

Beaucoup de blabla, pas de cas pratique, beaucoup de liens vers d'autres technos. C'est normal, la complexité de Kubernetes ne s'appréhende pas en une demi-journée.

J'ouvre mon portail Azure et je cherche Kubernetes, je trouve "Kubernetes - Azure Arc", alors Azure Arc c'est quoi ? ... Ils appellent cela : Hybride et multicloud

Il me faut creuser encore ...

mardi 30 octobre 2018

Comment et pourquoi centraliser les logs pour l'ensemble de votre SI ?

C'est primordiale pour un Système d'Information de centraliser les Logs, c'est à dire en fait d'avoir un système cohérent de production puis d'analyse des Logs pour la couverture de l'ensemble de votre Système d'Information. De surcroit, il faut que votre système de log soit performant pour retracer identifier les problèmes rapidement.

Je viens de discuter avec un client final de son système et de la catastrophe que sont pour lui les logs car dans son SI les logs ont été écris par maintes équipes différentes avec toutes sortes de briques différentes. Il voudrait un peu de rationalisation.

Alors que je viens de lire cet article :
Syloé - Pourquoi traiter et centraliser vos logs avec ELK et Craylog ?

ELK c'est pour Elasticsearch, Logstash et Kibana une suite de logiciels Open Source, on parle de Stack ELK. Kibana est un greffon de visualisation de données pour Elasticsearch.

Stack Elasticsearch Logstash Kibana

La solution qui est préconisé c'est d'utiliser Craylog et ELK, avec ELK l'inconvénient c'est la non-gestion des utilisateurs. Craylog permet de gérer les utilisateurs et les permissions façon LDAP.


Voilà nous avons fait le tour rapide de la centralisation des logs de l'ensemble de votre Système d'Information. C'est pas fini vous vous en doutez, pas si simple de mettre en œuvre cette pile de softs pour faire des logs.

C'est une nécessité absolue dans un SI de capitaliser sur les logs, de les maitriser, de les centraliser, de les expliquer pour l'ensemble des équipes soft. La façon dont est traité la problématique "faire des logs" dans un SI est caractéristique de la qualité de ce SI.

lundi 15 octobre 2018

GitHub - C'est quoi les fichiers .md (point md) ? Markdown ?

Je cherche à maîtriser une fois pour toute l'édition sous GitHub et GitLab. Faisons un tour complet sur les fameux fichiers ".md" que l'on trouve pour créer la documentation sous GitHub. A l'heure où je vous écris, je vous l'avoue, je ne sais pas encore ce qu'est réellement un fichier .md.


Je l'ai découvert par la force en utilisant GitHub. J'ai trouvé comment jongler avec, un tout petit peu dans GitLab dans l'article suivant Comment exporter votre Wiki. Mais je ne sais toujours pas ce que signifie réellement l'extension de fichiers ".md".

Je cherche et je me retrouve sur des sites qui ne me donnent pas la solution, un tas de sites se sont organisés pour que vous les visitiez mais ne vous donne pas la solution ! C'est quoi cette extension de fichier ".md" ... bref c'est Wikipédia qui gagne encore une fois la batille de la culture geek :

Un fichier ".md" est un fichier Markdown, Markdown est un langage de balisage léger créer en 2004 par John Gruber et Aaron Swartz.

https://donate.wikimedia.org/

Ah, j'étais bien ennuyé avec cette histoire de fichier ".md" car ils sont la clef de la documentation sous GitHub.

Aide et syntaxe

Le pire avec cette histoire c'est que GitHub se mords la queue, pour trouver de l'aide sur les fichiers d'aide (de documentation) c'est dans github dans un fichier .md :

https://github.com/luongvo209/Markdown-Tutorial/blob/master/README_fr.md

Là on est bien, c'est en français, il y a toutes les explications sur les fichiers Markdown merci à Luong Vo pour son travail de documentation, d'autres sujets chez lui son également très intéressants.

Outils

Originel en ligne par les créateurs du concept voici : dingus
il converti votre markdown en HTML

L'outil très puissant en ligne : Stack Edit

Encore un peu de doc : Comment bien commencer avec Markdown


Amusons nous avec les fichiers Markdown !

vendredi 5 octobre 2018

Visual Studio - Team Explorer & GitHub - Ce qui manquait pour bien démarrer

Nous avons vu dans l'article suivant que pour bien démarrer il faut synchroniser le projet pour la première fois dans git hub. Comment le faire avec Visual Studio dans Team Explorer avec GitHub ?

Vous avec créé un projet avec Visual Studio vous souhaitez le mettre en gestion de configuration dans GitHub comment faire simplement dans l'article précédent nous avions installé Git et TortoiseGit pour ce faire ici nous allons utilisé les fonctionnalités Tema Explorer de Visual Studio.

D'abord dans GitHub on créé un Repositorie :


Github création d'un nouveau Repositorie
GitHub création d'un nouveau Repositorie

GitHub vous fournit alors l'URL de ce repo quelque chose en .git que vous allez pouvoir utiliser avec Team Explorer de Visual Studio.

Vous avez créé votre Repo local en entrant le chemin de votre projet sur votre disque dur Team Explorer vous permet alors de Synchroniser votre Repo local :

Synchronisez votre Repo Local dans Github
Synchronisez votre Repo Local dans Github
Team Explorer vous propose d'entrer l'URL de votre Repo dans Github :

Publier le dépôt Git
Publier le dépôt Git
Pour synchroniser votre Repo Local avec Github. Il détecte alors qu'il n'y a rien dans le Repo de Github. Vous pouvez alors publier directement dans GitHub :

URL de votre Repo dans Gihub

Team Explorer vous permet d'entrer l'URL de votre Repo Github. Vous pouvez ensuite cliquer sur "Publier" pour uploader votre projet dans GitHub.

Quand vous retournez dans l'Explorateur de solution vous voyez les "petits cadenas" signes que votre projet est maintenant en gestion de configuration.

Projet Visual Studio en gestion de configuration dans GitHub
Projet Visual Studio en gestion de configuration dans GitHub
CQFD !


mercredi 19 septembre 2018

Vous cherchez une chaîne de développement multiplateforme pour Mobile ?

Comment développement une application multiplateforme pour téléphone mobile ? Mon mot d'entré est : "Ionic" mais je sens que cela ne va pas suffire ... Je tape "développement multi plateforme avec ionic" et là je sens que c'est le début de quelque chose.


https://ionicframework.com/
https://ionicframework.com/

D'abord le site de Supinfo m'explique que Ionic permet de construire mon application qu'une fois et de l'exécuter n'importe où car Ionic n'utilise que des technos Web portables comme HTML, CSS javascript.

https://cordova.apache.org/docs/en/latest/guide/overview/index.html
https://cordova.apache.org/docs/en/latest/guide/overview/index.html
Ionic permet en fait de développer des applications Web qui s'exécuteront dans un navigateur. Ionic permet de créer une application mobile qui se téléchargera depuis le "play store".

Mais bientôt on vous explique qu'il faut également utiliser Cordova qui est un grand dépôt de plugin. Ionic utilise également AngularJS. L'utilisation de la mémoire et les performances sont à considérer dans l'utilisation de Ionic ...

Supinfo
A noter sur cette page que liens ne fonctionnent pas que le chapitre "démarrer avec Ionic" est introuvable, bref il faut poursuivre tout seul.

Une application développée avec Ionic est dite hybride car elle utilise le développement Web et le développement Natif.

Me seconde recherche me porte sur le site Développez.com


Un tuto sympa comme toujours sur le site de Developpez.com
On nous dit que Ionic s'appuis sur Angular pour la partie Web et sur Cordova pour la partie native. C'est bien plus clair qu'avec supinfo qui avait raté cette explication claire.


SOAT

C'est toujours marrant mais rien ne nous dit qu'ils sont sous Linux comme si c'était une évidence mais sous Windows alors comment fait-on ?

https://github.com/SoatGroup/ionic3-movie-app
Les sources du projet sous Github

Installation

npm
Donc en fait on peut peut-être bosser sous Windows ... à voir.

Un fois de plus ce tuto sur l'utilisation de Ionic par Développez.com est super bien fait  on créé une application de bout en bout.

Je reviendrais peut-être, pour ma part je retourne à Xamarin.

jeudi 12 juillet 2018

Les outils pour réaliser un design Web

Voilà un vaste sujet, sans fin mais je tiens a garder une trace d'un site que l'on m'avait indiqué pour y revenir et tenter de percer les mystères de ce site car en effet je n'ai pas réussi à trouver exactement de quoi il s'agissait.

Tout à l'air particulièrement intéressant mais je n'ai trouvé rien de concret, il faut aller plus loin télécharger et installer des pluggings utiliser les ressources misent à disposition ...

Ce site s'appelle MATERIAL DESIGN


https://material.io
Material Design

C'est en tous les cas un site très joli ...

https://material.io/design
Materiel Design

Avec plein de chose à découvrir et le Web Design est toujours un sujet extrêmement délicat. Alors je reviens pour tenter d'en découvrir un peu plus.

Ce site est couplé avec GitHub, voici un des points d'entré :

https://github.com/material-components
Material Components

Beaucoup de Matériels sont sous forme d'open source valables pour Android, iOS, Flutter. Créer par Google.

C'est énorme et en tant que Développeur et par la forces des choses Désigner, il ne faut pas passer à côté.

Par exemple, voici comment créer des icônes système ce qu'il faut faire et ce qu'il ne faut pas faire.

MATERIEL DESIGN System icons

System icons

Voici la partie Web :

MATERIAL DESIGN - Web
Et voilà, c'est parti, ce sont les premiers pas pour utiliser MATERIAL DESIGN pour le Web. C'est très enrichissant et on apprend plein de choses sur le Design d'UI que l'on appelle maintenant UX !

Comment réaliser un bon audit de codes sources ?

Le premier chapitre de la qualité logicielle nous dit que pour faire un bon logiciel il faut ... et puis il faut passer à la pratique. Alors je souhaite me munir des bons outils pour réaliser un bon audit de code sources.

C'est mon sujet du moment, il devrait m'intéresser pendant quelques temps.

Analyse statiques de code pour C#

Il existent de nombreux outils d'analyse statique de code source peu sont en C# et sinon chers.

SonarQube

C'est cher j'ai trouvé une page qui me vend une licence à 120 € pour 100 000 lignes de codes ba ba ba ... 
sonarqube developer edition
SonarQube Developer Edition
Une fois le formulaire rempli ...

SonarQube Developer Edition
SonarQube Developer Edition - purchase order 
Jusque là ce n'est pas trop cher mais on n'a absolument rien ...
En cherchant bien mais alors vraiment bien, ici on nous prédit une version Free & Open Source

SonarQube - Solution Free & Open Source
SonarQube - Solution Free & Open Source
Mais je n'y crois pas ... et sinon pour télécharger la version 7.1 c'est Ici.
Finalement j'ai cliqué là :

Community Edition

Et j'ai atterri là :


SonarQube
Pour finalement télécharger "the lastest release edition 7.1" ... 146 576 Ko d'installs pour toutes les plateformes de tous les OS et tous les langages ... bref ...

La suite je vous dis si cela fonctionne.

Autres outils d'analyse statique

Voilà un outil d'analyse statique de codes sources qui semble cool et pas cher ...
PMD


https://pmd.github.io/

Online Documentation
https://pmd.github.io/pmd-6.4.0/pmd_userdocs_getting_started.html

Mince ! Pas de C# et pourtant il m'y ont fait croire avec leur CPD déteur de code copier collé ...

Par quoi continuer mon audit de codes sources ?

Finalement je me retrouve un peu coincé, je continuerai plus tard ...

mercredi 23 mai 2018

C'est quoi un container Docker ?

On est en droit de se poser la question, disons qu'on est même obligé dans le métier du logiciel vous entendez maintenant ce mot de Docker avant c'était Machine Virtuelle. Mais surtout on se doit de trouver la bonne réponse.

Un container Docker permet d'embarquer une application qui s'exécute au sein du container. Docker se sert du Noyau Hote pour faire tourner l'application dans son container.


Docker c'est quoi ?
Container Docker c'est quoi ?

Voilà je tenais à avoir un début de réponse concernant ce sujet que je vais creuser jusqu'à utiliser maintenant des "container" plutôt que des machines virtuelles (plus lourdes et plus difficiles à utiliser du fait de cette lourdeur).

Pour la suite et pour l'instant, je vous renvois vers cet article qui m'a fait découvrir ce qu'est un Container Docker l'article :

Docker : la technologie qui révolutionne le cloud

Mise à jour 29/05/2018 - Maintenant je vais un peu plus loin

C'est étonnant cette réussite de Solomon Hykes, en quelques années, quelques mois, il réussit a fédérer autour de ses "container" ou conteneurs en français toute l'industrie informatique qui se rallie au standard de Docker de facto comme ils disent certainement car il n'y a pas d'autre standard.

Voici la vision Microsoftienne de l'utilisation des conteneurs pour les microservices :

https://docs.microsoft.com/fr-fr/dotnet/standard/microservices-architecture/
https://docs.microsoft.com/fr-fr/dotnet/standard/microservices-architecture/

Microservices .NET Architecture pour les applications .NET en conteneurs
Là on est au top de la techno dans l'Azure et les Containers ... au milieu du DevOps
Azure Container Service
Azure Service Fabric
C'est l'avènement des architectures en Microservices ... Monolithique vs Microservices ... bla bla bla

On plonge dans le vif du sujet.

Le projet de référence concernant .NET Core et les microservices sur GitHub : eShopOnContainers
Grâce à NET Core 2.0 et Docker engine, requis Visual Studio 2017

On passe sur le doc : Containerized-Docker-Application-Lifecycle-with-Microsoft-Platform-and-Tools-(eBook)_v1.1.pdf

Containers c'est mieux que Virtual Machine moins gourmant en ressources.

En bas de la page le bouton est cassé pour continuer de naviguer en français, utilisez le menu de gauche :

https://docs.microsoft.com/fr-fr/dotnet/standard/microservices-architecture/container-docker-introduction/
Introduction aux conteneurs et à Docker

Le gros .PDF c'est en fait la même chose que le site en ligne ... ? Donc on déroule le site, en français.
On y parle de Docker Hub :

Docker Hub by Docker

Il s'agit d'un registre pour votre collection d'images.
L'utilisation de registres d'images privés est recommandée dans les situations suivantes :
  • confidentialité
  • limitation de la latence du réseau
On peut générer des applications Docker avec .NET Framework ou .NET Core

Choisir .NET Core dans les cas suivants :
  • projets multi-plateforme
  • architecture basée sur les microservices
  • plus faible encombrement par conteneur
.NET Core est donc le choix par défaut lorsque l'on vuet créer des applications en conteneur.

Utiliser .NET Framework lorsque les applications :
  • sont fortement dépendantes de Windows
  • utilisent les API Windows non prise en charge
  • vous utilisez des Nugets non dispo pour .NET Core
Finalement le choix n'est pas si simple :


Quel OS comme cible avec .NET conteneur ?

Le saviez-vous, il existe des Images .NET Docker officielles de Microsoft :

https://hub.docker.com/u/microsoft/
Images officielles .NET Docker

Ce qui devrait grandement nous faciliter la vie.

Mais tout ceci est très Microsoftien ...

Par la suite dans l'architecture des applications basées sur les conteneurs et les microservices, il s'agit principalement de l'orchestrations des conteneurs comment spécifier à Docker par le Docker file qu'un conteneur s'exécute dans un processus que doit faire l'orchestrateur en cas de défaut d'un conteneur.

Mise en conteneur d'applications monolithiques

En premier lieu, dans les conteneurs,  il s'agit de déployer des applications monolithiques ainsi on n'a rien à faire concernant l'architecture de l'application mais ce modèle atteint rapidement ses limites lorsque l'application grossie.

Il faut également que l'application trouve dans le conteneur tout ce dont elle a besoin pour fonctionner ... sinon ... champignon !

Vision Microsoftienne : Publication d’une application basée sur un seul conteneur sur Azure App Service. Azure App Service est un excellent moyen de fournir des services évolutifs basés sur un seul conteneur. On publie l'application directement dans le conteneur à partir de Visual Studio.

Avec Docker, la prise en charge des conteneurs dans Visual Studio 2017 permet d'inclure tout ce que l'on veut dans l'environnement de l'application.

Remarques :
Les conteneurs sont par défaut "sans état".
Les conteneurs Docker ne sont pas obligatoires pour les architectures orientées services SOA et pour les architectures de microservices plus avancées.

Architectures Orientées Services SOA

Certaines personnes affirment que « l’architecture de microservice est une architecture SOA bien conçue ».

Si vous savez créer une application basée sur des microservices, vous savez également créer une application orientée services plus simple.

Conseils pour une architecture en microservices

Une Database privée par microservice :


https://docs.microsoft.com/fr-fr/dotnet/standard/microservices-architecture/architect-microservice-container-applications/distributed-data-management
Cohérence entre microservices

Communication entre microservices

On reste un peu sur notre faim, comme souvent avec ces longs articles à la manière de Microsoft, les vraies solutions de sont pas dévoilées ...

On vous parle de l'isolation un peu comme dans les architectures multi-processus isolation des données. Tout ceci est bien théorique !

Conception en microservices

Déterminer les limites du modèle de domaine pour chaque microservice, non en fonction de la taille même s'il faut tendre à de petits services mais en fonction de la connaissance du métier.

Communication directe de client à microservice et modèle de passerelle d’API

Les microservices ont des points de terminaison (End Point) ou port TCP.

Franchement ce schéma ne casse pas des briques

Conception d'applications de grande taille Questions à considérer.

To Be Continued

Ce post est devenu trop "Microsoft dépendant", je pensais qu'en partant de Container Docker et Architecture en microservices on ne tomberait pas aussi rapidement et aussi profondément dans les griffes de l'Azure microsoftienne... C'est bon à connaître mais ce n'est pas seule utilisation des Container Docker.

Bref à compléter ...

I should not forget to go to the beach :-))

Have fun!

jeudi 3 mai 2018

GitLab comment exporter son Wiki ?

Vous utilisez GitLab et vous avez écris des pages Wiki mais comment faire pour les exporter et pour réutiliser vos pages dans un autre GitLab ou ailleurs dans un GitHub ?

Venez, c'est par ici, suivez moi.

GitLab comment exporter son Wiki ?
GitLab - Les pages wiki de mon projet

Nous voyons le bouton "Clone repository", cliquons dessus :

GitLab comment exporter son Wiki ?
GitLab - Les pages wiki Clone repository

Maintenant, on nous demande d'installer un outil "Gollum" ce n'est pas très joli (gollum il est lait ;)

Oui mais un Gem c'est quoi ? Gem

Et Gollum ? Gollum

Encore un de ces outils Linuxien ... Installer Gollum Wiki sur Ubuntu

Qu'elle Daube ! Sans parler de gollum/gollum

Syntaxe et explications sur les fichiers Gollum

On est bien avancé ! Et si on clonait tout simplement ... voici la commande Clone your wiki :

>git clone https://username@gitlab.societe.fr/MonProjet/Documentation.wiki.git

Clone de mon Wiki avec Git - Oui je sais ma console est verte
Clone de mon Wiki avec Git - Oui je sais ma console est verte

On se retrouve alors avec un sous répertoire "Documentation.wiki" dans lequel on retrouve, pour chaque page wiki, un fichier .md bien connu des utilisateurs de Git c'est un fichier MarkDown.

GitLab - Mon Wiki cloné dans le répertoire "Mon projet.wiki"

Et vous le comprenez en voyant le répertoire ".git" que ce répertoire est maintenant un repo git à part entière. Il vous suffit d'installer un éditeur de fichiers .md pour travailler sur votre wiki en local et de faire un git commit par la suite ... Pour retrouver vos pages modifiées dans GitLab, c'est super bien fait ! Non ?

Nous venons d'apprendre à développer la documentation de votre projet sous forme de Wiki dans Github.

CQFD !