Développer une application indépendante du cloud
Introduction
Récemment, j'ai commencé à travailler sur un projet personnel dans lequel je souhaite créer une application indépendante du cloud, c'est-à-dire qu'elle peut être déployée sur n'importe quel fournisseur de cloud avec un minimum ou aucune modification de code. La principale exigence est de séparer la logique métier de la logique spécifique au fournisseur de cloud.
Dans cet article, je souhaite partager l'approche qui a été suivie.
- Créez une interface dotée de méthodes abstraites pour effectuer des opérations dans le cloud.
- Créez des classes spécifiques au fournisseur de cloud qui sont des sous-classes de cette interface et fournissez l'implémentation des méthodes abstraites.
- Créez une classe/méthode distincte qui renverra l'implémentation du fournisseur de cloud en fonction de certaines conditions. Modèle d'usine
- La classe appelante utilisera l'objet de la classe/méthode ci-dessus et appellera ses méthodes.
Code
Le code ci-dessous utilise python
Interface avec les méthodes abstraites
from abc import ABC, abstractmethod class IObjectStorage(ABC): @abstractmethod def upload_object_to_bucket(self, file_name, file_content): _raise an error that method is not implemented_
Créer une implémentation spécifique au fournisseur de cloud
class AWSObjectStorageConnector(IObjectStorage): def __init__(self, bucket_name): _Initialize a s3 client using boto3 and initialize a variable using bucket name_ def upload_object_to_bucket(self, file_name, file_content): _Implement the logic to upload the file to AWS S3 bucket_
Créez une méthode pour obtenir l'objet de classe d'implémentation spécifique du fournisseur de cloud - Méthode Factory
Cette méthode prend une variable de fournisseur de cloud qui sera transmise par la méthode appelante
def get_object_storage(cloud_provider, bucket_name) -> IObjectStorage: if cloud_provider == 'aws': return AWSObjectStorageConnector(bucket_name=bucket_name) else: raise ValueError(f'Unsupported cloud provider: {cloud_provider}')
Appelez la méthode factory pour obtenir une instance de l'objet
La variable cloud_provider sera lue à partir d'une variable d'environnement passée en entrée. Cela garantit que la même logique fonctionne correctement avec différents fournisseurs de cloud.
object_storage_connector = get_object_storage(cloud_provider=provider, bucket_name=bucket_name)
N'hésitez pas à commenter avec des suggestions ou des commentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment télécharger des fichiers dans Python

Comment utiliser la belle soupe pour analyser HTML?

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django

Présentation de la boîte à outils en langage naturel (NLTK)

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?
