Distribuisci le applicazioni ASP.Net su Oracle Cloud Infrastructure
ASP.Net è un framework Web open source creato da Microsoft per la creazione di applicazioni e servizi Web moderni con .Netto Puoi utilizzare questa struttura per impostare rapidamente una pipeline di distribuzione automatizzata per le applicazioni ASP.Net su Oracle Cloud Infrastructure. Questa architettura di riferimento mostra una semplice applicazione ASP.Net e fornisce lo scaffolding per impostarla.
Architettura
In questa architettura, viene distribuita un'applicazione ASP.Net in più domini di errore. L'architettura utilizza una rete cloud virtuale (VCN) con una subnet pubblica per le istanze dell'applicazione e una subnet privata per il livello di database. Un load balancer posizionato nella subnet pubblica distribuisce il traffico tra i nodi.
Puoi usufruire del load balancer flessibile di Oracle Cloud Infrastructure, scegliere una larghezza di banda minima personalizzata e una larghezza di banda massima facoltativa; entrambi devono essere compresi tra 10 Mbps e 8.000 Mbps. La larghezza di banda minima è sempre disponibile e fornisce disponibilità immediata per i carichi di lavoro. In base ai modelli di traffico in entrata, la larghezza di banda disponibile verrà scalata al minimo man mano che il traffico aumenta.
Per le applicazioni distribuite sulle virtual machine, i clienti possono sfruttare le istanze VM flessibili. Le VM flessibili possono aumentare o ridurre la capacità in pochi minuti aggiungendo CPU e memoria. Una VM flessibile può essere configurata con da 1 a 64 core e da 1 a 64 GB di memoria per core, fino a un massimo di 1024 GB per istanza.
Il database Microsoft SQL viene distribuito con un database primario e in standby in due domini di errore per garantire l'alta disponibilità.
Il diagramma riportato di seguito illustra questa architettura di riferimento.
Descrizione dell'illustrazione ha-aspnet-oci-arch.png
- Area
Un'area geografica di Oracle Cloud Infrastructure è una localizzazione che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e le grandi distanze possono separarle (tra paesi o addirittura continenti).
- Domini di disponibilità
I domini di disponibilità sono data center indipendenti e standalone all'interno di un'area geografica. Le risorse fisiche presenti in ciascun dominio di disponibilità sono isolate dalle risorse presenti negli altri domini di disponibilità, il che garantisce la tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio l'alimentazione o il raffreddamento, né la rete interna del dominio di disponibilità. Pertanto, è improbabile che un errore di un dominio di disponibilità influisca sugli altri domini di disponibilità nell'area.
- Domini di errore
Un dominio di errore è un raggruppamento di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore con alimentazione e hardware indipendenti. Quando distribuisci le risorse su più domini di errore, le applicazioni possono tollerare errori del server fisico, manutenzione del sistema e errori di alimentazione all'interno di un dominio di errore.
- Compartimento
I compartimenti sono partizioni logiche tra più aree all'interno di una tenancy OCI. Utilizzare i compartimenti per organizzare le risorse in Oracle Cloud, controllare l'accesso alle risorse e impostare le quote di utilizzo. Per controllare l'accesso alle risorse in un determinato compartimento, puoi definire criteri che specificano gli utenti che possono accedere alle risorse e le azioni che possono eseguire. Rete cloud virtuale
- (VCN) e subnet
Una VCN è una rete personalizzabile e definita dal software impostata dall'utente in un'area Oracle Cloud Infrastructure. Come le reti di data center tradizionali, le VCN offrono il controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. È possibile segmentare una VCN in subnet, che può essere definita in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono con le altre subnet nella VCN. Puoi modificare la dimensione di una subnet dopo la creazione. Una subnet può essere pubblica o privata.
- Liste di sicurezza
Per ogni subnet, puoi creare regole di sicurezza che specificano l'origine, la destinazione e il tipo di traffico che devono essere consentiti all'interno e all'esterno della subnet.
- Load balancer
Il servizio Oracle Cloud Infrastructure Load Balancing offre la distribuzione automatica del traffico da un singolo punto di accesso a più server nel back-end. Gateway Internet Il gateway Internet consente il traffico tra le subnet pubbliche in una VCN e la rete Internet pubblica.
- Volume a blocchi
Grazie ai volumi di storage a blocchi, puoi creare, collegare, connettere e spostare i volumi di storage e modificare le prestazioni dei volumi per soddisfare i requisiti di storage, prestazioni e applicazioni. Dopo aver collegato un volume a un'istanza, è possibile utilizzare il volume come un normale disco rigido. Puoi anche disconnettere un volume e collegarlo a un'altra istanza senza perdere i dati.
- Webserver - IIS
Internet Information Services (IIS) per Windows® Server è un server Web per l'hosting .Applicazioni di rete.
- Azioni e esecutori di Github
Azioni GitHub viene utilizzato per automatizzare la creazione e la distribuzione dell'applicazione ASP.NET nei server Windows. Le azioni GitHub consentono di automatizzare le attività all'interno di un ciclo di vita di sviluppo software e un canale di alimentazione è il computer su cui viene eseguito un processo Azioni GitHub. Un canale di alimentazione ascolta i job disponibili, ne esegue uno alla volta e riporta l'avanzamento, i log e i risultati in GitHub.
I Runner vengono offerti come servizio gestito da GitHub oppure possono essere gestiti autonomamente se sono necessarie maggiore flessibilità e controllo dell'ambiente, ad esempio come immagine o contenitore proprietario, macchina più potente o per supportare più architetture come Arm. Gli stessi processi o comandi possono essere eseguiti da qualsiasi sistema di creazione e distribuzione per ottenere risultati simili. In questo esempio, la build viene attivata da un commit nel repository o da una richiesta di pull. Quando il workflow viene attivato, l'applicazione viene creata. I file binari creati vengono raggruppati e il terreno viene avviato per aggiornare l'infrastruttura e distribuire l'applicazione. La chiave API Oracle Cloud Infrastructure è gestita dai segreti GitHub.
Suggerimenti
- Cloud Guard
Duplica e personalizza le ricette predefinite fornite da Oracle per creare ricette di rilevamento e rispondenti personalizzate. Queste ricette consentono di specificare il tipo di violazioni della sicurezza che generano un'avvertenza e le azioni che possono essere eseguite su di esse. Ad esempio, un bucket di storage degli oggetti può avere visibilità impostata su pubblico.
Applicare Cloud Guard a livello di tenancy per coprire l'ambito più ampio e ridurre il carico amministrativo derivante dalla gestione di più configurazioni.
È inoltre possibile utilizzare la funzione Lista gestita per applicare determinate configurazioni ai rilevatori.
- Zone di sicurezza
Per le risorse che richiedono la massima sicurezza, Oracle consiglia di utilizzare le zone di sicurezza. Una zona di sicurezza è un compartimento associato a una ricetta definita da Oracle di criteri di sicurezza basati sulle migliori prassi. Ad esempio, le risorse in una zona di sicurezza non devono essere accessibili dalla rete Internet pubblica e devono essere cifrate utilizzando chiavi gestite dal cliente. Quando crei e aggiorna le risorse in una zona di sicurezza, Oracle Cloud Infrastructure convalida le operazioni rispetto ai criteri nella ricetta della zona di sicurezza e nega le operazioni che violano qualsiasi criterio.
- VCN
Quando crei una VCN, determina il numero di blocchi CIDR necessari e la dimensione di ogni blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Utilizzare i blocchi CIDR che si trovano all'interno dello spazio di indirizzi IP privati standard.
Selezionare i blocchi CIDR che non si sovrappongono a qualsiasi altra rete (in Oracle Cloud Infrastructure, il data center on premise o un altro provider cloud) a cui si intende impostare connessioni private.
Dopo aver creato una VCN, è possibile modificare, aggiungere e rimuovere i relativi blocchi CIDR.
Durante la progettazione delle subnet, prendi in considerazione i requisiti di flusso del traffico e sicurezza. Associare tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può fungere da limite di sicurezza.
Utilizza subnet regionali.
- Liste di sicurezza
Utilizza le liste di sicurezza per definire regole di entrata e uscita valide per l'intera subnet.
Considerazioni
Quando si distribuisce questa architettura di riferimento, tenere presenti i punti riportati di seguito.
- Sicurezza
Considerare la possibilità di aggiungere Web Application Firewall per proteggere l'applicazione da attacchi dannosi.
- Disponibilità applicazioni
I domini di errore forniscono la migliore resilienza all'interno di un singolo dominio di disponibilità. Inoltre, la distribuzione delle istanze di computazione che eseguono gli stessi task su più domini di errore garantisce la ridondanza e impedisce un singolo punto di errore.
- Costo
Selezionare la forma VM basata su core, memoria e larghezza di banda di rete necessari per l'applicazione. È possibile iniziare con una forma a due core per i server. Se sono necessarie ulteriori prestazioni, memoria o larghezza di banda di rete per il nodo, è possibile modificare la forma della VM in un secondo momento.
- CI/CD
Puoi distribuire i runner di Github Action auto-hosting su OCI e aggiungerli al tuo repository, all'organizzazione o all'azienda di Github. Per ulteriori informazioni sui canali di esecuzione self-hosting delle azioni GitHub e sulle piattaforme e architetture supportate, vedere "Hosting your own runners" nella documentazione di GitHub (vedere l'argomento Esplora altro per un collegamento a questo documento).
Distribuzione
Il codice Terraform per questa architettura di riferimento è disponibile come stack di esempio in Oracle Cloud Infrastructure Resource Manager. È inoltre possibile scaricare il codice da GitHub e personalizzarlo in base alle proprie esigenze specifiche.
- Distribuire utilizzando lo stack di esempio in Oracle Cloud Infrastructure Resource Manager:
- Fare clic su
Se non si è ancora collegati, immettere la tenancy e le credenziali utente.
- Selezionare l'area in cui distribuire lo stack.
- Seguire i prompt visualizzati e le istruzioni per creare lo stack.
- Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
- Attendere il completamento del processo e rivedere il piano.
Per apportare modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Quindi eseguire di nuovo l'azione Piano.
- Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
- Fare clic su
- Distribuzione mediante il codice Terraform in GitHub:
- Andare a GitHub.
- Duplicare o scaricare il repository nel computer locale.
- Seguire le istruzioni riportate nel documento
README
.