Aller au contenu

Vue d'ensemble de l'architecture

Architecture globale

Ce projet implemente une architecture multi-couche permettant le deploiement de webMethods Command Central dans differents environnements.

graph TB
    subgraph User["Utilisateur"]
        DEV[Developpeur]
    end

    subgraph Local["Environnement Local"]
        VAGRANT[Vagrant<br/>VirtualBox]
        DOCKER[Docker<br/>Compose]
    end

    subgraph Cloud["AWS Cloud"]
        TF[Terraform]
        EC2[EC2 Instance<br/>Ubuntu 22.04]
        SG[Security Groups]
    end

    subgraph Config["Configuration"]
        ANS[Ansible<br/>Playbooks]
        SCRIPTS[Shell<br/>Scripts]
    end

    subgraph Platform["webMethods Platform"]
        CCE[Command Central<br/>:8090/:8091]
        SPM[Platform Manager<br/>:8092/:8093]
    end

    subgraph Services["Services Annexes"]
        SQL[(SQL Server<br/>:1433)]
        KC[Keycloak<br/>:8585]
    end

    DEV --> VAGRANT
    DEV --> DOCKER
    DEV --> TF

    TF --> EC2
    TF --> SG
    TF --> ANS

    VAGRANT --> ANS
    DOCKER --> SCRIPTS

    ANS --> CCE
    ANS --> SPM
    SCRIPTS --> CCE
    SCRIPTS --> SPM

    CCE --> SQL
    CCE --> KC
    SPM --> CCE

Flux de deploiement

Option 1 : Deploiement AWS (Production)

sequenceDiagram
    participant Dev as Developpeur
    participant TF as Terraform
    participant AWS as AWS
    participant ANS as Ansible
    participant WM as webMethods

    Dev->>TF: terraform apply
    TF->>AWS: Cree EC2 + Security Groups
    AWS-->>TF: Instance ID + DNS
    TF->>ANS: Execute playbook
    ANS->>AWS: SSH connexion
    ANS->>WM: Installation CC/SPM
    WM-->>Dev: Services disponibles

Option 2 : Deploiement Local (Docker)

sequenceDiagram
    participant Dev as Developpeur
    participant DC as Docker Compose
    participant SUP as Supervisor
    participant WM as webMethods

    Dev->>DC: docker compose up
    DC->>DC: Build images
    DC->>SUP: Demarre containers
    SUP->>WM: Lance CCE + SPM
    WM-->>Dev: http://localhost:8090

Option 3 : Deploiement Local (Vagrant)

sequenceDiagram
    participant Dev as Developpeur
    participant VG as Vagrant
    participant VM as VirtualBox
    participant ANS as Ansible
    participant WM as webMethods

    Dev->>VG: vagrant up
    VG->>VM: Cree VM Ubuntu
    VG->>ANS: Provision playbook
    ANS->>WM: Installation CC/SPM
    WM-->>Dev: http://localhost:8090

Composants webMethods

Command Central (CCE)

Le coeur de l'administration webMethods :

Aspect Detail
Role Console d'administration centralisee
Ports 8090 (HTTP), 8091 (HTTPS)
Profil /opt/SAGCommandCentral/profiles/CCE/
CLI sagcc

Platform Manager (SPM)

L'agent de deploiement sur chaque noeud :

Aspect Detail
Role Gestion locale des produits SAG
Ports 8092 (HTTP), 8093 (HTTPS)
Profil /opt/SAGCommandCentral/profiles/SPM/
Communication Vers CCE via REST API

Structure des repertoires

/opt/SAGCommandCentral/           # SAG_HOME
├── CommandCentral/
│   └── client/
│       └── bin/
│           └── sagcc             # CLI Command Central
├── profiles/
│   ├── CCE/                      # Profil Command Central
│   │   └── bin/
│   │       ├── startup.sh
│   │       └── shutdown.sh
│   └── SPM/                      # Profil Platform Manager
│       └── bin/
│           ├── startup.sh
│           └── shutdown.sh
├── common/                       # Librairies partagees
└── install/                      # Logs d'installation

Ports et securite

Matrice des ports

Service Port HTTP Port HTTPS Usage
Command Central 8090 8091 Administration
Platform Manager 8092 8093 Agent local
Integration Server 5555 - Services REST/SOAP
Universal Messaging 9200 - Messaging
IS Diagnostic 9999 - Debug
SQL Server 1433 - Base de donnees
Keycloak 8585 - Authentification

Security Groups AWS

# Regles d'entree configurees
ingress {
  from_port   = 8090
  to_port     = 8094
  protocol    = "tcp"
  cidr_blocks = ["0.0.0.0/0"]
  description = "webMethods CC & SPM"
}

ingress {
  from_port   = 5555
  to_port     = 5555
  protocol    = "tcp"
  cidr_blocks = ["0.0.0.0/0"]
  description = "Integration Server"
}

Gestion des processus

Supervisor (Containers/VM)

[program:commandcentral]
command=/opt/SAGCommandCentral/profiles/CCE/bin/startup.sh
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/cce.log

[program:platformmanager]
command=/opt/SAGCommandCentral/profiles/SPM/bin/startup.sh
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/spm.log

Avantages de Supervisor :

  • Redemarrage automatique en cas de crash
  • Gestion unifiee des logs
  • Compatible containers (pas besoin de systemd)
  • Interface de controle (supervisorctl)

Considerations de production

Haute disponibilite

graph LR
    LB[Load Balancer] --> CCE1[CCE Node 1]
    LB --> CCE2[CCE Node 2]
    CCE1 --> DB[(SQL Server<br/>Cluster)]
    CCE2 --> DB
    CCE1 --> SPM1[SPM Node 1]
    CCE1 --> SPM2[SPM Node 2]
    CCE2 --> SPM1
    CCE2 --> SPM2

Checklist production

  • [ ] Activer HTTPS uniquement
  • [ ] Configurer certificats SSL valides
  • [ ] Restreindre les Security Groups
  • [ ] Configurer la sauvegarde SQL Server
  • [ ] Mettre en place le monitoring
  • [ ] Configurer les alertes