Microsoft Azure utilise de lrsquo;assistance hardware FPGA pour son SDN

October 1st, 2015

Alors que Flickr prend la voie des GPGPU, Microsoft semble prendre celle de FPGA…

Microsoft Azure est construit sur du Software Defined Networking (SDN) et obtient sa scalabilité en se basant sur du logiciel pour répondre à ses besoins.

La société a déclaré qu’elle a commencé à utiliser le matériel qu’elle appelle l’Azure SmartNIC dans ses centres de données. Le emsmartNIC intègre de la logique FPGA (Field Programmable Gate Array) qui permet à l’adaptateur réseau d’être reprogrammé au besoin par Microsoft.

«Nous utilisons la technologie FPGA qui a été introduite pour Bing”, a déclaré Albert Greenberg, distinguished engineer en développement réseau chez Microsoft.

“Il a été utilisé pour accélérer l’indexation et la recherche de Bing, et nous avons eu cette technologie dans la maison que nous avons appliqué à la carte réseau, et nous obtenons des économies incroyables avec, beaucoup mieux que si nous avions à le faire sur le serveur lui-même en utilisant sa puissance de calcul. “

pemSmartNIC : une carte d’interface réseau, une carte FPGA, ce qui signifie qu’il est programmable par logiciel. SmartNIC couvre les fonctions qui ont besoin d’un coup de pouce du matériel, ou que Microsoft préfèrerez simplement décharger du CPU.

- La philosophie étant que les processeurs sont mieux utilisés à exécuté des machines virtuelles pour servir les clients Azure.

Le strong100 Gb/s réseau commence à devenir une réalité dans le centre de données,nbsp; SmartNIC va être appliqué en ligne - ce qui signifie que tous les flux de trafic passent à travers elle - pour toutes les fonctions y compris le cryptage, le traitement de la qualité de service, et l’accélération du stockage. En l’occurrence, le cryptage est un excellent exemple de «boost»: le matériel sera toujours en mesure de le faire plus vite que logiciel.

«Nous sommes une société de logiciels, ce qui nous permet de déployer le matériel à la vitesse du logiciel. Nous pouvons changer la programmation des FPGAs chaque semaine. Non pas que nous allons le faire chaque semaine, mais nous pourrions le faire si nous le devions pour corriger n’importe quel problème “ dit Russinovich le CTO de Microsoft Azure.

pRussinovich a également indiqué que les règles des SmartNIC FPGA proviennent d’un élément central appelé le iVirtual Filtering Platform (VFP). Il envoie un paquet à travers des tables de correspondance d’actions à venir avec une règle particulière pour l’écoulement de ce paquet – Une exception chez Azure : plutôt que d’appliquer des règles par flux, Microsoft tend à le faire par-connexion, mais quoiqu’il arrive, le VFP regarde juste un paquet et applique les règles qui en découlent pour les paquets ultérieurs de la connexion et/ou du flux et si nécessaire, ces règles sont mises en œuvre par le biais des SmartNIC./p pLors d’une conférence, Russinovich a également parlé du système à plusieurs niveaux de contrôleurs SDN dans Azure, chaque niveau étant responsable de délégué les flux aux clusters inférieurs, Mais aussi de garder un état pour les cas de bascule./p pDans la même idée, Microsoft déploie également des Altera Arria 10 FPGA. Microsoft entend ici utiliser tout le potentiel IEEE754 (virgule flottante) en utilisant OpenCL et du VHDL pour coder le FPGA./p pDurant ses tests, Microsoft obtient 40 GFLOPS-par-Watt avec les échantillons Arria 10 et le Developer Kit, ce qui donne un rapport GFLOPS-par-Watt trois fois meilleur que celui obtenu avec du GPGPU./p pLa conférence de Mark Russinovich : a href=”https://youtu.be/RffHFIhg5Sc”https://youtu.be/RffHFIhg5Sc/a/p

osx yosemite (10.10) et canon mp620

April 18th, 2015

