Deploying large-scale service compositions on the cloud with the CHOReOS Enactment Engine Leonardo Alexandre Ferreira Leite Carlos Eduardo Moreira dos Santos Daniel de Angelis Cordeiro Marco Aurélio Gerosa Fabio Kon University of São Paulo 21th August 2014 Leonardo Leite (USP) Deploying large-scale... 21th August 2014 1 / 25
Service composition deployment Manual deployment is a time-consuming, error-prone and not reproducible process, mainly for distributed systems, such as services choreographies. Figure 3 - BPMN diagram of scenario 1 global choreography 5.1.2. Step 1 - Trip planning sub-choreography In this first step, the passenger is using his MID and home Internet connection to (pre)checkin and make a reservation at the airport car park. This process relies on services the MID Leonardo Leite (USP) Deploying large-scale... 21th August 2014 2 / 25 is
Large-scale deployment challenges Process Failures Scalability Heterogeneity Multiple organizations Adaptability Leonardo Leite (USP) Deploying large-scale... 21th August 2014 3 / 25
Goal Understand how a middleware can help in overcoming the challenges on large-scale choreography deployment. Leonardo Leite (USP) Deploying large-scale... 21th August 2014 4 / 25
The CHOReOS Enactment Engine (EE) Leonardo Leite (USP) Deploying large-scale... 21th August 2014 5 / 25
The EE and cloud computing models SaaS PaaS IaaS Service compositions Enactment Engine EC2 / OpenStack Leonardo Leite (USP) Deploying large-scale... 21th August 2014 6 / 25
EE execution environment Amazon EC2, OpenStack, etc. Enactment Engine Cloud REST Infrastructure provider SCP / S SH creates REST Target node EE client Con guration agent deploys Service Leonardo Leite (USP) Deploying large-scale... 21th August 2014 7 / 25
Choreography deployment specification Leonardo Leite (USP) Deploying large-scale... 21th August 2014 8 / 25
Service binding TravelAgency service depends on Airline service. EE invokes TravelAgency service S: s e t I n v o c a t i o n A d d r e s s ( A i r l i n e, Nimbus A i r l i n e, [ h t t p : / / 2 0 0. 1 4 7. 4 2. 1 4 3 / ws / ] ) Leonardo Leite (USP) Deploying large-scale... 21th August 2014 9 / 25
EE and the challenges on large-scale deployment Process Failures Scalability Heterogeneity Multiple organizations Adaptability Leonardo Leite (USP) Deploying large-scale... 21th August 2014 10 / 25
EE and the challenges on large-scale deployment Process Automation Remote interface (REST) Declarative description Virtualized infrastructure POST e n a c t m e n t e n g i n e / c h o r s Body : c h o r e o g r a p h y s p e c i f i c a t i o n XML POST e n a c t m e n t e n g i n e / c h o r s /1/ deployment What to do Not how to do R e p r o d u c i b l e p r o c e s s Leonardo Leite (USP) Deploying large-scale... 21th August 2014 11 / 25
EE and the challenges on large-scale deployment Failures Invoker Reservoir Graceful degradation Idempotence // R e s e r v o i r usage t r y c r e a t e node from I a a S p r o v i d e r c a t c h r e t r i e v e node from r e s e r v o i r f i l l r e s e r v o i r Leonardo Leite (USP) Deploying large-scale... 21th August 2014 12 / 25
EE and the challenges on large-scale deployment Scalability Concurrency Declarative description EC2 requests/second limit Leonardo Leite (USP) Deploying large-scale... 21th August 2014 13 / 25
EE and the challenges on large-scale deployment Heterogeneity Extension points: Infrastructure providers Supported: EC2, OpenStack Others: CloudStack Node selection policies (service node) Supported: AlwaysCreate, RoundRobin Others: QoS-aware Package types Supported: WAR, JAR Others: BPEL Service types Supported: SOAP Others: REST Leonardo Leite (USP) Deploying large-scale... 21th August 2014 14 / 25
EE and the challenges on large-scale deployment Multiple organizations Legacy/third-party services Multi-cloud deployment Leonardo Leite (USP) Deploying large-scale... 21th August 2014 15 / 25
EE and the challenges on large-scale deployment Adaptability Monitoring infrastructure deployment Choreography update Service migration Service replication 1 System state Adaptive logic Change system Target node Service Monitoring agent Enactment Engine Deploys 1 Helps on availability too Leonardo Leite (USP) Deploying large-scale... 21th August 2014 16 / 25
EE evaluation Leonardo Leite (USP) Deploying large-scale... 21th August 2014 17 / 25
EE vs ad-hoc deployment 15 services over 3 nodes. EE Development: 45 min Execution: 4 min Size: 180 LoC Java Ad-hoc Development: 9 hours Execution: 60 min Size: 100 LoC Shell Script, 220 LoC Java, and 85 LoC Ruby Leonardo Leite (USP) Deploying large-scale... 21th August 2014 18 / 25
Ad-hoc approach difficulties Many technologies Manual steps Typos The ad-hoc solution could even be better... but it could be so complex as the EE itself! Leonardo Leite (USP) Deploying large-scale... 21th August 2014 19 / 25
Scalability analysis Time (min) 40 35 30 25 20 15 10 5 0 200 / 10 600 / 30 1000 / 50 1400 / 70 1800 / 90 #Services / #VMs Leonardo Leite (USP) Deploying large-scale... 21th August 2014 20 / 25
Conclusions Leonardo Leite (USP) Deploying large-scale... 21th August 2014 21 / 25
Contributions The implementation of a middleware for automating the deployment of service compositions. A comparison, based on literature and on empirical evidences, between middleware-based and ad-hoc automated deployment solutions. Leonardo Leite (USP) Deploying large-scale... 21th August 2014 22 / 25
You are welcome! To use CHOReOS Enactment Engine in your research! To contribute to EE development! Web page: http://ccsl.ime.usp.br/enactmentengine Source code: https://github.com/choreos/enactment_engine Leonardo Leite (USP) Deploying large-scale... 21th August 2014 23 / 25
Sponsors Leonardo Leite (USP) Deploying large-scale... 21th August 2014 24 / 25
Thank you! Leonardo Alexandre Ferreira Leite http://www.ime.usp.br/~leofl leonardofl87@gmail.com Leonardo Leite (USP) Deploying large-scale... 21th August 2014 25 / 25