Microsoft Azure offre un potente set di servizi per aiutare gli sviluppatori a creare e distribuire le proprie app. Azure lo rende così facile da usare che si può rapidamente lasciare che i costi di hosting Azure ottenere fuori controllo. Tuttavia, esistono modi per gestire meglio i prezzi di Azure e ottimizzare i costi complessivi.
In Stackify, utilizziamo Azure da oltre 4 anni. Siamo cresciuti con Azure come ci piace dire e sfruttare una vasta gamma di diversi servizi Azure e spendere una piccola fortuna su di esso ogni anno. Stiamo scrivendo questo articolo per condividere alcuni dei nostri migliori consigli.
Concentriamoci su 5 modi diversi per ridurre i costi:
- Abbassare il vostro attuale azure prezzi
- capire che cosa i vostri costi attuali sono
- Ottimizzare le modalità di distribuzione delle app
- Migliorare le prestazioni dell’applicazione
- Altri suggerimenti
Come Abbassare Microsoft Azure Prezzi & Efficace Azure Costo di Gestione
Una delle cose più facili che potete fare è semplicemente ottenere alcuni sconti sulla bolletta o di ottenere qualcosa gratis!
1. Pre-pay per ottenere uno sconto, anche su un conto pay-as-you-go.
Microsoft ha offerto sconti del 2,5-5% sulla base di 6 o 12 mesi di pre-pagamento. Controllare per vedere se è possibile usufruire di questo. Tuttavia, un accordo EA può essere un’opzione migliore.
2. Ottieni un accordo EA per sconti massimi di Azure.
Gli accordi EA richiedono la selezione di un impegno monetario annuale e che blocca un tasso di sconto. Si sono poi fatturati trimestralmente per eventuali eccedenze oltre il vostro impegno annuale.
Un accordo EA consente di risparmiare fino al 20-30% circa per alcuni prodotti Azure. Attenzione, gli orari dei tassi di sconto sono un disastro. A titolo di esempio, il tasso di sconto su SQL Azure potrebbe essere del 5%, ma i servizi cloud potrebbero essere del 10-20% ed è diverso per ogni singolo SKU che vendono. Alcuni potrebbero non offrire molto di uno sconto a tutti. Ci sono migliaia di SKU. Quindi, essere sicuri di sapere quali servizi Azure si ha realmente bisogno e massimizzare lo sconto su tali SKU nel vostro accordo EA.
3. Puoi iscriverti a Bizspark?
Stackify era originariamente in Bizspark ed è stato in grado di ottenere molti fantastici vantaggi gratuiti. Microsoft pubblicizza fino a benefits 120.000 in benefici gratuiti per le startup. Non è un cattivo affare!
4. Puoi cambiare le regioni di Azure per ottenere prezzi migliori di Azure?
I prezzi di Azure variano da una regione all’altra, anche negli Stati Uniti. Ricontrolla i prezzi in varie regioni per vedere se puoi risparmiare un po’.
Esempio: A2 VM in West US è 1 133.92 ma West 126.48 in West US 2. Australia Est è $168.14
5. Ottieni denaro gratuito da Microsoft lavorando con un partner Azure su un progetto.
Se si dispone di un grande progetto per passare ad Azure, è possibile ottenere alcuni sconti per contribuire a incentivare e pagare per un partner Microsoft per aiutare a farlo accadere. Ad esempio, siamo stati in grado di farlo per aiutare a fare un sacco di lavoro con Chef.
Scopri quali sono i costi correnti di Azure e organizza i report
Le probabilità sono, non sai cosa non sai quando si tratta di quanto stai spendendo e su cosa lo stai spendendo. È così facile con Azure far girare nuove risorse e semplicemente dimenticarle.
6. Sapere quanto si spende su cosa, che è difficile senza uno strumento per esso.
Microsoft ha un paio di strumenti che è possibile utilizzare per analizzare la fatturazione:
- Azure billing portal
- EA portal – https://ea.azure.com/
Entrambi lasciano molto a desiderare per qualsiasi livello avanzato di reporting. È possibile collegare i dati EA a PowerBI che apre alcune opportunità in più per scricchiolare i dati, ma è davvero necessario segmentare i dati per progetto, reparti e così via. per ottenere maggiori informazioni in esso.
Ci sono un sacco di strumenti di terze parti disponibili, anche se spaventosamente, molti di loro oltre $1.000 al mese! Si consiglia di utilizzare un servizio chiamato Costi Azure (https://azure-costs.com/) che è poco costoso e fa un ottimo lavoro. Ha un livello gratuito e opzioni a pagamento da $29 – $199 al mese.
Solo per darti un’idea, puoi raggruppare la segnalazione di un sacco di modi diversi per capire se stai spendendo molto su VM, SQL Azure, Servizi di app, ecc.
Raggruppa per vari campi in Costi di Azure
7. Assegna le spese di Azure per progetto, ambiente o client per un reporting migliore.
In Stackify, ospitiamo le nostre app di produzione, pre-produzione, QA, sviluppo e test, tutte con Azure. Quando si guarda il nostro disegno di legge ad un livello elevato, non c’è un buon modo per sapere quanto stiamo spendendo su quale ambiente, che è importante per noi.
Quanto spendiamo in produzione influisce sui nostri margini come azienda e vogliamo anche ridurre al minimo i costi negli ambienti di sviluppo / test.
Utilizziamo i costi di Azure per organizzare ciò su cui stiamo spendendo denaro. Taggiamo semplicemente ogni risorsa Azure e quindi possiamo ottenere rapporti dai tag per vedere facilmente le spese per ambiente.
Tag resources in Azure Costs
Possiamo quindi ottenere reporting da ogni tag per capire come stiamo spendendo i nostri soldi.
Reporting by tag in Azure Costs
Ottimizza il modo in cui distribuisci le tue app per risparmiare denaro su Azure
Se stai spostando un’applicazione in Azure, ci sono alcuni modi per risparmiare denaro a cui potresti anche non pensare. Vuoi anche darti alcuni suggerimenti su come ottimizzare i servizi di app, i servizi cloud, ecc.
8. Scegliere il giusto tipo e dimensione delle macchine virtuali.
Se si utilizza Azure per l’hosting di macchine virtuali, assicurarsi di scegliere il tipo corretto di istanza. Ci sono letteralmente dozzine di diversi tipi e dimensioni. Assicurati di selezionare il tipo giusto in base a se hai bisogno di più memoria, CPU, disco più veloce, ecc.
9. Utilizzare Azure DevTest Labs per garantire che le VM di test ottengano lo spegnimento automatico per risparmiare denaro.
Niente è più fastidioso di qualcuno che imposta un server di test e scopre in seguito che hai pagato per mesi e mesi. Azure DevTest Labs è fantastico per la creazione di server di cui hai bisogno occasionalmente o solo in determinate ore del giorno.
DevTest Labs può automaticamente accenderli e spegnerli su un programma. Questo aiuta molto a risolvere il problema del tuo team QA dimenticando di spegnere i server prima che partano per il giorno o il fine settimana.
Nota: DevTest Labs non costa nulla di aggiuntivo da utilizzare. È sufficiente pagare per i VM stessi.
10. Evitare di pagare per la messa in scena slot su servizi Cloud.
Con i servizi cloud di Azure per i ruoli Web e Worker, si paga l’intero prezzo per gli slot di staging proprio come si fa con gli slot di produzione. È una buona idea distribuire gli slot di staging e quindi scambiare la staging in produzione per ridurre al minimo i tempi di inattività.
Assicurarsi di eliminare gli slot di staging il più velocemente possibile. Niente mi rende più arrabbiato di accedere ad Azure e vedere un sacco di cose distribuite negli slot di staging seduti lì senza motivo.
Modifica la vista nel portale di Azure per aggiungere colonne per “Staging” e “Produzione” in modo da poter vedere rapidamente quali hanno qualcosa negli slot di staging. I servizi cloud ti costano denaro anche se i server vengono fermati. È necessario eliminarli!
11. Combina le app Web con i piani di servizio app di Azure per ridurre il numero di server.
Una delle migliori caratteristiche assolute di Azure è App Services. È possibile creare un piano di servizio App che rappresenta 2-3 o più server e quindi imballare tutte le applicazioni Web che si desidera su di loro.
Questo è un enorme vantaggio rispetto al pagamento di un intero server per un’applicazione web che non fa quasi nulla. Abbiamo utilizzato i ruoli Web del servizio Cloud per sempre e in alcuni casi abbiamo istanze 3 per l’alta disponibilità su un’app Web che non riceve praticamente traffico. È uno spreco enorme.
12. Smettere di usare i ruoli Web del servizio cloud a meno che non sia necessario.
A meno che non sia necessario utilizzare i servizi cloud di Azure per i ruoli Web, lavorerei per passare le tue app ai servizi App per sfruttare la combinazione di più app su un minor numero di server.
Anche i servizi cloud impiegano UN’ETERNITÀ per essere distribuiti. I servizi di app sono anni luce più veloci per la distribuzione.
13. Utilizzare Azure Service Fabric o Container Service per combinare le app.
Per le stesse identiche ragioni che ho menzionato sopra con i servizi app e i ruoli Web, guarda a spostare i tuoi ruoli di lavoro su Service Fabric o Container Service. Entrambi seguono lo schema come i piani di servizio delle app in cui fondamentalmente si esegue il provisioning di un gruppo di server e quindi si lanciano un sacco di app su di essi.
14. Utilizzare il ridimensionamento automatico per ridurre i costi durante le ore di riposo.
La maggior parte delle app ha periodi più affollati e più lenti durante una settimana o un giorno. Approfitta del ridimensionamento automatico integrato in Azure per risparmiare denaro durante i periodi lenti.
Questi tipi di distribuzione supportano tutti il ridimensionamento automatico:
- Servizi cloud
- Servizi app
- Set di scale VM (inclusi Batch, Service Fabric, Container Service)
Il ridimensionamento potrebbe anche significare la chiusura completa dell’app. I servizi di app hanno una funzione chiamata AlwaysOn che controlla se l’app deve spegnersi a causa di nessuna attività. È inoltre possibile pianificare lo spegnimento dei server dev / QA con qualcosa come DevTest Labs. Ci sono anche servizi di terze parti come Park My Cloud.
15. Usa le funzionalità di Azure PaaS; non eseguire il roll-up sulle macchine virtuali a meno che non sia necessario.
Ho parlato con diverse persone che usano Azure e la loro versione di utilizzo di Azure sta configurando alcune VM e ospitando la loro app e SQL Server su quelle VM.
Sfruttare Azure per macchine virtuali e IaaS va bene, ma si sta perdendo un sacco di opportunità per ridurre i costi di gestione e ridurre i costi di Azure nel suo complesso. A meno che tu non abbia una ragione davvero buona per usare SQL in una VM, come acquistare un bilanciamento del carico di terze parti in esecuzione in una VM e in altri scenari, semplicemente no.
A Stackify, sfruttiamo tutte le funzionalità PaaS di Azure che possiamo. Ciò include SQL Azure, Redis,archiviazione tabelle, bus di servizio, ecc. Il pensiero di configurare VM per Redis o qualche altro servizio di accodamento sembra un’idea davvero terribile. L’unica eccezione a questo per noi è elasticsearch.
Azure Search è disponibile ed è un’offerta di base di elasticsearch PaaS. A causa delle dimensioni e della scala del nostro cluster elasticsearch, ha più senso gestirlo da soli.
16. Utilizzare SQL Elastic Pool.
Se si dispone di molti database, è necessario considerare i pool elastici SQL.
Con Azure, devi scegliere un livello di prestazioni per ogni singolo database. Questo funziona molto bene e fornisce un livello prevedibile di prestazioni. Tuttavia, si traduce anche in prestazioni di over provisioning in molti casi.
Pensa a un pool elastico SQL di Azure come più di un server e puoi assegnare un gruppo di database a quel server. Ciò consente alle prestazioni di ciascun database di fluire e fluire all’interno delle risorse totali del server.
A Stackify ognuno dei nostri clienti ha i propri database SQL. Ne abbiamo letteralmente centinaia, e ne aggiungiamo di nuovi e ne eliminiamo alcuni ogni singolo giorno. I pool elastici SQL sono fondamentali per gestire molti database su larga scala.
Migliora le prestazioni della tua applicazione stessa
OK, se hai massimizzato quanto spendi in Azure quando si tratta dei prezzi complessivi di Azure e di come distribuisci le tue app, è ora di iniziare a ottimizzare le prestazioni.
Suggerirei di utilizzare un tipo di strumento APM come Retrace, Azure Application Insights o New Relic.
17. È ora di uscire i profiler!
Se si desidera ottimizzare le prestazioni del codice, è necessario eseguire una profilazione del codice. Esistono tre diversi tipi di profiler e potresti aver bisogno di tutti e tre per migliorare davvero il tuo codice.
- Profiler standard-profila il tuo codice sulla tua workstation per cercare metodi lenti nel tuo codice
- Transaction tracing-cattura richieste Web complete tramite un ASP.NET profiler e rivedere ciò che sta accadendo
- APM – Monitorare le prestazioni complessive della vostra applicazione e le sue dipendenze
18. Identifica le tue richieste o transazioni web più utilizzate e più lente.
Cerca le richieste che richiedono molto tempo o si verificano un numero moderato di volte ma richiedono troppo tempo. Guarda ASP.NET tracce di transazione per vedere se si verificano troppe query SQL, servizi Web lenti, ecc.
La maggior parte delle applicazioni moderne sono più vincolate da chiamate al database o al servizio web. Se il codice stesso potrebbe essere lento, probabilmente si desidera utilizzare un profiler. NET standard, come il profiler di Visual Studio per cercare di capire perché.
Principali richieste Web da Retrace APM
19. Ottimizzare le prestazioni del database SQL.
Ogni applicazione occupata di solito può beneficiare di alcune sintonizzazioni SQL di base. SQL Azure ha alcune grandi funzionalità di base per il reporting delle prestazioni e le raccomandazioni di ottimizzazione dell’indice.
Se hai bisogno di andare più in profondità, assicurati di interrogare i DMV in SQL per identificare quali query sono più accessibili, utilizzare il maggior numero di IO, prendere il più lungo, ecc. Inoltre, fai attenzione a vedere quanto tempo impiegano le query dal punto di vista della tua app.
Puoi anche sfruttare il tuo strumento APM per identificare quali query vengono utilizzate di più e quali azioni nel tuo software le stanno chiamando.
Top Query SQL vista da Retrace APM
20. Monitorare l’utilizzo e le prestazioni di tutte le dipendenze delle applicazioni.
Oltre a SQL server, l’applicazione probabilmente effettua chiamate al servizio Web, utilizza code, caching e altre dipendenze, incluse altre funzionalità di Azure come DocumentDB, Azure Storage, ecc.
Assicurati che tutte queste dipendenze funzionino bene e siano scalate correttamente tramite Azure.
Altre idee per ridurre i costi di Azure
Ecco alcune altre idee da considerare per aiutare a ridurre quanto si sta spendendo su Azure.
21. Puoi usare una CDN?
Un CDN come Cloudflare rende davvero facile aggiungere il caching di tutti i file statici senza modifiche al codice. Cloudflare ha anche un sacco di funzioni interessanti che possono essere utilizzate per ottimizzare le prestazioni.
Azure ha anche un’offerta CDN molto semplice che puoi provare, ma non fa ciò che fa Cloudflare.
22. È possibile utilizzare la nuova opzione di archiviazione fredda di Azure?
Azure offre ora spazio di archiviazione Azure caldo e freddo. Warm è progettato per i dati che vengono utilizzati frequentemente e cold è per i dati che vengono utilizzati raramente. Se si dispone di un sacco di dati che è difficilmente utilizzato, backup, archivi, o altri dati, assicuratevi di controllare cold storage.
Ottimizzazione dei costi di hosting cloud di Azure
Spero che tu abbia trovato utile questa lista. Assicurati di iniziare con alcune delle idee più semplici da implementare e lasciare ottimizzare il tuo codice per ultimo.
L’ottimizzazione del codice è di gran lunga la parte più difficile da fare e può richiedere un’enorme quantità di tempo e test di regressione. A Stackify, abbiamo API che vengono chiamate milioni e milioni di volte al giorno. Se hai un codice che viene chiamato tante volte quanto il nostro, vale sicuramente la pena investire nelle ottimizzazioni del codice di basso livello, altrimenti maybe forse no.