Bienvenue sur f4b1.com

Cette année 2016 risque de réserver beaucoup de surprises, revenez vite voir ce qu'il se passe ici !


Depuis quelques années, le nombre d'acteurs proposant des bases de données NoSQL est de plus en plus important et l'offre s'est largement étoffée au point qu'il est même parfois difficile de choisir entre les différentes solutions. Alors qu'auparavant le choix était plutôt simple, et encore que pas tant que ça en vrai, entre MySQL, PostgreSQL, SQLite ou encore Oracle Database et SQL Server de Microsoft.

Mais ça c'était avant, ainsi comme je l'ai indiqué juste au-dessus, après le début des premières bases NoSQL "grand public", le nombre de solutions disponibles pour faire du NoSQL a tout simplement explosé ! Bien évidemment, elles ne proposent pas toutes les mêmes fonctionnalités et elles ont chacune des avantages et inconvénients selon ce que l'on veut en faire.

Il faudra donc bien choisir en fonction de ses besoins et dans certains cas ce sera très performant alors qu'à l'inverse dans d'autres cela ne sera pas du tout le cas. Mais ce n'est pas l'objet de cet article et ce sujet du choix en fonction des besoins concernant MySQL sera évoqué dans un autre billet.

Pourquoi utiliser ArangoDB ?

Il arrive parfois que MySQL montre certaines limites dans certains cas et il faut alors passer sur un autre système, avec du NoSQL par exemple. Ainsi ArangoDB est une base de données orientée multi-modèle et donc très flexible. Elle est capable d'utiliser les modèles: clé/valeur, documents et graphes, donc même en utilisant seulement ArangoDB. Il sera possible par exemple de faire du stockage en clé/valeur mais aussi en graph sans avoir besoin d'installer un autre système de base de données NoSQL ce qui est plutôt pratique et permet de rester dans le même environnement.

ArangoDB propose aussi un système de requêtes similaire à ce qui se fait avec le langage SQL que nous connaissons bien, il s'agit de l'AQL pour AQL (Arango Query Language) qui permet d’exécuter des requêtes pour interroger la base de données de façon relativement simple.

Autre point intéressant, ArangoDB propose nativement du partitionnement (sharding), cela permet d'avoir un système de réplication sur plusieurs machines, très pratique donc. Avec le partitionnement il sera possible de mettre en place un système maitre / esclave qui fonctionne avec des coordinateurs.

Peu importe le langage de programmation ou l’environnement technique / technologique que vous utilisez, il sera possible d'utiliser ArangoDB dans de très nombreux cas. En effet des drivers sont disponibles pour PHP, C# / .NET, JavaScript, Node.js, Java, Go, Python, Dart, Ruby et encore d'autres ! Ce n'est pas un point qui pourrait bloquer une éventuelle migration.

Enfin, il y une chose que j'ai beaucoup appréciée en commençant sous ArangoDB, c'est l'application web qui est fournie directement avec l'installation de la base de données NoSQL. Elle permet d'administrer et lire / modifier / supprimer les données de ses bases NoSQL sous ArangoDB, de consulter les statistiques de monitoring, d’exécuter des requêtes AQL, d'installer des services, et encore bien d'autres choses, c'est vraiment très pratique !

Les performances de ArangoDB

ArangoDB propose quelques benchmarks de performances entre leur base de données et PostgreSQL, MongoDB, Neo4j et OrientDB. Il s'agit de performances "brutes" et ce n'est pas forcément représentatif de la réalité, du moins pour les problématiques de chacun.

Installer ArangoDB sur un serveur Linux / Ubuntu

L'installation n'est pas très compliquée et il suffit de taper quelques lignes de commande et le tour est joué. Dans certains cas il faudra un peu de configuration supplémentaire mais rien de fou. Ici je vais me concentrer sur la distribution Linux Ubuntu car c'est ce qu'il y a de plus répandu, souvent c'est ce qui est proposé par les prestataires d'hébergement et sinon il est facile de monter une machine virtuelle sous cette distribution très courante.

Il est néanmoins possible d'installer la base de données NoSQL ArangoDB sous Windows, MacOSX, Debian, OpenSUSE, CentOS et RedHat mais je ne vais pas aborder l'installation d'ArangoDB sur ces systèmes d'exploitation. D'ailleurs, il est aussi possible d'installer ArangoDB via les instances Docker, Microsoft Azure ou encore Amazon Web Services (AWS).

Ainsi pour installer ArangoDB sous Linux il n'y a pas vraiment d'étapes compliquées, il faudra par contre faire attention à la version d'Ubuntu que vous utilisez car selon la version les lignes de commandes seront légèrement différentes.

