Daxko/CSI ha usato Azure per accelerare il ciclo di sviluppo e migliorare i servizi al cliente e le prestazioniDaxko/CSI used Azure to accelerate its development cycle and to enhance its customer services and performance

Logo Daxko/CSI

Daxko/CSI Software ha affrontato una sfida: la base di clienti dei centri fitness e di ricreazione ha registrato un aumento rapido grazie alla soluzione software aziendale onnicomprensiva. Tuttavia, il supporto delle esigenze dell'infrastruttura IT per la crescita della base di clienti metteva a dura prova lo staff IT aziendale.Daxko/CSI Software faced a challenge: its customer base of fitness and recreation centers was growing rapidly, thanks to the success of its comprehensive enterprise-software solution, but keeping up with the IT-infrastructure needs for that growing customer base was testing the company’s IT staff. La società era sempre più vincolata alle crescenti spese operative, in particolare per la gestione dei database in continua crescita.The company was increasingly constrained by rising operations overhead, particularly for managing its growing databases. Ancor peggio, le spese operative venivano tagliate dalle risorse di sviluppo impegnate su nuove iniziative, tra cui le funzionalità di mobilità per il software aziendale.Worse, that operations overhead was cutting into development resources for new initiatives, like new mobility features for the company’s software.

Secondo David Molina, responsabile del reparto Sviluppo del prodotto presso Daxko/CSI, Azure ha fornito a CSI Software il modello di piattaforma distribuita come servizio (PaaS) necessario per semplificare la gestione dei database, aumentare la scalabilità e liberare risorse che potessero concentrarsi sul software e non sulle operazioni.According to David Molina, Director of Product Development at Daxko/CSI, Azure provided CSI Software with the platform-as-a-service (PaaS) model that it needed to simplify database management, increase scalability, and free up resources to focus on software instead of ops. "Il database SQL di Azure ha rappresentato un'ottima opzione per la nostra azienda.“Azure SQL Database was a great option for us. Senza la preoccupazione per la manutenzione di SQL Server, un cluster di failover, e per tutte le altre esigenze dell'infrastruttura, la soluzione si è rivelata ideale per noi".Not having to worry about maintaining a SQL Server, a failover cluster, and all the other infrastructure needs was ideal for us.”

Dopo la migrazione ad Azure, CSI Software necessita di uno staff operativo composto da solo due risorse per gestire oltre 600 database dei clienti.Since migrating to Azure, CSI Software needs an operations staff of only two to manage over 600 customer databases. L'azienda usa i pool elastici del database SQL di Azure per spostare i database dei clienti a seconda delle dimensioni e delle esigenze.The company uses Azure SQL Database elastic pools to move customer databases based on size and need.

Molina continua: "I clienti hanno avvertito immediatamente il cambiamento.Molina continues, “Our customers felt the change immediately. Prima di adoperare i pool elastici, i clienti registravano occasionalmente timeout e altri problemi durante i picchi di attività.Before elastic pools, they occasionally had timeouts and other issues during burst periods. Con i pool elastici di Azure, possono eseguire picchi di attività in base alle esigenze e usare il software senza problemi".With Azure elastic pools, they can burst as needed and use the software without issues.”

Oltre a migliorare le prestazioni per i clienti, i pool elastici di Azure liberano risorse CSI Software, che possono concentrarsi sullo sviluppo di nuovi servizi e funzionalità, invece di occuparsi della gestione e delle operazioni.In addition to improving performance for customers, Azure elastic pools freed up CSI Software resources to focus on developing new services and features, instead of dealing with operations and management. Tali risorse IT hanno aiutato CSI Software a migliorare l'offerta del software aziendale, SpectrumNG, per coinvolgere i membri della palestra, migliorare l'efficienza del personale e fornire al personale e ai membri accesso mobile per operazioni interattive e notifiche in tempo reale.Those IT resources helped CSI Software improve its enterprise software offering, SpectrumNG, to help engage gym members, improve staff efficiency, and give staff and members mobile access for interactive tasks and real-time notifications.