jusqu’à présent j’était sous 10.9 et ma mp620 fonctionnait très bien. Mais voila, un passage en 10.10 et puis plus rien ! Selon canon seule la mp630 fonctionne en 10.10 ! pourtant quelques heures avant ma 610 n’avait pas de problème ;-)
Du coup me voila à la recherche de solution, la première d’entre elle : installer les drivers pour 10.9. Jusque là pas de problème tous s’installe correctement. Pourtant pas d’imprimante détecter, à si le scanner lui est reconnu et s’installe, magnifique. Après quelques recherche j’apprend que Apple est passé à CUPS 2.0 et que dans sa grande bonté, il a même mis en oeuvre du sandboxing… Et voila le problème, mes bon vieux driver 10.9 ne sont pas compatible avec le sandboxing.
ouf il ya un solution : le mode “Relax” ;-)

sudo sh -c ‘echo “Sandboxing Relaxed” >> /etc/cups/cups-files.conf’
sudo launchctl stop org.cups.cupsd

et voila un peu restart, un peu d’attente et voila mon imprimante qui apparait ! et je peut même imprimer avec, c’est un comble, n’est-ce pas monsieur Canon ?

Paypal the next step ?

April 1st, 2015

p#160;/p pLa partie Front de Paypal est à présent 100% sous Openstack à annoncé Sri Shivananda son VP il y a quelques jours./p pSous cette apparente simple annonce, il y a beaucoup d’implications !/p pPremier point : toute la partie WEB et API est maintenant sur un cloud privé basé sur OpenStack./p pEnsuite, c’est le fruit d’un travail commencé il y a maintenant quelques années (plus précisément en 2011 img class=”wlEmoticon wlEmoticon-winkingsmile” style=”border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none” alt=”Clignement d#39;œil” src=”http://vald70.free.fr/wordpress/wp-content/wlemoticon-winkingsmile.png” / avec la bascule progressive (20% durant cette première période de Noël) des flux vers une nouvelle plateforme OpenStack, pour en arrivé aujourd’hui à 100%./p pPourquoi ce choix ? Le principal levier était de ne pas être lié à un fournisseur (en l’occurrence VMWare), l’usage d’OpenStack leur fournissant plus de souplesse dans leurs choix./p pem“With OpenStack, PayPal has more control over customization and more choice in the vendors it uses for its hybrid cloud environment,” Sri Shivananda, vice president of global platform and infrastructure at PayPal, said via email./em/p pParmi les autres avantages : le time to market, qui permet maintenant de déployer les applications en quelques minutes contre plusieurs jours./p pL’un des points important à noter est la participation active à plusieurs communautés#160; Open source./p pIl faut aussi noter que Paypal a choisit d’utiliser sa propre distribution d’OpenStack et non pas une solution du commerce et qu’il a, à ce jour, un déploiement de celle-ci sur plus de 8500 serveurs mais quelle n’est pas non plus exclusive vis-à-vis de VMWare./p pCet usage d’un cloud privée est en augmentation selon les dernières études faites par GigaOM ( One-Third of Cloud Users’ Clouds are Private, Heavily OpenStack 01/2015 ) et plus de 65% des sondés considèrent qu’OpenStack est prêt pour la production et beaucoup de vendeurs propose des distributions, mais on le voie ce n’est pas la seul route…/p pemBut there are also users like PayPal that have enough of their own engineering muscle to build cloud infrastructure using OpenStack on their own. Convincing customers like these to pay for a vendor’s package of a piece of open source technology is a tough sell.
/em/p
p#160;/p pa title=”https://www.paypal-community.com/t5/PayPal-Forward/PayPal-s-Front-End-Cloud-Powered-by-OpenStack/ba-p/959621″
href=”https://www.paypal-community.com/t5/PayPal-Forward/PayPal-s-Front-End-Cloud-Powered-by-OpenStack/ba-p/959621″
https://www.paypal-community.com/t5/PayPal-Forward/PayPal-s-Front-End-Cloud-Powered-by-OpenStack/ba-p/959621/a/p

Configuration: Modélisation ou Scripting ?

October 9th, 2014

 

