Serveur dans le cloud : préparons-nous au lancement

Dans publication sur la rĂ©gate Nous avons mentionnĂ© qu'en aoĂ»t, tous les utilisateurs de Habr peuvent participer Ă  un concours avec des prix. Il est temps de lever le voile sur ce projet. L'idĂ©e nous est venue que l'expression « serveur dans les nuages » peut ĂȘtre prise au sens littĂ©ral. Alors pourquoi ne pas lancer un serveur fonctionnel dans le ciel, que l'on pourra pinger ! Au dĂ©but, l'idĂ©e paraissait folle, mais aprĂšs y avoir rĂ©flĂ©chi sous diffĂ©rents angles et en en discutant, nous avons finalement trouvĂ© un moyen d'envoyer le serveur Ă  la rencontre des oiseaux. Le lancement historique aura lieu fin aoĂ»t, et pour l'instant, nous peaufinons la partie matĂ©rielle du projet. Les dĂ©tails sont sous le saut.

Serveur dans le cloud : préparons-nous au lancement

  1. Le serveur sera basé sur Raspberry Pi 3

    Il serait intéressant de faire voler un serveur en une seule unité, mais son poids + le poids d'un UPS
 Pour cela, il faudrait une certaine force de levage. Et pourquoi faire cela, si l'on peut déployer un serveur tout à fait respectable à partir de la compacte Raspberry Pi 3, dont la puissance de calcul est plusieurs centaines de fois supérieure à celle de la machine sur laquelle Tim Berners-Lee s'amusait en 1991.

  2. Nous lancerons le serveur sur un ballon

    Nous avons eu l'idĂ©e de faire monter le serveur sur un sonde Ă  hĂ©lium, mais alors, le serveur ne serait pinguĂ© que pendant un court laps de temps, avant que le ballon n'Ă©clate Ă  haute altitude dans une atmosphĂšre rarĂ©fiĂ©e et que toute la structure ne tombe au sol. Nous souhaitions prolonger la « fenĂȘtre » de temps d'Ă©mission Ă  une heure et demie. Nous avons donc dĂ©cidĂ© d’utiliser un ballon. La durĂ©e du vol est de deux heures. De plus, bien que le vol ne soit pas totalement contrĂŽlable, notre ingĂ©nieur peut se trouver dans le panier, et en cas de dysfonctionnement, il pourra rĂ©agir rapidement, sur place, pour « allumer et Ă©teindre ».

  3. Nous utiliserons un réseau de téléphonie mobile

    Les antennes WiFi modernes peuvent atteindre des distances assez grandes, mais pour cela, il faudrait construire un complexe de communication ne lĂąchant pas des performances d'une station de radar militaire. Et pour 1,5 Ă  2 heures de communication, cela n'a pas de sens de construire ce systĂšme, car Ă  l'altitude du vol du ballon, la couverture mobile devrait ĂȘtre stable.

AprÚs avoir formulé ces « postulats », le projet a cessé de sembler irréalisable, et nous avons rapidement commencé à travailler sur les trois axes.

Tout d'abord, nous avons demandé de l'aide à des gars de nearspace.ru, des experts des lancements aériens de divers appareils (avec recherche et sauvetage ultérieurs).

Nous avons ensuite sorti le Raspberry Pi 3 qui traßnait dans le tiroir de notre administrateur et avons commencé à le configurer.

Serveur dans le cloud : préparons-nous au lancement
Nous avons connecté la caméra :

Serveur dans le cloud : préparons-nous au lancement
Et nous l'avons testée sur notre « Semyon » :

Serveur dans le cloud : préparons-nous au lancement
Semyon est trĂšs pratique en tant que modĂšle et assistant — il ne demande pas Ă  manger, ne se laisse pas distraire par le tĂ©lĂ©phone, est toujours de bonne humeur et avec un large sourire. Bien sĂ»r, une telle combinaison ne sera pas nĂ©cessaire pour le vol, mais elle crĂ©e la bonne atmosphĂšre dans le bureau.

Le schéma du projet se dessine comme suit :

Serveur dans le cloud : préparons-nous au lancement
Le powerbank est utilisé pour les tests au sol, il faut quelque chose de plus fiable pour le démarrage.

L'élément le plus intéressant est probablement la carte qui collecte les données de tous les capteurs :

Serveur dans le cloud : préparons-nous au lancement
Les gars de nearspace.ru ont longtemps essayĂ© diffĂ©rents analogues, puis ont fabriquĂ© eux-mĂȘmes un ordinateur de bord, car la fiabilitĂ© est cruciale ; des donnĂ©es de tĂ©lĂ©mĂ©trie dĂ©pend le destin du projet. L'ordinateur de bord est responsable de la rĂ©ception des donnĂ©es de tous les capteurs connectĂ©s et les transmet au Raspberry Pi.