Ubuntu 15.10 avec l'utilisateur root

  1. wget https://www.arangodb.com/repositories/arangodb2/xUbuntu_15.10/Release.key
  2. apt-key add - < Release.key
  3. echo 'deb https://www.arangodb.com/repositories/arangodb2/xUbuntu_15.10/ /' | sudo tee /etc/apt/sources.list.d/arangodb.list
  4. sudo apt-get install apt-transport-https
  5. sudo apt-get update
  6. sudo apt-get install arangodb=2.8.7

Ubuntu 15.04 avec l'utilisateur root

  1. wget https://www.arangodb.com/repositories/arangodb2/xUbuntu_15.04/Release.key
  2. apt-key add - < Release.key
  3. echo 'deb https://www.arangodb.com/repositories/arangodb2/xUbuntu_15.04/ /' | sudo tee /etc/apt/sources.list.d/arangodb.list
  4. sudo apt-get install apt-transport-https
  5. sudo apt-get update
  6. sudo apt-get install arangodb=2.8.7

Ubuntu 14.10 avec l'utilisateur root

  1. wget https://www.arangodb.com/repositories/arangodb2/xUbuntu_14.10/Release.key
  2. apt-key add - < Release.key
  3. echo 'deb https://www.arangodb.com/repositories/arangodb2/xUbuntu_14.10/ /' | sudo tee /etc/apt/sources.list.d/arangodb.list
  4. sudo apt-get install apt-transport-https
  5. sudo apt-get update
  6. sudo apt-get install arangodb=2.8.7

Ubuntu 14.04 avec l'utilisateur root

  1. wget https://www.arangodb.com/repositories/arangodb2/xUbuntu_14.04/Release.key
  2. apt-key add - < Release.key
  3. echo 'deb https://www.arangodb.com/repositories/arangodb2/xUbuntu_14.04/ /' | sudo tee /etc/apt/sources.list.d/arangodb.list
  4. sudo apt-get install apt-transport-https
  5. sudo apt-get update
  6. sudo apt-get install arangodb=2.8.7

Ubuntu 12.04 avec l'utilisateur root

  1. wget https://www.arangodb.com/repositories/arangodb2/xUbuntu_12.04/Release.key
  2. apt-key add - < Release.key
  3. echo 'deb https://www.arangodb.com/repositories/arangodb2/xUbuntu_12.04/ /' | sudo tee /etc/apt/sources.list.d/arangodb.list
  4. sudo apt-get install apt-transport-https
  5. sudo apt-get update
  6. sudo apt-get install arangodb=2.8.7

Lorsque l'on se lance dans le monde de la virtualisation, il arrive que l'on rencontre un problème qui est assez courant, mais s'il n'est pas résolu, vous ne pourrez pas lancer de machines virtuelle, ce qui est plutôt dommage il faut bien l'avouer.

Ainsi vous avez peut-être déjà rencontré l'erreur suivante au lancement de votre machine virtuelle sous VirtualBox par exemple :

VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.

Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.

Il serait dommage de s’arrêter en si bon chemin car le monde de la virtualisation est vraiment intéressant et surtout très pratique pour faire des tests par exemple ! Je m'en sers aussi beaucoup à titre personnel pour déployer des machines virtuelles avec un environnement de développement déjà tout prêt tel que la machine virtuelle Laravel Homestead.

Cela permet ainsi de gagner beaucoup de temps plutôt que d'installer toujours les mêmes logiciels de façon rébarbative. Mais ce n'est pas possible d'utiliser cette technologie si la virtualisation VT-x/AMD-V, il va donc falloir accéder au BIOS pour aller l'activer.  Pour rappel, le BIOS est la concaténation de Basic Input Output System et c'est lui qui est en charge d'amorcer le lancement de votre système d'exploitation.

Rassurez-vous il suffit de le faire une seule fois et même si vous formatez votre Windows ou que vous changez de système d'exploitation, la fonctionnalité restera active car c'est dépendant du BIOS.  À l'inverse si vous remettez votre BIOS avec ses réglages d'origine, il faudra réactiver l'option VT-x/AMD-V.

Vous attendez tous ce moment alors le voila, comment activer option VT-x/AMD-V depuis le BIOS de votre carte mère ? La technique n'est pas universelle et l'option ne sera pas forcément au même endroit selon le modèle ou la marque de votre carte mère. Il faudra donc surement fouiller un peu mais en général, l'activation de l'option VT-x/AMD-V se trouve dans la partie dédiée au processeur. Sur un de mes vieux Lenovo portable, cela se présente ainsi :

Mais chez les dernier Asus avec leur BIOS UEFI plus moderne, le le menu se présente alors ainsi :

Alors que sur un Dell par exemple c'est comme ceci :

Une fois cette fameuse option VT-x/AMD-V, redemandez votre ordinateur en enregistrant bien les modifications du BIOS, et normalement, VirtualBox ou un autre logiciel de virtualisation devrait fonctionner sans le moindre soucis à présent !