Quel est la différence entre un langage descriptif et un langage déclaratif ? Prenons un exemple… Si vous cherchez une voiture, vous allez dire, je veux 5 place, un grand coffre, le gps, l’iphone etc… vous n’allez pas demander si la roue est installé par une machine XYZ et un tournevis cruciforme ?

Et bien, c’est cela la différence ! Dans un cas, le langage déclaratif, vous indiquer dans quel état vous souhaitez que le système soit tandis que dans l’autre vous explicitez quels sont les étapes pour y arriver.

Dans le cas de la gestion de configuration, cette différence est important.  En effet, dans un cas vous dite juste, je veux un serveur apache/tomcat, dans l’autre vous dite, il faut récupérer le rpm apache, puis l’installer, puis activer mod_http puis … etc !

Dans le premier cas on modélise l’état que l’on veux avoir, alors que dans le second il faut faire attention a toutes les variantes que l’on pourrait trouver, genre, zut, il y a déjà un apache, je doit vérifier la version etc …

Conclusion

On peut lister ainsi les bénéfices d’une gestion de configuration déclarative :

* c’est répétable : chaque exécution donnera le même résultat quelque soit l’état de départ.

* c’est consistent :encore une fois , quelques soit l’état de départ, l’état d’arrivé sera celui désiré.

* c’est auto-documenté : en général les langages déclaratif sont très simple et facilement compréhensible contrairement à des scripts et en général beaucoup plus concis/compact. Et de fait, devient un atout pour l’auditabilité.

exemple d’outils déclaratif :

* puppet, salt, confsolve, lcfg, bcfg2

exemple d’outils non déclaratif :

* fabric, chef,

That’s Not My Problem - I’m Renting Them

October 9th, 2014

 

Cette petite phrase de Adrian Cockroft “That’s not my problem, I’m renting them.”, c’est la réponse un peu imagé qu’il a faite lorsque quelqu’un l’a interrogé sur la fiabilité des SSD !

Un peu imagé, pourquoi ? Parce qu’en fait c’est l’illustration même de l’abstraction qu’offre le cloud. Et c’est bien comme ça qu’il faut voir les choses aujourd’hui. le cloud et plus généralement la virtualisation offre un tel niveau d’abstraction qu’il ne faut plus se préoccuper des ces aspects matériels sauf bien sur si vous en êtes le fournisseur et non l’utilisateur.

vmware et les “large pages”

October 7th, 2014

 

VMWare comme la plupart des OS à une gestion de mémoire qui s’adapte en fonction des usages.

L’un des paramètres sur lequel on peut influer pour affiner ses algorithme s’appelle le “LPageAlwaysTryForNPT”  ou encore l’allocation de pages larges.  Mais Kesako ?

In the cases where host memory is overcommitted, ESX may have to swap out pages. Since ESX will not swap out large pages, during host swapping, a large page will be broken into small pages.

En fait tout part du fait que VMware afin d’optimiser la mémoire utilise une technique dite de Transparent Page Sharing (aka TPS) qui permet de partager des pages mémoires identiques afin de libérer de la mémoire. Une sorte de deduplication. A l’origine de ça, les ESX scan régulièrement leurs page de 4Ko afin de trouver de nouveau candidat. D’un autre côté, si le hardware le permet et que l’OS de la VM le demande, ESX préfère utiliser ce que l’on appelle des “larges pages”  soit 2Mo au lieu de 4Ko, mais dans ce cas il va rarement trouver de bon candidat au partage !

A côté de cela, l’ESX comme tout OS va éventuellement swapper la mémoire au besoin. Dans ce contexte, lorsque l’ESX va swapper une page il va devoir la “casser” en petit morceau de 4Ko et va profiter de l’occasion pour tenter de trouver de nouveau candidat au partage. On peut résumer cet effet par “partager avant de swapper”.

Parmi les impacts que cela à, c’est celui de retarder le partage de page.

Le paramètre LPageAlwaysTryForNPT, va permettre de favoriser le page sharing en demandant à l’ESX de n’allouer des large pages que lorsque c’est demandé explicitement par l’OS (par exemple avec MySQL ou Oracle). L’avantage c’est que le reste du temps on aura des pages plus petite (4Ko) et l’action du TPS et donc plus de partage de page.

