SlideShare une entreprise Scribd logo
1  sur  23
Plateforme ApplicativeZend PHP Cloud Kevin Schroeder Évangéliste Présenté par Maurice Kherlakian Consultant services professionnels Voir la vidéo correspondante : http://bit.ly/gJHCvs
À propos de Kevin  Passé : Programmation/Admin. réseau  Actuellement : Évangéliste/Auteur/Compositeur          @kpschrade
À propos de moi Passé : Programmation/Administrateur réseau/Consultant solutions web Présent : Consultant Services professionnels http://twitter.com/mkherlakian
Est-ce que ceci est un nouveau produit ? Non ! C’est une nouvelle façon de penser. Une solution intégrée comprenant :
Pourquoiutiliser la plateforme Applicative Zend PHP Cloud Gestionuniformisée Intégration avec des outils tierce partie Accès aux données cross-cloud Surveillance des applications PHP Configuration consistantesur les machines de Cloud
Composantes de la plateformeZend Cloud Services PlateformeCloud Service cross-cloud Services cloud natifs Surveillance app/plateforme Gestion de Cluster PHP Runtime Déploiement App Gestionconfig IntégrationEDI Gestion Cloud Infrastructure Cloud
Composants Zend PHP Cloud Platform SERVICES CLOUD COUCHE SERVICES CLOUD Services Cloud SimpleCloud Services Web COUCHES SERVICES FRAMEWORK Stockage Sécurité Auth RIA Virtualization Desktop Message Queue Accès Données MVC Mobile COUCHE SERVICES RUNTIME Intégration Serveurs Cloud Magasin Donnés Session Clustering Surveillance Application Gestion Cluster PHP Entreprise Deploiement Applications Gestion Configuration RDBMS Outils Services Cloud SYSTÈME D’EXPLOITATION GESTION CLOUD Surveillance Approvisionnement Auto-scaling Allocation Ressources Mesures Sécurité INFRASTRUCTURE CLOUD
Tâches définies Couplage léger des données Découverte de ressources Vous devrez changer votre façon de réfléchir
[object Object]
Construisez votre application sans valeurs codées en durDécouplage/Partition Utilisez des Files/Messages Utilisez des interfaces “non-connectées” (Stateless) (l’attente active est plus évolutive qu’une connexion inactive) Considérations
L’exemple
Fonctionnalités Cloud du Zend Framework Accès aux BD orientées documents Accèsà un service de file Accès aux services de stockage Gestion AWS via Zend_Service_Amazon_Ec2 Gestion Azure via Zend_Service_WindowsAzure
Si vousutilisezvotre EDI uniquement pour sesfonctionsd’assistance au codage… Un EDI est un amalgame de petites fonctions
Fonctionnalités Cloud de Zend Studio Intégration de la gestion de Cloud Intégration manipulation de données Cloud Intégrationplateforme de test Intégration ticketing/versionnement/suivi bug Intégrationoutils de débogage/profiling Intégration Zend Server/Zend Server Cluster Manager
Plus de fonctionnalitésàvenir
Fonctionnalité Cloud de Zend Server Gestion avec Zend Server Cluster Manager Surveillance des événements de plusieurs machines Code Tracing de plusieurs machines Session Clustering sur plusieurs machines Job Queue sur plusieurs machines Tarificationcloud sur plusieurs machines                             Get the Zend Server AMI!
L’exemple Évolutivité Fonctionnalité SimpleCloud File Documents Stockage Surveillance centralisée Tâches asynchrones Intégration Zend Studio Intégration Zend Server
Du code !
À noter Les détails de l’implémentation peuvent être mis en valeurs de config Mettez le moins possible de valeurs codées en dur Utilisez des getters, comme getDocumentClass, pour accéder à l’info spécifique de l’implémentation du fournisseur de service Ne dépendez pas uniquement d’une BD ; Envoyez des requêtes status (polling, attente active) à une file au lieu d’une BD Pourquoi ?  Car c’est la raison d’être d’une file
La suite… Essayez Zend Studio avec les outils Cloud Essayez SimpleCloud avec une plateforme Cloud Les prix AWS sont très bas pour les petites/courtes utilisations Essayez Zend Server (Essai 30 jours dispo) Essayez cette application (Zend Server requis) http://bit.ly/eschradeCloud

Contenu connexe

