Xavier Briand
Senior Web Application Developer
ExperiencePoint Inc
(please excuse my accent)
mobro.co/xavierbriand
Moving to a
Service Oriented Architecture
from tightly coupled
applications
ExperiencePoint
"The best way to learn is to experience."
Business

(1+½)+(4+3) simulations
Previous Architecture
Problems
tightly coupled applications
no dependency management
no tests
deprecated technologies
1 dev symptoms
2 environme...
ExperienceChange Model
Meet the dev team
Step 1

ð

Reset

Goal: efficient dev environment
VM
Modern SCM
Modern Frameworks
Tasks automation
Problem

Dependency management

logo: WizardCat

$mk bid
ae ul
{
"ae
nm"
:"pe"
e/c,
"ies" :"rpitr"
lcne
poreay,
"uood :{
atla"
"s-" {":"r/ }
pr0:
" sc"
}
,
"eur" {
rqie:
"h"
pp
:"=.."
>...
$ppcmoe.hr
h opsrpa
___
___
/__/_ __ __ __ __ ____ ___
____ __ _
__ __ ____ __
// /_  _ `_ _  _  __ _ __
_ / _ _ / _ / _ /...
Problem

App config management
cmoe (ltompcae)
opsr Pafr akgs
icnevcmoe-aaee-ade
nete/opsrprmtrhnlr
$mk bid
ae ul
Problem

QA
+
jenkins-php.org
$mk peaeaayi
ae rpr nlss
Step 2

“Defeat in detail”
Divide and gather (DRY)
Keep things small + KISS
Design by contract
Leverage your architecture
Opportunity: GlobalTech
Inside
Remove Flash... No! Ok but:

Let’s use the best technology
to do the job
AMF => plain HTTP via browser
Business Log...
Hypermedia API
>PS /ae/+cnet
OT gms
otn
<21Cetd
0 rae
<Lcto /ae/
oain gms1
>GT/ae/
E gms1
<20O
0 k
<
<<ae
gm>
<
<- ..->
!-...
Globally
Implementation

Strategy Pattern
Solutions

OAuth2
Solutions

Backend App API
Solutions

Product API
The other way around
Step 3

Consolidate
BackendAppSdkBundle
OAuth2ClientBundle
ApiBundle
AssetsBundle

Rinse and repeat...
Step 4

Plan for the futur
Question?
joind.in/9999 (four 9)

Symfony
We are hiring!
experiencepoint.com/careers
Moving to a service oriented architecture from tightly coupled applicationsi   xavier briand
Moving to a service oriented architecture from tightly coupled applicationsi   xavier briand
Moving to a service oriented architecture from tightly coupled applicationsi   xavier briand
Upcoming SlideShare
Loading in …5
×

Moving to a service oriented architecture from tightly coupled applicationsi xavier briand

408 views
316 views

Published on

Lessons from a year of rearchitecting tightly coupled 4-year-old applications to a SOA while keeping developers happy (for the most part).

For a year, ExperiencePoint's development team has been rebuilding its aging applications to a modern and highly available architecture.

We have been able to spend more time on developing our new products while reducing our technological debt by building on top of standard technologies, separating concerns and automating our working environment.

This talk will show the benefits of splitting omniscient applications to smaller independent modules and explain why your web applications should use HTTP RESTful API to communicate with each other. We'll also explore a few strategies to deal with aging PHP applications or deprecated technologies.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
408
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Moving to a service oriented architecture from tightly coupled applicationsi xavier briand

  1. 1. Xavier Briand Senior Web Application Developer ExperiencePoint Inc (please excuse my accent)
  2. 2. mobro.co/xavierbriand
  3. 3. Moving to a Service Oriented Architecture from tightly coupled applications
  4. 4. ExperiencePoint "The best way to learn is to experience."
  5. 5. Business (1+½)+(4+3) simulations
  6. 6. Previous Architecture
  7. 7. Problems tightly coupled applications no dependency management no tests deprecated technologies 1 dev symptoms 2 environments SVN
  8. 8. ExperienceChange Model
  9. 9. Meet the dev team
  10. 10. Step 1 ð Reset Goal: efficient dev environment VM Modern SCM Modern Frameworks Tasks automation
  11. 11. Problem Dependency management logo: WizardCat $mk bid ae ul
  12. 12. { "ae nm" :"pe" e/c, "ies" :"rpitr" lcne poreay, "uood :{ atla" "s-" {":"r/ } pr0: " sc" } , "eur" { rqie: "h" pp :"=.." >533, "yfn/yfn" smoysmoy :"24, ~." "otieom dcrn/r" :"22>223, ~.,=.." "pbcedskbnl":"e-atr, e/akn-d-ude dvmse" "podsuf e/l-tf" :"e-rn" dvtuk } , "eur-e" { rqiedv: "hui/hui" ".." ppntppnt: 37* } }
  13. 13. $ppcmoe.hr h opsrpa ___ ___ /__/_ __ __ __ __ ____ ___ ____ __ _ __ __ ____ __ // /_ _ `_ _ _ __ _ __ _ / _ _ / _ / _ / _/ / _/ //_//////////////(_ ) _// __ _ _ _ _ _ _____ ////._/__/___// __/__// _ _ ______/___ // _ Aalbecmad: vial omns isal ntl Isal tepoetdpnece fo tecmoe.okfl i pee ntls h rjc eednis rm h opsrlc ie f rs rqie eur Ad rqie pcae t yu cmoe.snadisal te ds eurd akgs o or opsrjo n ntls hm sac erh Sac frpcae erh o akgs sl-pae efudt Udtscmoe.hrt telts vrin pae opsrpa o h aet eso. sau tts So als o lclymdfe pcae hw it f oal oiid akgs udt pae Udtsyu dpnece t telts vrinacrigt cmoe. pae or eednis o h aet eso codn o opsr vldt aiae Vldtsacmoe.sn aiae opsrjo
  14. 14. Problem App config management cmoe (ltompcae) opsr Pafr akgs icnevcmoe-aaee-ade nete/opsrprmtrhnlr $mk bid ae ul
  15. 15. Problem QA + jenkins-php.org $mk peaeaayi ae rpr nlss
  16. 16. Step 2 “Defeat in detail” Divide and gather (DRY) Keep things small + KISS Design by contract Leverage your architecture
  17. 17. Opportunity: GlobalTech
  18. 18. Inside Remove Flash... No! Ok but: Let’s use the best technology to do the job AMF => plain HTTP via browser Business Logic => Backend Frontend UI => Flash
  19. 19. Hypermedia API >PS /ae/+cnet OT gms otn <21Cetd 0 rae <Lcto /ae/ oain gms1 >GT/ae/ E gms1 <20O 0 k < <<ae gm> < <- ..-> !- . < <ik rl”cin”sc”.”<lns lns e=atoX r=..>/ik> < <ik rl”cin”sc”.”<lns lns e=atoY r=..>/ik> <<gm> /ae David Zuelke "Designing HTTP Interfaces and RESTful Web Services"
  20. 20. Globally
  21. 21. Implementation Strategy Pattern
  22. 22. Solutions OAuth2
  23. 23. Solutions Backend App API
  24. 24. Solutions Product API
  25. 25. The other way around
  26. 26. Step 3 Consolidate BackendAppSdkBundle OAuth2ClientBundle ApiBundle AssetsBundle Rinse and repeat...
  27. 27. Step 4 Plan for the futur
  28. 28. Question? joind.in/9999 (four 9) Symfony We are hiring! experiencepoint.com/careers

×