Oui, je suis aussi un crétin. Mais je ne m'y attendais pas. Il semble que ce ne soit "pas la première année de mariage". Il semble lire un tas d'articles intelligents sur la tolérance aux pannes, la redondance, etc., quelque chose de raisonnable a même écrit ici lui-même. Depuis plus de 10 ans, je suis PDG d'un fournisseur d'hébergement opérant sous la marque
ua-hosting.company et fournissant des services d'hébergement et de location de serveurs aux Pays-Bas, aux États-Unis et il y a seulement une semaine au Royaume-Uni (ne demandez pas pourquoi le nom ua, la réponse se trouve
dans notre article autobiographique ), nous proposons à nos clients des solutions de complexité variable, parfois telles que même nous-mêmes avons du mal à comprendre ce que nous avons fait.
Mais bon sang ... Aujourd'hui, je me suis dépassé. Nous avons nous-mêmes complètement démoli le site et la facturation, avec toutes les transactions, les données des clients sur les services et autres choses, et c'était ma faute, j'ai dit moi-même «supprimer». Certains d'entre vous l'ont déjà remarqué. C'est arrivé aujourd'hui, vendredi à 11 h 20, heure normale de l'Est (HNE). De plus, notre site et notre facturation n'étant pas hébergés sur le même serveur, et même pas dans le cloud, nous avons quitté le cloud du data center il y a 2 mois au profit de notre propre solution. Tout cela était situé sur un géo-cluster à tolérance de pannes de deux serveurs virtuels - notre nouveau produit,
VPS (KVM) avec des disques dédiés , VPS
INDÉPENDANTS , qui étaient situés sur deux continents - en Europe et aux États-Unis. L'un à Amsterdam et l'autre à Manassas, près de Washington, par le fait que DC dans deux centres de données fiables. Contenu sur lequel était dupliqué en permanence et en temps réel, et la tolérance aux pannes est basée sur un cluster DNS normal, des demandes pouvaient arriver à n'importe lequel des serveurs, l'un d'eux servait de MAÎTRE, et en cas d'inaccessibilité, il assumait les tâches du second.
Je pensais que cela ne pouvait tuer qu'une météorite, enfin, ou quelque chose de similaire à la météorite mondiale, qui pouvait désactiver deux centres de données en même temps. Mais tout s'est avéré plus simple.
Cela peut être nous-mêmes, nous, si nous sommes des idiots. Dans le monde, il n'y a que deux choses illimitées - l'Univers et la stupidité humaine, et si la première est discutable, la seconde est devenue évidente.
J'ai toujours adhéré au principe de la bonne redondance, je ne fais pas partie de ces personnes qui crieront "Je perds 1000 $ pour une heure d'inactivité", mais en même temps je paie 15 $ pour toute mon infrastructure. Non, je ne perds certainement pas autant. Même si, parfois, je perds. La plupart des idiots qui crient à ce sujet ne pensent même pas que les temps d'arrêt par seconde peuvent parfois coûter 1000 $, 10 000 $ ou même un million de dollars de profit à long terme. Comment? C'est très simple, en ce moment, un client peut venir qui fera sa première commande, et à l'avenir vous apportera ces millions de dollars, car vous avez toujours la possibilité de lui prouver votre unicité et de mériter sa recommandation. Et s'il voit l'erreur 504 ou «Je suis désolé, mais le serveur est actuellement indisponible», la transaction peut ne pas avoir lieu. Cela nous est arrivé, non, pas une erreur 504 lors de l'appel d'un visiteur important, mais la première. Par pur hasard, je me suis retrouvé au bon endroit au bon moment, lorsque de gros clients, comme Dmitry Sukhanov, le créateur de Kinopoisk, ont visité notre site, bien que ce ne soit pas un très bon exemple, car il n'a travaillé avec nous que 2 ans, jusqu'à Yandex ne l'a pas acheté pour 60 millions de dollars ou combien. Donc, c'est Dmitry plutôt que nous qui avons obtenu les millions ici, mais nous étions heureux de coopérer avec un projet aussi intéressant et utile, ce qui, à son tour, nous a fait une publicité et a fourni de nombreux nouveaux clients satisfaits.
En général, pourquoi suis-je tout cela. Les pertes et la redondance nécessaire doivent être évaluées de manière raisonnable. Bien qu'il existe un risque de perdre plus d'un million de dollars, vous devez examiner la probabilité d'un tel événement. Très probablement, si Dmitry a vu 1 erreur de temps 504, rien de critique ne se serait produit et il nous est revenu. Pourquoi? À cette époque, nous étions probablement l'un des rares à pouvoir offrir une connectivité 1+ Gb / s en Ukraine avec une haute qualité et une latence minimale pour un prix abordable, ce qui était extrêmement important pour leur ressource à l'époque, afin de garantir un accès de haute qualité pour le public ukrainien à portail, le trafic étranger étant de mauvaise qualité et toujours cher. Il est donc important de garantir l'unicité de la solution, puis la disponibilité ne sera pas très critique pour vous. Et puisque nous sommes uniques - nous pouvons bien nous permettre (même maintenant), ayant des milliers de clients serveurs, d'être inactifs pendant plusieurs heures ou même plus. Nous n'avons pas besoin de nuages méga-tolérants aux pannes offrant une disponibilité de 99,9999% pour beaucoup d'argent, car même s'ils tombent, et s'ils tombent, alors la pratique les a montré depuis très longtemps, car le problème qui a causé l'inaccessibilité n'est probablement pas ordinaire. Et ils n'aideront pas en cas de vulnérabilité. Ils n’aideront pas.
Nous avons donc construit notre décision pour nous-mêmes est très simple. Nous avons pris deux VPS (KVM) sur les nœuds Dell R730xd, le même VPS (KVM) que nous proposons à nos clients, car c'est notre principe initial - pour donner aux gens ce que nous utilisons nous-mêmes:
VPS (KVM) - 2 x Intel Dodeca-Core Xeon E5-2650 v4 (24 cœurs) / 40 Go / 4x240 Go SSD RAID10 / Datatraffic - 40 To - à partir de 99 $ / mois, et vous pouvez
obtenir une remise de 30% sur le premier paiement si vous trouvez une promo code dans notre
article publicitaire .
Un aux Pays-Bas et un autre aux États-Unis. Oui, sur ces nœuds, en plus de notre site et de la facturation, il y a 2 autres clients réels, chacun pouvant influencer le fonctionnement de notre site en théorie et ne peut pas le faire en pratique. Pourquoi - c'est écrit dans un article publicitaire, je n'entrerai pas dans les détails ici une deuxième fois. Maintenant, ce n'est pas ça. En général, la solution n'est pas pire que les serveurs d'entrée de gamme dédiés et peut gérer une charge très importante.
Entre autres, il est tolérant aux pannes, les données sont constamment répliquées en temps réel. Et si un serveur n'est pas disponible, le second prendra le rôle MASTER. Idéalement, vous pouvez faire en sorte que le trafic en provenance du continent américain soit traité par le serveur américain, et en provenance d'Europe, de Russie et d'Asie - le serveur des Pays-Bas.
Nous avons lié les serveurs à notre compte dans notre facturation WHMCS, un produit sous licence publique, mais adapté pour nous, qui est utilisé par de nombreux fournisseurs d'hébergement à travers le monde, y compris nous, car écrire notre propre système comptable est une franche débilité (dans notre cas) . Surtout dans les cas où la fonction souhaitée est implémentée en écrivant votre propre module sur la facturation existante, ce qui augmente votre tolérance aux pannes, car elle réduit le risque de vulnérabilités critiques. Après tout, seul ou même avec une petite équipe, vous ne pourrez pas écrire un système plus fiable que celui existant, qui a été écrit au fil des ans par un tas de développeurs tuftés, où des milliers de bugs ont déjà été supprimés et pour lesquels les développeurs demandent maintenant aussi peu que 30 $ / mois pour une licence et reçoivent des millions de dollars par an qui peuvent être dépensés, y compris pour de nouvelles améliorations.
En parlant de vulnérabilités critiques, notre programmeur a récemment fait une erreur en écrivant l'un des modules de service, qui avait accès à une base de données de facturation en lecture seule, qui a été découvert par un pentester indépendant et nous a demandé de payer 550 $ pour un bogue trouvé, car il s'agissait d'une vulnérabilité SQL -injection:
L'injection SQL est dans le top 10 OWASP, je vous ai écrit sur le montant de 550 $, c'est le montant minimum, car la base de données souffre, compromettant ainsi les données utilisateur.
Mais certains montants vont jusqu'à 10 000 $ en récompense, comme c'est le cas avec vk.com.
Bien sûr, nous avons soutenu ce début et payé une compensation sans aucun doute. Puisque notre programmeur a examiné les données fournies et confirmé l'existence d'un problème, justification du pentester. Après tout, nous ne maintenons pas encore notre propre pentester dans l'État, et ce travail nécessite des connaissances et du temps considérables, car il comprend une série d'études:
Audit de sécurité de l'ensemble de la ressource, il s'agit d'un contrôle selon les paramètres suivants, et notre rapport de fin d'audit comprend:
• Injection de code A1
• A2 Authentification et gestion de session incorrectes
• Scriptage Crossite A3
• Violation d'accès A4
• Configuration A5 non sécurisée
• Fuite de données sensibles A6
• A7 Protection contre les attaques insuffisante
• Falsification de demande intersite A8
• A9 Utilisation de composants avec des vulnérabilités connues
• A10 Enregistrement et surveillance inadéquats
Car oui, la décision a été prise sans équivoque et rapidement. De plus, comme l'a noté le pentester, ces études augmentent la sécurité du Web dans son ensemble:
C'est mon hobby, si chaque développeur comme vous avait un dialogue avec les chasseurs de bogues, Internet serait à 80% sûr.
Par conséquent, dans l'ensemble, nous avons payé beaucoup, surtout si nous divisons le montant par le nombre de mois pendant lesquels l'employé responsable des tests de pénétration n'a pas été maintenu dans le personnel. Merci beaucoup au Pentester pour le bug trouvé et le fait qu'il ait pris le temps pour nous, nous lui sommes vraiment très reconnaissants. Si quelqu'un a besoin de ses services, veuillez contacter, nous vous fournirons des contacts avec sa permission.
Mais cette fois ce n'est pas la vulnérabilité qui nous a tués. C'était nous et la caractéristique du produit WHMCS. Sur chaque note, nous avons installé un produit de gestion de conteneur virtuel pratique - VM Manager, auquel WHMCS a accès pour créer, suspendre et supprimer, ainsi que des clients - pour gérer le conteneur virtuel créé.