Plus de Zend by Rogue Wave Software

Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM iZend by Rogue Wave Software
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Zend by Rogue Wave Software
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)Zend by Rogue Wave Software
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Zend by Rogue Wave Software
 

Plus de Zend by Rogue Wave Software (20)

Develop microservices in php
Develop microservices in phpDevelop microservices in php
Develop microservices in php
 
Speed and security for your PHP application
Speed and security for your PHP applicationSpeed and security for your PHP application
Speed and security for your PHP application
 
Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM i
 
Building web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend ExpressiveBuilding web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend Expressive
 
To PHP 7 and beyond
To PHP 7 and beyondTo PHP 7 and beyond
To PHP 7 and beyond
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)
 
Middleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.xMiddleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.x
 
Ongoing management of your PHP 7 application
Ongoing management of your PHP 7 applicationOngoing management of your PHP 7 application
Ongoing management of your PHP 7 application
 
Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7
 
The Docker development template for PHP
The Docker development template for PHPThe Docker development template for PHP
The Docker development template for PHP
 
The most exciting features of PHP 7.1
The most exciting features of PHP 7.1The most exciting features of PHP 7.1
The most exciting features of PHP 7.1
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Deploying PHP apps on the cloud
Deploying PHP apps on the cloudDeploying PHP apps on the cloud
Deploying PHP apps on the cloud
 
Data is dead. Long live data!
Data is dead. Long live data! Data is dead. Long live data!
Data is dead. Long live data!
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
Resolving problems & high availability
Resolving problems & high availabilityResolving problems & high availability
Resolving problems & high availability
 
Developing apps faster
Developing apps fasterDeveloping apps faster
Developing apps faster
 

Développez, gérez et scalez vos applications PHP dans le Cloud

  • 1. Plateforme ApplicativeZend PHP Cloud Kevin Schroeder Évangéliste Présenté par Maurice Kherlakian Consultant services professionnels Voir la vidéo correspondante : http://bit.ly/gJHCvs
  • 2. À propos de Kevin Passé : Programmation/Admin. réseau Actuellement : Évangéliste/Auteur/Compositeur @kpschrade
  • 3. À propos de moi Passé : Programmation/Administrateur réseau/Consultant solutions web Présent : Consultant Services professionnels http://twitter.com/mkherlakian
  • 4. Est-ce que ceci est un nouveau produit ? Non ! C’est une nouvelle façon de penser. Une solution intégrée comprenant :
  • 5. Pourquoiutiliser la plateforme Applicative Zend PHP Cloud Gestionuniformisée Intégration avec des outils tierce partie Accès aux données cross-cloud Surveillance des applications PHP Configuration consistantesur les machines de Cloud
  • 6. Composantes de la plateformeZend Cloud Services PlateformeCloud Service cross-cloud Services cloud natifs Surveillance app/plateforme Gestion de Cluster PHP Runtime Déploiement App Gestionconfig IntégrationEDI Gestion Cloud Infrastructure Cloud
  • 7. Composants Zend PHP Cloud Platform SERVICES CLOUD COUCHE SERVICES CLOUD Services Cloud SimpleCloud Services Web COUCHES SERVICES FRAMEWORK Stockage Sécurité Auth RIA Virtualization Desktop Message Queue Accès Données MVC Mobile COUCHE SERVICES RUNTIME Intégration Serveurs Cloud Magasin Donnés Session Clustering Surveillance Application Gestion Cluster PHP Entreprise Deploiement Applications Gestion Configuration RDBMS Outils Services Cloud SYSTÈME D’EXPLOITATION GESTION CLOUD Surveillance Approvisionnement Auto-scaling Allocation Ressources Mesures Sécurité INFRASTRUCTURE CLOUD
  • 8. Tâches définies Couplage léger des données Découverte de ressources Vous devrez changer votre façon de réfléchir
  • 9.
  • 10. Construisez votre application sans valeurs codées en durDécouplage/Partition Utilisez des Files/Messages Utilisez des interfaces “non-connectées” (Stateless) (l’attente active est plus évolutive qu’une connexion inactive) Considérations
  • 12.
  • 13. Fonctionnalités Cloud du Zend Framework Accès aux BD orientées documents Accèsà un service de file Accès aux services de stockage Gestion AWS via Zend_Service_Amazon_Ec2 Gestion Azure via Zend_Service_WindowsAzure
  • 14.
  • 15. Si vousutilisezvotre EDI uniquement pour sesfonctionsd’assistance au codage… Un EDI est un amalgame de petites fonctions
  • 16. Fonctionnalités Cloud de Zend Studio Intégration de la gestion de Cloud Intégration manipulation de données Cloud Intégrationplateforme de test Intégration ticketing/versionnement/suivi bug Intégrationoutils de débogage/profiling Intégration Zend Server/Zend Server Cluster Manager
  • 18.
  • 19. Fonctionnalité Cloud de Zend Server Gestion avec Zend Server Cluster Manager Surveillance des événements de plusieurs machines Code Tracing de plusieurs machines Session Clustering sur plusieurs machines Job Queue sur plusieurs machines Tarificationcloud sur plusieurs machines Get the Zend Server AMI!
  • 20. L’exemple Évolutivité Fonctionnalité SimpleCloud File Documents Stockage Surveillance centralisée Tâches asynchrones Intégration Zend Studio Intégration Zend Server
  • 22. À noter Les détails de l’implémentation peuvent être mis en valeurs de config Mettez le moins possible de valeurs codées en dur Utilisez des getters, comme getDocumentClass, pour accéder à l’info spécifique de l’implémentation du fournisseur de service Ne dépendez pas uniquement d’une BD ; Envoyez des requêtes status (polling, attente active) à une file au lieu d’une BD Pourquoi ? Car c’est la raison d’être d’une file
  • 23. La suite… Essayez Zend Studio avec les outils Cloud Essayez SimpleCloud avec une plateforme Cloud Les prix AWS sont très bas pour les petites/courtes utilisations Essayez Zend Server (Essai 30 jours dispo) Essayez cette application (Zend Server requis) http://bit.ly/eschradeCloud
  • 24. Voir la vidéo correspondante : http://bit.ly/gJHCvs Blog de Kevin sur eschrade.com Suivez-nous ! Zend Technologies http://twitter.com/zend http://twitter.com/kpschrade(Kevin) http://twitter.com/mkherlakian (Maurice)

