Nous avons une application Java basée sur le Web que nous prévoyons de migrer vers le cloud avec l'intention que plusieurs clients l'utilisent dans un environnement SaaS. L'architecture actuelle de l'application est de nature assez asynchrone. Il existe 4 modules différents, chacun ayant sa propre base de données. Lorsqu'il y a un besoin d'échange de données entre les modules, nous poussons les données à l'aide de Pentaho et utilisons une structure de répertoires pour stocker le fichier de données provisoire, qui est ensuite récupéré par l'autre module pour peupler sa base de données. Compte tenu de la nature de notre application, cette communication asynchrone est très importante pour nous.
Nous sommes maintenant confrontés à quelques défis lors de la migration de cette application vers le cloud:
Nous prévoyons d'utiliser Multi Tenancy sur notre serveur de base de données, mais comment nous assurer que les fichiers plats que nous utilisons pour transférer les données entre les différents modules sont également canalisés vers leurs locataires respectifs dans la base de données. p >
Étant donné que nous prévoyons d'héberger cela dans le cloud, je demanderais votre avis, si la conservation d'un fichier texte sur un serveur cloud serait en sécurité du point de vue de la sécurité des données.
3 Réponses :
Je ne peux pas donner de conseils spécifiques de manière réaliste sans en savoir plus à propos de votre système. Cependant, sur la base de mon expérience, je voudrais recommande de passer aux files d'attente de messages, quelque chose comme Kafka le ferait fonctionne bien.
Oui, les fournisseurs de cloud offrent une sécurité suffisante pour le stockage de fichiers statiques. Vous pouvez limitez l'accès comme bon vous semble, par exemple en utilisant AWS S3.
1- La multi-location peut créer un petit problème lors du transfert des fichiers. Mais à partir des informations que vous avez fournies, le processus de déplacement des fichiers plats dans l'application ne sera pas affecté. Vous pouvez toujours penser à passer en mode MQ pour transmettre les données.
2-Du point de vue de la sécurité des données, AWS fournit de nombreuses fonctionnalités au niveau d'accès, MFA, etc. S'il doit être hautement sécurisé, je recommanderais d'obtenir AWS Private Cloud où rien n'est partagé avec personne à aucun niveau.
Le stockage de fichiers dans le cloud est sécurisé et vous pouvez utiliser la configuration des rôles IAM de contrôle pour contrôler les autorisations d'un fichier. Les fournisseurs de cloud comme Google ( Stockage dans le cloud ), Amazon ( AWS S3 ), etc. fournissent une infrastructure sécurisée et évolutive pour conserver les fichiers dans le cloud.
Dans la configuration générale, le stockage dans le cloud vous fournit des compartiments qui sont marqués d'une identification unique globale. Pour une configuration mutualisée, vous pouvez créer plusieurs compartiments pour des clients individuels et y stocker les flux de données nécessaires. Ensuite, vous pouvez avoir des jobs par lots ou des jobs en streaming à l'aide de kettle (Pentaho) pour les pousser vers la bonne base de données en fonction de la définition de compartiment unique.
Alternativement, vous pouvez également pousser ( comme d'autres réponses ) vers une configuration de streaming (comme ActiveMQ, Kafka, etc.) avec des sujets spécifiques à l'utilisateur et avoir un service de streaming ( en utilisant java ou pentaho ) pour ingérer les données dans la base de données respective en fonction du sujet.
J'espère que cela vous aidera :)