CérénIT

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

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

Container & Orchrestration

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

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

J’étais à DevOps Rex hier ; elle m’avait intéressé de part son intitulé :

La conférence devops 100% retour d’expérience.

En attendant les vidéos, vous pouvez déjà retrouver les slides sur le compte slideshare devopsrex.

La conférence a plutôt bien tenu son objectif au travers de 9 talks mélangeant des réussites et des échecs mais aussi des contextes de petites et grosses entreprises.

En synthèse : * DevOps, c’est avant tout une culture, un état d’esprit et des pratiques, bien avant d’être des outils. J’en suis convaincu, la salle le semblait aussi. C’est déjà ça d’acquis mais l’audience était biaisée. * L’agile, c’est bien car cela rapproche Métier et Développeurs mais s’il n’y a pas du DevOps dans la foulée pour déployer au fur et à mesure la valeur apportée par les cycles itératifs, c’est idiot. La valeur n’existe que si la fonctionnalité est livrée en production. Il faut donc envisager le “Biz/Dev/Ops” comme j’en ai parlé à l’E1 Conférence lors de mon talk sur le Généraliste (transcript * Des synergies également entre DevOps et le Lean dans tout ce qui touche à la réduction de gaspillage et à l’amélioration continue : fournir l’architecture adaptée (pas de sur-engineering), itérer, etc. * Notion de juste investissement : * Tout automatiser n’a pas de sens mais plutôt que d’avoir des formules complexes pour mesurer le ROI de l’automatisation, prendre simplement une règle de douleur comprise entre 1 et 10 et automatiser tout ce qui représente une douleur supérieure à 5. * Le juste investissement fait aussi référence à l’équilibre entre l’agilité et la flexibilité que l’on veut avoir et l’automasation/industrialisation. Cette dernière peut parfois nuire à cette agilité/flexibilité tout comme elle peut la faciliter (en ayant automatisé un sujet, on a du temps pour autre chose) * Au delà de la notion de culture et d’automatisation, on retrouve la notion de mesure et de partage des indicateurs (KPI). La mesure permet de factualiser/objectiver les choses et d’avoir du feedback sur nos actions. En partageant nos indicateurs et en connaissant les indicateurs des équipes avec lesquelles on travaille, cela peut être utile qu’ils y aient accès mais nous pouvons aussi les prendre en compte pour nos activités. * Dans un contexte de grande entreprise, où la maturité devops peut varier, il est plus intéressant de partager les indicateurs que d’imposer des outils. En laissant chaque équipe adopter les outils dont elle a besoin mais en remontant des indicateurs commun, on évite que des équipes perdent du temps à réimplmenter leurs pratiques actuelles dans un autre outil sans leur apporter une réelle valeur ajoutée mais on leur demande de remonter des indicateurs communs afin de pouvoir évaluer la progression d’ensemble de l’entreprise. * Pour mettre en place une démarche DevOps, s’il faut bien partir de la littérature existante, il convient surtout de la contextualiser à son entreprise et ensuite aux équipes voire à l’application concernée afin d’être pertinent. * Comme tout “transformation”, il est important d’avoir un management facilitateur a minima voir sponsor. Le succès se fait tant via des initiatives bottom/up que top/down. S’il est important que les objectifs soient définis globalement et éventuellement par le management, il est tout aussi important de laisser une forte autonomie aux équipes opérationnelles pour leur permettre de trouver leur organisation afin de répondre à ses objectifs.

Pas de véritable découverte durant cette conférence pour moi. Plutôt une confirmation et une objectivation d’opinions et/ou d’intuitions que je pouvais avoir jusqu’à présent et de quoi alimenter certaines réflexions.

Une journée intéressante, même si j’aurais apprécié avoir une conférence plus orientée “DevOps depuis les tranchées” et avec un peu moins de recul/hauteur.

Le Blog

Nous partageons ici notre veille et nos réflexions

Nuage de tags

docker kubernetes elasticsearch kafka postgres ansible grafana sécurité tick mysql python aws chronograf influxdb spark swarm angularjs container graphql javascript rancher serverless stream traefik api arm cassandra confluent csp documentation hpkp kibana lean log microservice microsoft npm orientdb redis rest rethinkdb reverse-proxy terraform test windows agile architecture bash big-data certificat cloud cluster cncf devops docker-compose elastic gcp gdpr git grav hsts https hypriot java json kapacitor lambda lets-encrypt licence linux mobile monitoring replication rsyslog scale solr sql ssh systemd telegraf vue.js wagtail yarn accessibilité akka alerte amazon-emr anonymisation apm automatisation azure bastion beam beat bilan branche checklist cli cloud-init cockroachdb code codeurs-en-seine containerd continous-delivery cookie coreos cors cqrs crash cron crontab csrf css curl cérénit d3.js dashboard data-pipelining dataviz date debian desktop devoxx dns dokcer drop-in ebs ec2 elassandra electron elk event-sourcing falcor feed filebeat firebase fish flash flask fleet fluentd foundation framework frontend fullstack github glacier google grid géospatial hacker hadoop header html html5 http hue iaac iac immutable incident index infrastructure-as-code ingénierie inspec jq jwt k8s ksql kubeadm laravel liste-de-diffusion logstatsh loi machine-learning mailing-list management mariadb message micro-service mot-de-passe multi-cloud médecine newsletter nginx nomad nosql null openshit opensource openweb over-engineering packaging password performance perspective php pip portainer prometheus publicité push queue raml react redhat reindex reinvent responsive revocation revue-de-code rkt root rpi rpo rto rwd s3 scaleway search select serverless-architecture service-worker sha1 shell shipyard société spinnaker sre sri ssl statistique superset sympa syslog-ng test-unitaire tiers timer timezone travail unikernel unit ux vie-privée virtualenv vm vnc vpc

Syndication

Atom