Ciao a tutti.
Stiamo valutando diversi servizi cloud per le nostre applicazioni InDe Foundation, a cui si dovranno connettere gli utenti di tutte le aziende che vorranno usufruire di questi servizi.
Le nostre applicazioni sono in C# .NET.
Fino ad ora, la soluzione che abbiamo adottato è:
Una macchina virtuale Windows per ogni applicazione, ognuna con un suo Sql server e IIS.
Questa soluzione, nata come primo approccio all’argomento, non ci soddisfa più, sia in termini di performance, che di manutenzione sistemistica che di costi.
Per quanto riguarda i database, sarebbe bello usufruire di servizi come AWS o Azure.
Per quanto riguarda i server (stando a quanto ci hanno detto risparmiando sui costi), sarebbe bello spostarsi su Apache.
Voi che soluzioni avete adottato?
@r.bianco so che @f.faleschini offre un servizio di hosting di applicazioni Instant Developer Foundation ma solo su server Linux e quindi compilando in Java e con database Postgres. Mi pare comprensivo di IDManager già installato.
Non so se lo facciano anche per Windows. @f.faleschini cosa ci dici?
Ciao. Sì noi abbiamo sviluppato un nostro sistema di deployment basato sull’esperienza accumulata in un grosso progetto di edge cloud al quale partecipiamo.
Si basa su java/linux perché il know how che ci sta sotto è su Linux, non lo facciamo in Windows. Inoltre questa scelta ci impone di usare java (anche se sviluppiamo in .net ma poi il deployment lo facciamo in java e tendiamo a non avere dipendenze .net nei nostri progetti).
Non usiamo IDManager ma il nostro è un sistema alternativo che in estrema sintesi si riassume in copiare la webapp di tomcat sul server di destinazione e impostare le connection string al database scrivendo nel WEBINF di tomcat.
Ci sono diversi vantaggi nel nostro approccio, forniamo ad ogni cliente la “nostra macchina virtuale di deployment”, la VM ci consente di fare diverse magie tra cui:
- aggiornare in modo centralizzato una app installata presso più clienti (noi sviluppiamo soprattutto app che vanno installate on premises e che si collegano a un sistema legacy e quindi sono installate “vicino al DB del cliente”), se facciamo una patch, ad esempio, con un comando riusciamo ad aggiornare in un’unica opreazione tutte le installazioni
- pubblicare le app in https tramite un sistema di tunnel elaborato (ogni VM passa attraverso una VMProxy che rende possibile “la magia”) in modo che ogni app pubblicata su tomcat sia raggiungibile “da internet” a un URL che è https://nomecliente.miodominio.com/nomeapp/nomeapp.htm
- possibilità di monitorare l’uso delle app e controllo remoto (ad esempio “spengo con un click la app se non in regola con canone”)
È chiaro che è un sistema elaborato e messo a punto sulle nostre esigenze (in particolare la necessità di installare presso tanti clienti la stessa app), però funziona bene. Lo sviluppiamo continuamente e abbiamo in git i sorgenti con cui creiamo la VM e la VM Proxy.
Io sono un utente di questo sistema, lo hanno sviluppato alcuni miei colleghi estremamente skillati. È interessante. Noi siamo disposti a mostrarlo e in passato lo abbiamo anche dato ad una azienda che sviluppa con Foundation, anche se a loro interessava solo la parte “finale”, ovvero il come pubblicare su java/linux e avere un db postgres, quindi un sottoinsieme delle potenzialità effettive del nostro sistema.
Con Linux si riescono a fare grandi cose in termini di scalabilità e di flessibilità nel deployment. Direi che se qualcuno è interessato può contattarmi a francesco@nordest.systems e per lo meno ne parliamo.
Spero di aver risposto. Grazie. Ciao!
Molto interessante. Grazie.
Ciao, noi tipicamente sviluppiamo il 99% delle nostre applicazioni con tecnologia Java su Linux e dopo anni abbiamo stabilizzato il nostro sistema di deploy tramite container ed era proprio mia intenzione iniziare a condividere con voi la nostra esperienza sulla distribuzione di applicazioni Foundation su GKE di Google e su K9S per le soluzioni on-premise.
Purtoppo siamo entrati in un periodo per noi molto complesso di rilasci e golive ma confido di riuscire a condividere con voi sia le immagini docker che la documentazione per l’installazione in modo da poter sempre migliorare la soluzione.
@sarcaz direi che questa è una grande cosa per la community e direi che sia lo spirito giusto.
Ciao, per Foundation noi sviluppiamo principalmente su Windows / SQL server ( se non richiesto qualcosa di differente dal cliente).
Abbiamo per questa ragione la necessità di usare una infrastruttura Microsoft che per ora è composta da Windows Server e SqlServer.
Abbiamo deployato le nostre applicazioni quasi sempre attraverso IDmanager che apprezziamo molto. Speriamo però che dal 2022 in qualche maniera con l’aggiornamento della piattaforma potremo usare server Linux con tecnologia .net e, perchè no, anche SQL server su Linux per abbattere costi e tempi di deploy (oltre a permettere l’utilizzo di containers)
Per quanto riguarda il Cloud stiamo utilizzando attualmente una configurazione di questo tipo :
- macchine EC2 (windows server datacenter edition) per la gestione del web server
- servizio RDS managed per i database SQL server
- accesso esclusivamente via HTTPS attraverso servizio CloudFlare per proteggere le macchine da attacchi e nascondere l’ip delle macchine.
Sono presenti più domini / servizi su ogni macchina gestendo pool di applicazioni differenti.
In questa maniera abbiamo la possibilità di avere dei servizi gestiti con buone prestazioni
L’accesso a idmanager ad alle macchine è permesso solo da rete privata e VPN
Per le installazioni on premise usiamo sempre IDmanager ma ovviamente nell’infrastruttura cliente
Fantastico, grazie a tutti.
L’idea di lavorare in C# su Windows e poi eseguire il deploy in Java su Linux mi lascia molti dubbi, soprattutto non avendo conoscenze in quell’ambito, ma oltre a questo, sviluppare un’applicazione in una tecnologia per poi usarla in un’altra “potrebbe” creare delle incoerenze, o comunque delle difficoltà in caso di errori che dipendono dalla tecnologia usata. Inoltre, abbiamo già integrato diverse dll, sia nostre che di terzi, sviluppate in C# .NET.
Sull’utilizzo di applicazioni .NET/SQLServer su Linux ammetto di non saperne nulla, mi chiedevo se qualcuno stesse già utilizzando questa soluzione e con quali risultati. Penso valga la pena informarsi e fare qualche prova (tempo permettendo).
La soluzione EC2/RDS/CloudFlare pare quella più vicina a quella adottata da noi finora (molto interessante).
In ogni caso, mi avete dato molto materiale su cui informarmi e riflettere, grazie ancora a tutti 
Siate fiduciosi che qui in Pro Gamma il reparto tecnico sta lavorando per voi e la versione 22 porterà belle novità!
Vi ricordate questo webinar?
Il futuro di Instant Developer Foundation
Infatti la speranza deriva da quel webinar che abbiamo seguito e riproposto anche internamente alla nostra azienda
Ciao, noi, oltre all’approccio classico della macchina virtuale windows in cloud, abbiamo anche usato il servizio gestito “App Web” di Azure e come database “Azure SQL”.
Dal mio punto di vista, questo approccio ha i seguenti vantaggi:
- Manutenzione sistemistica
- Elasticità per quanto riguarda le performance
d’altro canto ha i seguenti svantaggi:
- Non si può usare ID Manager, quindi per la pubblicazione bisogna usare il classico FTP e bisogna far girare il DDL sul database.
- Specialmente per il database, per avere performance accettabili, bisogna aumentare i “tagli” di servizio e quindi si va a spendere abbastanza.
Quindi lo consiglierei per progetti di un certo livello, con budget alti, in cui l’elasticità viene visto come un ‘must’.
Per piccoli progetti, preferiamo usare un macchina virtuale classica, con SQL Express, e ID Manager.
Ciao Riccardo,
rispondo con estremo ritardo, ma solo oggi ho guardato le notifiche dei thread che seguo.
Riguardo al tuo dubbio riguardo al lavorare in c# per poi fare il deployment su java/linux in realtà e risolto dalla “fede in Foundation”: è Inde che si occupa di garantire che le librerie funzionino bene, e dalla nostra esperienza posso dire che funziona bene. Ci sono stati dei problemi con chilkat che abbiamo risolto segnalando dei bug che Progamma ha già risolto alcune release fa.
Si potrebbe anche lavorare in java su windows, ma il compilatore .net è molto più veloce di quello java, quindi conviene decisamente compilare in c#.
Poi da quel che si dice in Inde 22.0 sarà possibile usare .net core e quindi, ma non ne so molto, fare il deploy di .net su linux. Aspetteremo la release per decidere, noi usiamo tomcat nella nostra procedura di deployment, ma se sarà necessario ci adatteremo a .net se lo riterremo vantaggioso.
Noi abbiamo esperienza di uso di SQL Server su Linux, che da un paio d’anni funziona anche se non è compataibile al 100% con SQL Server su Windows (ad esempio la funzionalità Filestream non esiste in Linux). Aspettiamo Inde 22.0 e vediamo.
Ciao!
Buongiorno, Sono un utente nuovo della community, uso InDe dal 2009 e leggo con piacere questo argomento che è stato affrontato in diversi modi.
Per il nostro progetto più importante utilizziamo un Private Cloud, con risorse virtuali garantite non condivise, interamente autogestito basato su macchine Windows e database Microsoft SQL sia su macchine dedicate che su istanze DB as a Service
Per ragioni di prestazioni, abbiamo dedicato una macchina solo per la gestione delle licenze che si occupa di indirizzare all’istanza dell’app relativa e di settare la connection string del DB relativo
Abbiamo deciso di bilanciare (a priori) i carichi, sia a livello db che di applicazione, perchè gestendo solo poco più di un centinaio di aziende, conosciamo il livello di risorse necessarie per ciascuna licenza
Sulle ciascuna delle altre macchine è installata una istanza dell’APP e si trova a gestire circa 50 licenze (200 utenti circa), altre macchine gestiscono solo una licenza ma con 30-40 utenti.
Ogni licenza ha un Database esclusivo, come ho detto prima, ospitato su macchine dedicate o su DB as a Service
La pubblicazione e gli aggiornamenti delle istanze dell’APP avvengono tramite IDManager, purtroppo separatamente, ogni IDManager si occupa di aggiornare solo i DB relativi alle licenze ospitate
Sicuramente sarebbe da migliorare, accettiamo consigli…
Ci piacerebbe adottare un sistema con bilanciamento automatico dei carichi, ma in questo momento non riusciamo a farci carico della spesa.
Grazie, e benvenuto 
Mi è appena arrivato un biscotto della fortuna targato Q datacenter ![]()
Mi ero perso questo thread. Di certo Qdatacenter oltre a biscotti della fortuna la fa da padrone nel campo dell’edge cloude del cloud privato. Chi è interessato ci contatti, come prodotto noi lo abbiamo lanciato a dicembre (https://qdatacenter.it) e ora stiamo creando una rete di partner in tutta Italia.
Abbiamo oltre 10 anni di esperienza con questo tipo di soluzione e da quando abbiamo iniziato con idf (nel 2017) installiamo le nostre app sui cloud che installiamo presso i clienti.
Poi noi abbiamo anche creato un sistema di tunneling in modo che possiamo collegare tutti i cloud e ad esempio aggiornare una app a tutti i clienti che ce l’hanno (parlo di app vendute e installate on premises a più clienti ovviamente).
Gli argomenti sono tanti e trattarli in una risposta non ha senso, la cosa migliore è confrontarsi.
Ciao!
@f.faleschini potresti mettere un post nella categoria Marketplace per Qdatacenter così rimane ben in evidenza e chi è interessato lo trova facile.
Ciao @paolo.giannelli , grazie per il messaggio. Mi potresti dire che tipo di post ti aspetti e qual è l’obiettivo? Grazie!
@f.faleschini decidi tu cosa ci va messo, è la pubblicità del vostro sistema cloud e la categoria Marketplace serve proprio a vendere le vostre realizzazioni agli altri utenti della Community che possono averne bisogno.
Grazie! Ci lavoro su e ti aggiorno. Ciao!