Azure ha anche consentito a CSI Software di accelerare e migliorare il ciclo di sviluppo e di controllo di qualità (QA) tramite opzioni di automazione.Azure has also helped CSI Software accelerate and improve the development and quality-assurance (QA) cycle by enabling automation options. Grazie all'implementazione di Azure nell'azienda, i responsabili della compilazione possono creare pacchetti di componenti con un semplice clic.With the company’s Azure implementation, build managers can package up components with the click of a button. Come descritto da Molina, "come parte del ciclo di rilascio, il controllo di qualità è ora in grado di eseguire la distribuzione in un ambiente di test in Azure, che riproduce fedelmente il nostro stack di produzione.As Molina describes, “As part of the release cycle, QA is now able to deploy to a test environment in Azure, which closely mimics our production stack. Siamo in grado di distribuire immediatamente le compilazioni nell'ambiente di sviluppo per vagliare le modifiche.We can deploy builds immediately to our dev environment to vet changes. Questo fattore rappresenta per noi una vera conquista, poiché in precedenza non disponevamo di un sistema di parità per i test".That’s a big win for us, because we didn't have parity for testing before that.”

Offload nel cloudOffloading to the cloud

Prima di passare al cloud, CSI Software ha compilato correttamente la propria infrastruttura multi-tenant in un datacenter locale a Houston.Before moving to the cloud, CSI Software had successfully built up its own multitenant infrastructure in a local datacenter in Houston. Con l'espansione, l'azienda ha registrato un incremento di problematiche legate all'acquisto, al provisioning e alla gestione di tutti gli hardware e software necessari per supportare i clienti.As the company expanded, it faced increasing growing pains from purchasing, provisioning, and maintaining all of the hardware and software needed to support its customers. La gestione delle operazioni da parte del personale IT ha causato un rallentamento nel provisioning di nuove risorse e nell'implementazione di nuovi servizi ai clienti.IT staffing to handle operations became another bottleneck that led to a slowdown in provisioning new resources and rolling out new services to customers.

Software CSI ha analizzato le opzioni cloud per eliminare le spese generali e concentrarsi sul codice e non più sulle operazioni.CSI Software looked into cloud options for eliminating that overhead, so that it could focus on its code, instead of its operations. L'azienda ha scoperto che numerosi dei principali provider di cloud offrivano esclusivamente soluzioni di infrastruttura distribuita come servizio (IaaS), che richiedono numerosi operatori IT per la gestione del relativo stack.The company discovered that many of the top cloud providers only offer infrastructure-as-a-service (IaaS) solutions that still require a large IT staff to manage the IaaS stack. Alla fine, CSI Software ha stabilito che la soluzione PaaS di Azure fosse più adatta alle proprie esigenze.In the end, CSI Software determined that the Azure PaaS solution was the best fit for its needs. Molina spiega: "Azure sposta hardware e software del sistema fuori dall'area di lavoro, consentendoci di concentrarci sulle offerte del software, riducendo contestualmente le spese IT".Molina explains, “Azure gets the hardware and system software out of the way, so we can focus on our software offerings, while reducing our IT overhead.”

Eseguire la transizione ad AzureMaking the transition to Azure

Dopo aver scelto Azure per la soluzione PaaS, CSI Software ha avviato la migrazione dell'infrastruttura di back-end e dei database nel cloud.After selecting Azure for its PaaS solution, CSI Software began migrating its backend infrastructure and databases to the cloud. Prima di Azure, i clienti SpectrumNG dovevano installare un'applicazione client per la comunicazione con un servizio Windows Communication Foundation (WCF) sul back-end.Prior to Azure, SpectrumNG customers needed to install a client application that communicated with a Windows Communication Foundation (WCF) service on the back end. Secondo Molina, "anche se alcuni clienti ospitavano tutti gli elementi nei propri datacenter, abbiamo compilato un prodotto multi-tenant.According to Molina, “Although some customers hosted everything in their own datacenters, we built out the product to be multitenant. Ospitavamo tutti gli elementi in un datacenter a Houston, usando SQL Server come archivio dati.We hosted everything in a datacenter in Houston, using SQL Server as the data store.