Notes de l'éditeur

  1. Est-cequececiest un nouveau produitqueZendoffre?Non. C’estune nouvelle façon de penser, une nouvelle façon de developper des soutionsintegrées avec des services dans le Cloud.Cloud relativement nouveau. Existedepuis 10 ans. Populairedepuis 3 ans. Beaucoup de battagemédiatiqueautour du cloud, et dansnotreindustrie avec toute nouvelle techno:Excitation -> désillusion (où on commence àvoirmythes v/s réalité) -> utilité (remontée)Cloud dans la phase remontéeactuellement -> phase productivité/utilité.Pas un environnementtypiqueauquelvousêtes habitués. D’habitude on achète les serveurs, on achète des licenses logicielles, serveursdans un centre (le vôtreou non), uneéquipe se charge de la gestion de la baie de serveurs, toute la maintenance attrayant aux serveurs/renouvellement.Le Cloud offre un environnementdanslequel la maintenance n’est pas nécessaire. Si qqchosecasse on jette et on recommence. On demarre un autreserveur. Tout estvirtualisé. On peutdonc tester une multitude de chose en dev.Doncest-cequeZendoffre un nouvelle plateforme? Non. Une nouvelle offre de service? Non.Une integration de tout cela par le biais de ZendServeur/Studio et Framework. Utilisez-vous Amazon? Azure? Zendoffreune solution qui peutfaciliter le developpementsurtou(te)s cesplateformes/revendeurs. De plus la plupart de cesrevendeurs (tous) offrent des APIs (services) quevouspouvezutiliser pour construirevos applications, pour acceder aux données, les stocker… Nouvelle façon de reflechir car nouvelle technologie. > Zendvoudraitfacilitercette transition et offrir des outilspermettant aux developpeurs de se familiariser plus rapidement avec le could. (eg: au lieu de web service, unecouched’abstractionpermettant de communiquer avec les services).
  2. Pourquoiutiliser le cloud?Gestionunifiéestandardisée -> unefois la plateforme applicative compléteelleoffriraunegestionunifiée. Uneseule place àpartir de laquelletoutevotreappli sera configurée.Outils tierce partie – dansZend Studio et serveur. Bcp de partenariats en place pour integrer PHP dans le cloud et en faire une solution qui offreunevaleurajoutéeCross cloud: accès aux données: tjs un problème, car on esttjsliés au systèmeauquell’on “parle” pour acceder aux données. On se retrouvesouvent en train de construire des couches d’abstraction. Zend PHP CP aide àl’accès aux ressources entre differentsrevendeurs en développant la couched’abstraction pour vous.Monitoring: Server. Très important car dans un environnementtraditionnel on regarde au niveau du serveur, et non a l’intérieur de l’appli PHP. Encore plus important dans le cloud car cen’est pas vous qui controlez les ressources. Doncilest important d’avoir le plsu de visibilite possible dansvotreappli.Configurations consistentes: Votreenvironnement: un gabarit. Cloud different, car vousdevezêtre en mesured’éteindre des serveurs, d’enrallumer, et les configurations devrontresterpareilles. Un autre champ danslequelZendapporte de la valeur.
  3. This is what our cloud platform looks likeEverything you need in order to take full advantage of cloud computing:Seamless path from development to productionAuto-scalingHigh Availability and fault toleranceCloud application services aware developmentPlatform-aware application monitoring Application portability across private and public cloudsSupport for self-managed infrastructuresStandardization for application and systems architecture-----------------------Bcp de composantesque nous avons déjà.Cluster manager, PHP runtime etc…Beaucoups de cesélémentssont en développement, maisgénéralementl’idéeest de sortir la gestiond’applications du domaine des admins réseauest de la faire entrer plus danscelui des développeurs.Zendcon: autoscaling de soluitons avec Rightscale(en parler). Nous observonsl’utilisations de serveurs pour en démarrer de nouveuxsibesoin. Donc, encore, solutions ne se limitant pas à PHP, maisaussi a une solution externe. Nous mettonsl’emphasebienevvidemmentsur PHP, et comment offrirune solution PHP (nous sommes la PHP company). Pour tout ce qui a trait aux services tel Amazon, Righscale, Azure etc. nous travaillons avec des partenaires.Beaucoup de cmoposantesdeveloppés, maisbcp de travail àvenir.
  4. Let’s drill down and see what technologies comprise the Zend cloud platformZend FrameworkCloud services support for ‘native’ cloud appsSimple Cloud for portable cloud appsZend Server and Zend Server Cluster ManagerEnterprise-grade stack, includes Zend FrameworkApp Management capabilities required to scale up/down and manage PHP apps in the cloudZend StudioIntegration with virtualization/cloud technologies for streamlining the development cycleIntegration with Zend Server for ease of setup and troubleshootingPartnering with cloud infrastructure and management vendors to provide a full solution---------Services Could: nous ne les offrons pas, mais nous y offronsaccès.
  5. Dev PHP habitué àreflechir en terme de requete/reponse -> problèmes de scaling(évolutivité)/découverte de ressources.Cloud – reflechir en termes de petites tàches qui doiventêtreexecutées. On peutenchainer des taches. Executer unetâchepresque partout.Couplage de donnéeslégerÉvolutivité en géneral: couplageserré (relations fortes entre données) nuitàl’évolutivité -> s’habitueràeffectuer des requtes pour données qui n’existent pas encore: ex: l’exemple don’t nous allonsparler. Evenementsn’apparaitront pas dansl’ordre.Découverte de ressourcesOn peut hard coder certaines choses maisdansl’absoluil on découvre des ressources en utilisant des mecanismestels les load balancers etc… exemplequel’onmontrera: pourrait, par le biaisd’une file (queue), avoir le traitementasynchrone de données qui se fait surune multitude de serveurs en backend avec lesquels nous comuniquons par le biais d’un répartiteur de charge(load balancer). Il faudraàce moment savoir quelserveur aura traité la demande…
  6. Perf: perf v/s évolutivité/redimensionnement: on parlegénéralement des deuxcommeallant main dans la main, maiscen’est pas toujoursnécessairementvrai. Performance = répondre de façonrapideàunerequête, évolutivité = répondre de façonrapide, independamment du nombre de connections que le systèmereçoit. (pas de dégradation). Évolutivité = problemestelaccès concurrent, tolérance aux pannes, etc…overhead de gestion de tout cela. Simplementprendre un appli et en faire uneappli cloud ne fonctionnera pas. Si traffic predictible pas besoin de cloud. Mais traffic ouil y a des pics non-mesurables, c’est la que le cloud devientinteressant. Il fautdoncque le systèmesoitévolutif.Pas de valeurscodées en dur: Zend Server peuts’enocuperà un certain point,aussidecouvrez les ressources.Découplage/partition: découplage de donnéesrelationnellesparcequedemande plus de gestion. Est-cequevosdonnéesdoivnetetrerelationnellesouest-cequevouspouvezutiliser des données non-relationellesà un certain degré?Files/messags. PHP dev habitués à BD. BD n’est pas un système de stockagetemporaire. Si probleme de BD, ajout de serveur, maisà part les problèmes de perfquecelaapporte, pourrait se retrouverdansune situation où les serveurs ne font rien. Files permettent de mettre des donnéesdans un endroittemporaire en attendant que les ressourcesdeviennentdisponibles.Faites usage de polling, car uneconnexion inactive consomme plus de ressourcesqued’etabliruneconnexion, verifier et fermer. Personnes se spécialisantutilisent polling cela ne donne pas la rapiditéquevousconnaissezmais tend a construireuneplateforme plus évolutive.
  7. Parlons des composantedque nous avonsutilisé:Simple cloud. Faispartir de ZF a partir de 1.11.
  8. StockageSupport Amazon/Azure/NirvanixQueueJobQueue/SQS/AzureDocument DB:SimpleDB/AzureBcp trop d’info pour cettepreso, pouvezvoirces services…
  9. Un dediteur de textpeutvous aider àvoiroùvosfichierssont. - Un EDI fait bcp plus quel’assistance au codage. Petites fonctions qui contribuentàvous (le dev) garderdanscetenvironnement pour toutesvosopérationssurvotrelogiciel.
  10. Integ. Gestion cloud: plugin AWS pour eclipsePlateforme test – phpUnitBug tracking/ticketing: SVN, Mylyn/JIRAIntégrationoutilsdéboggage/profil: Zend Debugger/profiler (Zend Server)Zend server/custer manager donnent info surce qui se passeàl’intérieur de notreappli.(Montrer module AWS dansZend Studio – gestion AMI, gestionSimpleDB)
  11. Demo Zend Server Cluster manager – montrer events, code tracing etc…Parler de session clsutering: importance quandserveursactivés/desactivésZend Server: ne veut pas utiliserparceque je ne veux pas payer. Tarfication cloud = basésurutilisationcomme Amazon
  12. Tachesasynchrones – éviter les requêteslongues (çatuel’évolutivité d’un système).
  13. Arrive surindex.php – formulaire (voirzend.com/framework)Structure des librairies (convention Java, reverse DNS)-> file upload -> extension zend Form -> montrerformulaireSoumissionformulaire -> file upload -> validation.Tâche: manager -> parle a des machines JQtachequel’on execute surcette machineTache (montertache) extension jobAbstract (ProcessImage)Tachepeutetreenvoyé a machine locale, a un autreserveur etc… utiliseuniquement HTTP. Peutmettrerepartiteur de charge àl’avant.OnchercheQueueAdapter/DocumentAdapter -> montrerconfig -> avoir le plus de configurabilitédans des fichiers de config. Passer d’Amazonà Azure sans changement de CODE.Tacheenvoie message a File. Ligne 21: retourneurl pour envoyer message à client -> execution sur un autreserveur. Manager serialize et envoie au backend.Queueprésente backend car classeserializée.Début: message processing demarré, fin processing completé -> changementicone.Stockage: filename à stocker dans S3 -> Stockagedans S3, SimpleDB. On retire la listedanssimpleDB avec le session id.Ligne 112: docClass name = retire le doc class name car different pour different adapteurs, maisutilisent la même interface.Utilisation S3 -> stockage temp et final des images.Index.php – ligne 23: stockage de la réponse, car la réponse nous ditquelserveurtraite la tâche. Important car nous pouvonsenvoyerversserveurutilisantrepartiteur, mais pas allerchercherstatut par répartiteur. Réponsedonne le serveur pour allerchercherstatut.Status.php -> check pour voirs’il y aun message dispo.Status.json.php -> receive all messages, send as jsonList.phpRetire les fichiers par le session nameFile.php:Lire l’image par amazon S3 et la montrer.