2016-09-30 2 views
0

Ich versuche, einige meiner Frage in Bezug auf die Architektur eines Systems zu lösen bestehend aus den folgenden:Dockerize Stapel: MapServer - AngularJS Web-App - Lumen API - PostgreSQL

  • AngularJS Webapplikation Frontend
  • MapServer Erzeugung & dient Kartenbilder durch WMS
  • Lumen REST API-Backend werden alle Business-Logik
  • PostgreSQL-Datenbank mit PostGIS enthalten, räumliche Daten speichern

Welches ist der richtige Weg, um diese Art von Stack zu docken?

Derzeit Ich denke an den folgenden Container geschaffen werden:

  1. Web Server enthält:

    • Apache Webserver
    • AngularJS Frontend-Anwendung
  2. Kartenserver mit:

    • Apache Web-Server mit CGI-Unterstützung
    • MapServer CGI-Anwendung
    • MapCache/TileCache
  3. Container Server Anwendung:

    • Apache Webserver
    • Lumen API Backend
  4. Datenbank enthält:

    • PostgreSQL relationale Datenbank
    • PostGIS Add-on

Die Liste der Komponenten jeden Behälter noch nicht abgeschlossen ist, so einige von ihnen passt möglicherweise nicht genau dorthin, wo sie platziert wurden. Sollte sich Apache beispielsweise in einem separaten Container befinden?

Antwort

0

Lassen Sie uns über Docker Philosophie denken, Microservices.

Microservices ist ein Ansatz für die Anwendungsentwicklung, in dem eine große Anwendung als Suite modularer Dienste aufgebaut ist. Jedes Modul unterstützt ein bestimmtes Geschäftsziel und verwendet eine einfache, klar definierte Schnittstelle für die Kommunikation mit anderen Modulen.

Das bedeutet, wir müssen unser System in Microservices aufteilen und jeden Microservice in einen Container stellen. Dies wird Ihnen erheblich helfen, wenn Sie versuchen, Ihre Anwendung zu aktualisieren.

In Ihrem Fall würde ich Apache von eckigen js Container trennen.