Chaque jour au WHMCS, nous recevons des dizaines voire des centaines de commandes qui doivent être acceptées (acceptées), supprimées ou marquées comme Fraude si le client essaie de payer une commande avec une carte de crédit volée. Parfois, il y a un boom de ces commandes et nous ne pouvons pas déterminer immédiatement quel statut lui attribuer, alors que nous effectuons notre vérification interne ou demandons à l'utilisateur de s'identifier correctement si nous trouvons sa commande suspecte, et ces utilisateurs, bien sûr, ne répondent pas ou ne passent pas toujours identification réussie. Par conséquent, de temps en temps, mille ou deux commandes non activées ou de statut inconnu s'accumulent, qui sont plus faciles à supprimer qu'à traiter. Qui a vraiment besoin de - réorganiser.
Il y a deux mois, nous avons décidé d'abandonner complètement le produit de centre de données basé sur le cloud, car nous avons commencé à fournir notre propre solution avec VM Manager, qui vous permet de mettre le système en un clic ou même à partir de votre image:

Et ils l'ont même proposé sur les SSD NVMe PCIe, qui sont un ordre de grandeur plus rapides que les SSD ordinaires pour la lecture et jusqu'à 3 fois pour l'écriture, la solution, comme celle du cloud, doit être mise à niveau, les serveurs coûtent à partir de 15 $ et incluent un panneau de configuration VM Manager et ISP Manager pratique 5 sur demande pour une mise à niveau gratuite du support avec une étape minimale de 5 Go de RAM DDR4, 60 Go de NVMe PCIe SSD et 3 cœurs E5-2650 v4
vers un plan tarifaire plus élevé à Amsterdam, Manassas et Londres:
VPS (KVM) - E5-2650 v4 (3 cœurs) / 5 Go DDR4 / 60 Go NVMe SSD / 1 Gbit / s 5 To - 15 $ / mois
VPS (KVM) - E5-2650 v4 (6 cœurs) / 10 Go DDR4 / 120 Go NVMe SSD / 1 Gbit / s 10 To - 30 $ / mois
VPS (KVM) - E5-2650 v4 (9 cœurs) / 15 Go DDR4 / 180 Go NVMe SSD / 1 Gbit / s 15 To - 45 $ / mois
...
VPS (KVM) - E5-2650 v4 (24 cœurs) / 40 Go DDR4 / 480 Go NVMe SSD / 1 Gbit / s 40 To - 120 $ / mois
...
VPS (KVM) - E5-2650 v4 (24 cœurs) / 65 Go DDR4 / 780 Go NVMe SSD / 1 Gbit / s 65 To - 195 $ / mois
VPS (KVM) - E5-2650 v4 (24 cœurs) / 70 Go DDR4 / 840 Go NVMe SSD / 1 Gbit / s 70 To - 210 $ / mois
VPS (KVM) - E5-2650 v4 (24 cœurs) / 75 Go DDR4 / SSD NVMe 900 Go / 1 Gbit / s 75 To - 225 $ / mois
Par conséquent, cela n'a aucun sens de louer une grande partie du cloud du centre de données et d'offrir aux clients les anciens processeurs E3-1230, même si à partir de 3,99 $ par mois pour nous, il est épuisé. Nous pensons que les clients devraient recevoir la plus haute qualité et des performances maximales, à un prix minimum, oui, nous ne pouvons pas offrir un produit pour 3,99 $ et nous ne couvrons peut-être pas les besoins de certains développeurs qui ont besoin de ressources et de performances minimales, mais le nœud coûte plus cher 7 000 euros et nous ne pouvons pas nous permettre, du moins pour l'instant, d'y placer plus de 15 clients, car nous sommes prêts à garantir la qualité. Et la qualité implique non seulement la stabilité, mais aussi le rapport performance / prix maximal, puis la rentabilité.
Pour fêter ça, nous avons annulé l'intégralité de l'infrastructure cloud (qui est des milliers de VPS), commandé 2 serveurs virtuels indépendants pour nous (oui, nous nous payons pour nos serveurs), déployé un site et facturé il y a 2 mois une nouvelle solution, comme nous avons tout décrit ci-dessus, introduit dans le groupe de protection, pour que le système ne s'arrête pas, si vous avez soudainement oublié de payer à temps ... Il semble avoir tout fait.
Et aujourd'hui, après 2 mois, nous avons décidé d '«Annuler» (ne pas supprimer, un tel bouton est également là, mais nous essayons de ne jamais supprimer quoi que ce soit, afin qu'il y ait toujours un historique) 1000+ commandes en attente qui n'ont toujours pas de statut dans la facturation WHMCS . Deviné? Oui, c'est tout. Ils m'ont demandé - puis-je annuler? J'ai confirmé "supprimer".
Parfois, malgré le grand nombre de ressources, puisque l'échantillonnage des données est important et que certains processus ne correspondent pas au délai imparti, WHMCS donne une erreur 504, tout est fait et la facturation continue de fonctionner, mais ici nous avons eu l'indisponibilité. La facturation et le site ne sont plus disponibles. Nous n'avons pas immédiatement compris la raison. Mais alors ils ont réalisé. La commande de nos 2 VPS n'a pas été acceptée (oui, nous n'avons pas accepté notre commande!) Et, en conséquence, a été «Annulée» par le système, ce qui a conduit au lancement du module et à la suppression de deux conteneurs à la fois, soi-disant non créés, mais créés par les virtuels, à l'aide de notre bien-aimé VM Manager. Après être entré dans l'un des nœuds, comme prévu, nos administrateurs ont vu l'image «Adieu»:

Qu'est-ce que c'est - une faille dans les développeurs WHMCS, qui conduit à la suppression des commandes non acceptées, et effectivement créées avec leur ID VPS, lorsqu'elles sont annulées, ou notre stupidité (du service commercial) n'est plus importante. Le résultat était un - "Adieu au site avec facturation." Le panneau vient de les essuyer. Et les administrateurs n'avaient qu'une seule question pour nous (ventes):
Naher crée un service avec son site principal et sa facturation.
Et puis aussi la tuer en enfer.
Et même si nous avions des sauvegardes, également dans deux régions géographiquement réparties, je me sentais mal à l'aise. Comme je n'étais pas sûr de la fraîcheur des sauvegardes, je n'étais pas sûr que nos administrateurs aient tout fait correctement, comme cela avait été initialement prescrit dans ceux-ci. la tâche que la base de données a été réellement sauvegardée toutes les heures ou plus souvent, et les données ont été mises à jour et plusieurs versions précédentes des fichiers ont été stockées. Ces sauvegardes pour une erreur logicielle n'ont pas cessé d'être effectuées du tout (après tout, personnellement, je ne les contrôlais pas, pourquoi devrais-je être sûr que nos administrateurs s'inquiéteraient de nos données si je marquais ce contrôle?). Un tas de pensées négatives ... Ne laissez pas l'univers survivre à cela!
J'avais déjà l'idée qu'au moins 1 heure, ou pire encore, il n'y aurait pas de transactions, et que vous deviez restaurer les paiements des clients manuellement, comparer les données sur les transactions précédentes et écrire aux titulaires de compte que nous avions recréé un compte et payé pour cela , pour nous montrer du mauvais côté, pour envoyer une notification que nous sommes des imbéciles et avons fait un tel dysfonctionnement du logiciel ... Et s'il n'y a pas de nouvelle sauvegarde - c'est généralement un tuyau, cela devrait être très long et morne pour tout restaurer ...
Pour ce cas, nous avons une table interne où de nombreuses données principales sont dupliquées manuellement et qui est mise à jour par nos soins, ce qui élimine une panne logicielle et la réécriture de données incorrectes. Malgré la disponibilité des sauvegardes, nous utilisons toujours cette méthode. Après tout, personne n'annule la possibilité d'un zvezdets mondial.
Heureusement, tout s'est avéré pas si mal, et même ceux-là. un spécialiste qui a dû résoudre un problème et qui au début a annoncé:
La soirée a été un succès, merci à tous.
Je suis allé le chercher.
Néanmoins, la soirée a été un succès. Étant donné qu'au départ, la solution prévue pour l'utilisation de lvm et qu'un nouveau conteneur virtuel n'avaient pas encore été créés - il était possible de restaurer les données réelles, bien qu'avec une danse avec un tambourin:
Tout via l'utilitaire lvm, à l'aide de ses commandes, a restauré le groupe de volumes virtuels, puis le groupe virtuel, puis a activé la partition, l'a montée sur le dossier de gauche, a créé le serveur et y a mis les données. Cela était possible par d'autres moyens, mais cette option dans notre cas était la spécificité la plus rapide des paramètres du serveur virtuel, qui chacun a son propre raid.
Quelles conclusions sont tirées? La redondance et la redondance devraient inclure la comptabilité des vulnérabilités et le scénario de développement le plus stupide lorsque tout, même les sauvegardes, peut être détruit. Nous n'avons pas souffert et n'avons pas subi de pertes importantes uniquement du fait que les données n'ont pas été complètement supprimées. S'il est nécessaire de restaurer à partir de sauvegardes, il y aurait une perte de transactions par heure et une perte significative de temps de travail. Il nous a semblé que la probabilité que les sauvegardes soient utiles lors de l'utilisation d'un géocluster est minime - nous avions tort. Nous n'avons pas pris en compte qu'il est possible de supprimer les deux serveurs à la fois et que nous ne supprimerons pas les serveurs, mais nous.
Il est toujours nécessaire d'avoir un stockage externe indépendant de votre système, avec accès, de préférence uniquement par un certain code, qui est également réservé, afin de garantir que les données ne seront pas perdues. Pour le moment, malgré la présence de sauvegardes dans notre infrastructure dans deux régions, j'envisage sérieusement la possibilité d'utiliser quelque chose comme Amazon Glacier, bien que ce dernier soit très cher. Selon les administrateurs, tout va bien uniquement en termes de marketing, mais lorsque vous commencez à l'utiliser, vous êtes confronté au fait que la solution est assez chère, car vous devez payer pour chaque demande et chaque fichier qui est très intéressant à considérer comme leur application aws-cli, surtout si les données doivent être restaurées. Récemment, un client de Grande-Bretagne a demandé à y établir une réservation, après quelques mois d'utilisation, il a refusé - cela s'est avéré très coûteux. Mais encore, nous devons déterminer ce qui est plus cher. — . — , , . , .
, — , , , . , , , , , .
PS , ( , EST ). , , . , - . , , . , — , . . !
.
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps ,
, 30% VPS , ,
.
Dell R730xd 2 fois moins cher? Nous avons seulement
2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la
création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?