"L'offerta del prodotto includeva anche un portale Web per i membri (scritto in ASP.net), progettato come white-label e per riflettere la presenza del cliente sul Web, nonché dotato di un'API SOAP per supportare le pagine online ed eventuali integrazioni di terze parti".“Our product offering also included a member-facing web portal (written in ASP.net), which was designed to be white-labeled to match the customer’s web presence, and a SOAP API to support the online pages and any third-party integration.”

La migrazione dell'architettura sul cloud non richiedeva molto tempo.The migration to the cloud did not take long for the architecture. Secondo Molina "la maggior parte dello sforzo consisteva nella modifica della modalità di lettura delle informazioni sui file di configurazione, nella modifica della stringa di connessione centralizzata, nell'automazione della creazione dei pacchetti, nel caricamento e nella distribuzione delle versioni".According to Molina, “The majority of the effort dealt with modifying the way that we read config file information, a centralized connection-string modification, and automating the packaging, uploading, and deployment of our releases.”

Per sviluppare l'automazione della compilazione, i progettisti di CSI Software hanno usato Azure PowerShell e le API REST per creare pacchetti e caricarli in un ambiente di gestione temporanea per il rilascio ogni notte.To develop the build automation, CSI Software engineers used Azure PowerShell and REST APIs to create packages and upload them to a staging environment for release each night. La transizione completa a una distribuzione Azure basata su cloud è avvenuta rapidamente e senza causare problemi al team IT di CSI Software.The overall transition to an Azure cloud-based deployment went quickly and smoothly for the CSI Software IT team. "Complessivamente, abbiamo creato un ambiente beta nel cloud in tre-quattro settimane dall'inizio del progetto.Molina explains, “In all, we had a beta environment in the cloud within three to four weeks of taking on the project. Un successo sorprendente la nostra azienda", spiega Molina.That was a surprising win for us.”

Dopo la configurazione e il testing dell'ambiente, CSI Software ha avviato la migrazione dei clienti.After configuring and testing the environment, CSI Software began migrating customers. Per i clienti che già usavano l'hosting CSI Software, la transizione è stata quasi diretta.For customers already using CSI Software hosting, the transition was nearly seamless. Per i clienti che usavano una distribuzione locale, la migrazione al cloud ha richiesto più tempo, ma non ha comunque comportato problemi per i clienti e per CSI Software.For customers migrating from an on-premises deployment, the migration to the cloud took some additional time, but was still primarily pain-free for both customers and CSI Software.

Lo staff IT di CSI Software ha usato la seguente procedura per avviare i nuovi clienti in Azure:For new customers, CSI Software’s IT staff use the following process to on-board them to Azure:

  1. Gli script di Azure PowerShell sono stati usati per creare un nuovo database per i clienti. Tutti i clienti iniziano su un livello Premium per garantire velocità effettiva sufficiente nella fase iniziale della transizione.Azure PowerShell scripts are used to spin up a new database for the customer; all customers start out on a premium tier to ensure enough initial throughput for the transition.
  2. Quando possibile, CSI Software usa la Migrazione guidata SQL Azure per spostare i dati esistenti in un'istanza di database SQL di Azure.When possible, CSI Software uses the Azure SQL Migration Wizard to move existing data to an Azure SQL Database instance.
  3. Infine, vengono usati i Microsoft SQL Server Integration Services (SSIS) per risolvere eventuali discrepanze nei dati o per eseguire operazioni di pulizia dati, a seconda delle esigenze.Finally, Microsoft SQL Server Integration Services (SSIS) are used to reconcile any discrepancies in the data or to perform any data cleanup as required.

