Moving to a service oriented architecture from tightly coupled applicationsi xavier briand
-
Upload
xavier-briand -
Category
Technology
-
view
256 -
download
0
description
Transcript of Moving to a service oriented architecture from tightly coupled applicationsi xavier briand
![Page 1: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/1.jpg)
Xavier BriandSenior Web Application Developer
ExperiencePoint Inc
(please excuse my accent)
![Page 2: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/2.jpg)
![Page 4: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/4.jpg)
Moving to aService Oriented Architecture
from tightly coupledapplications
![Page 5: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/5.jpg)
ExperiencePoint"The best way to learn is to experience."
![Page 6: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/6.jpg)
Business
(1+½)+(4+3) simulations
![Page 7: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/7.jpg)
![Page 8: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/8.jpg)
![Page 9: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/9.jpg)
Previous Architecture
![Page 10: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/10.jpg)
Problemstightly coupled applications
no dependency management
no tests
deprecated technologies
1 dev symptoms
2 environments
SVN
![Page 11: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/11.jpg)
ExperienceChange Model
![Page 12: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/12.jpg)
Meet the dev team
![Page 13: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/13.jpg)
Step 1
Reset ðGoal: efficient dev environment
VM
Modern SCM
Modern Frameworks
Tasks automation
![Page 14: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/14.jpg)
Problem
Dependency management
logo: WizardCat
$ make build
![Page 15: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/15.jpg)
{ "name" : "ep/ec", "license" : "proprietary", "autoload" : { "psr-0": { "": "src/" } }, "require": { "php" : ">=5.3.3", "symfony/symfony" : "~2.4", "doctrine/orm" : "~2.2,>=2.2.3", "ep/backend-sdk-bundle" : "dev-master", "ep/old-stuff" : "dev-trunk" }, "require-dev": { "phpunit/phpunit": "3.7.*" }}
![Page 16: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/16.jpg)
$ php composer.phar ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ ̀__ \/ __ \/ __ \/ ___/ _ \/ ___// /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/
Available commands: install Installs the project dependencies from the composer.lock file if present, require Adds required packages to your composer.json and installs them search Search for packages self-update Updates composer.phar to the latest version. status Show a list of locally modified packages update Updates your dependencies to the latest version according to composer.json, validate Validates a composer.json
![Page 17: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/17.jpg)
Problem
App config managementcomposer (Platform packages)
incenteev/composer-parameter-handler$ make build
![Page 19: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/19.jpg)
Step 2
“Defeat in detail”Divide and gather (DRY)
Keep things small + KISS
Design by contract
Leverage your architecture
![Page 20: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/20.jpg)
Opportunity: GlobalTech
![Page 21: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/21.jpg)
InsideRemove Flash... No! Ok but:
Let’s use the best technologyto do the job
AMF => plain HTTP via browser
Business Logic => Backend
Frontend UI => Flash
![Page 22: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/22.jpg)
Hypermedia API> POST /games/ + content
< 201 Created < Location /games/1
> GET /games/1
< 200 Ok < < <game> < <!-- ... --> < <links rel=”actionX” src=”...”></links> < <links rel=”actionY” src=”...”></links> < </game>
David Zuelke "Designing HTTP Interfaces and RESTful Web Services"
![Page 23: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/23.jpg)
Globally
![Page 24: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/24.jpg)
Implementation
Strategy Pattern
![Page 25: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/25.jpg)
Solutions
OAuth2
![Page 26: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/26.jpg)
Solutions
Backend App API
![Page 27: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/27.jpg)
Solutions
Product API
![Page 28: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/28.jpg)
The other way around
![Page 29: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/29.jpg)
Step 3
ConsolidateBackendAppSdkBundle
OAuth2ClientBundle
ApiBundle
AssetsBundle
Rinse and repeat...
![Page 30: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/30.jpg)
Step 4
Plan for the futur
![Page 31: Moving to a service oriented architecture from tightly coupled applicationsi xavier briand](https://reader033.fdocuments.us/reader033/viewer/2022060116/557ef634d8b42aa30a8b4e06/html5/thumbnails/31.jpg)
Question? (four 9)joind.in/9999
Symfony
We are hiring!experiencepoint.com/careers