L’effet va donc dépendre de la workload, si vous avez un système avec de nombreuse “petite” vm, ce sera avantageux car il y aura plus de partage, la consommation mémoire va diminuer et vous pourrez poussez plus loin la consolidation. D’un autre coté si vous avez des grosses VM avec des applications demandant beaucoup de mémoire et donc très probablement des large pages (tel que MysQL ou Oracle ) il y aura plutôt un effet négatif.

Sachez aussi que le paramètre se situe au niveau Host mais aussi au niveau vm (sched.mem.alwaysTryLPageAlloc).

Il faut aussi noter que lors d’un vmotion, l’ESX transfert des pages de 4K, et les regroupe ensuite à nouveau en large page.

Xen,la faille XSA-108 et la résilience…

October 3rd, 2014

 

 Christos Kalantzis

#AWS Reboot-Apocalypse? #Netflix runs #Cassandra. Bring it on!

 

Ces dernières semaines un faille Xen à prit de cours beaucoup de fournisseurs de cloud basé sur Xen (AWS, rackspace et quelques autres)  (note: c’est la faille XS-108 dévoilé officiellement le 1 octobre). Ceux-ci se sont engagés dans une espèce de course contre la montre en quelques semaines pour mettre à jours leurs serveurs. Et pourtant à travers les tempêtes de reboot, assez peu de services ont été impactés, les meilleurs n’ayant même pas eu d’impact client !

Parmi ceux-ci, l’un d’eux, qui fait ça pub en ce moment en France a expliqué les raisons de cet état de résilience. Il est en particulier, notoirement connus qu’ils utilisent ce qu’il ont nommé eux même le “Chaos Monkey” et une stratégie dite de Chaos  Engineering qui à pour effet de mettre régulièrement à mal leur architecture de production. Cette best-practice, leur à permis, par exemple, d’être serein sur les reboot de serveurs (VM) impacté lors des mise à jours mais aussi, que le dit reboot n’impact pas le service en lui-même, deux choses primordiales.

Parmi les autres atouts, c’est leur choix de Cassandra, qui privilégie la tolérance au partitionnement versus la consistance, qui permet aussi un grande résilience lors de tous ces reboots, voulut ou non, avec comme autre choix le remplacement automatique de tout nœud défaillant plutôt que sa réparation, ce que permit ce choix de BDD. Pour ce que les chiffres intrigue : il y a eu 218 serveurs Cassandra, 22 ont eu un problème de reboot et on été remplacé avec 0 interruption pour le service.

On peut en tirer comme leçon que les tests répétés, voire continuel, sur toutes les couches (même sur la persistance) sont un des meilleurs atouts pour une bonne résilience. Mais, aussi, que les choix d’architecture permette d’y répondre d’une manière efficace.

docker and xen, complementary not enemies

October 1st, 2014

 

Often seen as competing, containers a la Dockers and hypervisor a la Xen are more complementary than enemies !

By using both technologies we can be more efficient.

let’s see some examples. Dockers mains advantages are a fast boot, simple usage, little (or no) overhead and high density per host but they rely on same kernel/OS which is bad for security and isolation., and well, some “battle” between devs and ops ;-)

ON the other side, Xen let’s you have different OS/kernels,  have more overhead and have a more traditional/mature approach.

Why not use both world ?

Let VM run in a hypervisor with a define set of resources. it offer you (dev) rollback, snapshot and so on easily, considering it as a sandbox.

For the sysadmin, and easy way to handle/extend/replicate resources of VM, even in live with some hypervisor.xen-docker

Ne pas confondre Configuration et Provisionning

September 25th, 2014

 

Il y a tellement de buzz ces derniers temps autour des conteneurs comme Docker de la même manière qu’il y a quelques temps autours de la virtualisation, que l’on peut vite oublier cette notion fondamentale.

Il est bon de rappeler qu’il y a deux usages à ces technologies : la scalabilité et le déploiement.

Scalabilité :
Sur la scalabilité, ces 2 technologies sont très bonnes et les deux sont tout à fait à même d’encapsuler un service et de permettre un déploiement rapide de multiple instance avec peu ou pas d’opération post-provisionning.
Et dans ce contexte les deux se valent, et aucune n’est meilleure.

