Bereitstellen der Cloud-Infrastruktur mit Node.js

Bei diesem Text handelt es sich um eine maschinell erstellte Übersetzung. Eine überarbeitete Version ist in Planung.

Das Node.js SDK für unsere API ist die erste JavaScript-basierte Bibliothek, die für die kürzlich veröffentlichte REST API entwickelt wurde und diese unterstützt. Es ermöglicht jedem mit JS vertrauten Entwickler, die Gebäudeautomation über sein Rechenzentrum zu starten.

Warum Node.js?

Seit der Veröffentlichung von Node.js haben wir beobachtet, wie die Akzeptanzrate weiter steigt, da viele Unternehmen es nutzen - von PayPal bis LinkedIn. Node.js ist ein asynchrones, ereignisgesteuertes Framework und wurde entwickelt, um skalierbare Netzwerkanwendungen zu erstellen.

Für Entwickler, die Node.js mit der REST-API nutzen möchten, ist diese Bibliothek für Sie konzipiert.

Übersicht

Die Bibliothek umfasst die Abdeckung aller vorhandenen REST-Funktionen. Eine vollständige Dokumentation zu den verschiedenen Aspekten der neuen API finden Sie hier  hier und im Node.js Repository hier. Unser Ansatz für Node.js war es, den Code einfach und prägnant zu halten. Die Bibliothek unterstützt einfache bis komplexe Anfragen. Dies wird in meinen Beispielen näher erläutert.

Wir ermutigen Sie, sich mit uns über die Community zu engagieren oder über GitHub zum Projekt beizutragen. Die Bibliothek ist Open-Source und frei verfügbar auf npm.

Code-Beispiele

Sobald Sie unserem Erste-Schritte-Leitfaden gefolgt sind, sollten Sie das Modul in Ihrer Umgebung verfügbar haben; Sie können npm verwenden, um die Bibliothek zu installieren, wie Sie es von jeder anderen Node.js-Bibliothek gewohnt sind. Sie können einfache Anfragen durchführen, wie z.B. das Erstellen eines leeren virtuellen Rechenzentrums.

var libpb=require('libprofitbricks')

libpb.setauth('username','password')

  var dc = new libpb.datacenter()

dc.set('name','my datacenter')

libpb.createDatacenter(dc)

Das ist ziemlich langweilig und wirklich nicht sehr nützlich. Wie ich bereits erwähnt habe, unterstützt die Bibliothek auch komplexere Kreationen. So würden Sie ein Rechenzentrum erstellen, einen Server hineinwerfen und ein NIC mit einer Firewall-Regel hinzufügen. Dies endet mit einer einzigen Anfrage an die API.

var pb=require('libprofitbricks')

var dc= new pb.datacenter({"name": "My New Datacenter",
        "description": "Production environment",
        "location": "de/fkb"})
        
var srv=new pb.server({"name": "My New Server1","ram": 4096,"cores": 4})

var nic=new pb.nic({"ips": [],"lan": 1})

var fw=new pb.firewallrule({"protocol": "TCP",
        "portRangeStart": "23",
        "portRangeEnd": "23"})

nic.addFwrule(fw)

srv.addNic(nic)

dc.addServer(srv)

pb.setauth("username","password")

pb.createDatacenter(dc)

Sie können auch ein Volume für die spätere Verwendung erstellen:

pb=require('libprofitbricks')

pb.setauth("username","password")


var dc_id = '700e1cab-99b2-4c30-ba8c-1d273ddba022'

var vol=new pb.volume({  "size": 56,
                  "name": "Explicitly created volume",
                  "image": "<IMAGE/SNAPSHOT-ID>",
                  "bus": "VIRTIO"
              })

pb.createVolume(dcid,vol)

Jetzt werden wir ein bisschen verrückt. So können Sie ein virtuelles Rechenzentrum erstellen und 37 Server hinzufügen:

var libpb=require('libprofitbricks')

libpb.setauth('username','password')

var brickhouse= new libpb.datacenter({
      name: 'A Brick House, 
      location: 'us/las',   
      description: "Our Brick House" })
var servers=37

// reverse while loop

while(servers--){

  var srvname="srvfu"+server 
  
  var srv=new libpb.server({name:srvname,cores:"5",ram:16384})

  brickhouse.addServer(srv)
}

libpb.createDatacenter(brickhouse, myOptionalCallback )

Die Bibliothek Node.js schafft eine leistungsfähige Schnittstelle zur REST-API. Mit unbegrenzten privaten Netzwerken kann ein Entwickler die Erstellung von Cluster-Umgebungen automatisieren, in denen verschiedene Dienste in verschiedene Netzwerke unterteilt sind. Alle Volumes werden auf einem ultraschnellem Plattensubsystem erstellt, das ein überzeugendes Argument für Dinge wie nette Big Data Farmen ist, bei denen I/O eine große Rolle spielt; unsere Bibliothek ist hervorragend geeignet, um diese und andere Arten von Build Outs automatisch und maßstabsgetreu durchzuführen.


Wir werden weiterhin eine Version des Node.js SDK verbessern und auf dieser Version aufbauen. Wir begrüßen auch Beiträge zurück in das Projekt und, wie immer, können Sie sich mit der Community über die Website von DevOps Central.