Les entreprises ont dû mettre en place une nouvelle organisation pour poursuivre leur activité malgré la pandémie. Le télétravail a ainsi explosé depuis la crise sanitaire mondiale. Bien que cette transformation numérique leur ait permis de ne pas sombrer, les problèmes liés à la cybersécurité restent une préoccupation essentielle. Prévoir des solutions informatiques sécurisées est donc devenu une priorité.
Une augmentation des cyberattaques
Le télétravail a connu un essor important depuis le début de la crise sanitaire. La transformation numérique était donc incontournable pour de nombreuses entreprises, tous secteurs d’activité confondus.
Cependant, le travail à distance a favorisé la multiplication des cyberattaques en tout genre. Faute d’anticipation, les entreprises se sont retrouvées vulnérables face à des problèmes de sécurité informatique. La révolution du télétravail les oblige pourtant à envisager des solutions efficaces pour remédier à ce souci.
Diverses formes d’attaques menées par des hackers dans le but de s’emparer des données personnelles des utilisateurs se sont multipliées. Il existe différents types de menaces :
L’IOT ou Internet des objets, utilisé pour optimiser le contrôle de la maison à distance, a par exemple multiplié les risques de cybersécurité depuis la pandémie. En travaillant depuis chez lui, le salarié met les données de l’entreprise en danger. D’où la nécessité de recourir à une entreprise spécialisée comme www.landvart.com pour auditer la sécurité informatique.
Le phishing ou la récupération de données via des logiciels malveillants et l’intelligence artificielle a aussi pris de l’ampleur durant la crise sanitaire.
L’utilisation quotidienne des réseaux sociaux a davantage facilité le piratage des données confidentielles des employés. De plus, il a été plus facile pour les hackers d’exploiter ce canal en partageant des liens.
Renforcer la sécurité informatique : une priorité pour les entreprises
Bien que la situation commence à s’améliorer avec le retour au bureau en présentiel, le renforcement de la sécurité reste une priorité pour les entreprises. D’autant plus que le télétravail risque d’occuper une place de plus en plus importante dans l’avenir. Ainsi, de nouvelles stratégies doivent être mises en place pour sécuriser les différents appareils et services hébergés sur serveurs.
La migration des serveurs sur le cloud
La migration vers le cloud peut être un choix judicieux pour minimiser les risques de cybersécurité. Cela peut concerner les serveurs, les données, les applications, et même les emails et sauvegardes.
En plus de faciliter le télétravail, cette solution garantit une meilleure organisation, et surtout une sécurité plus poussée. Toutes les données de votre entreprise seront à l’abri de toute tentative de fraude. Tout le monde peut avoir accès aux informations à distance, à tout moment, et vous pouvez vous libérer des mises à jour et maintenance des serveurs.
Faire appel à une société de services informatiques
Pour mener à bien la migration vers le cloud, il n’y a rien de tel que le recours à une entreprise d’informatique spécialisée dans le domaine. Le basculement vers cette solution sécurisée peut s’avérer compliqué, d’où la nécessité de se faire accompagner. Avec un professionnel, vous pouvez bénéficier de conseils pratiques, et d’une offre sur mesure en fonction de vos besoins précis.
Si vous désirez faire connaître votre site, le rendre plus visible et augmenter le trafic, il est important de bien le référencer. La question du référencement d’un site est en effet cruciale, aussi bien pour une grande entreprise que pour une PME ou même un particulier. Alors, comment bien référencer son site ? Voici quelques conseils et astuces pour mener à bien votre mission et vous faire davantage connaître des internautes.
Solliciter les services d’une agence spécialisée dans la création de sites web
Pour améliorer la visibilité de votre site dans les moteurs de recherche, vous devez passer par le référencement naturel ou SEO. Il s’agit d’un ensemble d’outils et de techniques assez complexes pour les non-initiés. Vous devez donc faire appel aux services d’une agence spécialisée dans la création de sites web pour vous aider.
Elle vous aidera à obtenir un positionnement en première page des moteurs de recherche. Une agence est à même d’assurer un travail méthodique de précision et de qualité pour vous éviter d’être pénalisé par les algorithmes des moteurs de recherche et les failles techniques possibles sur un site. Si vous cliquez ici par exemple, vous pourrez trouver une agence à même de vous accompagner convenablement pour le référencement de votre site.
Les différentes activités d’une agence spécialisée pour le référencement
Si vous possédez déjà un site qui est hébergé avec un design et une charte graphique qui vous conviennent, vous aurez besoin d’une offre de référencement complète et de qualité, notamment :
une indexation et un référencement on-page dans Google,
une soumission dans les annuaires,
une option médias sociaux,
une campagne Netlinking à autorité.
Toutes ces activités permettront à votre site de se retrouver dans le Top 10 de Google.
L’amélioration du contenu de votre site
Le travail de votre agence spécialisée se fera aussi bien sur les aspects techniques que visuels de votre site internet. Vos contenus doivent être originaux et de qualité. De plus, le travail de référencement doit assurer une visibilité pérenne de votre site. N’oubliez pas que seuls des contenus de qualité vous permettront d’avoir un trafic de qualité et ciblé.
Le choix des bons mots-clés
Pour assurer un bon positionnement de votre site parmi les résultats des moteurs de recherche, vous devez choisir les bons mots-clés. Ils doivent décrire votre activité, vos produits ou services et être utilisés pour faire une recherche dans les moteurs de recherche. Vous pouvez vous référer au contenu de la concurrence ou aux communications de vos différents clients pour les choisir.
Le renseignement des contenus
Ce renseignement doit être appliqué sur tous les contenus des pages web du site : images, articles, etc. Vous pouvez par exemple vous servir de balises dans vos contenus rédactionnels pour une bonne structuration. Il est également recommandé de vous servir des balises title, méta descriptions et des attributs Alt sur l’ensemble des pages de votre site. N’oubliez pas que ces balises doivent comporter les mots-clés que vous avez identifiés et en lien direct avec le contenu des pages. Cela vous permettra de renforcer l’indexation de chaque page dans les moteurs de recherche.
L’importance des liens
Pour le référencement naturel, les liens internes sont très importants. Ils permettent au moteur de recherche de comprendre les liaisons entre les divers sujets traités dans le site internet. Les liens externes sont liés à la popularité de votre site et donc au positionnement parmi les résultats de recherche Google. Ils doivent être qualitatifs et liés à des sites ayant des noms de domaine fiables. Par ailleurs, il est préférable d’instaurer des liens externes vers plusieurs noms de domaines que de multiplier les liens vers un seul site. Vous savez à présent l’essentiel à faire pour que votre site figure parmi les premiers résultats de Google.
Je viens d’emménager dans une nouvelle maison dans laquelle il n’y avait pas du tout de réseau filaire. Comme on avait pas mal de travaux de décoration à faire j’ai fait poser des prises réseaux dans les pièces principales de la maison.
Avant de commencer les travaux j’ai donc fait venir des électriciens pour mettre le réseau électrique en sécurité et tirer des câbles réseau dans la plupart des pièces de la maison. Pensez bien à le faire avant de commencer les travaux de rénovation car, pour faire propre, il faut faire des saignées et des trous un peu partout.
Matériel réseau
Je n’avais pas demandé aux électriciens de brasser les câbles, juste de faire arriver les câbles à proximité de mon tableau électrique. Dans cet article je vais détailler la mise en place du caisson réseau et du brassage du réseau local.
Pour faire quelque chose de propre il va falloir un peu de matériel. Voici ma sélection qui, selon moi, est un bon compromis qualité / prix:
Outils
Je vous invite à investir aussi quelques euros dans des outils comme le testeur de câble ou un dénudeur de câble. Dans tout les cas vous aurez besoin d’un cutter ou d’une pince coupante pour couper les câbles à la bonne longueur. C’est toujours plus simple en ayant les bons outils.
Fixer les keystones sur les câbles réseaux
J’ai opté pour des deleyCON Module Keystone Cat 6a (https://amzn.to/3a1EULb) car ils sont très simple à installer grâce au système snap-in. Le plus simple pour y arriver correctement est de regarder un tutoriel vidéo et de reproduire. Normalement vous en avez pour quelques minutes par prise. Dans les faits ils suffit de suivre les codes couleurs.
Une fois chaque prise fixées je vous invite à les tester une à une via le testeur de câble ethernet. Il est préférable de se rendre compte d’un mauvais raccord à ce moment de l’installation.
Fixer le caisson au mur
Pour cette étape à vous de voir en fonction de la composition du mur. Chez moi, dans cette pièce, c’est de l’agglo plaqué avec du bois. Il faut donc aller percer en profondeur pour être certain de tenir la charge du caisson et de son contenu.
Pour cacher les câbles arrivants et sortants du caisson le mieux est de mettre des goulottes. C’est relativement simple à mettre en place mais vous aurez un rendu bien plus propre.
Mise en place des élèments
La multiptise
Pour ma part j’ai choisi de la mettre tout en haut pour profiter du léger renfoncement au dessus de la porte pour cacher les prises et aussi pour faire passer les câbles par dessus et les dissimuler à l’arrière du caisson. C’est un peu plus compliqué pour ajouter une nouvelle prise mais c’est plus propre visuellement. Le model Perel 37331 (https://amzn.to/32dBNNW) fait parfaitement le job pour une installation domestique.
L’enfichage des keystones
Rien de plus simple, vous présentez la fiche RG45 en face d’un des trous et vous attacher le câble à l’aide d’un serflex à l’arrière sur la petite attache.
Si vous avez choisi le même switch que moi et que vous n’avez pas besoin de tout les emplacements du bandeau je vous conseil d’enficher au dessus des ports du switch et non tout à gauche. De cette manière vous pourrez utiliser de petits cables ethernet (20cm) et le brassage sera plus lisible.
Le plus important est de noter sur chaque fiche à quoi correspond le câble. Sans ça vous allez vite perdre le fil (ba dum tss).
Il ne reste plus qu’à racker le panneau DIGITUS Patch Panel Modular (https://amzn.to/3k1o5Uz) dans votre caisson.
Le switch
Encore une fois la mise en place est simple, il faut néanmoins fixer soit même les pattes sur le switch pour pouvoir le racker. Une fois fixer et alimenté, le switch est prêt à être utiliser.
C’est sur cet élément que j’ai fait la plus grosse dépense. Si vous voulez mon avis il ne faut pas lésiner sur cet élément. Le TP-Link TL-SG1024 (https://amzn.to/35tYRKi) et le choix le plus courant pour ce type d’installation. Pour ma part j’ai pris un 24 ports afin d’avoir encore un peu de place pour brancher des rasps pour de futures projets de domotique.
Le brassage du réseau local
A moins d’un besoin particulier vous pouvez simplement brancher un câble ethernet pour relier chaque prises au switch. De cette manière votre réseau sera distribué de la même manière sur chaque prise.
Si jamais vous avez une box TV qui a un besoin particulier de branchement, il faudra la brancher en directe sur la sortie de votre box internet sans passer par le switch. C’est dans cette éventualité que j’ai fait mettre deux prises réseau murales à l’endroit de la TV. Une pour le réseau classique et une en cas de besoin particulier de la TV.
Mettre en place la boxe internet
Maintenant que votre réseau local est brassé il ne reste plus qu’à brancher votre box, qui sera ici le DHCP. Brancher la box comme indiqué par votre FAI et brancher un câble ethernet de la box au switch. Si jamais vous avez un besoin particulier, une boxe TV qui doit être directement connectée à la box connectez directement le port de la box à la bonne fiche ethernet sans passer par le switch.
Une fois la boxe internet ajoutée vous pouvez un ou plusieurs NAS s’il vous reste de la place et que vous en avez le besoin.
Liste du matériel
Voici une version synthétique de ce qui est nécessaire pour réaliser cette installation chez vous avec un budget modeste.
Lancer une activité ou créer votre société n’est pas toujours facile. En effet, outre sa création, il est aussi essentiel de maintenir la réputation et la notoriété de votre société. Cela permettra de vous faire connaître davantage afin d’attirer plus de clients. Depuis quelque temps, les outils digitaux ne cessent de connaître des évolutions si bien que les notions de notoriété et de réputation d’une entreprise se propagent aussi dans le monde virtuel. Alors, comment cela fonctionne et pourquoi est-ce si important ?
Qu’est-ce que l’e-réputation ?
Souvent confondue avec l’e-notoriété, l’E-réputation se concentre surtout sur l’opinion publique en ligne. Une entreprise peut être connue (c’est-à-dire avoir une certaine notoriété), mais l’E-réputation permettra de savoir si elle a une bonne image ou non.
En général, votre e-réputation est déterminée par les contenus diffusés par les utilisateurs sur des blogs, des réseaux sociaux ou des forums. Elle constitue plus de 75% des informations sur une marque ou une entreprise. C’est-à-dire que la majorité de ce qui est dit à propos d’une marque ne vient pas de la marque elle-même, mais des internautes.
Ainsi, gérer votre e-réputation est indispensable, car, combinée avec l’E-notoriété, elles formeront votre identité numérique. En général, avant de pratiquer un achat de service ou avant de consommer une marque, les prospects vérifient tout d’abord sur les différents moteurs de recherche. Ils auront alors un aperçu général des avis des internautes et pourront décider si oui ou non, ils vont s’en tenir à la marque.
Comment améliorer votre e-réputation ?
User du SEO pour assurer votre e-réputation
Le référencement naturel peut jouer grandement sur votre e-réputation. En fait, lorsque la visibilité de votre marque ou votre société est plus claire au niveau des moteurs de recherche, cela aura un impact sur votre image. Donc, plus votre site ou page web monte en visibilité, plus votre image sera consultée par les internautes.
Effectivement, les internautes ont souvent tendance à faire des recherches et ne lire que les liens en première page des résultats de recherche. Les contenus en tête joueront donc sur la construction de l’image d’une entreprise ou d’une marque. Voilà pourquoi il est essentiel d’assurer le référencement naturel de vos contenus.
Gérer les clients mécontents
Généralement, les clients satisfaits sont les plus silencieux sur internet. Les clients mécontents, quant à eux, sont les plus actifs et font des retours par rapport à leur mésaventure. Ainsi, afin de mieux gérer les avis négatifs des clients, la réactivité est de mise.
Pour assurer une réactivité instantanée de votre marque, nous vous conseillons de former une équipe chargée de la veille. Cette dernière effectuera alors les veilles digitales pour votre marque afin que vous puissiez réagir rapidement aux commentaires désagréables des internautes. Il est essentiel de savoir que : plus vite vous réagissez, moindre sera le risque que le client en fasse une tonne.
Bref, comme tout se passe actuellement en ligne, garder une certaine E-réputation est important pour assurer une bonne image de la marque. Il est à savoir qu’une E-réputation est principalement basée sur vos clients. Ainsi, outre les activités web que vous pouvez réaliser, bien gérer les clients constitue un point clé pour garder une bonne image de votre société.
Le développement de votre activité est votre finalité. Créer votre entreprise a été assez facile, mais pour la faire grandir
le chemin se révèle compliqué. Faire évoluer votre business plus rapidement nécessite ainsi des plans d’action bien pensés.
Je vais donc attirer votre attention sur le webmarketing aujourd’hui, un outil indispensable au fleurissement de votre boîte.
La visibilité sur internet, un levier de croissance à ne pas négliger
Pour faire grandir votre activité à Bordeaux, vous devez être visible et connu. Internet peut vous aider à atteindre cet
objectif. D’où le webmarketing. Ce dernier regroupe tous les dispositifs mis en œuvre pour faire la promotion en ligne de
votre activité.
Pour booster la réussite de votre entreprise, vous devrez penser à vous faire accompagner par une agence de référencement
naturel
de votre ville, que vous trouverez par exemple sur
https://www.adf-referencement-bordeaux.com/
.
Le marketing est incontournable pour promouvoir votre entreprise, vos produits et services auprès des consommateurs. Il est aussi
nécessaire pour construire l’image et la notoriété de votre marque. Le marketing vous permet de vous faire connaître, de
stimuler vos ventes et d’augmenter vos profits. Ce qui vous conduit au succès de votre activité.
Avec une évolution constante du marché, l’e-marketing s’avère être plus performant que le marketing traditionnel. À travers
un affichage publicitaire par exemple, il vous est difficile de connaître avec exactitude le nombre de personnes ayant montré de
l’intérêt pour votre offre.
Le webmarketing permet en revanche d’atteindre efficacement une cible plus large grâce aux différents canaux pouvant être
déployés
. Il vous donne la possibilité de mesurer l’impact de vos campagnes publicitaires. C’est également un atout face à la
concurrence.
De nos jours, les gens sont ultra connectés. Ils cherchent des informations (idées de vacances, formations…) sur Google,
effectuent leur shopping ou encore d’autres opérations sur le Net, comme la recherche d’un plombier et différents services. La
visibilité sur internet n’est donc plus discutable ! La
stratégie digitale
doit faire partie de la stratégie globale de votre startup.
Les enjeux du référencement naturel
Votre site web est enfin créé. Avant d’utiliser d’autres outils pour le développer, vous devrez vous assurer que les fondations
de votre site internet soient solides. C’est là qu’intervient le
référencement naturel
ou SEO. Celui-ci est une arme indéniable du marketing digital. Un meilleur positionnement durable vous permet d’améliorer votre
trafic, la prospection, la conversion et la fidélisation de votre clientèle.
Avec les milliers de sites qui se battent pour apparaître dans la première page des résultats Google, ce moteur de recherche
est davantage sévère en matière de référencement. Seuls ceux qu’il juge pertinents obtiennent les meilleurs positionnements.
Si vous voulez en faire partie, vous devez travailler votre référencement naturel pour optimiser votre présence sur la toile.
Pour ce faire, recourir à une
agence spécialisée en référencement naturel
reste la décision la plus judicieuse.
Élaborer une stratégie webmarketing efficace
Le marketing numérique est un facteur favorisant la visibilité de votre entreprise. Ce n’est pas parce que tous les
entrepreneurs se lancent dans la promotion de leur activité en ligne, que vous aussi, vous allez le faire. Cette attitude est
contre-productive. Afin de faire prospérer votre business, misez uniquement sur une
stratégie personnalisée
. C’est de cette façon que vous foncerez vers votre succès.
Chaque enseigne est différente. Ce qui a marché pour les autres ne fonctionnera pas forcément pour vous. Vos plans d’action
doivent être en phase avec la situation de votre entreprise et vos objectifs. L’élaboration de votre
stratégie digitale gagnante
nécessite l’intervention d’un expert. L’appui d’une
agence web
vous sera donc d’une grande utilité.
Pi-hole est un projet open-source prévu pour tourner sur un raspberry pi, qui permet de filtrer les requêtes DNS dans le but de bloquer les publicités et le tracking. L’idée est de faire ce filtrage au niveau du réseau afin de pouvoir bloquer aussi les publicités dans les applications et sur les navigateurs mobiles qui n’ont pas forcement d’Adblock.
Pour mon installation j’ai ressorti un vieux raspberry 1 b+ et j’ai utilisé l’installation recommandé sur le site:
curl -sSL https://install.pi-hole.net | bash
Avant de lancer la commande, pensez-bien à vérifier le script.
Par la suite j’ai laisser tout les paramètres à leurs valeurs par défaut.
Sur ma box j’ai fixé une IP fixe pour le raspberry (192.168.1.254).
Une fois l’installation terminé l’interface web est accessible à l’URL http://192.168.1.254/admin. A la fin de l’installation un mot de passe vous a été donné. Mais si vous l’avez perdu vous pouvez le réinitialiser via la commande:
pihole -a -p
Maintenant il ne reste plus qu’à utiliser notre nouveau serveur DNS en tant que DNS primaire.
Si comme moi vous avez une livebox, vous allez être heureux d’apprendre que vous ne pouvez pas/plus changer les DNSs au niveau de la box. J’ai donc coupé le wifi de la livebox et ajouté un routeur wifi qui lui va me servir de DHCP et qui va s’occuper de résoudre les requêtes DNS en passant par pi-hole.
Si vous ne souhaitez pas ajouter un routeur WIFI, et que ne vous ne pouvez pas modifier les DNS de votre box, il faudra modifier manuellement les DNS sur chaque PC, téléphone et tablette. (c’est vraiment pas idéal)
Après quelques heures d’utilisation j’ai constaté que 15% des resolutions DNS qui sont fait dans le cadre d’une navigation classique sont vers des sites de tracking ou de publicité. Je suis franchement surpris car je m’attendais à bien pire…
Il possible d’ajouter manuellement ou via un fichier accessible en HTTP des domaines à bloquer/autoriser.
En quelques minutes d’installation, grace à pi-hole, il est possible de limiter le tracking est la publicité pour l’intégralité de votre réseau local. Simple mais efficace.
Si on veux aller un peux plus loin dans le blocage ont peux ajouter des listes de noms de domaines maintenues par la communauté. Avec cette liste vous passerez à plus de 600 000 domaines de bloqués.
Pour les ajouter il faut se rendre dans Settings > Blocklists et il faut simplement coller la liste des listes de domaines tel quel dans le champs text et enregistrer.
Petit test de navigation sur mon téléphone avec et sans pi-hole:
Il existe plusieurs solutions open sources ou hébergées pour monter sa propre architecture serverless. J’ai choisi de tester les deux solutions open sources plus populaires, ainsi que deux des plus gros acteurs actuellement sur le marché afin de me faire une idée du fonctionnement de chaque solution. Je vais déployer un simple hello world sur l’ensemble des outils afin de tester l’utilisation et les temps de réponses.
Je ne connais aucunes des solutions, mais je vais me faire mon analyse autour des 5 points suivants :
Est-ce qu’il est possible d’avoir une solution hautement disponible ?
Est-ce qu’il y a un engouement autour de la solution ? (articles, conf, contributions)
Est-ce que c’est simple à utiliser pendant les développements ?
Est-ce que la solution est scallable ?
Est-ce que c’est utilisable/utilisé en prod ?
Pour les solutions hébergées je vais toujours prendre, si possible, un datacenter proche de la France. Pour les solutions open sources je vais utiliser un serveur Scaleway hébergé en France avec 4 coeurs, 4 Go de ram et 300Mo/s de bande passante entièrement dédiée au test. Chaque test sera fait sur une installation « propre » de Debian Stretch.
Bien évidement il y a d’autres facteurs qui entrent en jeux avant de choisir un solution plutôt qu’une autre tel que les SLA en cas de problème, la fiabilité du partenaire (Est-ce qu’il sera toujours présent dans 5 ans ?), le pays dans lequel les serveurs sont hébergées… Mais dans le cas présent je m’intéresse surtout à la fiabilité du service et je n’ai ni impératifs de production ni données sensibles à hébergées.
A la suite du test je choisirais une solution pour construire une petite application.
Amazon Lambda
Présentation
Le plus célèbre acteur du marcher est Amazon avec ses lambdas functions. Ce qui est vraiment pas mal avec cette solution c’est que pour un petit projet vous pouvez vous en sortir sans rien avoir à payer car le premier million de hit est gratuit.
Il y a plusieurs version de java, node, python et .Net de supportées par Amazon Lambda.
Mise en place
Les fonctions lambda sont intégrées à la solution AWS et peuvent être lancées par beaucoup d’évènements différents. Dans mon cas ce qui m’intéresse c’est les fonctions lambda déclenchées par une API Gateway. Il n’y a aucunes installation à faire avant de pouvoir les utiliser.
Hello world
Cette lambda est un bête hello world :
Développement /Déploiement
Une fois enregistrée ma lambda est automatiquement disponible via HTTPS sur une URL unique. Il est possible d’activer ou non une couche d’authentification, mais pour mon hello world je ne vais pas la mettre en place.
Via le framework serverless, dont je parlerais dans un prochain article, le déploiement / mise à jours peux se faire en ligne de commande en quelques secondes.
Benchmark
Je vais lancer un petit benchmark dessus pour voir les temps moyens de réponses sur un hello world.
➜ ~ ab -n 1000 -c 10 https://XXXXXXXXXX.execute-api.eu-central-1.amazonaws.com/default/test
[...]
Concurrency Level: 10
Time taken for tests: 16.969 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 305000 bytes
HTML transferred: 19000 bytes
Requests per second: 58.93 [#/sec] (mean)
Time per request: 169.686 [ms] (mean)
Time per request: 16.969 [ms] (mean, across all concurrent requests)
Transfer rate: 17.55 [Kbytes/sec] received
[...]
Les temps de réponses ne sont vraiment pas mauvais, en moyenne 58 requêtes par seconde.
Conférences
Une conférence en français d’amazon présente assez bien les fonctions lambda :
Ce qui est très sympa avec cette solution c’est que c’est clef en main. On a plus qu’à se concentrer sur notre application en s’abstrayant de la partie gestion des serveurs et de la problématique de haute disponibilité.
Cloud function Google
Présentation
Google, second grand acteur du serverless avec ses cloud function propose aussi un « forfait » gratuit pour les deux premiers millions d’appel.
Tout comme amazon lambda il est possible de créer et d’administer ses lambda via la console web. Il faut patienter une bonne minute entre le moment ou on crée une fonction et le moment ou elle est mise à disposition. Tout comme les lambdas d’amazon il est possible de déclencher les Cloud functions via des évènements autres que HTTP (ex: modification dans une base firebase).
Mise en place
Il n’y a rien de spécifique à faire à part avoir un compte google développeur.
Hello world
Voici le code de ma cloud function :
Développement / Déploiement
De même que pour Amazon Lambda le framework serverless va permettre de travailler avec Google Cloud function.
Ce qui est vraiment un plus, non négligeable, c’est qu’il est possible de lancer les fonctions en locale avec l’emulateur node js pour google cloud.
Benchmark
➜ ~ ab -n 1000 -c 10 https://europe-west1-XXXXXXX-XXXXX.cloudfunctions.net/function-1
Concurrency Level: 10
Time taken for tests: 15.187 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 361008 bytes
HTML transferred: 11000 bytes
Requests per second: 65.85 [#/sec] (mean)
Time per request: 151.870 [ms] (mean)
Time per request: 15.187 [ms] (mean, across all concurrent requests)
Transfer rate: 23.21 [Kbytes/sec] received
Google Cloud function ne support que du python 3.7 et du node js 6 et 8.
Apache OpenWhisk
Présentation
OpenWhisk est la solution open source serverless de la fondation apache. Il est possible mettre en place cette solution sur du kubernates, du mesos ou simplement via docker-compose.
Le support des langages est assez étendu pour les fonctions hébergées sur la solution. Il y a notamment Nodejs, python, PHP, java, Go …
Les fonctions, appelées Actions, peuvent être déclenchées par des évènements (trigger), des appels HTTP ou encore via des modifications sur un flux d’information (feed).
Mise en place
J’ai suivi la documentation pour une installation docker compose. Malgrès plusieurs tentative je n’ai jamais réussi à faire tourner OpenWhisk sur mon serveur. Le script d’install a crashé de multiples fois sur des étapes différentes et la seule fois (sur 7) ou il n’a pas crashé pendant les install il n’a pas réussi à configurer le client car la stack ne renvoyait que des 500.
J’ai donc décidé de tester sur mon macbook pro 2017. Sur le mac je n’ai eu aucun problème à l’installation.
Hello world
function main() {
return {payload: 'Hello world'};
}
Développement /Déploiement
Un client en ligne de commande est disponible pour gérer les functions déployées. Il est donc assez simple et rapide de mettre à jours une fonction pour la tester.
J’ai eu beaucoup de difficultés pour trouver l’URL pour appeler ma fonction, les crédentials pour m’authentifier sur le endpoint (une fois trouvé).
Benchmark
Le benchmark n’a pas de sens car l’éxecution se fait sur mon mac dans la docker machine. En moyenne les temps de réponses étaient aux alentours de 150ms.
OpenFaas
Présentation
OpenFaas est une solution opensource basée sur des orchestrateurs docker. Pour mon test je vais utiliser swarm avec un seul node. OpenFaas vient par défaut avec une interface web d’administration, une installation prés-configurée de prometheus afin de collecter des metrics sur la plateforme.
OpenFaas permet de créer des fonctions dans divers langages (Go, Python, Node, Ruby, Java…) mais aussi faire une passerelle entre OpenFaas et des binaires. La solution propose aussi un support des lambdas d’amazon.
La documentation est centralisée et assez complète. On peux y trouver beaucoup d’exemple sur l’ensemble des langages supportés.
Ce qui est important de noter c’est qu’il est possible de déployer openfaas sur des serveurs ARM (Raspberry par exemple).
Mise en place
L’installation sur un docker swarm se fait en moins d’une minute en lancant le script présenter dans la documentation. Pour intéragir avec openfaas il client en ligne de commande est disponible en plus de l’interface web.
Chaque fonction est une image docker qui doit être présente sur un registry docker.
faas new hello-world --lang node --gateway http://51.15.84.114:8080
# coder la fonction dans le fichier hello-world/handler.js
faas build -f hello-world.yml
faas push -f hello-world.yml
faas deploy -f hello-world.yml
Benchmark
➜ ab -n 1000 -c 10 http://51.15.84.114:8080/function/hello-world
Concurrency Level: 10
Time taken for tests: 49.517 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 257000 bytes
HTML transferred: 26000 bytes
Requests per second: 20.20 [#/sec] (mean)
Time per request: 495.166 [ms] (mean)
Time per request: 49.517 [ms] (mean, across all concurrent requests)
Transfer rate: 5.07 [Kbytes/sec] received
Conférences
J’ai aussi regardé du côté de Iron-io mais la solution, bien qu’elle fournisse un interface HTTP, semble plus axée sur les traitements asynchrones. Ce n’est pas spécialement ce qui m’intéresse. Mais pour du traitement de masse comme du travail sur des images, de l’envoie de mail… c’est une solution à explorer.
Résultat du comparatif
[table id=3 /]
OpenFaas est une solution très interessante qu’il faut surveiller mais qui, pour le moment ne me paraît pas être encore assez mature pour héberger une application de production.
Actuellement je dirais que Amazon lambda est la solution la plus fiable/stable/simple car elle est très bien intégrée à l’environnement AWS, il y a une bonne documentation, elle s’appuie sur l’expertise d’un des leaders sur le sujet de l’hébergement.
Le serverless, je ne connais pas du tout. L’idée est de faire une série d’articles découvertes sur cette architecture. L’idée est d’aller jusqu’à la création d’une petite application.
Depuis deux ans on parle de plus en plus de serverless mais il n’est pas toujours simple de voir exactement de ce que cela implique pour une application d’être serverless. Autre point, est-ce qu’être serverless implique qu’il n’y ait pas de serveur du tout ?
Les principes du serverless
Le serverless est une nouvelle façon d’héberger ses applications. Avec docker et des orchestrateurs comme kubernetes il est possible de faire de l’auto-scalling pour adapter le nombre d’instances d’une application en fonction de l’utilisation de l’application. M6 Web a d’ailleurs fait un retour d’expérience d’auto-scalling via la mise en place de kubernates.
Le serverless est l’étape suivante de l’auto-scalling tout en apportant une approche micro-service. Quand personne ne va utiliser une application, il n’y aura aucune instance qui tourne (selon les solutions). Et c’est seulement au premier hit que l’application sera bootée. En fonction du nombre d’appels, il y aura plus ou moins d’instances qui tourneront en même temps. L’application est donc fortement liée au backend utilisé.
Cette approche permet, selon la solution choisie, de limiter les coûts d’hébergement car les providers (Amazon, Google, Microsoft,…) facturent l’hébergement à la seconde, ou même au centième de seconde d’exécution. Si personne n’utilise l’application, les coûts d’infrastructure seront quasiment nuls.
Et c’est bien là, la force de cette approche. Quand on loue des serveurs à l’année on est obligé de payer pour un nombre de serveurs permettant d’absorber les pics maximum de charge. Le reste du temps les serveurs sont sous-exploités.
La rapidité
Le serverless n’est possible que si on est capable de démarrer un service rapidement. Si l’application met 30 secondes à démarrer, il faudra toujours conserver au moins une instance de disponible. A ce moment là on en revient à une solution d’autoscalling classique.
La fiabilité
La mise en place d’une architecture serverless déporte une partie de la complexité de l’application sur l’infrastructure qui va orchestrer nos fonctions. Il est donc primordial qu’elle soit fiable et résiliante. Il est donc préférable, pour une application de production d’utiliser une solution hautement disponible (HA).
La scallabilité
Par nature une architecture serverless est scallable car elle va devoir instancier à la demande des applications. Mais pour que ce soit possible il faut que l’infrastructure l’autorise (allocation/ libération de ressources à la volée).
Le nouveau paradigme
Cette infrastructure impose que chaque fonction soit stateless, mais vous avez la possibilité d’interagir avec d’autres services comme des bases de données ou des APIs.
Le développeur est pleinement conscient du fonctionnement de l’infrastructure. Comme on l’a vu précédemment, la frontière est mince entre l’application et la solution d’hébergement.
Cette façon de travailler permet, en théorie, de réduire le temps de déploiement d’une fonctionnalité car la complexité de chaque fonction est plus faible que celle d’une application monolithe. Néanmoins le risque est d’avoir autant de façons de faire que de fonctions hébergées. Comme chaque développeur va pouvoir travailler « dans son coin » en faisant fi de l’existant, les dérives et les mauvaises pratiques sont vites arrivées. Il y a, à mon avis, un besoin de revue de code et de tests encore plus important sur ce type d’architecture.
Le dernier point et que l’on peut avoir un langage commun sur les problèmes de performance avec la hiérarchie. Comme chaque seconde de traitement augmente la facture, il est plus simple de mettre en avant des projets techniques d’optimisation. Un temps de traitement divisé par deux c’est une fonctionnalité qui coûte deux fois moins cher. Ce n’est pas réellement le cas sur une application classique.
En conclusion, le serverless est une nouvelle approche sur la façon de concevoir une application en poussant au maximum les approches devops et micro-services afin de concevoir une application hautement scallable tout en maîtrisant les coûts.
Si vous n’avez pas de compte payant sur docker hub mais que vous ne voulez pas publier publiquement une image docker il va falloir trouver des solutions pour pouvoir héberger vos images docker. Par exemple en montant un registry docker privé pour héberger vos images docker.
Dans cet article nous allons voir comment monter un registry docker et comment y accéder en HTTPs sans avoir à déployer de certificat.
Pour cet exemple je vais utiliser un petit serveur START1-S chez scaleway à moins de 2 euros par mois.
Je préfère avoir de toutes petites instances de serveurs, plutôt que tout avoir sur la même machine. Si jamais une des machines se fait pirater, ou si elle a une panne matérielle, il n’y aura qu’un de mes projets perso qui sera hors ligne.
Plusieurs méthodes sont possibles, de la plus simple à la plus complexe. Vous pourrez trouver des tutos pour le faire via du let’s encrypt mais je suis parti sur quelque chose de plus simple. Comme je gère mes DNS avec cloudflare je vais utiliser le SSL flexible.
Ce n’est pas un SSL de bout en bout mais c’est suffisant pour ce que je fais sur domaine lahaxe.fr. Il n’y a en effet aucune donnée critique qui transite dessus.
Créer un sous domaine
Dans le menu DNS il va falloir ajouter une entrée, par exemple dans mon cas « registry.lahaxe.fr« , et la faire pointer vers votre serveur.
Activer le SSL flexible dans cloudflare
Dans le menu Crypto il y a une section SSL. Dans le menu déroulant il faut sélectionner Flexible.
Encore une fois, c’est satisfaisant pour un projet perso, mais ça ne l’est pas pour de la vraie production.
Lancer le registry
Il existe une image officielle pour monter son propre registry. Elle est très sobrement nommé registry.
L’image expose le port 5000 mais on va le mapper sur le port 80 afin de profiter du SSL flexible de Cloudflare.
Vous pouvez vérifier le bon fonctionnement en consultant l’url https://registry.lahaxe.fr/v2/_catalog (dans mon cas).
A partir de ce moment vous avez un registry fonctionnel mais public. N’importe qui peut pousser et télécharger une image dessus. Nous verrons dans la section « sécuriser le registry » comment mettre en place la sécurité sur le registry.
Uploader une image
Maintenant que nous avons notre registry de disponible nous allons pouvoir lui pousser une image pour nous assurer que tout est bien configuré.
# pull d'une image sur le hub
docker pull alpine
# on re-tag l'image
docker image tag alpine registry.lahaxe.fr/alpine
# push de l'image sur notre registry
docker push registry.lahaxe.fr/alpine
Sécuriser le registry
Avoir un registry ouvert est une très mauvaise pratique. Afin de le sécuriser un minimum nous pouvons mettre en place deux sécurités de base.
Filtre par IP
L’idée est de donner les accès seulement à vos serveurs et aux personnes qui doivent interagir avec. Il va donc falloir sécuriser le port 80 de serveur (ou le 443 si vous faites du SSL de bout en bout).
De mon côté je vais utiliser les security policies de scaleway pour bloquer le port. Attention: Il faut bien penser à redémarrer le serveur après avoir changé les règles de firewall scaleway. Mais sinon vous pouvez mettre en place un filtrage via iptable ou via shorewall.
Mettre en place de l’authentification
Dans un premier temps il va falloir générer un fichier htpasswd avec le ou les logins et mots de passes.
Il suffit de dire à l’image docker de prendre ce fichier et d’activer l’authentification basique. Il est absolument nécessaire d’être en HTTPS pour cette authentification sinon le mot de passe passera en clair dans les trames HTTP.
# si vous avez un container qui tourne déjà
docker rm -f registry
docker run -d -p 80:5000
--restart=always
--name registry
-v `pwd`/auth:/auth
-e "REGISTRY_AUTH=htpasswd"
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
-v /opt/docker-registry:/var/lib/registry
registry:2
Sur les pc « clients », votre desktop par exemple, il faudra faire un docker login pour pouvoir utiliser le registry.
docker login registry.lahaxe.fr
Je ne mets pas en place de system de backup sur le registry car je n’en ai pas spécialement le besoin. Je préfère stocker l’ensemble de mes dockerfiles afin de pouvoir les reconstruire en cas de besoin.
Mole est une application en ligne de commande qui permet de simplifier la création de tunnels SSH.
Il est parfois utile de monter un tunnel pour accéder à un service qui n’est pas ouvert sur le WEB. Par exemple si votre serveur MYSQL, n’est accessible que depuis votre serveur web ou votre serveur de backup. Ou encore pour contourner un firewall qui bloquerait un port en particulier.
Sur cet exemple le serveur bleu ne peut pas accéder au port 80 (application web) du serveur rouge car un firewall le bloque. Mais le port 22 (ssh) est accessible. Il est donc possible de créer un tunnel qui forward le port 80 sur serveur rouge sur le port 8080 du serveur bleu. Une fois le tunnel mis en place il sera possible d’accéder à l’application web du serveur rouge via l’url: http://blue:8080.
Installation
Deux méthodes d’installation sont possibles. Via le script d’installation ou via homebrew pour les utilisateurs de mac.
Pour se connecter à un serveur mysql qui n’est pas ouvert sur le web nous allons ouvrir un tunnel entre le port 3306 local du serveur et le port 3307 de mon mac :
Je peux maintenant me connecter au serveur mysql du serveur sur le port 3307 de ma machine :
➜ mysql connect -h 127.0.0.1 -P 3307 -uxxxxxxx -p
Gestion des alias
Le dernier point qui est bien pratique si vous avez à jongler avec plusieurs serveurs c’est la gestion des alias. Il est possible d’enregister des alias pour les tunnels que l’on a fréquemment à créer.