Déploiement d'applications ASP.Net sur Oracle Cloud Infrastructure
ASP.Net est un environnement Web open source créé par Microsoft pour la création d'applications et de services Web modernes avec .Net. Vous pouvez utiliser cette structure pour configurer rapidement un pipeline de déploiement automatisé pour les applications ASP.Net sur Oracle Cloud Infrastructure. Cette architecture de référence présente une simple application ASP.Net et fournit l'échafaudage pour la configurer.
Architecture
Dans cette architecture, nous déployons une application ASP.Net sur plusieurs domaines de pannes. L'architecture utilise un réseau cloud virtuel (VCN) avec un sous-réseau public pour les instances d'application et un sous-réseau privé pour le niveau de base de données. Un équilibreur de charge placé dans le sous-réseau public répartit le trafic entre les noeuds.
Vous pouvez tirer parti de l'équilibreur de charge flexible d'Oracle Cloud Infrastructure. Choisissez une bande passante minimale personnalisée et une bande passante maximale facultative. Ces deux valeurs doivent être comprises entre 10 Mbps et 8,000 Mbps. La bande passante minimale est toujours disponible et fournit une disponibilité instantanée pour vos charges de travail. En fonction des modèles de trafic entrants, la bande passante disponible est augmentée du minimum lorsque le trafic augmente.
Pour les applications déployées sur des machines virtuelles, les clients peuvent tirer parti d'instances de machine virtuelle flexibles. Les machines virtuelles flexibles peuvent augmenter ou réduire la capacité en quelques minutes en ajoutant des CPU et de la mémoire. Une machine virtuelle flexible peut être configurée avec 1 à 64 cœurs, et entre 1 et 64 Go de mémoire par coeur, jusqu'à un maximum de 1024 Go par instance.
La base de données Microsoft SQL est déployée avec une base de données principale et de secours répartie sur deux domaines de pannes afin de fournir une haute disponibilité.
Le diagramme suivant illustre cette architecture de référence.
Description de l'illustration ha-aspnet-oci-arch.png
- Région
Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes d'autres régions et de grandes distances peuvent les séparer (entre les pays voire les continents).
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données autonomes et indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui assure la tolérance de pannes. Les domaines de disponibilité ne partagent pas d'infrastructure telle que l'alimentation ou le refroidissement ou le réseau interne du domaine de disponibilité. Par conséquent, il est improbable qu'un problème affecte les autres domaines de disponibilité de la région.
- Domaines de pannes
Un domaine de panne est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes dotés d'une alimentation et d'un matériel indépendants. Lorsque vous distribuez des ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physique, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.
- Compartiment
Les compartiments sont des partitions logiques inter-région au sein d'une location OCI. Utilisez des compartiments pour organiser vos ressources dans Oracle Cloud, contrôler l'accès aux ressources et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources dans un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions qu'elles peuvent effectuer. Réseau cloud virtuel
- (VCN) et sous-réseaux
Un VCN est un réseau personnalisable et défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux cloud virtuels traditionnels, vous bénéficiez d'un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Liste de sécurité
Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui spécifient la source, la destination et le type de trafic qui doivent être autorisés en entrée et en sortie du sous-réseau.
- équilibreurs de charge
Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatisée à partir d'un seul point d'entrée vers plusieurs serveurs dans le back-end. Passerelle Internet La passerelle Internet autorise le trafic entre les sous-réseaux publics d'un VCN et le réseau Internet public.
- Volume de blocs
Avec les volumes de stockage de blocs, vous pouvez créer, attacher, connecter et déplacer des volumes de stockage, et modifier leurs performances pour répondre à vos exigences en matière de stockage, de performances et d'application. Une fois qu'un volume est attaché et connecté à une instance, vous pouvez l'utiliser comme un disque dur classique. Vous pouvez également déconnecter un volume et l'associer à une autre instance sans perdre de données.
- Serveur Web - IIS
Internet Information Services (IIS) for Windows® Server est un serveur Web destiné à héberger .Applications réseau.
- Actions et coureurs Github
GitHub Actions permet d'automatiser la création et le déploiement de l'application ASP.NET sur les serveurs Windows. Les actions GitHub permettent d'automatiser les tâches au cours du cycle de développement d'un logiciel. Un programme d'exécution est l'ordinateur sur lequel un travail d'actions GitHub est exécuté. Un programme d'exécution écoute les travaux disponibles, les exécute un par un et signale la progression, les journaux et les résultats à GitHub.
Les runners sont proposés en tant que service géré par GitHub, ou ils peuvent être autogérés si vous avez besoin de plus de flexibilité et de contrôle pour votre environnement, par exemple en tant qu'image propriétaire ou conteneur, une machine plus puissante ou pour prendre en charge plusieurs architectures comme Arm. Les mêmes processus ou commandes peuvent être exécutés à partir de n'importe quel système de création et de déploiement pour obtenir des résultats similaires. Dans cet exemple, la création est déclenchée par une validation (commit) au référentiel ou une demande d'extraction. Lorsque le workflow est déclenché, l'application est créée. Les fichiers binaires construits sont emballés et le serveur terraform est démarré pour mettre à jour linfrastructure et déployer lapplication. La clé d'API Oracle Cloud Infrastructure est gérée par les clés secrètes GitHub.
Recommandations
- Cloud Guard
Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées à y être exécutées. Par exemple, la visibilité d'un bucket Object Storage peut être définie sur Public.
Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.
Vous pouvez également utiliser la fonction Liste gérée pour appliquer certaines configurations aux détecteurs.
- Security Zones
Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité basées sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être chiffrées à l'aide de clés gérées par le client. Lors de la création et de la mise à jour de ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent les stratégies.
- VCN
Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR compris dans l'espace d'adresse IP privée standard.
Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données on-premise ou un autre fournisseur cloud) auquel vous souhaitez configurer des connexions privées.
Une fois que vous avez créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.
Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Associez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, ce qui peut servir de limite de sécurité.
Utilisez des sous-réseaux régionaux.
- Liste de sécurité
Utilisez des listes de sécurité pour définir des règles entrantes et sortantes qui s'appliquent à l'ensemble du sous-réseau.
Remarques
Tenez compte des points suivants lors du déploiement de cette architecture de référence.
- Sécurité
Envisagez d'ajouter Web Application Firewall pour sécuriser l'application contre les attaques malveillantes.
- Disponibilité de l'application
Les domaines de pannes offrent la meilleure résilience au sein d'un seul domaine de disponibilité. En outre, le déploiement d'instances de calcul effectuant les mêmes tâches sur plusieurs domaines de pannes assure la redondance et évite un point de panne unique.
- Coût
Sélectionnez la forme de machine virtuelle en fonction des coeurs, de la mémoire et de la bande passante réseau dont vous avez besoin pour votre application. Vous pouvez commencer par une forme à deux cœurs pour les serveurs. Si vous avez besoin de plus de performances, de mémoire ou de bande passante réseau pour le noeud, vous pouvez modifier la forme de machine virtuelle ultérieurement.
- CI/CD
Vous pouvez déployer des exécutants Github Action hébergés automatiquement sur OCI et les ajouter à votre référentiel Github, votre organisation ou votre entreprise. Pour plus d'informations sur les coureurs auto-hébergés GitHub Actions et les plates-formes et architectures prises en charge, reportez-vous à "Hosting your own runners" dans la documentation GitHub (reportez-vous à la rubrique Explorer plus pour obtenir un lien vers ce document).
déploiement
Le code Terraform de cette architecture de référence est disponible en tant qu'exemple de pile dans Oracle Cloud Infrastructure Resource Manager. Vous pouvez également télécharger le code à partir de GitHub et le personnaliser en fonction de vos besoins spécifiques.
- Déployer à l'aide de l'exemple de pile dans Oracle Cloud Infrastructure Resource Manager :
- Cliquez sur
.
Si vous n'êtes pas déjà connecté, entrez les informations d'identification de la location et de l'utilisateur.
- Sélectionnez la région de déploiement de la pile.
- Suivez les invites affichées à l'écran et les instructions pour créer la pile.
- Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Plan.
- Attendez que le travail soit terminé et vérifiez le plan.
Pour apporter des modifications, revenez à la page Détails de la pile, cliquez sur Modifier la pile et apportez les modifications requises. Exécutez ensuite à nouveau l'action Plan.
- Si aucune autre modification n'est nécessaire, revenez à la page Détails de la pile, cliquez sur Actions Terraform et sélectionnez Appliquer.
- Cliquez sur
- Effectuez un déploiement en utilisant le code Terraform dans GitHub :
- Accédez à GitHub.
- Clonez ou téléchargez le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.