Oggi, circa il 99% dei clienti di CSI Software è ospitato in Azure, in quattro datacenter regionali (centro-settentrionale, centro-meridionale, est e ovest).Today, about 99 percent of CSI Software customers are hosted in Azure, across four regional datacenters (North Central, South Central, East, and West). Grazie alla presenza di datacenter nell'area geografica di ogni cliente, la latenza viene ridotta al minimo.By having datacenters in each customer’s geographical region, latency is kept to a minimum.

I pool elastici di Aure liberano risorse ITAzure elastic pools free up IT resources

Numerose funzionalità di Azure sono risultate utili a CSI Software per spostare il focus dall'infrastruttura e dalle operazioni allo sviluppo.Several features of Azure have helped CSI Software shift from being infrastructure and operations focused to being feature and development focused. Probabilmente il vantaggio più importante è dato dai pool elastici.Perhaps the biggest benefit has been from elastic pools.

Al momento, CSI Software fornisce ai clienti circa 550 database.CSI Software currently provides about 550 databases for customers. Prima dei pool elastici, era difficile gestire i numerosi database all'interno della struttura di un livello.Before elastic pools, it was difficult to manage that many databases within a tier structure. I responsabili delle operazioni dovevano assegnare livelli di prestazioni in base alle esigenze di picco dei clienti, che richiedeva notevole dispendio di risorse IT.Ops managers had to assign performance tiers based on the burst needs of customers, which required significant IT-resource overhead. Grazie ai pool elastici, i responsabili possono assegnare ai tenant pool Premium o Standard, a seconda delle esigenze, e quindi spostare i clienti in base alle dimensioni e alle esigenze.With elastic pools, managers can assign tenants a premium or standard pool, as appropriate, and then move customers based on size and need. I clienti hanno avvertito gli effetti dei pool elastici quasi immediatamente. Prima di adoperare i pool elastici, i clienti registravano timeout e altri problemi durante i picchi. Con i pool elastici, gli utenti possono eseguire picchi di attività in base alle esigenze e continuare a usare SpectrumNG senza problemi.Customers felt the effects of the elastic pools almost immediately; before elastic pools, customers had timeouts and other issues during burst-usage periods, but with elastic pools, customers can experience activity bursts as needed, and they can continue to use SpectrumNG without issues.

La replica geografica attiva di Azure accelera la creazione di rapportiAzure active geo-replication accelerates reporting

Numerosi clienti CSI Software stanno traendo vantaggio dalla replica geografica attiva di Azure.Several CSI Software customers are also taking advantage of Azure active geo-replication. La replica geografica attiva consente di configurare fino a quattro database secondari accessibili in lettura nella stessa area del data center o in aree diverse.With active geo-replication, up to four readable secondary databases can be configured in the same or different datacenter regions. CSI Software usa la replica geografica attiva in due modi: innanzitutto, i database secondari sono disponibili nel caso di un'interruzione del data center o di impossibilità di connettersi al database primario. In secondo luogo, i database secondari sono leggibili e possono essere usati per l'offload dei carichi di lavoro di sola lettura, come ad esempio i processi di creazione di rapporti.CSI Software makes use of active geo-replication in two ways: first, the secondary databases are available in the case of a datacenter outage or the inability to connect to the primary database; and second, the secondary databases are readable and can be used to offload read-only workloads such as reporting jobs. Alcuni clienti CSI Software usano la replica per accelerare i flussi di lavoro per la creazione di report.Some CSI Software customers use this benefit to accelerate reporting workflows.

Architettura e logica dell'applicazione CSI SoftwareCSI Software application logic and architecture

