Virtualenv

30/01/2019

Web, Ops & Data - Janvier 2019

Cloud The CTO of $4.4 billion MongoDB explains why he’s ’not terribly worried’ that Amazon’s cloud is encroaching on its turf with a new database : AWS a annoncé DocumentDB, compatible avec MongoDB. Le CTO de MongoDB revient sur cette annonce et explique en quoi il n’est pas terrifié : la nouvelle licence de MongoDB ne permet pas à AWS d’intégrer une version plus récente que la version 3.6, cela montre l’attrait des développeurs pour MongoDB, etc. Techcrunch va jusqu’à titrer : AWS gives open source the middle finger. Container et orchestration APIServer dry-run and kubectl diff : Un des soucis majeurs avec Kubernetes est l’écriture de fichiers YAML où la moindre faute peut s’insérer très rapidement et à l’insu de son auteur. Le billet présente les efforts fait pour ajouter un mode “dry run” qui simule les modifications et retourne l’objet qui aurait du être créé. Dans la même veine, un kubectl diff montrera les différences entre la ressource existante et celle décrite dans la nouvelle version du fichier yaml. 9 Kubernetes Security Best Practices Everyone Must Follow : rien de transcendental mais une petite piqure de rappel après la faille majeure découverte en fin d’année. Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what? : billet synthétique sur les avantages et inconvénients d’utiliser un service de type ClusterIP, NodePort, LoadBalancer ou Ingress. Sachant que l’on peut combiner LoadBalancer & Ingress !. Why Is Storage On Kubernetes So Hard? : Les données, c’est tout sauf stateless et le stockage distribué c’est pas facile non plus. Le billet revient sur les logiques de stockages sous Kubernetes (PV, PVC), la couche d’interface de stockage CSI et sur des solutions comme Ceph ou Rook. Stateful Kubernetes with Saad Ali - Software Engineering Daily : une présentation globale des Volumes, Persistent Volume, Persistent Volume Claims et des StorageClass sous Kubernetes et de l’évolution de la gestion du stockage sous k8s Kubernetes Podcast - #36 Rook : une présentation de Rook, un opérateur k8s de gestion de stockage (Ceph, NFS, etc). Data Machine Learning – 7 astuces pour scaler Python sur de grands datasets : si les 3 premières relèvent de l’optimisation de code, les 4 suivantes sont plus intéressantes : “downcaster” les variables, stocker vos CSV au format parqet, utiliser dask plutôt que pandaas pour avoir le parallélisme et choisir un modèle adapté. Cartographier le manteau neigeux avec Python : un exmple sympa et de saison de manipulation de données et de restituion graphique avec Python. Researchers Fool ReCAPTCHA With Google’s Own Speech-To-Text Service : des chercheurs expliquent comment ils passent le test de ReCAPTCHA avec plus de 80% de succès en demandant la version audio du captcha, la soumettant ensuite à l’API Google Speech To Text pour saisir ensuite le résultat. data Artisans + Alibaba: A new chapter for Open Source Big Data : data Artisans est la compagnie derrière le projet Flink. C’est un grand coup pour Alibaba et le signe que l’Asie part à la conquête du monde occidental. Nous occidentaux oublions souvent de regarder ce qui se passe à l’Est pour se concentrer sur l’Internet Occidental (Western Internet). Une actualité récente indiquait d’ailleurs qu’Alibaba était passé 4ème fournisseur de Cloud mondial - même si comme d’habitude, tout dépend des critères. IDE Liste de plugins pour éditeurs & IDE permettant de colorer les indentations et les parenthèses/accolades/… : de quoi faciliter la lecture du code, mais il faut parfois ajuster les couleurs suivant le thème de votre éditeur/IDE. Infrastructure (as Code) Tester son code d’infrastructure avec Terratest : le billet présente terratest, un outil en go qui permet de tester du code Terraform, des templates Packer ou encore des images Docker. La conclusion montre qu’il n’est pas parfait certes mais peut être intéressant. Infrastructure as (real) code : Faire de l’IaC, ce n’est pas que rédiger des fichiers YAML. Le billet montre comment on pourrait avoir de l’IaC avec du vrai code (du go en l’occurence). Avoir un vrai langage et un moteur de template semble en effet plus complet que juste du YAML pour lequel les validateurs sont assez faibles et la probabilité d’écrire une faute assez importante. Reactive planning is a cloud native pattern : Le reactive planning tiendrait dans l’idée que pour une action donnée, il va y avoir un plan et que ce plan est constitué d’une multitude de petites étapes. Chaque étape informant la/les précédentes et voire globalement sur l’état de l’étape en cours et peut décider des étapes suivantes. Langages Why you should use pyenv + Pipenv for your Python projects : Une solution propre pour mieux gérer ses versions de python installées sur son poste / sur un serveur avec pyenv et pipenv (mix de pip et virtualenv) pour gérer les dépendances. A tester ! Pipenv: promises a lot, delivers very little : le billet nuance les propos autour de pipenv comme le nouveau gestionnaire officiel (autopromu) et fait le point sur l’outil. shiv : Shiv permet de packager des applications python en une seule archive zip avec toutes les dépendances incluses. Disponible pour Windows / Linux / OSX, il faut néanmoins builder sur l’OS Cible pour que cela fonctionne - pas de “build one, run everywhere”. Logs Using Logstash to Split Data and Send it to Multiple Outputs : un exemple bien illustré pour traiter un fichier, l’enrichir de deux façons différentes et l’envoyer à deux endroits distincts. Cela tombe bien, j’avais un fichier de log à séparer en deux… (No)SQL Bye bye Mongo, Hello Postgres : The Guardian raconte sa migration de MongoDB vers Postgres de façon assez détaillée. Intéressant.