Nous avons lancé, configuré et aprÚs quelques semaines de programmation et de jonglages, nous avons pu obtenir des données de télémétrie et des photos de Semyon avec la caméra grand angle :

Serveur dans le cloud : préparons-nous au lancement
Les données de télémétrie sont transmises sous forme d'une ligne comme ceci :

Serveur dans le cloud : préparons-nous au lancement
Ensuite, ce code transforme la ligne en tableau et affiche les données sur le site :

$str = 'N:647;T:10m55s;MP.Stage:0;MP.Alt:49;MP.VSpeed:0.0;MP.AvgVSpeed:0.0;Baro.Press:1007.06;Baro.Alt:50;Baro.Temp:35.93;GPS.Coord:N56d43m23s,E37d55m68s;GPS.Home:N56d43m23s,E37d55m68s;Dst:5;GPS.HSpeed:0;GPS.Course:357;GPS.Time:11h17m40s;GPS.Date:30.07.2018;DS.Temp:[fc]=33.56;Volt:5.19,0.00,0.00,0.00,0.00,0.00,0.00,0.00';
parse_str(strtr($str, [
	
':' => '=',
	
';' => '&'
]), $result);
print_r($result);

Description de certaines données :

  • N:2432; — numĂ©ro du paquet de donnĂ©es, augmente toujours
  • T:40m39s; — temps Ă©coulĂ© depuis l'allumage du contrĂŽleur de vol
  • MP.Stage:0; — phase de vol (0 — au sol ou en dessous de 1 km, 1 — montĂ©e, 2 — vol stationnaire en altitude, 3 — descente)
  • MP.Alt:54; — altitude baromĂ©trique en mĂštres au-dessus du niveau de la mer — Ă  afficher
  • MP.VSpeed:0.0; — vitesse verticale en mĂštres par seconde avec un filtre mĂ©dian
  • MP.AvgVSpeed:0.0; — vitesse verticale en mĂštres par seconde avec un filtre de moyenne
  • Baro.Press:1006.49; — pression baromĂ©trique en millibars
  • Baro.Alt:54; — altitude baromĂ©trique
  • Baro.Temp:36.99; — tempĂ©rature du baromĂštre
  • GPS.Coord:N56d43m23s,E37d55m68s; — coordonnĂ©es actuelles
  • GPS.Home:N56d43m23s,E37d55m68s; — coordonnĂ©es du point de dĂ©part
  • GPS.Alt:165; — altitude par GPS en mĂštres
  • GPS.Dst:10; — distance au point de dĂ©part en mĂštres
  • DS.Temp:[fc]=34.56; — capteur de tempĂ©rature sur la carte

Voici à quoi ressemblent les données affichées :

Array 
(
       [N] => 647
       [T] => 10m55s
       [MP_Stage] => 0
       [MP_Alt] => 49
       [MP_VSpeed] => 0.0
       [MP_AvgVSpeed] => 0.0
       [Baro Press] => 1007.06
       [Baro_Alt] => 50
       [Baro_Temp] => 35.93
       [GPS_Coord] => N56d43m23s,E37d55m68s 
       [GPS_Home] => N56d43m23s,E37d55m68s 
       [Dst] => 5
       [GPS_HSpeed] => 0
       [GPS_Course] => 357
       [GPS_Time] => 11h17m40s
       [GPS_Date] => 30.07.2018
       [DS_Temp] => [fc] 33.56
       [Volt] => 5.19, 0.00,0.00,0.00,0.00,0.00,0.00,0.00 
)

Que faire si la connexion mobile tombe ? Pour cela, nous avons une seconde carte, avec deux cartes SIM insérées dans le modem (une à la fois dans un slot) :

Serveur dans le cloud : préparons-nous au lancement
Il peut automatiquement basculer vers le canal de secours si le principal cesse de répondre.

Et que se passe-t-il si les deux réseaux mobiles deviennent indisponibles ?

Serveur dans le cloud : préparons-nous au lancement(Le garçon de la sortie «Eralash» n°45 ne lit pas «La théorie des probabilités» sans raison)

Dans ce cas, nous aurons un GPS tracker indépendant envoyant un signal de sa position. Notez qu'il le fait non pas par le réseau mobile, dont la disponibilité à grande distance n'est pas garantie, mais par satellite.

Serveur dans le cloud : préparons-nous au lancement
Oui, le GPS tracker est un peu plus gros que celui implantĂ© sous la peau de James Bond. Étant donnĂ© que notre concours dĂ©pend des coordonnĂ©es du serveur en vol, cette partie des donnĂ©es recevies Ă  bord sera la plus importante. Mais nous en parlerons dans le prochain post. Restez Ă  l'affĂ»t de notre blog !

Nous croyons tellement au succĂšs de l'ensemble du projet que nous avons mĂȘme lancĂ© un concours pour ceux qui voudraient deviner l'endroit oĂč la boule atterrira. Plus de dĂ©tails dans notre nouveau post.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster