2017-03-01 4 views
1

Ich untersuche die Verwendung von Containern in einer neuen Anwendung und habe eine große Menge an Inhalt untersucht und eine Sandbox-Umgebung erstellt, um Andockfenster und Container zu untersuchen. Mein Kampf besteht eher darin, zu verstehen, welche Komponenten einzeln containerisiert werden müssen, oder mehrere Komponenten in meinem eigenen Container zu bündeln. Und welche Punkte sollten bei der Entwicklung beachtet werden? Beispiel: Ich erstelle einen Python-Back-End-Service, der über den Webservice-Aufruf ausgeführt wird. Der Dienst würde sowohl mit Mongo DB als auch mit RabbitMQ interagieren.Welche Komponenten sollten "containerisiert" werden - Docker

Meine Fragen sind: Sollte ich einzelne OS-Container (EG Ubuntu), Python-Container, MongoDB-Container, Kaninchen MQ-Container usw. ausführen? Kombiniert sie alle einen Teil meiner Anwendung und durch Entkoppelung alles, was ich individuell skalieren kann?

Wie würde ich in der Lage sein, zu bündeln/verknüpfen diese für den Einsatz ohne die Vorteile der Entkopplung zu verlieren/Zerlegen in einzelne Behälter

ist ein OS und Python-Container tatsächlich wie dies erforderlich ist, alle auf einem OS mit Python laufen Sowieso?

Würde ich gerne sehen, wie Menschen dieses Problem angegangen sind?

Antwort

1

Docker's Philosophie: Verwendung von Microservices in Containern. Der Begriff "Microservice Architecture" ist in den letzten Jahren entstanden, um eine besondere Art der Gestaltung von Softwareanwendungen als Suiten von independently deployable services zu beschreiben.

Einige Vorteile von microservices architecture sind:

  • einfache Upgrade-Management
  • Beseitigen langfristiges Engagement zu einem einzigen Technologie-Stack
  • Verbesserte Fehlerisolierung
  • es einfacher macht für einen neuen Entwickler zu verstehen, die Funktionalität eines Dienstes
  • Verbesserte Sicherheit
  • ...

Sollte ich einzelne OS Behälter (zB Ubuntu), Python Container, MongoDB Container, Kaninchen MQ Container etc? Kombiniert sie alle bilden Teil meiner Anwendung und durch die Entkopplung alles, was ich die Fähigkeit individuell skalieren kann?

Sie brauchen keinen individuellen OS ontainer. Jeder Container verwendet den Kernel des Docker-Hosts und enthält nur die benötigten Binärdateien, z. B. Python-Binärdateien.

So haben Sie, ein python Container für Sie Python-Service, MongoDB Container und RabbitMQ Container.

Wie könnte ich diese für die Bereitstellung bündeln/verknüpfen, ohne die Vorteile der Entkopplung/Zerlegung in einzelne Container zu verlieren?

Für Bereitstellungen verwenden Sie die Datei dockerfiles + docker-compose.Dockerfiles enthalten Anweisungen zum Erstellen eines Andock-Image. Wenn Sie nur Bilder der offiziellen Bibliothek verwenden, benötigen Sie keine Docker-Dateien.

docker-compose helfen Sie orchestrieren der Behälter baut (von Docker-Dateien), Start-ups, erforderlich Netzwerke erstellen, erforderliche Volumina Montage und usw.

+0

große Resonanz - Vielen Dank – user3927078

Verwandte Themen