Il TechAdvisor Roberto Polli spiega come cambiare piattaforma possa essere l’occasione per rivedere il modo di sviluppare, testare e deployare le applicazioni.
I punti trattati durante la presentazione sono:
- Migrare a JBoss: Ambiente, obiettivi e strategia
- Opportunità Vs Operatività
- JBoss Ecosystem: Arquillian
- Simulare la CI con Docker
- Cosa è cambiato
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/migrare-a-jboss-andare-oltre-gli-aspetti-tecnologici
2. Par-Tec è un software & infrastructure system integrator che si distingue per:
• la proposizione al mercato di servizi professionali altamente qualificati e soluzioni innovative
• il rispetto degli standard e l’adozione di tecnologie open source
L’avventura col cappello rosso è iniziata 10 anni fa con l’adozione del GFS, la
specializzazione su RHEL e l’evoluzione verso il middleware e la più recente Cloud
Infrastructure.
Il nostro attuale rapporto con Red Hat?
Red Hat Premier Business Partner con specializzazione Datacenter Infrastructure
Par-Tec e Red Hat: 10 anni di successi
3. Migrare a JBoss: Ambiente
l I driver della migrazione: economici, tecnologici
l Integrare Jboss in ambiente corporate
– +10k server, C++, Java, Python
– ESB, Transazioni distribuite, Billing, Multi-layered caches
– Pipeline: sviluppo, integration, performance, production
– Agile, scrum board, git
4. Migrare a JBoss: Obiettivi e Strategia
l Minimizzare impatti della migrazione
— Riutilizzare le componenti esistenti
— Astrarre le specificità dei vari application server
l Strategia
— Velocizzare e semplificare il processo di sviluppo
— Identificare requisiti critici preventivamente
— “To JEE or not to JEE?”
5. Opportunità vs Operatività
l Introdurre
– State-of-the-art development system
– Supporto Enterprise + Community
– Integrazione con tecnologia Red Hat
l Mantenendo
– Integrazione con ambiente e procedure presenti
– Impatto minimo sulle scadenze
6. Opportunità vs Operatività
l Individuazione dei Bottleneck
procedurali
l Ambiente di Continuous Integration
complesso
l Alti costi di non-acceptance
l Posticipare la fase di CI!
7. JBoss Ecosystem:
Validare le componenti delegate al container
Container-Injected Beans
@RunWith(Arquillian.class)
class MyArquillianTest {
// Save the MyBeanMock code
// Stress the @Inject/@Resource code
// May validate deployment descriptor
@Inject // or @Resource ...
private MyBean bean;
@Test
public void testMyBean(){
...
}
}
Mock Beans/Factories
class MyBeanMock { ... } // or
class MyBeanMockFactory { ... }
class MyOldWayTest {
// Must write MyBeanMock class
// Won't stress the @Injection code
private MyBeanMock bean = new MyBeanMock();
@Test
public void testMyBean(){
...
}
}
8. JBoss Ecosystem:
l Bug scoperti prima di andare in Continuous Integration
l Test più brevi e più numerosi
l Meno codice & debug più semplice
l Test dell'integrazione col container
l Deployment descriptor validati separatamente:
l web.xml, jboss-web.xml, ...
l Non invasivo – attivabile via maven profiles
l Software scritto dalla prospettiva dell'utilizzatore
9. Simulare la CI con
l Debug locale dell'integrazione con le
componenti esterne
l Simulare le componenti esterne con
blackbox riusabili
l Simulare la CI con
#docker-compose up
jboss:
image: jboss-eap-6
ports:
- 8080:8080
- 9990:9990
logserver:
image: my-logserver
ports:
- 1234:1234
10. Cosa è cambiato
• Goal: raggiungimento degli obiettivi iniziali.
• Test: più numerosi, più piccoli, più veloci.
• Efficienza: maggiore acceptance negli Integration Test.
• Conoscenza: pregi e limiti di JEE.
• Tecnologia: introdotti Docker e Arquillian.