machine learning recaptcha flink alibaba cloud mongodb aws documentdb postgres test iac kubernetes ingress clusterip loadbalancer volume persistent volume claim nodeport logstash python pip virtualenv pipenv pyenv
25/01/2017

Web, Ops & Data - Janvier 2017

Nouvelle année, nouveau format - au programme une édition mensuelle mixant brèves et des choses plus construites/élaborées (j’espère le mois prochain) En Bref API Specifications and APIs : Réflexion sur la génération automatique de la doc d’une API avec ses avantages et inconvénients et l’idée qu’une API est avant tout un contrat passé entre son producteur et ses consommateurs. Le design d’API REST, un débat sans fin ? (Guillaume Laforge, Devoxx FR 2016) : Revue des composants d’une API, des status code et autres bonnes pratiques. RAML une autre façon de concevoir vos APIs RESTful (Sébastien LECACHEUR, Devoxx FR 2016) : RAML, Restfull API Markup Language, est un moyen de décrire une API. Au-delà de la specs, il y a tous les outils pour concevoir, bâtir, tester, documenter et partager son API. La vidéo permet de faire un tour des capacités de RAML. ARM / RPi Setup Kubernetes on a Raspberry Pi Cluster easily the official way! : Kubernetes, la solution d’orchestration de conteneurs, devient de plus en plus utilisable sur un enrionnement ARM (Raspberry, etc). Il faut que je réessaie ça sur mon Picocluster ; les derniers essais n’étaient pas très probant mais je n’avais pas utilisé apparemment le bon driver réseau (ie flannel et non pas weave pour ARM comme indiqué dans le billet). HypriotOS 1.2 avec Docker 1.13 est également disponible pour vos RPi. Big Data Databricks and Apache Spark 2016 Year in Review : Databricks, l’éditeur de Spark, fait sa revue de l’année 2016 et des apports significatifs réalisés sur Spark : Support SQL, Structured Streaming, Spark 2.x. Introduction to Kafka Streams with a Real-Life Example : l’auteur montre les limites de la combinaison Kafka+Spark (j’en ai vécu une partie) et propose son retour d’expérience sur la migration vers Kafka Streams (et conforte l’opinion que j’avais). Reste la problématique du monitoring de Kafka Streams à améliorer même si des solutions adhoc sont listées. Towards a realtime streaming architecture : dans la continuité du billet précédent, retour d’expérience d’une entreprise passant de Spark+Kafka à Kafka, Kafka Streams, Kafka Connect et Akka pour faire du vrai streaming (et pas du micro-batch). Intéressant de voir qu’ils jugent Flink trop complexe pour le moment au regard de leurs besoins. Globalement, l’article montre le problème récurrent dans une architecture big data de la maitrise de l’ensemble des composants pour bien les faire fonctionner. Confluent, en apportant Kafka Streams et Kafka Connect autour de Kafka, semble avoir trouver le bon créneau combinant (une relative) simplicité technologique et performance. CLI A shell command to create JSON: jo Container & Orchrestration Rancher v1.3: Experimental Windows Containers Support Understanding Docker Networking Drivers and their use cases : si le mode bridge est connu de fait, la description d’overlay et de macvlan valent le détour. Containerus Bellum, ou la chronique des hostilités dans l’écosystème Docker : résumé, panorama et perspectives de l’écosystème des conteneurs et des solutions d’orchestration. Si vous n’avez pas suivi le sujet en 2016, cela vous fait une belle synthèse. Introducing Docker 1.13 : Diverses améliorations au programme avec notamment une uniformisation de la ligne de commande. Ce qui m’intéresse le plus c’est de pouvoir m’appuyer sur un fichier docker-compose pour déployer des containers dans un cluster docker swarm. Des améliorations de commandes, quelques autres nouvelles fonctionnalités et la sortie du mode beta pour Azure & AWS sinon. DevOps 10 astuces Ansible : revue de 10 bonnes pratiques concernant l’outil d’automatisation Ansible. Il me manquait la personnalisation du logger et de ansible.cfg Elasticsearch Numeric and Date Ranges in Elasticsearch: Just Another Brick in the Wall : Elastic (5.2) permet maintenant de définir des index liés à des plages concernant les nombres (entier, flottant, long, double) et les dates. Reste plus qu’à requêter sur ces index. Opinions Tools & Teams : au-delà du “Utiliser le bon outil pour la bonne tâche”, c’est surtout d’utiliser les outils avec lesquelles une équipe est efficace à un instant donnée. La vision a long terme étant d’aller au-delà des outils vers les concepts afin d’avoir une compétence/expérience qui s’affranchit plus facilement des outils (qui ne sont pas éternels). Postgres Simple but handy postgresql features : Sympa le \watch ou jsonb_pretty pour respectivement surveiller le résultat d’une requête et affichrer proprement une donnée au format JSON. Python Records, SQL for Humans : comme tous les projets de Kenneth Reitz (requests, maya, etc), une API simple pour manipuler des données (ici des requêtes SQL) pytz : World Timezone Definitions for Python - permet de faire des calculs sur les dates, la librairie gérerait également les heures d’été/d’hiver dans les calculs. Announcing Pipenv! : Vous réviez d’un outil combinant pip et virtualenv et avec des options supplémentaires, Kenneth Reitz l’a fait durant un week-end… Sécurité Web Security 101 : présentation des principaux concepts, des cas d’exemples et des moyens de se prémunir. Introducing support for Content Security Policy Level 2 : Microsoft Edge se dote du support de niveau 2 de Content Security Policy (CSP) afin de permettre au propriétaire d’un site de mieux protéger ses clients en déclarant les ressources autorisées ou pas. Github’s Post CSP Journey : retour des équipes de Github sur l’implémentation de CSP et les points encore à adresser (spoiler : non, CSP n’est pas l’arme ultime). Ces points sont peut être des cas marginaux pour des sites classiques mais pas pour Github. Intéressant à lire. Web Foundation for Sites 6.3 - A Little Bit Naughty and A Whole Lotta Nice! How much data should my Service Worker put upfront in the offline cache? : si les service worker permettent de faire du cache applicatif coté navigateur, Nicolas pose la question de la stratégie de cache associée. Réflexion utile… From ReactJS to React-Native, what are the main differences between both? : Pas tout à fait web, mais comparaison intéressante sur les différences entre un projet ReactJS et un projet React-Native.

docker arm hypriot api rest raml python csp kubernetes spark kafka stream rancher json ansible devops elasticsearch postgres timezone pip virtualenv sql service worker react foundation

Besoin d'un C(P)TO / Architecte « hands-on » ?

On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.

Contactez-nous