SpectrumNG usa i ruoli Web.SpectrumNG uses web roles. Poiché l'applicazione è multi-tenant, viene usato un servizio WCF per gestire la richiesta di connessione iniziale dai clienti.Because the application is multi-tenant, a WCF service is used to handle the initial connection request from customers. Come dichiarato da Molina, "la richiesta identifica ogni cliente, che ci consente quindi di compilare una stringa di connessione nei relativi database per eseguire qualsiasi azione necessaria".As Molina states, “The request identifies each customer, which then lets us build a connection string out to their databases to do whatever we need to do.”

Per il livello Web del servizio, CSI Software usa il ridimensionamento automatico di Azure, in base a data e ora.For the web tier of its service, CSI Software takes advantage of Azure automatic scaling, based on day and time. Le risorse disponibili vengono automaticamente aumentate per soddisfare l'incremento dell'uso durante le ore lavorative, secondo il fuso orario di ciascun datacenter regionale.Available resources are automatically increased to accommodate higher usage during business hours, according to the time zone of each regional datacenter. Viene anche impostata la riduzione automatica delle risorse durante il weekend, quando le esigenze dei clienti sono inferiori.Resources are also set to scale down on weekends, when customer needs are lower.

Architettura di Daxko/CSI

Figura 1.Figure 1. Un ruolo di lavoro dei servizi cloud consente di disegnare dati strutturati dal database SQL di Azure e dati semistrutturati dall'archiviazione di tabelle.A cloud services worker role draws structured data from Azure SQL Database and semi-structured data from table storage. Gli utenti SpectrumNG interagiscono con i dati tramite un ruolo Web dei servizi cloud.SpectrumNG users interact with that data through a cloud services web role.

Uso di app Web e di un livello di piano Web per le app per dispositivi mobiliUsing web apps and a web-plan tier for mobile apps

L'uso del database SQL di Azure ha consentito di liberare risorse CSI Software per sviluppare nuove iniziative, tra cui una piattaforma completa per dispositivi mobili basata su un'API personalizzata ospitata nelle app Web di Azure.Using Azure SQL Database freed up resources for CSI Software to enable new initiatives, including a complete mobile platform based on a custom API hosted in Azure web apps. La piattaforma consente ai membri e allo staff della palestra di usare dispositivi mobili per controllare i programmi, prenotare lezioni e ricevere messaggi.The platform enables gym members and staff to use mobile devices to check schedules, book classes, and receive messages.

La piattaforma usa Service Oriented Architecture (SOA) per creare un singolo componente, ad esempio un sistema POS o un sistema di vendite, spostarlo in tempo reale in un altro piano Web e scegliere un servizio per supportare tale componente, lasciando tutti gli altri elementi sul piano Web originale.The platform uses service-oriented architecture (SOA) to take a single component—like a point-of-sale system (POS) or a sales system—move it on the fly to another web plan, and then spin up a service to support that component, while leaving everything else on the original web plan. Questa funzione offre a CSI Software massima flessibilità e consente di mantenere bassi i costi.This ability gives CSI Software tremendous flexibility, and it helps keep costs down.

Azure consente agli sviluppatori Software CSI di concentrarsi su applicazioni e serviziAzure lets CSI Software developers focus on apps and services

Il database SQL di Azure non rappresenta solo un enorme vantaggio per i clienti SpectrumNG, che usufruiscono di un servizio veloce e affidabile, ma è anche un grande successo per lo staff IT e gli sviluppatori di CSI Software.Azure SQL Database isn’t just a boon to SpectrumNG customers, who enjoy the fast, reliable service, it’s also a big win for CSI Software’s IT staff and developers. Trasferendo le operazioni nel cloud di Azure, CSI Software ha ridotto i costi legati a risorse e infrastruttura, ha accelerato notevolmente i cicli di sviluppo e non necessita più di gestire i database nel dettaglio per ottimizzare le prestazioni dei tenant.By offloading ops to Azure in the cloud, CSI Software reduced its overhead for resources and infrastructure, greatly accelerated its development cycles, and no longer needs to micromanage databases to optimize performance for its tenants.

Altre informazioniMore information