Déploiement :
Coté déploiement, la standardisation des APIs de ces outils permet de ne se focaliser, que, sur le management du container  ou de la machine virtuelle. En effet les APIs permettent de provisionner de manière aussi efficace tant de la VM que du container.
Par contre ce que ces APIs ne permettent pas c’est la Configuration une fois les dit-service provisionnés.

 La Configuration n’est pas du Provisionnement !
Et c’est cette différence qu’il faut bien avoir en tête une fois que l’on veut faire du self-service ! En effet, autant  le provisionnement que ce soit de container ou de vm peut-être une chose aisé autant la configuration des services doit  encore être faite ! Quelque soit le cas d’usage, il y a toujours un minimum d’opération de configuration à faire.
En clair, une fois notre service provisionné, il y a encore du boulot ;-) Par exemple, on ne peut pas imaginer lancer un frontal Apache,  sans définir comment (algo) et/ou sur quel(s) tomcat(s) il devra repartir les requêtes.
Et ce sont bien deux processus distinct ! On peut aussi en dire autant sur la partie monitoring ou surveiller un server ou  un container et bien différent de surveiller un service. On doit bien faire les deux !

On peut par ailleurs se rendre compte que des deux, la configuration à le plus d’impact sur le cycle de vie ! Et c’est de son optimisation que viendra le plus de bénéfice.

Building slowmoVideo on OSX

April 4th, 2014

here, I will describe how to build slowmoVideo for OSX from scratch.

you will need of course Xcode and command line tools, with cmake

will need some dependencies :

* glew (glew-1.10.0)

* ffmpeg (ffmpeg-2.2)

* jpeg (jpeg-9a)

* libpng (libpng-1.6.10)

*zlib (zlib-1.2.8)

* yasm (for ffmpeg) (yasm-1.2.0)

* opencv (opencv-2.4.8)

* qt4 (qt 4.8.5)

 

you will need source code from my own clone git repository : https://github.com/valgit/slowmoVideo

 

* you need to specify where to find some libraries for cmake :

export QTDIR=/Users/val/Documents/Sources/qt4

export FFMPEGDIR=/Users/val/Documents/Sources/ffmpeg

 

* run cmake :

cmake ../slowmoVideo/src -DCMAKE_INSTALL_PREFIX=/Users/val/Applications/slowmoVideo -DQTDIR=/Users/val/Documents/Sources/qt4 -DQT_MAKE_EXECUTABLE=/Users/val/Documents/Sources/qt4/bin/qmake -DOpenCV_DIR=/Users/val/Documents/Sources/opencv/share/OpenCV -DGLEW_INCLUDE_DIR=/Users/val/Documents/Sources/slowlib/include -DGLEW_LIBRAIRIES=/Users/val/Documents/Sources/slowlib/lib/libGLEW.a -DJPEG_INCLUDE_DIR=/Users/val/Documents/Sources/slowlib/include -DJPEG_LIBRARY=/Users/val/Documents/Sources/slowlib/lib/libjpeg.a -DFFMPEG_LIBRARY_DIR=/Users/val/Documents/Sources/ffmpeg/lib -DFFMPEG_INCLUDE_PATHS="/Users/val/Documents/Sources/ffmpeg/include"

check if cmake find all the needed part. in my case some library where not found, so I have to specify them in CMakeCache.txt directly …

they where : glew libraries and libswcale !

 

* if all is ok you can run make ; make install

you will have some warning during compilation…

* need to update cmake to copy opencv library in working destination

* seem that deployqt4 is not working correctly so execute

~/Documents/Sources/qt4/bin/macdeployqt  ~/Applications/slowmoVideo/slowmoUI.app -verbose=2

which will copy/correct all the qt4 stuff in Frameworks directory. also copy/mov the lib directory from MacOS to Framework

execute the fixup script to correct opencv lib path

sh ~/Documents/Sources/slowmoVideo/src/fixuplib.sh slowmoUI

you should now have a working GUI application bundle for MacOS