Il y a quelque temps je vous ai parlé de Vagrant mais sans rentrer plus que ça dans les détails. Aujourd'hui nous allons découvrir ensemble à quoi peut vraiment servir cet outil avec l'installation de la machine virtuelle Homestead qui est fournie et pré configurée par les équipes en charge du framework Laravel.

L'intérêt d'utiliser cette machine virtuelle, c'est que par rapport à un Linux vierge qui est censé accueillir votre projet, vous n'avez pas besoin d'installer PHP, MySQL, Apache ou Nginx ... Une fois que vous avez la machine virtuelle Homestead qui tourne sur votre ordinateur, elle est déjà prête à accueillir votre projet Laravel !

D'ailleurs vous pouvez très bien faire tourner des projets qui ne sont pas du Laravel, cela m'arrive et ça ne pose évidemment aucun problème. C'est beaucoup plus puissant qu'un simple Wamp Serveur car s'il vous manque quelque chose, vous faites l'installation dans Homestead et le tour est joué.

Tenter d'utiliser des techniques un peu exotiques ou un peu trop récentes sous Windows peut parfois vite tourner au casse-tête. Je ne tenterai plus de faire tourner le projet PHP sous Wamp (jusqu'ici ça peut encore aller) et de faire du NoSql le tout sous Windows, trop de prises de têtes pour rien ... Sous Linux on installe, en général ça se passe bien, et ça marche parce que cela est conçu pour fonctionner dans ce cadre à la base. J'en ai eu marre du bricolage sous Windows.

Mais vous n'êtes pas ici pour lire mes états d'âme et nous allons donc voir comment installer et faire tourner la machine virtuelle Homestead de Laravel sous Windows ! Dans un premier temps, il faut donc se procurer Vagrant ainsi que Virtual Box sur leurs sites officiels respectifs.

Après avoir installé Vagrant sur votre ordinateur, vous pouvez maintenant passer au clonage de la machine Homestead, pour cela rendez vous dans votre dossier utilisateur à l'adresse : C:\Users\votrenomutilisateur

Une fois que tout est bien installé, on ajoute la futur machine virtuelle dans VirtualBox sous forme de box, Vagrant va s'occuper de télécharger les fichiers nécessaires. Tapez la commande suivante :

  1. vagrant box add laravel/homestead

Ensuite nous passons au clonage dans votre dossier utilisateur (cd ~) de la dernière version de la machine virtuelle Homestead avec la commande suivante :

  1. git clone https://github.com/laravel/homestead.git Homestead

Placez vous dans ce dossier Homestead et lancez alors tout simplement la commande suivante qui va s'occuper d’initialiser la configuration :

  1. bash init.sh

N'oubliez pas de créer un dossier "Code" dans votre dossier utilisateur de Windows pour utiliser ces fichiers dans Homestead. Normalement tout les éléments nécessaires pour le bon fonctionnement de Homestead sont en place et pour voir si tout va bien il faut lancer les commandes dans l'ordre, bien évidemment toujours dans le dossier Homestead fraichement crée (cd Homestead) :

  1. varant init
  2. vagrant up
  3. vagrant up --provision

Si vous rencontrez l'erreur suivante, c'est qu'il vous manque une clé SSH ! N'hésitez pas à consulter cette page sur les clé SSH publique et privé sous Windows.

  1. (C:/Users/dev/Homestead/scripts/homestead.rb:106:in `read':
  2. No such file or directory @ rb_sysopen - C:/Users/dev/.ssh/id_rsa (Errno::ENOENT))

Vous pouvez aussi avoir le message suivant sous Virtual Box si la machine virtuelle Laravel Homestead refuse de démarrer :

VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.

Comme le message l'indique, il faut alors activer l'option directement dans le BIOS. Dans un prochain article nous verrons la partie configuration mais pour voir si tout vas bien vous pouvez essayer de vous connecter à votre machine virtuelle Homestead, il suffit de finir par :

  1. vagrant ssh

Vous êtes maintenant sur les réseaux sociaux depuis plusieurs années et vous commencez à avoir des comptes qui gagnent en influence avec toujours plus d'abonnés ? Après tout ce temps, peut-être que vous avez envie de capitaliser un peu tout ça et donc gagner un peu d'argent grâce aux réseaux sociaux ?

Alors vous devriez peut-être essayer le service en ligne Value Your Network qui vous permet en toute simplicité de diffuser des campagnes d'annonceur sur vos comptes Twitter, Facebook, Instagram et enfin LinkedIn, vous avez donc le choix !

Pour obtenir le maximum de gain, vous pouvez bien évidemment diffuser une campagne sur vos différents réseaux sociaux comme Facebook et Twitter par exemple, et même encore plus si vous utilisez les quatre réseaux sociaux supportés par Value Your Network. D'ailleurs ce n'est pas la seule solution disponible pour gagner de l'argent grâce à vos comptes et n'hésitez pas à aller faire un tour sur SeedingUp.

Les gains seront variables en fonction la campagne proposée et vous serez rémunéré pour chaque clic sur un lien que vous avez partagé sur votre réseau social favori. Ainsi, plus vous avez d'abonnés et une audience large et plus vous allez gagner de l'argent !

Value Your Network est vraiment très simple d'utilisation et il serait dommage de ne pas en profiter un petit peu car il s'agit d'un véritable bonus en plus de vos activités classiques sur les réseaux sociaux alors n'hésitez pas à essayer. L'inscription se fait directement via vos comptes sociaux, c'est donc très rapide. C'est donc maintenant à vous de tenter l'aventure et ainsi gagner de l'argent via les réseaux sociaux très facilement !

Essayer Value Your Network

Au fil des années, l'utilisation des clés SSH s'est largement démocratisé et elles sont toujours plus utilisées au quotidien. En effet utiliser les clés SSH publiques et privées vous permet de connecter de manière sécurisée à une machine distante comme un serveur web sous Linux par exemple.

En réalité le fonctionnement des clés SSH est assez simple même s'il faut bien saisir le concept de base. Lorsque vous allez générer votre couple de clé SSH, comme je vous l'ai indiqué juste au-dessus, vous allez donc avoir une clé SSH publique et une clé SSH privée.

La clé SSH publique, tout le monde peut la connaitre et c'est celle que vous allez par exemple transmettre à l'administrateur du serveur distant pour qu'il vous ajoute dans les clefs SSH autorisées à se connecter. Vous pourrez ainsi accéder à son serveur de manière sécurisée.

À l'inverse, comme son nom l'indique, la clé SSH privée doit absolument le rester et vous ne devez en aucun cas la transmettre à qui que ce soit ! Cette clé SSH privée vous permet de générer des signatures que la clé public va alors vérifier pour vous authentifier.

On passe donc maintenant à la partie qui vous intéresse surement le plus si vous êtes arrivés ici, comment générer une clé SSH publique / privée ? Dans ce petit tutoriel, je vais vous montrer les deux manières possibles de faire pour créer ce couple de clé SSH sous le système d'exploitation Windows.

Générer sa clé SSH avec PuTTYgen (Key Generator)

La première technique pour créer des clés SSH sous Windows est vraiment très simple, il suffit d'aller télécharger le célèbre logiciel PuTTYgen qui permet de faire cela très facilement avec une interface graphique, d'ailleurs attention avec le SSH il va falloir vous habituer à la ligne de commande. Une fois que puttygen.exe est téléchargé et ouvert, le logiciel PuTTYgen se présente de cette manière :

Laissez le paramètre par défaut sur SSH-2 RSA c'est très bien et ensuite cliquez tout simplement sur "Generate". Il suffit alors de bouger votre souris pour générer aléatoirement la clé :

Vous obtenez alors un premier résultat avec votre clé public qui commence par "ssh-rsa" qu'il faudra ajouter sur le serveur distant concerné. Ensuite vous avez alors un fingerprint et vous pouvez alors ajouter un commentaire pour donner quelques informations sur la clé SSH qui vient d’être générée.

Vous devez alors ajouter un mot de passe qu'il faudra garder précieusement car vous ne pourrez pas retrouver cette passphrase par la suite alors faites bien attention ! Enfin pour la dernière étape, il ne faut pas oublier d'aller ranger vos clés SSH en local dans le bon dossier qui va bien c'est-à-dire le dossier .ssh qui se trouve dans le répertoire utilisateur, donc à l'adresse suivante :

  1. C:\Users\votrenomutilisateurwindows\.ssh

Si ce dossier n'existe pas, il faut alors le créer à l'aide d'une petite ligne de commande au bon endroit puis déplacer les clefs SSH dedans (surtout la privée) :

Générer une clé SSH en ligne de commande sous Windows

L'autre technique que j'affectionne beaucoup plus est réalisable à l'aide du logiciel MinGW qui permet d'utiliser des commandes du monde Linux au sein de Windows. Si vous ne connaissez pas encore, je ferais un article détaillé pour vous expliquer un peu plus MinGW64. En tout cas c'est très pratique surtout lorsque l'on connait la puissance de ces commandes alors que pour faire la même chose sous Windows c'est parfois très compliqué.

Il suffit donc de se placer une nouvelle fois dans :

  1. C:\Users\votrenomutilisateurwindows\.ssh

Puis de simplement lancer la commande :

  1. ssh-keygen

Il vous suffit alors de lui donner un nom et de renseigner deux fois sa passphrase et le tour est joué, la clé publique et privée vont alors se générer dans votre dossier .ssh. Je préfère largement cette technique qui est finalement beaucoup plus simple et surtout très efficace.

Copyright © 2015 - 2016 | f4b1.com