Home
D9.6 Automated deployment
Contents
1. services ILC war IDC war ILC DB Contract No FP7 317859 www artist project eu WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Spices Together SpikesTogetherPackag service configuration storageAccountConfiguration cloudServiceC ServiceConfiguration CloudConfiguration P al Standard webRoleConfigurati Web Role CloudOffering CloudNode Worker Role CloudOffering CloudNode WebConfig Cloud Cl workerRoleConfiguration service configuration WorkerConfig Cloud CloudConfiguratior configuration service Figure 23 Deployment model for LoB use case Project Title ARTIST Contract No FP7 317859 www artist project eu Page 38 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Deployment Tool Cloud targets for selected deployment model DEWSDeploymentOnGAE AWS uml Google App Engine Amazon Web Services Select deployment target Microsoft Azure Select target proyect Browse SA Cancel Figure 24 Deployment Tool Dialog As an example next figure Figure 25 shows the generated Google App Engine descriptors for each module in the DEWS deployment model For each module one customized appengine web xml descriptor is generated Ej gt eu artist usecases DEWS ARTIS amp gt deployment amp gt CCUI E appengine web xml amp gt DEWS Services E appengine
2. 1 7 Read the core meta model providing all the profiles stereotypes that are applicable on the target cloud platform meta models Transform the information coming from task 1 and visualize it using tree structures including checkboxes for enabling the user to make selections Obtain the user s selection through the checkboxes Transform user s selection into a UML compatible format by forming and populating query structures specifically created for this purpose Perform queries to each of the meta models representing the target cloud platforms Validate the results of the queries by assigning scores to each target cloud platform according to the level of compatibility with the user s requirements as set in step 4 Report the results to the user Each of these tasks except for the cloud features visualization Task 2 and the report of the validation results Task 7 are hidden from the end user Project Title ARTIST Contract No FP7 317859 www artist project eu Page 17 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 Core metamodel Target Platform metamodels Definition of Profiles Applied Profiles Definition of Stereotypes Applied Stereotypes Use results to Transform into Transform into Visualize Display results Figure 3 Sub tasks performed during the target selection process Visualize Display search results 2 2 1 Clo
3. D9 6 Automated Deployment Strategies Version v0 1 Draft Date 24 02 2015 This model describes Microsoft as the Cloud Provider There are basically two Cloud Offerings defined Windows Azure and Windows Azure Pack The former relates to the public cloud offering while the latter refers to the on premise private cloud offering The main offering of Microsoft is Windows Azure This offering contains about 18 software services Web Sites Mobile Services Cloud Services SQL Database HDInsight Cache Recovery Manager Media Services Service Bus Notification Hubs Scheduler Biztalk Services Active Directory MFA ExpressRoute Virtual Network and Traffic Manager Furthermore it contains three services categorized as hardware services Virtual Machines Storage and Backup In Azure there are many ways clients to deploy your application These are defined in the Deployment Service One can use the well known developer tools IDEs such as Visual Studio and or WebMatrix to deploy and or upload via FTP the application For Java based applications there is also a plugin created for the Eclipse environment Most of the times the easiest way to deploy is via the Management Portal However automating deployment would probably benefit most from the SDK available in CSharp Ruby Python Java and the Management tools that are provided either as a set of Powershell commandlets or a true CLI Deploying an application typically involves two Appl
4. Figure 1 ARTIST Overall Deployment process Figure 1 outlines the overall ARTIST deployment process By using the Cloud Target Selection tool cf Section 2 users can determine the Cloud providers that better fits their requirements expressed by selecting the Cloud services they are looking for Once the Cloud target has been selecting they can use CloudML ARTIST to model the concrete deployment requirements and topology for their application components cf Section 3 Finally they can use the deployment tool to generate target specific deployment descriptors from the former models cf Section 4 Project Title ARTIST Contract No FP7 317859 www artist project eu Page 13 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 1 4 Main Innovations The main focus of this deliverable is to report on the languages techniques and components applied to produce cloud based deployment models select suitable Cloud providers that offers required services and generate the deployment descriptors required to deliver to Cloud the migrated application Main innovations in this respect can be summarized as follows Cloud Target Selection The main innovations of Cloud Target Selection tool lie in the challenge of exploiting the CloudML Q ARTIST model structure and can be concluded as follows e tcontains a fully extensible mechanism which supports the filtering of the information contained within the meta models and pr
5. ModelLibrary CloudLibrary ModelLibrary CloudLibrary Profile GAECloudProfile Pp JD package import N package import 7 Petstore Deployment Topology GAE based Petstore Deployment profile application PetstoreBusiness PetstoreData PetstoreBusiness PetstoreData deploy deploy deploy deploy gAEF 1 o gAEF4 CloudNode CloudNode CloudNode CloudNode virtualization platform virtualization platform virtualization platform virtualization platform scaling Auto scaling Auto GJE based scaling Auto scaling Auto Refinement 9 ge GAEF1 GAEF4 middleware Java middleware Java autoScaledConfiguration appEngineDatastore CloudStorage CloudConfiquration CloudStorage dataStructure KeyValue AutoScaledConfiguration dataStructure KeyValue consistency Eventual maximumldleInstances 3 consistency Eventual a Deployment Topology of CAML Use Case b GAE based Deployment of CAML Use Case Figure 10 Reference use case deployed onto Google App Engine 3 2 Reusable Deployment Templates As CAML is based on UML its reuse mechanisms can be applied for cloud application deployments This is particularly useful for providing frequently occurring deployment patterns as predefined UML templates To show their usefulness and give first evidence of CAML s expressivity we developed several templates as reusable deployment blueprints most of them are based on Amazon s best practices We model
6. code bundles configuration files libraries etc to the Google App Engine To upload a Java based application one may either use appcfg command provided by the App Engine Java SDK or the Google Eclipse plugin This plug in comes basically with a UI for the appcfg command When using Java for the development the applications need to be packaged according to the war structure as defined by the JEE specification In addition to standard JEE configurations several Google App Engine specific deployment descriptor are available Some of them are required while others are optional In this respect it is important to consider that the Google App Engine offers generally two different kinds of instance types for which specific descriptors need to be provided So called Backend Instances are offered by the Google App Engine mainly to support long running background processes that are exempted from the 60 second deadline for HTTP requests to Default Instances For a detailed comparison of the two instance kinds the given table provides a good overview e g backends do not automatically scale they are billed for uptime rather than CPU usage etc e Deployment of applications to Default Instances Application Configuration O A Google App Engine Java application must have a descriptor called appengine web xml in its WAR in the WEB INF directory This descriptor Project Title ARTIST Contract No FP7 317859 www artist project eu Page 46 of
7. Page 14 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 Cloud infrastructure but only recently standardization initiatives to harmonize the deployment on the platform have started In this work we show how a common modelling language supporting deployment specifications UML combined with CloudML ARTIST can be exploited to generate the required deployment descriptors for a selection of Cloud providers i e Google App Engine Microsoft Azure by developing model to model transformations which convert deployment models compliant to UML CloudML ARTIST into those compliant to the specific Cloud meta models describing those descriptors A set of model to text serializers also developed in this work generate the descriptors This approach is generic and can be extended to support the deployment into any other Cloud provider with low effort Project Title ARTIST Contract No FP7 317859 www artist project eu Page 15 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 2 Cloud Target Selection Tool The Cloud Target Selection tool is an Eclipse plugin aiming at guiding the user through the complex process of making the final decision for the target platform of the migration of their application or application components This tool targets developers who have a good insight of the application s technical and functional needs but little knowledge about the services or the benefits c
8. The deployment activity is supported and configured by a set of deployment descriptors These descriptors personalized the deployment process by expressing concrete deployment configurations for the target Cloud environment and by configuring the required services Additionally the modernized components are deployed depending on the target bundled within specific deployment units which are compliant with formal deployment standards some of them Cloud specific OVF for VM packaging but other application specific EAR for J2EE platform The deployment process is typically Cloud provider specific driven by vendor specific procedures and mechanisms although supported by SDKs which offer tools that simplify the deployment process including GUls either standalone or integrated with popular IDEs or Web accessible Most of these deployment tools also offer command line scripts targeting advance users enabling a manual deployment process In the particular case of Cloud infrastructure providers there are public common libraries that offer a common SDK supporting deployment on a wide range of providers through the same interface such as Apache jClouds or libCloud Up to our knowledge there is no similar initiative concerning Cloud platforms although some attempts to standardize a common Cloud platform interface have already been started i e CAMP As a consequence the task to deploy a modernized application or certain components requir
9. 1 JEE type DatastoreKind 1 ApplicationContainer RubyOnRails Node Enumeration Enumeration OnPremiseNode OSKind DatastoreKind OnPremiseNode package memory Real 0 1 Linux Relational import CPU Real 0 1 Windows DocumentOriented memory 2 localDisk Real 0 1 CPU 1 7 i deploy operatingSystem OSKind 0 1 localDisk 4 operatingSystem Linux container JEE type relational b Deployment Viewpoint at Instance Level c Deployment Viewpoint at Type Level Figure 9 On premise deployment of reference use case It is based on the Petstore Application as introduced in ARTIST deliverable D9 1 12 Project Title ARTIST Contract No FP7 317859 www artist project eu Page 24 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 As the cloud nodes are specified as platform level offering we directly deployed the application components onto them Then in a second step we applied the Google App Engine profile and the respective stereotypes to refine the deployment model towards concrete cloud offerings provided by the Google App Engine As a result the modelled cloud nodes refer to the F1 and F4 instance types that host a Java based middleware The configuration attached to these cloud nodes constrains the maximum number of idle cloud nodes Finally Google App Engine s key value data store is employed for the required cloud storage capabilities
10. Figure 13 Deployment Tool process Generation of the application deployment PSM In this first step the Deployment Tool generates a model PSM for deploying the application in a selected target Cloud provider This model will contain all the information required to generate the deployment artefacts for the selected target Cloud provider This process requires the following input elements e An UML deployment model PSM of the application This model apart from describing the application itself and its constituting components distributed in an deployment layout i e UML nodes contains additional deployment information specified by using CloudML Q ARTIST profiles about O Selected target Cloud environment for deployment o Required Cloud target specific services or frameworks e g see deployment meta model description in Appendix C that require to be configured during the deployment o Deployment requirements that can be likely communicated in a platform independent way expressed using CloudML ARTIST see PI meta model in Appendix C If the user needs to specify platform specific deployment requirements she can do it using the CloudML ARTIST profile available for the selected target Cloud environment As depicted in the jError No se encuentra el origen de la referencia this model is fed into the Deployment Tool conceptualized in the picture as a M2M deployment pattern or a set of M2M deployment patterns The purpose of this
11. execute any task without it A Publish Settings file is an XML file which contains information about your subscription It contains information about all subscriptions associated with a user s Live Id i e all subscriptions for which a user is either an administrator or a co administrator as well as the certificates This allows easing deployment through Visual Studio or other tools that are able to work with these laaS The preferred way to deploy your infrastructure is through PowerShell There are two kinds of files relevant here e Deployment scripts Scripts like these setup the deployment The main concepts being created and or configured are O Affinity Group This is a logical construct associated with a geo region and defined at the subscription level O Availability Sets An Availability Set is a logical group to signify the need for Windows Azure to prevent a single point of failure for all VMs included in the set O Storage Account A storage account provides the access to Windows Azure storage within a geographic region There are three types of storage Blob Queue and Table in Windows Azure O Cloud Service This is a logical container including application code and configurations For Windows Azure laaS each VM is deployed to a service however a service can contain multiple VMs Placing multiple VMs into a service makes these VMs connected and visible to one another O Virtual Network Define settings of the Virtual Net
12. 7 dotNET_Assembly Folder 7 Python CloudApplicationPlatformDeploymentUnit PER e PlatformDeploymentUnit Type Ruby deploymentUnits g InfrastructureDeploymentUnit Type OVF VHD Figure 34 Deployment platform independent meta model for application perspective Those descriptors i e web xml for J2EE applications characterise the application itself but not the deployment configuration e g ApplicationDeploymentDescriptor such as the Google App Engine application xml In order to support its deployment each CloudApplication can be bundle into one or more CloudApplicationDeploymentUnits whose types could be either a CloudApplicationPlatformDeploymentUnit e g intended for deployment into a platform PaaS or a CloudApplicationInfrastructureDeploymentUnit e g intended for deployment into an infrastructure laaS Examples of platform and infrastructure deployment unit types are given in corresponding enumerations The existing relations between concepts of both meta models are not explicitly renderer in these above figures due to functional limitations on EMF framework but are they explicitly included in both meta models and commenting in the following see Figure 35 Project Title ARTIST Contract No FP7 317859 www artist project eu Page 57 of 62 D9 6 Automated Deployment Strategies Version v0 1 Draft Date 24 02 2015 deployment app ecor
13. ARTIST Contract No FP7 317859 www artist project eu Page 25 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 AWS based Web Deployment ein tine eiet DELE digest elasticLoadBalancing artifact al CloudService Business Tier d artifact d eploy deploy Z package import WebContainer deploy deploy E container JEE6 ModelLibrary aWSM3Medium aWSM3Medium CloudNode CloudNode EE autoScalingGroup IEEE ModelLibrary CloudLibrary WebDeploymentLibrary virtualization infrastructure CloudConfiguration virtualization infrastructure scaling Auto AutoScalingGroup scaling Auto AWSM3Medium minimumInstances 3 AWSM3Medium operatingSystem Linux adjustment 1 operatingSystem Linux region EU region EU availabilityZone A availabilityZone B rDSMaster rDSSlave P 7 CloudStorage CloudStorage 7 profile application dataStructure Relational dataStructure Relational consistency strict consistency strict package import Profile AWSCloudProfile Petstore Components 1 lt BusinessTier gt PetstoreBusiness DataTier gt PetstoreData gt component 8 component z PetstoreWeb Se Ka PetstoreDomain CE i manifestation manifestation manifestation artifact artifact d PetstoreBusiness PetstoreData Figure 11 Reusable Deployment Template fo
14. Cloud provider see Figure 33 A CloudProvider offers several CloudOfferings whose possible types are CloudPlatformOffering e g PaaS and CloudInfrastructureOffering e g laaS Although typically the relation between CloudProvider and CloudOffering is 1 1 we support the provider can offer more than one offering A CloudOffering is a collection of offered CloudServices and software Frameworks Framework types are e ApplicationFrameworks typically required third party frameworks including not only runtime libraries but other runtime applications required by the application to be deployed i e Spring Wordpress e ApplicationLanguageFrameworks baseline runtime frameworks supporting the execution of the deployed application specific to the language the application was implemented with i e J2SE NET The CloudServices are those Cloud provider specific individual services that constitute the offering portfolio These CloudServices could be of type e CloudHardwareServices are virtualised services offering hardware utilities e g laaS such as computing storage network or memory e CloudSoftwareServices are platform services offering software capabilities to deployed applications such as security persistence application containers etc For each CloudService in its offering the CloudProvider typically offers one or more CloudServiceClients to its customers as facilities to be installed and used on the customer side i e local comp
15. FP7 317859 www artist project eu Page d of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 5 2 Installation Instructons esses eene enne ener eterni ener nnn 34 5 3 User ELITE AE EE OE N EE E 34 5 3 1 Cloud Target Selection TOOR EE ES ep Ge GE e ee eret 34 5 3 2 Deplovment Tool SR EDE ER RE N tv tete eebe ee 35 5 4 Licensing information tet endet ee e ctae vea Ee Ae due sevens 41 5 5 BR GEGEE RE EE OR OE EE EDE 41 6 AGOMGCIUSIOMNS RE ER E EERS 42 T ie OE LL 43 APPENDIX A Analysis of the state of the art iss see es ee ss Ee Ee RA AA Ee Ge Re AA ee ee Ge Re de ee ee ee ee 45 APPENDIX B Analysis of deployment patterns and frameworks for selected Cloud providers 46 Google App Engine REM 46 Amazon WS EE 47 Microsoft AZU RE 51 APPENDIX C Analysis of platform independent deployment patterns and entities 53 Platform independent meta model for deployment patterns sis se se ee EE ER RA 54 Platform Domain Models for Cloud providers iss es ER Ee AA EE ER Ee AA ee EE Ee Ee ee 58 Table of Figures FIGURE 1 ARTIST OVERALL DEPLOYMENT PROCESS isses eene ee ee ee ee Ge Re ee Ge ee ee 13 FIGURE 2 CLOUD TARGET SELECTION TOOL USER INTERFACE esse se ese se se ee ee ee ee nnne ee ee 17 FIGURE 3 SUB TASKS PERFORMED DURING THE TARGET SELECTION PROCESS ees se ee ese se se ee es se ee ee ee se ee ee ee 18 FIGURE A PACKAGE DIAGRAM WITH RELATIONS OF UML MODEL S
16. ee ee 33 FIGURE 20 TOOLBAR OF THE VIEWS ees se ee ees se ee ee ee se ke ee ee ee Ge Re ee RA ee ee GR Ke ee ee ee Ge nnn ener ee ee 35 FIGURE 21 DEPLOYMENT TOOL CONTEXTUAL MENU 36 Project Title ARTIST Contract No FP7 317859 www artist project eu Page 5 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 FIGURE 22 DEPLOYMENT MODEL FOR DEWS USE CASE ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 37 FIGURE 23 DEPLOYMENT MODEL FOR LOB USE CASE ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 38 FIGURE 24 DEPLOYMENT TOOL Dao 39 FIGURE 25 GAE GENERATED DEPLOYMENT DESCRIPTORS FOR EACH MODULE OF DEWS USE CASE 39 FIGURE 26 GAE DEPLOYMENT DESCHRIPTOR 39 FIGURE 27 AZURE GENERATED DEPLOYMENT DESCRIPTORS AND SCRIPTS FOR EACH MODULE OF LOB USE CASE40 FIGURE 28 AZURE SERVICE DEFINITION DESCRIPTOR 40 FIGURE 29 AZURE SERVICE CONFIGURATION DESCHIPTOR 40 FIGURE 30 AZURE SERVICE DESCRIPTION ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 41 FIGURE 31 AWS DEPLOYMENT SERVICES ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 48 FIGURE 32 COMPATIBLE CLIENTS FOR AWS DEPLOYMENT SERVICES ssssssssssssessssnssrnnersnrenrsrenernrsresrrresresee 51 FIGURE 33 DEPLOYMENT PLATFORM INDEPENDENT META MODEL FOR CLOUD PROVIDER PERSPECTIVE 55 FIGURE 34 DEPLOYMENT PLAT
17. extended Again they indicate whether a feature exists but the features are grouped into service categories For instance in case of Infrastructure as a Service the Storage Service may support a number of storage types such as raw storage volume storage and block blobs If the user selects n features of a specific service type and the potential target platform provides m of them m lt n then score m n In any case O lt score lt 1 for every single query Final score for every potential platform will be sj s2 s n where s the score for the i query 2 2 2 2 View Data Model The Data model component is used by all the other components of the tool while it is independent from them As shown in Figure 5 it contains the basic class which is the ModelElement Every other class extends it While most classes do not have functional differences among them the declaration of so many distinct elements is essential in order for the tree viewer of the graphical user interface to be aware of how to present each item and for the UML parsing component to be aware of how to search for each one of them in the models in case user selects it In other words the whole component serves as the encoding and decoding mechanism between the specific UML entities and the data generically for user consuming Project Title ARTIST Contract No FP7 317859 www artist project eu Page 20 of 62 WD9 6 Automated Deployment Strategies Ve
18. model transformation techniques ARTIST Project 13 Binz T Breitenb ucher U Kopp O Leymann F TOSCA Portable Automated Deployment and Management of Cloud Applications In Advanced Web Services 2014 14 Ferry N Song H Rossini A Chauvel F and Solberg A CloudMF Applying MDE to Tame the Complexity of Managing Multi Cloud Applications In UCC 2014 15 Heidenreich F Johannes J Seifert M Wende C Closing the Gap between Modelling and Java In Proc SLE pp 374 383 2010 16 Bergmayr A Grossniklaus M Wimmer M Kappel G JUMP From Java Annotations to UML Profiles In Proc MoDELS pp 552 568 2014 17 G Edwards G Deng D C Schmidt A Gokhale and B Natarajan Model driven configuration and deployment of component middleware publish subscribe services in GPCE conf 2004 vol 3286 pp 337 360 18 l Manolescu M Brambilla S Ceri S Comai and P Fraternali Model driven design and deployment of service enabled web applications ACM Trans Internet Technol vol 5 no 3 pp 439 4789 Aug 2005 19 S Ceri P Fraternali R Acerbis A Bongio S Butti F Ciapessoni C Conserva R Elli D Elettronica P Milano and P L Da Vinci Architectural Issues and Solutions in the Development of Data Intensive Web Applications in VLDB conf 2003 20 R Mietzner A Metzger F Leymann and K Pohl Variability modelling to support customization and deployment of multi te
19. module declaration this M2MT creates a Google App Engine appengine web model from an UML model using the CloudML ARTIST profile for Google App Engine the core profile and the security profile The following ATL rule defines the mapping between an CloudNode instance of type GAE in the CloudMLQ ARTIST input deployment model and the AppengineWebAppType element in the output cloud target specific deployment model create an AppengineWebApp Module for each GAEInstanceType rule GAEInstanceType2AppehgineWebApp from s UMLMM InstanceSpecification s isGAEInstanceType to t AEWMM AppengineWebAppType TODO check what should be the name application lt s gt debug CloudNode getApplicationName module lt s getModuleName version 1 0 sessionsEnabled false sslEnabled if s declaresSecurityConcerns then true else false endif threadsafe lt s getThreadSafe asyncSessionPersistence lt thisModule gt createAsyncSessionPersistence s inboundServices lt if s declaresMailServiceInConfiguration then thisModule createInboundServices else OclUndefined endif systemProperties lt let properties Collection 0clAny s getSystemProperties in if not properties oclIsUndefined and not properties isEmpty then thisModule gt createSystemProperties properties else OclUndefined endif instanceClass lt if s declaresScaling debug declares scaling then s getInstanceClass else Oc
20. the ARTIST web site I Once the site has been loaded in the ARTIST category select Deployment Tool and install it 5 3 User Manual 5 3 1 Cloud Target Selection Tool In order to ensure the success of the tool s installation the user should try selecting Window Show View gt Other In the opening dialog with the available views there should be a new category added under the label Cloud Target Selection There the user can select between the two available or more upon extension views Double selection is also feasible The selected views will open but nothing will be displayed Having managed to get to this point means that the installation has been successful and the user can make the following steps in order to make use of the plug in 1 Go to one of the open views There on the upper right corner a toolbar appears containing a set of icons each one of them representing a specific action which is shown simply by rolling the mouse over each icon D7 2 3 Cloud services modelling and performance analysis framework ARTIST EU Project Project Title ARTIST Contract No FP7 317859 www artist project eu Page 34 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 A S General Features X amp Service Features Zb neralFeatures Select providers B General Features X Service Features m Oo v neralFeatures Clear current selection pou Per C General Featu
21. the component performs the queries resulting from the previous steps of the action and after having obtained and stored the results unloads one by one the UML resources So for each resource the action chain is load validate unload Processes the query results in order to make the final suggestion EI lt lt Java Package lt lt Java Package gt gt Bi eu artist migration cloudselection viewdatamodel Bi euartist migration cloudselection ui i B F lt lt Java Package 2 R2 Bi euartist migration cloudselection ui handlers lt lt Java Package gt gt R1 B lt lt Java Package gt gt f euartist migration cloudselection ui views tB euartist migration coudselection umImodelservice modelparsing Java Package tBeuartist migration coudselection umImodelservice validation Figure 4 Package diagram with relations of UML model service component A very important feature of the UML Model Service component is the fact that it performs the search over the core UML file in a generic way This means that the Java classes are unaware of the structure of the UML models to be queried in the highest possible degree The only information hardcoded in the classes is about the name of the two stereotypes investigated CommonFeatures and Service and about one Enumeration HighLevelEvaluation which is the datatype of some properties This means that possible changes in the cloud meta model will not ne
22. twofold interpretation of the core meta model of CloudML QQ ARTIST Each one of them presents a tree view containing information coming from the core meta model parsing e The first view Figure 6 comes from the applied stereotype CommonFeature With regard to the query types as discussed in Section 2 2 2 1 it contains features of Type1 e g monitoring support API Type2 e g scaleup supportsOCCI and Type3 e g Scope The second view comes from all the applied stereotypes which extend the stereotype Service and are shown in Figure 7 This view contains only features of Type3 However apart from the selectable features it exploits the view data model in such Say so as to contain information about the grouping of the applied stereotypes into different profiles laaS and PaaS are UML profiles included in the core profile In addition to these two views there is a third one which is responsible for presenting all the available providers It also enables the selection of some among these providers which will be the subjects of the research to be performed later on in the tool s usage Project Title ARTIST Contract No FP7 317859 www artist project eu Page 21 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 GeneralFeatures X Z amp O lt GeneralFeatures v scaleup IT scaleout IT freeTier IT gpuinstances loadBalancing v supportsOCCI Iv supportsMultitenancy
23. with two technical spaces Modelware and XMLware Basially the deployment scripts need to be encoded in the correct format which is XML whereas the common format for encoding models is XMI as standardized by the OMG Moreover they need to conform to the respective XML schemas provided by both Google App Engine and Microsoft Azure These XML schemas provide all the concepts to which correspondences from the concepts of CloudML ARTIST CAML need to be identified and implemented in terms of transformations Directly implementing a transformation that produces deployment scripts in XML format would require overcoming two challenges at once Hence we advocate a two step approach where in a first a model to model transformation is applied to translate between concepts of CloudML ARTIST CAML and the target cloud environment Then in a second step the produced model of the model to model transformation is translated into the encoding expected by the cloud environment To achieve such a two step approach an Ecore based metamodel is used as a bridge between the two technical spaces 15 16 In fact an Ecore based metamodel can be automatically generated from an XML schema while the parser and printer to translate between the technical spaces is provided by EMF Figure 16 summaries the use of Ecore based metamodels as a bridging technology The generated metamodel can be used as the target for model to model transformations This is exactly the approach we fol
24. 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 4 Deployment Tool 4 1 Functional description This section introduces the functional scope of the Deployment Tool and its deployment support and collects the main requirements that drive its design and development From a functional point of view the techniques and tools developed in this task in collaboration with the T9 2 CloudML specification from the application perspective and the T9 4 Target Generation offer to the end user the following features Ability to express deployment requirements and information on the modernized models that describes the migrated application or specific components O Ability to express deployment units i e separate deployment units corresponding to deployable components O Ability to express deployment patterns topologies i e to specify the deployment layout of components O Ability to express both platform and infrastructure requirements i e services or frameworks Ability to generate the deployment descriptors for the entire application or for individual components for the selected target Cloud environment o Deployment descriptors are editable and modifiable by end user using third party editors i e Eclipse XML Editors Ability to package deployment units for the entire application or for individual components compliant with the frameworks they were developed for platform or with the VM specificat
25. 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 which refers to the application configuration needs at least to specify the application ID and its version o Ecore based meta model for an overview in github e Backends Configuration o To add backend instances to an application a descriptor called backends xml is required At least a name needs to be specified for a backend instance o Ecore based meta model for an overview in github e Index Configuration O To go beyond indexes automatically defined by Google App Engine custom indexes can be specified by a dedicated descriptor called datastore indexes xml An index is basically defined over given properties of entities of a particular kind The properties are either in ascending or descending order o Ecore based meta model for an overview in github Amazon WS Amazon provides services at Infrastructure and Platform level Usually Infrastructure and Platform services are accessed via Management Console while SDKs command line tools and APIs are provided for access at programming level In general there are four ways to interact with Amazon Web Services AWS Management Console is a graphical user interface enabling user access to Amazon Web Services Most service features are supported by Management Console but not all of them AWS Command Line Interface CLI is a text based tool which manages multiple AWS services There are also other comm
26. D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 ARTIST FP7 317859 artist Advanced software based seRvice provisioning and migraTlon of legacy Software Deliverable D9 6 Automated Deployment Strategies Editor s Jesus Gorrofiogoitia Responsible Partner ATOS Status Version v1 0 Date 31 03 2015 Distribution level CO PU PU Project Title ARTIST Contract No FP7 317859 www artist project eu Page 1 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 Project Number FP7 317859 Project Title ARTIST Title of Deliverable Automated Deployment Strategies Due Date of Delivery to the EC 31 03 2015 Workpackage responsible for the Deliverable WP9 New software generation by forward engineering Editor s ATOS Contributor s TUWIEN SPIKES ICCS INRIA Reviewer s Kleopatra Konstanteli ICCS Approved by All Partners Recommended mandatory readers WP6 WP7 WP9 WP12 Abstract This deliverable comprises automatically executable transformations needed for deploying the modernized applications in specific Cloud infrastructures Keyword List Forward Engineering Model Transformation Deployment Licensing information Generally EPL open source indicated otherwise The document itself is delivered as a descr
27. E supportsFederation Advanced service level in E monitoring support VW api gt TY pricingPlan gt a certification gt E typeApporiented v pn scope MI public C private gt pnt availabilityZones Figure 6 General Features view Xj Tasks amp General Features amp Service Features X amp S o v laas Y C laaSStorageService n type gt n region v n replication type E Geo_Redundant F Read Access Geo Redundant F Locally Redundant v laasProcessingService gt n platform M n processorArchitecture Arch 64 Bit Arch 32 Bit M PaaS v amp RuntimeService gt pnt name gt pnt programmingLanguaje gt pn applicationFramework v CO ApplicationContainerService Figure 7 Service Features view Handlers In order to exploit the potentials provided by the view four handlers have been designed and developed Some of them can be used to handle events such as pressing one of the buttons appearing on the right upper corner of each view or executing a command incorporated to the menu The implemented handlers are Project Title ARTIST Contract No FP7 317859 www artist project eu Page 22 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 ProvidersFileHandler Handles the opening of the view containing the list of the available providers e ValidateCommonsHandler Initiates the process of making the validation for the selections in the general features vi
28. ERVICE COMPONENT sees esse ee ee es se se ee ee 19 FIGURE 5 CLASS DIAGRAM OF VIEW DATA Mont 21 FIGURE 6 GENERAL FEATURES VIEW 22 FIGURE 7 SERVICE FEATURES VIEW ees ees se ee ee es se ee ee es se ee ee ee ee ee Ge Re ee GR Re ee Ge Re ee Ge Ke ee AA S Ge ee 22 FIGURE 8 PLUG IN DEPENDENCIES FOR CLOUD TARGET SELECTION TOOL sees esse se ese se se ee se Re ee ee ee 23 FIGURE 9 ON PREMISE DEPLOYMENT OF REFERENCE USE CASE esse se ee es se ee ee ee se ee ee ee ee ee ee ee se ee ee ee ee ee ee 24 FIGURE 10 REFERENCE USE CASE DEPLOYED ONTO GOOGLE APP ENGINE sesse esse ee ese se se ene 25 FIGURE 11 REUSABLE DEPLOYMENT TEMPLATE FOR AMAZON ANS 26 FIGURE 12 DEPLOYMENT TOOL PROCESS esse ee ese se se ee ee se ke ee Ge Re ee AR AA Ge Re saai ee Ge AR ee ee ee 27 FIGURE 13 DEPLOYMENT TOOL PROCESS GENERATION OF THE APPLICATION DEPLOYMENT PSM 28 FIGURE 14 DEPLOYMENT TOOL PROCESS ARTEFACTS GENERATION cessere ener 29 FIGURE 15 DEPLOYMENT TOOL COMPONENTS ee ee se ae ee se Re enne sene ntes Ge nnne sensns sinana 29 FIGURE 16 ECORE BASED METAMODELS AS A BRIDGE BETWEEN MODELWARE AND XMLWARE ese 30 FIGURE 17 CLOUDML2DEPLOYMENT TRANSFORMER sees se se ee es se se ee ee Ge Re ee Ge Re estne esee nnns enin enn 31 FIGURE 18 PACKAGE STRUCTURE cesser ee se ee ee ee se ee ee Ge ee Ge AA ee ee ee ee EEEO R 33 FIGURE 19 DEPLOYMENT TOOL SUB PROJECTS ee ees se ee ee ee se ee ee ee se ke ee ee ee ee ee RA ee ee ee Ge ee
29. FORM INDEPENDENT META MODEL FOR APPLICATION PERSPECTIVE 57 FIGURE 35 CROSS REFERENCING META MODEL CONCEPTS FOR DEPLOYMENT ee ee ee ee nennen 58 FIGURE 36 GOOGLE APP ENGINE PDM SNIPPET ee ee nennen nennen sheer ee ee ee sss esent sr rea 59 FIGURE 37 AMAZON WEB SERVICE PDM SNIPPET 0sccescceccceececcsceecceeececescceeceeecucceseceeceeceueceseceeeeeees 60 FIGURE 38 MICROSOFT AZURE PDM SNIPPET ee ee ee nene nnne nee ee ee seres stesse reser sr reu 61 Table of Tables NO TABLE OF FIGURES ENTRIES FOUND Project Title ARTIST Contract No FP7 317859 www artist project eu Page 6 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 Terms and abbreviations ATL Atlas Transformation Language AWS Amazon Web Services CAML Cloud Application Modelling Language CCUI Command and Console User Interface DBMS Database Management System DEWS Distance Early Warning System DSL Domain Specific Language EAR Enterprise Archive EE Enterprise Edition EMF Eclipse Modelling Framework EPL Eclipse Public License GAE Google App Engine GUI Graphical User Interface laaS Infrastructure as a Service JAR Java Archive LoB Line of Business M2M Model to Model M2MT Model to Model Transformation M2T Model to Text MDTB Model Discovery Toolbox MUTB Model Understanding Toolbox OVF Open Virtualization Format PaaS Platfo
30. PENDIX A Analysis of the state of the art The deployment of web applications using MDE techniques has been tackled by several works in the last years For instance in 17 authors propose a model based approach to configure and deploy publish subscribe services in QoS enabled component middleware based on CORBA The proposal defines the language EQAL Event QoS Aspect Language which is used to configure and deploy services in QoS enabled component middlewares Thus this work is coupled to a particular technology publish subscribe middleware in CORBA and requires developers to define the EQAL definition to deal with their particular applications Instead we propose a more generic approach dealing with CloudML and particularizing for a set of concrete Cloud providers Furthermore our deployment process relies on a modernized application and a set of requirements which allows the generation of deployment definitions The works presented in 18 and 19 describe a high level language and methodology for designing and deploying Web applications using Web services The language allows designing web applications and web services as well as their deployment In the former case the deployment is done in the WebRatio Architecture whereas the latter can be deployed in any web service container As it can be seen this approach is mainly focused on web service architectures whereas we are targeting a broader deployment context considering different Clo
31. Tool components The main Deployment Tool components are depicted in Figure 15 The CloudML2Deployment Target Transformer processes the first step of the deployment descriptors generation described in Figure 13 while the Deployment Target Serializer obtains the serialized deployment descriptors as described in Figure 14 Both components exchange the cloud target specific deployment models obtained in the first step 4 2 2 Components description Generating deployment scripts for Google App Engine and Microsoft Azure from a deployment model expressed in CloudML ARTIST CAML requires overcoming the different encodings and Project Title ARTIST Contract No FP7 317859 www artist project eu Page 29 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 providing a conceptual mapping of the various concepts The latter is the basis for implementing a transformation to automate the generation of pertinent deployment scripts First we describe how we bridge the different encodings by providing an Ecore based metamodel as a bridging technology see Section 4 2 2 1 Then we introduce the mappings we have implemented in terms of model to model transformations where the target metamodels of them are the bridging metamodels see Section 4 2 2 2 4 2 2 1 Metamodels for Bridging the Technical Spaces To generate deployment scripts for Google App Engine and Microsoft Azure from a deployment model we are confronted
32. able DeploymentRecipes which automates the installation of predefined frameworks typically into CloudInfrastructureVirtuallmages Another kind of ServiceConfigurationDescriptor is the EnvironmentDescriptor which enables the specification of the environment within the application is running through the setting of environment variables Finally this meta model also includes a set of enumerations that provide concrete instances for some entities referenced in the meta model Project Title ARTIST Contract No FP7 317859 www artist project eu Page 56 of 62 D9 6 Automated Deployment Strategies Version vO 1 Draft Date 24 02 2015 The PI meta model application owner perspective support for deployment describes all those deployment concepts and entities concerning the application owner Figure 34 A CloudApplication comprises a set of ApplicationComponents kind or CloudApplications as well This distinction is only required to support composability on deployment Either the application itself or the individual components can be deployed separately depending on the owner needs Each CloudApplication can be configured by some ApplicationDescriptors subtypes of Descriptor 0 comprisedComponents lt lt enumeration gt gt E CloudApplicatio T ege isConfiguredBy o EFRpplicstionDeseripton 2 ProgrammingLanguage c name EString 5 language ProgrammingLanguage Git SVN
33. and line tools that enable connection to and communication with AWS services but each of them manages a single service Software Development Kits SDKs SDKs provide a way to programmatically access Amazon s services simply by adding class libraries to the application s code and using them in order to communicate with the desired service features Low Level APIs Query REST and SOAP APIs Query and REST APIs use the standard components of HTTP request messages but in a different way Their difference is that REST APIs use the HTTP methods in order to describe the action to be performed while in Query APIs the action is described through parameter values together with the data the action will be performed on On the other hand SOAP APIs use SOAP xml documents constructed as another layer on top of the HTTP protocol Deploying an application There are four possible ways to deploy an application Starting from Elastic Beanstalk see Figure 31 below and descending following the direction to the right the user gains control of the deployment and execution management but gives up in automation Access to these deployment tools is given via Management Console and SDKs or CLI Project Title ARTIST Contract No FP7 317859 www artist project eu Page 47 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Higher level Services Do it yourself EA J AWS Elastic AWS AWS Beanstalk OpsWorks CloudFormat
34. ategies Version v1 0 Final Date 31 03 2014 eu artist migration cloudselection gt m JRE System Library JavaSE 1 7 gt m Plug in Dependencies Y src gt eu artist migration cloudselection ui gt eu artist migration cloudselection ui handlers gt f eu artist migration cloudselection ui views gt eu artist migration cloudselection viewdatamodel gt eu artist migration coudselection umlmodelservice modelparsing gt 83 eu artist migration coudselection umlmodelservice validation amp icons V META INF MANIFEST MF ei build properties Jo plugin xml E Readme txt Figure 18 Package structure 5 1 2 Deployment Tool The Deployment Tool components are packaged either as Eclipse plugins or Eclipse projects These plugins are shown in the next Figure 19 S eu artist migration deployment ARTIST Tooling master y gt eu artist migration deployment azure service configuration ARTIST Tooling master E gt eu artist migration deployment azure service definition ARTIST Tooling master G eu artist migration deployment azure service descriptor ARTIST Tooling master E gt eu artist migration deployment azure test ARTIST Tooling master eu artist migration deployment azure transformation ARTIST Tooling master ley eu artist migration deployment feature ARTIST Tooling master G eu artist migration deployment gae appengine web app ARTIST Tooling master 54 gt eu artist migration deployment gae
35. ations we have proposed in this document a two stages model driven approach that makes intensive usage of CloudML ARTIST modelling support and both M2M and M2T transformation techniques in order to generate the artefacts required to deploy a cloudified application see Section 4 2 1 We have also analysed in detail the current deployment patterns and frameworks supported by the target ARTIST Cloud providers see APPENDIX B identifying their main deployment concepts and entities Based on this analysis we have created a platform independent PI meta model see Appendix C which describes the main deployment concepts and entities and their relationships both from the Cloud provider and application owner perspective regardless of any platform specific concern Using this PI meta model we have instantiate platform domain models for each of the three ARTIST selected target Cloud providers see Appendix C This PI meta model identifies an information model for Cloud deployment This information model has influenced the development of the CloudML 9 ARTIST in order to enable ARTIST to provide model driven automated deployment support see section 2 In this regards we have identified entities on the deployment meta model already included in the CloudML Q ARTIST and other entities that should be included in future releases of this profile We have described a generic and wide enough modelling approach to specify Cloud deployment requirements an
36. cessarily indicate changes to the Cloud Target Selection tool Furthermore it provides the tool with the benefit of extensibility in the future more profiles can be used as input for constructing different views containing different types of features for the user to select without affecting the implementation for the already included profiles Project Title ARTIST Contract No FP7 317859 www artist project eu Page 19 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Another issue to be discussed is the way the scores are assigned to each target platform according to the query results The score assigning process is different for the detected types of queries and answers e Typel1 High level evaluation features queries These queries aim at validating over features which are of type HighLevelEvaluation This is an enumeration allowing three values poor average extensive If the user requests for such a feature then the score assignment is defined as case poor score 0 o Case average score 0 5 o Case extensive score 1 e Type2 Boolean feature queries These queries aim at indicating whether a feature or service exists or not The possible answers are translated into scores as o if exists score 1 o if does not exist score 0 e Type3 Multivalued element queries These queries apply in the case of service based evaluation and could apply in other views too if
37. ct ARTIST Tooling tree master migration modernization eu artist migration modernisation dt model m odel PIMeta modelv0 3 CloudOfferingPDM X platform resource eu artist migration modernisation dt model model Cloud Provider Microsoft Cloud Platform Offering Windows Azure Cloud Software Service Web Sites Cloud Software Service Mobile Services Cloud Software Service Cloud Services Cloud Software Service SQL Database Cloud Software Service HDInsight Cloud Software Service Cache Cloud Software Service Recovery Manager Cloud Software Service Media Services Cloud Software Service Service Bus Cloud Software Service Notification Hubs Cloud Software Service Scheduler Cloud Software Service Biztalk Services Cloud Software Service Active Directory Cloud Software Service Multi Factor Authentication Cloud Software Service ExpressRoute Cloud Software Service Virtual Network Cloud Software Service Traffic Manager Cloud Hardware Service Virtual Machines Cloud Deployment Service Azure Deployment Service Application Deployment Descriptor Service Configuration File Application Deployment Descriptor Service Definition File Descriptor Entry Name Descriptor Entry TopologyChangeDiscovery Descriptor Entry SchemaVersion Descriptor Entry UpgradeDomainCount Figure 38 Microsoft Azure PDM snippet Project Title ARTIST Contract No FP7 317859 www artist project eu Page 61 of 62
38. d specifications at model level and their concretization for specific Cloud offerings making use of reusable deployment templates see Section 3 2 We have also provided the functional and technical specifications of the two ARTIST tools supporting the deployment to Cloud the Cloud Target Selection Tool see section 2 and the Deployment Selection Tool see Section 4 The former relies on the Cloud specific profiled meta models shipped within CloudML QARTIST Therefore by adding new CloudML Q ARTIST meta models describing other Cloud providers the Cloud Target Selection Tool will be seamlessly extended to support them as well The latter can be easily extended as well with little effort to generate deployment descriptors for additional Cloud offerings since its approach is generic enough and relies on the homogenous modelling support provided by CloudML ARTIST Project Title ARTIST Contract No FP7 317859 www artist project eu Page 42 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 7 References 1 G Baryannis and P Garefalakis Lifecycle management of service based applications on multi clouds a research roadmap in MultiCloud conf 2013 pp 13 20 Bergmayr A Grossniklaus M Wimmer M Kappel G Cloud Modelling Languages by Example In SOCA 2014 3 Bergmayr A Bruneliere H C anovas Izquierdo J L Gorrofiogoitia J Kousiouris G Kyriazis D Langer P Menyc
39. dels e eu artist migration deployment features packages all Deployment Tool plugins as a single Eclipse feature e eu artist migration deployment gae appengine web app provides the Google App Engine web app definition metamodel its Java entities and EMF based helper classes to serialize the Google App Engine web application descriptor appengine web xml e eu artist migration deployment gae transformation provides Java helpers and ATL M2M transformations to migrate from deployment model instances of CloudML ARTIST to the Google App Engine web application definition metamodel 5 2 Installation instructions The Cloud Target Selection Tool plug in has been tested on of Eclipse Kepler SR2 Java v7 is required Before installing this tool the user should download and install the UML2 plugin as well as the CloudML ARTIST plugin The next step is to copy the Cloud Target Selection Tool plugins on the dropins folder of the Eclipse installation The Deployment Tool is bundle as a zip file that contains the Deployment Tool feature and its plugins In order to install them just unzip DT zip into the Eclipse folder and start Eclipse Alternatively Deployment Tool can be installed through the ARTIST update site Go to Help gt Install New Software select ARTIST in the Work with combo If ARTIST update site is not available click on Add gt Archive and browse your local file system to locate the ARTIST update site you have downloaded from
40. derived 1 3 Fitting into the overall ARTIST solution In the following we describe from a functional point of view how the Deployment Tool fits into the overall ARTIST migration tool suite The Deployment Tool is developed in the context of WP9 and considered as part of the forward engineering process Models reverse engineered by the MDTB and the MUTB both are provided by WP8 and modernized by the MCF are considered as input of modelling the deployment In fact the component viewpoint is of primarily interest for producing deployment models Components are materialized by artefacts that are deployed onto a Cloud environment Hence the quality of the reverse engineered and modernized components plays a crucial role Only if they are appropriately designed the quality of the deployment models will be sufficient and useful to generate deployment scripts required for initiating the resource provisioning at the target cloud environment While producing deployment models is considered to be mainly a manual task the generation of deployment scripts for a certain cloud environment is supported by dedicated model transformations To select an appropriate cloud provider and guide the developer through this complex decision making process the Cloud Target Selection tool is provided It builds on information captured by CloudML QQ ARTIST developed in WP7 Deployment Bp Descriptors Generation Cloud Target Deployment Selection Modelling
41. e Blue colored concepts are those Cloud provider related concepts NOT included in CloudML Q ARTIST e Yellow colored concepts are those application owner related concepts NOT included in CloudML Q ARTIST 17 http download eclipse org modeling emf emf javadoc 2 9 0 org eclipse emf ecore package summary html details Project Title ARTIST Contract No FP7 317859 www artist project eu Page 54 of 62 WD9 6 Automated Deployment Strategies O 1 usesAccount 0 supportedClients Version v1 0 Final Date 31 03 2014 7 LoadBalance UI ER Muttiplelnstances MemoryOptimized StorageOptimized EquiredServices ER 53 supportedLanguages ProgrammingLanguage configuredBy 0 entries 0 optional EBoolean 5 ref EString offerings 1 Ei uerg c name EString A LE supportedLanguages ProgrammingLanguage Bly Django Struts WordPress Umbraco DotNetNuke Drupal CakePHP Express CSharp JavaScript ASPNET Figure 33 Deployment platform independent meta model for Cloud provider perspective Project Title ARTIST Page 55 of 62 Contract No FP7 317859 www artist project eu D9 6 Automated Deployment Strategies Version v0 1 Draft Date 24 02 2015 The PI meta model for Cloud provider perspective support for deployment describes all those deployment concepts and entities concerning the
42. e X deployment app ecorediag 7 platform resource eu artist migration modernisation dt model modeUPIMetamodelvO 3 deployment app ecore 7 deployment app B CloudApplication ZS deploymentUnits CloudApplicationDeploymentUnit language ProgrammingLanguage o name EString requiredFrameworks ApplicationFramework hostedOnOffering CloudOffering requiredServices CloudService comprisedComponents ApplicationComponent x isConfiguredBy ApplicationDescriptor H GloudApplicationDeploymentUnit isConfiguredBy DeploymentDescriptor configureServices ServiceConfigurationDescriptor PlatformDeploymentUnitType H ApplicationComponent CloudApplication 2 ProgrammingLanguage D CloudApplicationPlatformDeploymentUnit gt CloudApplicationDeploymentUnit D CloudApplicationInfrastructureDeploymentUnit gt CloudApplicationDeploymentUnit Figure 35 Cross referencing meta model concepts for deployment As shown in Figure 35 the deployment platform independent meta model for application perspective imports and references concepts defined in the meta model for Cloud provider perspective In particular a CloudApplication may require third party ApplicationFrameworks and CloudServices offered by the CloudOffering where will be hosted The CloudApplicationDeploymentUnit is configured by DeploymentDescriptors and also configures required CloudServices through ServiceConfigurationDescriptors These C
43. e lt AzureFallbackToDeleteAndRecreateIfUpgradeFails gt lt AzureHostedServiceLabel gt lt AzureHostedServiceLabel gt lt AzureHostedServiceName gt SpikesTogether lt AzureHostedServiceName gt lt AzureEnableIntelliTrace gt false lt AzureEnableIntelliTrace gt lt AzureEnableProfiling gt false lt AzureEnableProfiling gt lt AzureServiceConfiguration gt Cloud lt AzureServiceConfiguration gt lt AzureSolutionConfiguration gt False lt AzureSolutionConfiguration gt lt AzureStorageAccountName gt ar tists torage lt AzureStorageAccountName gt lt AzureAppendTimestampToDeploymentLabel gt true lt AzureAppendTimestampToDeploymentLabel gt lt PropertyGroup gt lt Project gt Figure 30 Azure service description 5 4 Licensing information Both Cloud Target Selection Tool and the Deployment Tool are released under the Eclipse Public License EPL which is a known as a commercial friendly open source license This should facilitate the future potential reuse and integration of these tools by external partners 5 5 Download The sources of the Cloud Target Selection Tool and the Deployment Tool are available in the public Github ARTIST repository at the following location source Tooling migration modernization deployment ww https www eclipse org legal epl v10 html P https github com artist project ARTIST Project Title ARTIST Contract No FP7 317859 www artist project eu Page 41 of 62 WD9 6 Automated Deploym
44. ent Strategies Version v1 0 Final Date 31 03 2014 6 Conclusions This document introduces the theoretical functional and technical framework for the ARTIST deployment strategies to the Cloud which enables the specification of the application deployment requirements the selection of suitable Cloud target environments and the automation of the deployment support In the document we elaborate on the scope and motivation for model driven automated deployment strategies in the context of the ARTIST methodology during the modernisation activity of the migration phase We elaborate the functional scope of the modelling language the Cloud Target Selection Tool and the Deployment Tool focusing on the model driven specification of deployment models the selection of the Cloud target environment and the generation of required deployment descriptors For practical reasons we restrict the deployment support for those target Cloud providers required by ARTIST use cases namely Google App Engine and Microsoft Azure although the proposed model driven automated deployment approach is generic enough as to be easily extended to support any other Cloud infrastructure or platform provider We have analysed and reported on similar or related model driven deployment strategies conducted in the scientific research see APPENDIX A On the basis of these findings and aligned to other ARTIST techniques on model driven modernisation of non cloud compatible applic
45. ent vocabulary This module produces as output e The specific deployment models for the selected cloud target These models are concrete instances of the cloud target specific meta models In particular Google App Engine requires one concrete deployment descriptor for Java based applications i e appengine web whose concrete model is an instance of the Google App Engine AppEngineWeb metamodel Microsoft Azure requires different service descriptors configuration definition and description whereby three different models as instances of Microsoft Azure service configuration definition and description are created In practice different ATL modules are specialized to create one single output deployment descriptor model As such to generate the different Microsoft Azure descriptors different ATL modules are invoked in sequence The following code snippet contains the ATL module declaration for the CloudM2GAE transformation which describes the input and out signature of the module nsURI AEWMM http nsURI UMLMM http www eclipse org uml2 4 0 0 UML jine web app 4 GAEP Google App Engine Profile CMLCP CloudML ARTIST Core Profile module caml2gaeweb create AEWM AEWMM from UMLM UMLMM GAEP UMLMM CMLCP UMLMM SECP UMLMM Project Title ARTIST Contract No FP7 317859 www artist project eu Page 31 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 As seen in the
46. environment User has also the choice of creating and uploading his own AMI There are many EC2 instance types according to user s needs for size computing power etc Except for APIs and CLI all instance configurations can be made through the supporting Management Console In order to use Amazon EC2 service one must take under consideration the following features Key pairs Temporary and persistent storage volumes Physical locations for resources regions and Availability zones Security groups that function as a firewall Elastic IP addresses 6 tags metadata assigned to EC2 resources So using this strategy every infrastructure component used for the deployment compute storage networking load balancing etc must be configured manually Ur DUET Next table in Figure 32 describes all the possible ways for accessing the majority of Amazon Web Services including the most important ones in terms of infrastructure provisioning management and automating the application deployment Project Title ARTIST Contract No FP7 317859 www artist project eu Page 50 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 a O MESES ES VESES ES Figure 32 Compatible clients for AWS Deployment Services Microsoft Azure There are three ways to access a Windows Azure environment to perform management tasks such as deploying and removing roles and managing other services e The first is t
47. er use Modelling Cloud based Deployments in UML Current cloud modelling approaches 2 address the diversity of cloud environments by introducing a considerable set of modelling concepts in terms of novel domain specific languages At the same time general purpose languages such as UML provide modelling concepts to represent software platform and infrastructure artefacts from different viewpoints where the deployment view is of particular relevance for specifying the distribution of application components on the targeted cloud environments The generic nature of UML s deployment language calls for a cloud specific extension to capture the plethora of cloud services at the modelling level For that reason we developed the Cloud Application Modelling Language CAML as part of CloudML ARTIST to enable cloud based deployments to be specified directly in UML This is especially beneficial for migration scenarios where reverse engineered UML models are tailored towards a selected cloud environment as it is advocated by ARTIST Deployment Tools for the Cloud As it is described in this document see APPENDIX A and B the existence of a plethora of Cloud providers with their offerings and services imposes a diversity of deployment approaches interfaces and services Initiatives to harmonize this diversity offering a common deployment interface have focused mainly on supporting the Project Title ARTIST Contract No FP7 317859 www artist project eu
48. es for most of the Cloud environments either infrastructure or platform the elaboration of a set of artefacts supporting the deployment process itself e One or more deployment descriptors which are typically Cloud provider specific e One or more deployment units i e bundles which are either application e g framework or Cloud provider specific e One or more deployment scripts i e invocations of a deployment SDK Before supporting the deployment process itself application owners requires identifying the Cloud target provider and its offering based on the selection of Cloud services required by the application In this context the Cloud Target Selection Tool supports the application owner in the identification of required Cloud services and the matching of these requirements against the available Cloud provides identified by the CloudML Q ARTIST models available Moreover the Model Driven deployment approach described in this document relies on the availability of deployment models for the application These models include generic deployment specifications based on UML complemented with CloudML ARTIST and specifications Cloud provider specifications based on CloudML ARTIST http jclouds apache org http libcloud apache org https www oasis open org committees tc home php wg abbrev camp Project Title ARTIST Contract No FP7 317859 www artist project eu Page 11 of 62 D9 6 Automatic Deployment Strateg
49. ew e ValidateServiceHandler Initiates the process of making validation for the selections in the Service Features view e ResultsHandler Shows the result to the user 2 2 3 Technical specification The Cloud Target Selection tool has been implemented as an Eclipse plugin and has been tested against Eclipse Java EE IDE version Kepler Service Release It requires Java v7 It extends the Eclipse IDE by implementing commands and views as well as contributing to the main menu In addition it uses uml2 resources in order to parse UML profiles Another plugin used is the CloudML Q ARTIST plugin which is responsible for providing the metamodel on which the target selection is based As a result the required plug ins are shown in Figure 8 X org eclipse ui 3 org eclipse core runtime 0 0 0 org eclipse uml2 umL resources 0 0 0 eu artist migration tes cloudmlartist 1 0 0 Figure 8 Plug in dependencies for Cloud Target Selection Tool 3 Modelling Deployment in UML General purpose languages such as UML provide modelling concepts to represent software platform and infrastructure artefacts from different viewpoints where the deployment view is of particular relevance for specifying the distribution of software components on the targeted cloud environments Providing extensions to UML that satisfy current cloud modelling requirements appears beneficial especially when cloud oriented migration scenarios 3 need to be su
50. f tasks to be performed it is used to store information which will eventually be used by every other component of the tool Project Title ARTIST Contract No FP7 317859 www artist project eu Page 18 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 2 2 2 Components description 2 22 1 UML Model Service This component is involved in any task that includes UML file handling or interaction with UML resources and model elements More precisely user actions that trigger classes from this package are referring to the corresponding user actions as described in section 2 1 Action 1 When the user demands for a view to open this component is accessed in order to Load the UML resources R1 in Figure 4 e Perform a search over these resources in order to find services and features to display to the user During this search applied instances of the stereotypes CommonFeatures and Service are to be found Translate the results into view data model elements R2 in Figure 4 Action 4 When the user asks for a validation to be made this component Gets as input all the user requests R1 in Figure 4 Translates these requests into UML compatible requests This step requires the definition of structures for allowing different types of model queries to be generated and stored Loads one by one the UML resources of the potential cloud target platforms For each loaded resource
51. f the application is still under users control One of CloudFormation s interesting features is the allowance of scripts to be executed at the initial boot of the instantiated resource In addition some helping scripts are available which among other functions automate the essential download and installation of files and packages as well as with signalling the stack creation workflow that the application is up and running So the main steps for deploying an application in an existing or an under construction stack are to get application package onto a downloadable location include userdata in the CloudFormation JSON file and execute them using the corresponding helper script provide location to download source files and zips in the metadata section UU BOND Project Title ARTIST Contract No FP7 317859 www artist project eu Page 49 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 There are some differences between deployment in linux and Windows based AMISs but the main concept remains the same Note CloudFormation is also accessible via AWS Toolkit for Visual Studio and Eclipse as a user friendly solution Manual deployment by infrastructure resource accessing and managing direct use of services Amazon EC2 instances are the virtual machine instances that form the fundamental compute block of a deployment environment Instances are created from AMIs which contain a pre defined operating
52. first step is to produce a platform specific deployment model for the application that personalises all the deployment requirements according to the selected target Cloud environment In order words a set of M2M transformations convert an instance of UML deployment meta model annotated with CloudML Q ARTIST profiles into one or more instances compliant to one or more cloud target specific meta models that describe the deployment of the application into the concrete cloud target offering Project Title ARTIST Contract No FP7 317859 www artist project eu Page 28 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 In the second step see Figure 14 below the Deployment Tool applies a set of M2T transformations to the application deployment model PSM to obtain the target specific deployment descriptors Additionally the Deployment Tool can pack these descriptors with the migrated compilation units provided as input to generate deployment units not depicted in the picture Besides a similar technique based on M2T transformations can be used to generate target specific deployment scripts which are functionally described in previous sections Cloud target Cloud target Deployment Deployment PSM Descriptors Scripts Figure 14 Deployment Tool process Artefacts generation Deployment Tool CloudML2DeploymentTarget Transformer DeploymentTarget Serializer Figure 15 Deployment
53. for each role The default extension for the service definition file is csdef The main concepts defined here are those of O Web Role Web Application Programming O Worker Role Background processing e The Service Configuration file specifies the number of instances to deploy for each role and provides values for any configuration settings declared in the service definition file The default extension for the service configuration file is cscfg The most important concepts here are O Role specifies the number of role instances to deploy for each role in the service the values of any configuration settings and the thumbprints for any certificates associated with a role Oo NetworkConfiguration deployment of cloud services in Virtual Networks also important here are configurations related to access control Typically multiple Service Configuration files are used For example one for testing locally on the Azure emulator and a number of additional ones for deploying onto the Azure cloud subscription either test staging production environments In addition also a number of configuration settings such as connection strings and authentication information for the application are still stored using the Web config file This follows the same paradigm as before with the on premise versions of the web applications Since it is not easy to edit the Web config file when an application is deployed to Windows Azure Cloud Services i e yo
54. hrough the Windows Azure Management Portal where a single Microsoft account has access to everything in the portal e The second is by using the Windows Azure Service Management API where API certificates are used to access to all the functionality exposed by the API e The third is to use the Windows Azure Management PowerShell cmdlets The Windows Azure PowerShell cmdlets use the Windows Azure Service Management REST API to communicate with Windows Azure The communication is secured with a management certificate which is downloaded and installed on the client machine as part of the Windows Azure PowerShell cmdlets installation This means you are not prompted for credentials when you use these cmdlets There is a fourth way which is implementing your own deployment via code A number of SDK s have been created using these same Management API s for different languages PHP Java Python Ruby Node js etc Project Title ARTIST Contract No FP7 317859 www artist project eu Page 51 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Subscription The Windows Azure Service Management API uses mutual authentication of management certificates over SSL to ensure that a request made to the service is secure No anonymous requests are allowed The subscription with a subscription id and an associated certificate is a unique user account on Windows Azure and is a very important concept since you cannot
55. htas A Orue Echevarria Arrieta L Pezuela C Wimmer M Migrating Legacy Software to the Cloud with ARTIST In CSMR 2013 4 D9 2 Modelling languageand editor for defining target specifications ARTIST Project 5 Bergmayr A Troya J Neubauer P Wimmer M Kappel G UML based Cloud Application Modelling with Libraries Profiles and Templates In CloudMDE Workshop MODELS 2014 Ardagna D Nitto E D Mohagheghi P Mosser S Ballagny C D Andria F Casale G Matthews P Nechifor C S Petcu D Gericke A Sheridan C MODAClouds A Model Driven Approach for the Design and Execution of Applications on Multiple Clouds In MISE Workshop 2012 Armbrust M Fox A Griffith R Joseph A D Katz R H Konwinski A Lee G Patterson D A Rabkin A Stoica l Zaharia M A View of Cloud Computing CACM 53 4 2010 8 Badger M L Grance T Patt Corner R Voas J M Cloud Computing Synopsis and Recommendations Tech rep NIST Computer Security Division 2012 9 Fehling C Leymann F Retter R Schupeck W Arbitter P Cloud Computing Patterns Fundamentals to Design Build and Manage Cloud Applications Springer 2014 10 Bergmayr A Grossniklaus M Wimmer M Kappel G Cloud Modelling Languages by Example In SOCA 2014 11 D7 2 1 Cloud services modelling and performance analysis framework ARTIST Project 12 D9 1 State of the art in modelling languages and
56. ic characteristics of these Cloud providers This document reports the specification design and implementation of the Cloud Target Selection Tool and the Deployment Tool It also depicts the CloudML ARTIST approach to model deployment requirements Additionally it reports on the preliminary research analysis that was conducted for the design and implementation of these tools as well as the conceptual deployment strategies identified during this research The implementation of the Deployment Tool provides specific support for deployment on Google App Engine and Microsoft Azure the default target Cloud platforms of choice for ARTIST use cases No specific implementation support for Amazon Web Services AWS was implemented despite although it was included in the preliminary analysis mainly for the following two reasons e AWS support seems not being required by ARTIST use cases for deployment e Deployment in AWS is already supported by the Cloud platform deployment framework of ModaCloud 27 based on CloudML ARTIST provides a translator from CloudMLQ ARTIST to CloudML ModaCloud 28 whereby deployment models for AWS created within ARTIST can be translated and use to support AWS deployment using the ModaCloud framework 1 2 Document structure This document is structured as follows Section 2 provides the functional and technical specification of the Cloud Target Selection Tool which enables users to determine the most suitable target Clo
57. ication Deployment Descriptors the Service Definition File and the Service Configuration File and one optional Infrastructure Deployment Descriptor the Network Configuration File In simple applications these files do not contain much only basic information such as the Name Role Name Number of Instances Size of VM and so on and are usually automatically generated by the developer tools All the clients are internally using the publicly available Management API JSON REST Service The Azure Pack offers a limited set of Azure technologies services for your own data center These services are Web Sites Service Bus Virtual Machines Virtual Network and SQL Database All these services are consistent with their Azure public cloud counterparts The deployment service consists of 2 clients being put forward here the Service Management API and the Management Portal 18 Although not explicitly stated in documentation also the other deployment mechanisms such as via the development environments can also be used Project Title ARTIST Contract No FP7 317859 www artist project eu Page 62 of 62
58. ies Version v1 0 Date 31 03 2015 T9 5 Deployment patterns expressed as transformations enables the semi assisted generation of these deployment artefacts as introduced in the previous enumeration out of these deployment models In a similar approach followed by T9 4 Target Generation this task produces these textual based deployment artefacts by inspecting the deployment requirements and configuration for the modernized application However T9 5 does NOT support the deployment process itself this task does not provide a homogeneous and universal deployment SDK supporting a wide range of target Cloud environments Nevertheless T9 5 can provide for some selected target Cloud environments offering a command line SDK some tailored scripts which once executed by end users deploy the modernized application or concrete components into the target Cloud environment It is implied that the end user has previously installed an operative target Cloud deployment framework In a wider context the deployment of complex distributed applications on the Cloud has been increasingly receiving attention in the last years 1 ARTIST focuses on the model driven migration support for selected target Cloud providers namely Google App Engine GAE and Microsoft Azure Nonetheless the ARTIST model driven deployment support will be investigated towards achieving the most generic and extensible deployment support possible compatible with the specif
59. imple Storage Service Restrictions Elastic Beanstalk supports specific container types Infrastructure topology and software stack to be used for a specific environment For Java applications the supported container types include Amazon Linux running Apache Tomcat whereas for NET applications Windows Server running IIS 8 or IIS 7 5 OpsWorks is a service designed to enforce management through the whole application s lifecycle The main features of OpsWorks are 1 Stacks A stack is a set of instances that user wants to be managed collectively because they serve the same purpose e g serve all functionalities of an application 2 Layers A layer in a stack expresses the functionality of instances included in this layer and defines all the packages the applications and the configurations that are essential for these instances For example an instance belonging to a loadbalancing layer should be able to distribute incoming traffic to application servers 3 Instances An instance is an EC2 Elastic Compute Cloud instance determined to serve the above mentioned functionalities defined by a stack layer The whole process of getting an application running using OpsWorks is completed in the according steps 1 Creation of a stack 2 Definition of stack layers There are some pre built layers that support standard application frameworks However user can define his own stack layers In addition as far as working with databases is concerned
60. inition csdef serviceDescription azurePubxml K xml version 1 0 encoding ASCII gt lt cscfg ServiceConfiguration xmlns cscfg http schemas microsoft com ServiceHosting 2008 10 Serv lt cscfg Role name Web Role gt lt cscfg ConfigurationSettings gt lt cscfg Instances count 3 gt cscfg Role lt cscfg Role name Worker Role gt lt cscfg ConfigurationSettings gt lt cscfg Instances countz 1 lt cscfg Role gt lt cscfg ServiceConfiguration gt Figure 29 Azure Service configuration descriptor Project Title ARTIST Contract No FP7 317859 www artist project eu Page 40 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 B serviceConfiguration Cloud cscfg B serviceDefinition csdef serviceDescription azurePubxml 2 lt xml version 1 0 encoding utf 8 gt Project xmlns http schemas microsoft com developer msbuild 2003 ToolsVersion 12 0 gt lt PropertyGroup gt lt AzureDeleteDeploymentOnFailure gt false lt AzureDeleteDeploymentOnFailure gt lt AzureDeploymentLabel gt SpikesTogetherDeployment lt AzureDeploymentLabel gt lt AzureDeploymentReplacementMethod gt AutomaticUpgrade lt AzureDeploymentReplacementMethod gt lt AzureSlot gt Production lt AzureSlot gt lt AzureEnableRemoteDesktop gt true lt AzureEnableRemoteDesktop gt lt AzureEnablewebDeploy gt false lt AzureEnablewebDeploy gt lt AzureFallbackToDeleteAndRecreateIfUpgradeFails gt Fals
61. ion Amazon EC2 CloudWatch Auto Scaling Web Apps DevOps Template Driven Provisioning Automation Custom AMIs VE ao Made Easy gt Convenience Control Figure 31 AWS Deployment Services Elastic Beanstalk is a service used for development testing and deployment In terms of deployment Elastic Beanstalk provides a PaaS like deployment solution as the user doesn t have to know anything about AWS infrastructure in order to deploy the application Having built the application deploying it becomes very easy simply by downloading the application package zip or war files choosing names and urls and selecting between two types of environments loadbalanced and single VM environments For Java application Java AWS SDK can be used in order for the application to be developed built and run locally in the Eclipse IDE before the Elastic Beanstalk deployment In the same way NET SDK can be used together with AWS toolkit for VisualStudio in order to develop and run application locally User can also make environment configurations using configuration templates Must be noted that in order to use an RDS Relational Database System instance together with the deployed application the instance must be created and configured before deployment can also be done through Elastic Beanstalk This service also enables updating a deployed application Application s versions and environment configurations are stored in S3 S
62. ion characteristics Some of the works developed in the context of this project are related to our proposal Thus the work presented in 23 describes a classification of the state of the art of Cloud solutions to help developers to face the heterogeneity among Cloud providers diversity which hinders the proper exploitation of the full potential of Cloud computing Additionally in 24 an architecture to evaluate distributed application deployments in several Cloud providers is presented The architecture allows developers to better characterize the Cloud needs of their applications and therefore answer important http www webratio com WWW paasage eu 6 www modaclouds eu Project Title ARTIST Contract No FP7 317859 www artist project eu 1 Page 45 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 decisions about which deployment options works best in terms of performance reliability cost and combinations thereof The work presented in 25 describes an approach based on feature modelling and ontologies to handle cloud variability and then manage and create cloud configurations These works can help within the context of the ARTIST project to better characterize multi cloud environments as well as some of the requirements to be considered when deploying applications to the Cloud However they do not address the problem of generating a deployment for a concrete application to the Cloud MODAC
63. ion format infrastructure This feature requires that compilable units have been created before using the Target Generation Tool T9 4 o Deployment units can be open browsed and modified using third party tools i e Jar Zip editors for WAR EAR or VMWare OVF Tool etc Ability to generate deployment scripts that launch the deployment process on the selected target Cloud environment These scripts require the availability of a command line interface provided by the SDK of the selected target Cloud environment 4 2 Technical description 4 2 1 Deployment Tool architecture The model driven approach for automating Cloud deployment strategies implemented in the Deployment tool is depicted below in Figure 12 Generate Generate Deployment Tool process Deployment Deployment PSM Artefacts Figure 12 Deployment Tool process Project Title ARTIST Contract No FP7 317859 www artist project eu Page 27 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Conceptually this is a two steps process In the first step an application deployment PSM is computed for the concrete target Cloud provider In the second step the deployment artefacts are generated from former deployment PSM Let s further specify these two steps separately The following Figure 13 depicts the steps to generate the application deployment PSM CloudML ARTIST Deployment PSM Cloud target Deployment PSM
64. iption for the European Commission about the released software so it is not public Project Title ARTIST Contract No FP7 317859 www artist project eu Page 2 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 Document Description Document Revision History Modifications Introduced Version Date Modification Reason Modified by T 24 02 15 ToC First draft version ATOS TUWIEN ICCS i SPIKES INRIA v0 2 10 03 15 Contributions TUWIEN ATOS V0 3 11 03 15 Contributions TUWIEN ICCS ATOS V0 4 12 03 15 Contributions TUWIEN ATOS V0 5 13 03 15 Peer Review Version ATOS V0 6 25 03 15 Peer Review ICCS V1 0 31 03 15 Final version ATOS ICCS TUWIEN Project Title ARTIST Contract No FP7 317859 www artist project eu Page 3 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 Table of Contents Table of Contents EE 4 Tableof gt 240 eee E AEEA AEREE oe ee ere 5 EISE 6 Terms and abbreviations eecseccceceeceeeseeeeececeeeeeceeeeeesaeceeaaeceeeeecaeeeeaaeeeeaaeseeeeecaeeeeaaeseeaeeeneeees 7 Executive SUMMAKV a eei cade tee roo dedi o Pe ERE oa de EYE EE a sd cade OO EER 9 MEME RE ME EE EE EE EE 11 1 1 About this deliverable oer eer OE OAR 11 1 2 lte 12 1 3 Fitting into the overall ARTIST solution 13 1 4 Main Lee ror EE EE iS 14 2 Cloud Target Selection Too
65. ization VirtualizationKind Platform scaling ScalingStrategy Auto configuration CloudConfiguration CCUI Configuration portal CCUI war Project Title ARTIST elasticLoadBalancing elastiCache DEWS SN Configuration CloudConfiguratio aWSM3Medium DEWS Sensor Network CloudNode CloudService AWSM3Medium instanceCategory OnDemand contract OneYearTerm utilization Medium region EU operatingSystem Linux virtualization VirtualizationKind Infrastructure scaling ScalingStrategy Auto configuration CloudConfiguration DEWS SN Configuration network V network DEWSBackend vbox Version v1 0 Final Date 31 03 2014 autoScaled memcache environmentConfiguration email DEWS Services Configuration CloudConfiguration EnvironmentConfiguration applicationIdentifier dews services applicationTitle DEWS Services maxIdleInstance 2 minPendingLatency 2 gAEF4 DEWS Services CloudNode CloudService middleware Java services virtualization VirtualizationKind Platform scaling ScalingStrategy Auto configuration CloudConfiguration DEWS Services Configuration storage appEngineDatastore ILC DB CloudStorage AppEngineDatastore access JavaPersistenceAPT datastruture StructureKind Relational consistency ConsistencyKind Strict Figure 22 Deployment model for DEWS use case Page 37 of 62
66. l E 16 2 1 Functional description 16 2 2 Technical description eese enne ennt AA inanes ennt ee ee ee 17 2 2 1 Cloud Target Selection Tool Architecture iss se ee Ee RA AA Ee Ee Re ee 18 2 2 2 Components description 19 2 2 2 1 UML Model Service EES GES RR se Se ERGE Siena RR rte ee RR See Ge RNEER Re eee dekke 19 2 2 2 2 View Data Modlel enteras sok Ge ER gs tbe te RE Ged Ee SR ee Ee ENGEN cones 20 22 23 User lge EN 2 2 3 Technical specification etre no et etre sende eg ged Ee Silene 23 3 Modelling Deployment in UM 23 3 1 CAML Scd 24 3 2 Reusable Deployment Templates ccccesssccccecsssessaeeeeececesseseaeeeescesseseaaeaeeeeseneees 25 3 3 Interoperability with Cloud Modelling Approaches and Standards 26 A Deployment TOO EE EER dte N EE OE EL EE EE 27 4 1 Functional description 27 4 2 T chnicaldeseription RE RR 27 4 2 1 Deployment Tool architecture ccccccccccecessssesseceeececessesesaeseceeseesseseeaeeeeeeseneees 27 4 2 2 Components description 29 4 2 2 1 Metamodels for Bridging the Technical Spaces ssenssssesessnnesnssssrsereesssssse 30 4 2 2 2 CloudML2DeploymentTarget Transformer 30 5 Delivery and usage c dee eire teste ee Ge ae tede ES E I ees 32 5 1 Package information ice cete e oec OE EN 32 5 1 1 Cloud Target Selection Tool 32 5 1 2 Deployment TOON EER EE EE OO EE N NE dili 33 Project Title ARTIST Contract No
67. lUndefined endif basicScaling lt if s declaresBasicScaling debug declares basic scaling then thisModule createBasicScaling s getBasicScaling else Oclundefined endif automaticScaling lt if s declaresAutoScaling debug declares auto scaling then thisModule createAutoScaling s getAutoScaling else OclUndefined endif thisModule DocumentRoot appengineWebApp lt t Similar ATL M2MT modules have been created to generate cloud target specific models from CloudML ARTIST for Microsoft Azure service deployment descriptors service configuration service definition and service description When some elements of the cloud target specific meta models cannot be derived from the CloudML ARTIST default values have been set up based on the analysis of the specification It is up the Deployment Tool user to modify these default values when it is required 5 Delivery and usage 5 1 Package information 5 1 1 Cloud Target Selection Tool Figure 18 shows file structure of the plug in The contained files are e rc All java files included e icons Image files accessed at runtime e META INF The plug in manifest file e build properties Defines all properties needed to run the plugin e plugin xml Description of extending the eclipse platform e Readme txt Installation and usage instructions Project Title ARTIST Contract No FP7 317859 www artist project eu Page 32 of 62 WD9 6 Automated Deployment Str
68. led their inherent topology with CAML s cloud library and refined them with stereotypes from the cloud profile dedicated to Amazon To demonstrate the use of a blueprint we show how our reference use case is bound to a template which refers in our case to a 2 tier web architecture 9 To reuse the predefined template the deployable artefacts need to be bound to the template parameters Figure 11 depicts the component viewpoint of our reference use case and the respective CAML template It consists of two cloud nodes that refer to the M3Medium offering of Amazon Their location is required to be in Europe while the operation system needs to be Linux For reliability reasons they are placed in different availability zones Requests that arrive at the cloud nodes are first handled by a load balancing service which enables a higher fault tolerance of the application The number of running cloud nodes is automatically managed by Amazon as expressed by the scalability strategy Only the minimum number of running cloud nodes and their adjustment is configured Both cloud nodes are connected to a cloud storage that in turn is replicated to improve data availability Finally as Amazon cloud nodes operate at the infrastructure level the required middleware for our reference application is defined In fact we directly reused it from the on premise deployment given in Figure 9 19 Amazon Architecture Center https aws amazon com architecture Project Title
69. lient API tools Cloud Service Client Microsoft Visual Studio Toolkit Cloud Service Client CLI tools Cloud Hardware Service Auto Scaling Cloud Hardware Service Elastic Load Balancing Cloud Software Service Route 53 Cloud Software Service DirectConnect Application Language Framework Cloud Infrastructure Physical Instance Cloud Platform Offering Database and Data Management Cloud Software Service ElastiCache Cloud Software Service Relational Database Service Cloud Software Service RedShift Cloud Software Service DynamoDB Cloud Software Service SimpleDB Cloud Software Service Elastic MapReduce Application Language Framework Cloud Infrastructure Offering AWS Storage and Data Management 4 Cloud Hardware Service Glacier Cloud Service Client SDK Cloud Service Client CLI tools Figure 37 Amazon Web Service PDM snippet This is the model describing the Amazon Cloud Provider Amazon provides the AWS composing thus a set of offerings most of which are categorized as Cloud Infrastructure Offerings not all of them though At the moment four major Cloud Offerings are included e Compute and networking offers the main AWS service EC2 which provides the means for configuring and controlling the computing resources as well as a set of other related services working with EC2 while covering scalability and networking aspects e Database and Data Management and St
70. loudApplication and CloudApplicationDeploymentUnit properties are referencing these mentioned concepts which are defined in the other meta model Platform Domain Models for Cloud providers This section elaborates the concrete PDM instances conforming to the deployment PI meta model corresponding to the selected target Cloud providers Google App Engine Amazon Web Services and Microsoft Azure Google App Engine PDM An initial version of the Google App Engine deployment PDM instance is located in the ARTIST Tooling Github repository at https github com artist project ARTIST Tooling tree master migration modernization eu artist migration modernisation dt model m odel PIMeta modelv0 3 CloudOfferingPDM Project Title ARTIST Contract No FP7 317859 www artist project eu Page 58 of 62 D9 6 Automated Deployment Strategies Version v0 1 Draft Date 24 02 2015 Fi platform resource eu artist migration modernisation dt model model 7 Cloud Provider Google Cloud Platform Offering Google App Engine Cloud Deployment Service GAE Deployment Service Application Deployment Descriptor web xml 7 Application Deployment Descriptor appengine web xml Descriptor Entry application Descriptor Entry version Descriptor Entry threadsafe 7 Infrastructure Deployment Descriptor backends xml Descriptor Entry backend name Descriptor Entry backend class Descriptor Entry backend instances Descriptor Entry backe
71. louds proposes similar to ARTIST a model based migration approach However in MODAClouds the migration of cloud based software between cloud providers and their interoperability is primarily focused rather than the migration of legacy software to cloud based software as a means of software modernization Concerning the works in the context of Cloud deployment the approach presented in 26 tackles the problem of deploying non cloud based applications into the Cloud however it does not consider an automatic approach as we propose APPENDIX B Analysis of deployment patterns and frameworks for selected Cloud providers This section analyses the deployment patterns techniques and frameworks supported by a set of selected Cloud providers of interest for the ARTIST use cases Google App Engine The Google App Engine supports several different programming languages i e Java PHP Python and Go As a result the deployment of an application may differ according to the programming language used to implement it The analysis results presented in the following are restricted to Java based application Google App Engine offers two main procedures supporting the deployment of an application e App Engine Java SDK which offers command line tools supporting the deployment e Google Eclipse plugin which offers Eclipse IDE wizards supporting the deployment Deploying a Java based application requires mainly to upload all the application artefacts e g
72. lowed to implement the transformations of our deployment tool as discussed in Section 4 2 2 2 Modelware GP XMLware Ecore based generated from XML Schema EER A of BEES Cloud Provider conforms to conforms to parse Deployment Deployment print model Script Figure 16 Ecore based metamodels as a bridge between Modelware and XMLware 4 2 2 2 CloudMLZDeploymentTarget Transformer This section describes the M2M transformer that converts an UML deployment model into a set of cloud target specific Google App Engine Microsoft Azure deployment models one of each available cloud target specific meta models which are finally serialized by the Descriptor Serializer see Section 4 2 2 1 Project Title ARTIST Contract No FP7 317859 www artist project eu Page 30 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 UML Deployment Model Target Deployment Models CloudML ARTIST Profiles Figure 17 CloudML2Deployment Transformer Figure 17 depicts the process performed by CloudML2DeploymentTarget Transformer components in terms of inputs and outputs of the ATL M2MT target module This module takes as input e The deployment model designed by the user which is an instance of the UML meta model and has been annotated with stereotypes taken from the CloudML ARTIST DSL e The CloudML ARTIST profiles that are manage by the module particularly those providing a deploym
73. nant aware Software as a Service applications in PESOS workshop 2009 pp 18 25 21 Czarnecki K and U Eisenecker Generative Programming Methods Tools and Applications Reading MA USA Addison Wesley pp 864 2000 22 Software Product Lines Practices and Patterns Addison Wesley Longman Publishing Co Inc Boston MA USA Project Title ARTIST Contract No FP7 317859 www artist project eu 2 6 7 Page 43 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 23 N Ferry A Rossini F Chauvel B Morin and A Solberg Towards Model Driven Provisioning Deployment Monitoring and Adaptation of Multi cloud Systems in CLOUD conf 2013 pp 887 894 24 A Papaioannou and K Magoutis An Architecture for Evaluating Distributed Application Deployments in Multi clouds in CloudCom conf 2013 pp 547 554 25 C Quinton and N Haderer Towards multi cloud configurations using feature models and ontologies in MultiCloud conf 2013 pp 21 26 26 A Gunka and H K hn Moving an Application to the Cloud A n Evolutionary Approach pp 35 42 2013 27 D4 3 2 MODACIoudML IDE MODACloud Project 28 CloudML ARTIST to MODACloudML translation ARTIST internal report Project Title ARTIST Contract No FP7 317859 www artist project eu Page 44 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 AP
74. nd options fail fast Descriptor Entry backend options dynamic Service Configuration Descriptor datastore indexes xml Cloud Service Client Eclipse Google Plugin Cloud Service Client GAE SDK Cloud Software Service App Identity Cloud Software Service Blogstore Cloud Software Service Google Cloud Storage Cloud Software Service Capabilities Cloud Software Service Channel Cloud Software Service Datstore Cloud Software Service Google Cloud Endpoints Cloud Software Service Images Cloud Software Service Logs Cloud Software Service Mail Figure 36 Google App Engine PDM snippet Amazon Web Service PDM An initial version of the Amazon Web Service deployment PDM instance is located in the ARTIST Tooling Github repository at https github com artist project ARTIST Tooling tree master migration modernization eu artist migration modernisation dt model m odel PIMeta modelv0 3 CloudOfferingPDM Project Title ARTIST Contract No FP7 317859 www artist project eu Page 59 of 62 D9 6 Automated Deployment Strategies Version v0 1 Draft Date 24 02 2015 9 AWS xmi amp X platform resource eu artist migration modernisation dt modeUmodeUPIMeta 7 4 Cloud Provider Amazon 7 Cloud Infrastructure Offering AWS compute and networking 7 Cloud Hardware Service Elastic Compute Cloud Cloud Service Client Management Console Cloud Service Client SDK Cloud Service Client Eclipse Toolkit oud Service C
75. o exploit modern cloud features deployment models need to be expressive enough to capture them This is exactly the purpose of CAML Because it is realized in terms of lightweight extensions to UML CAML models are applicable to UML models and so to our modelled reference use case as depicted in Figure 9 To demonstrate how CAML is applied Figure 10 presents a possible deployment topology and refinement towards the Google App Engine of our introduced use case cf Figure 9 In a first step we modelled the deployment topology It consists of two automatically scaled cloud nodes and a key value cloud storage for managing the application data in an eventually consistent way Petstore Components use component component g component g PetstoreWeb PetstoreService PetstoreDomain class class class class ShoppingCart m OrderService Order OrderLine order Order createOrder Order orderld long lineld long orderService OrderService findOrder in id long Order i manifestation 7 manifestation manifestation artifact artifact a PetstoreBusiness PetstoreData package import 7 a Component Viewpoint On premise Petstore Deployment ModelLibrary Web Deployment Libra PetstoreBusiness PetstoreData ExecutionEnvironment Enumeration ExecutionEnvironment ApplicationContainer ContainerKind Datastore deploy deploy deploy type ContainerKind
76. oming from the cloud platform providers This case is quite common for developers with little experience on cloud or with much experience on a single cloud vendor s platform as the tasks of browsing through the countless documentation sheets and web pages as well as of modelling and combining the resulting information in order to get to the final decision are confusing and time consuming 2 1 Functional description The Cloud Target Selection Tool aims at exploiting the information lying in the meta models in order to make a suggestion about the target platform that best fits the needs of the application to be migrated More precisely the functionality of the tool as a whole can be summarised in three main activities e t supports the visualization of the main features and service characteristics of the target platforms as they have been identified and modelled in the context of ARTIST project e t allows the selection of the ones of the above features that are considered to be important offerings for the specific application s needs through a user driven process This way the user can actually set the target platform standards for hosting the components of the application e t performs a matching process between the user s selection and the actual real world target platform offerings so as to indicate the best fitting solution among the available choices As described in Figure 2 the actions to be performed from the user s
77. on Cloud cscfg amp serviceDefinition csdef Es serviceDescription azurePubxml Figure 27 Azure generated deployment descriptors and scripts for each module of LoB use case Figure 28 Figure 29 and Figure 30 show the generated Microsoft Azure service definition service configuration descriptors and the service description script respectively 9 DEWSDeploymentO 7 SPTGDeployment appengine web x E serviceConfigur serviceDefiniti 93 lt xml versionz 1 0 encoding ASCII gt csdef ServiceDefinition xmlns csdef http schemas microsoft com ServiceHosting 2008 10 ServiceDefiniti lt csdef WebRole name Web Role vmsize small gt csdef Imports lt csdef Import moduleName Diagnostics gt csdef Imports lt csdef ConfigurationSettings gt lt csdef Endpoints gt lt csdef InputEndpoint name Endpointl port 80 protocol http gt lt csdef Endpoints gt lt csdef Sites gt lt csdef Site name Web gt lt csdef Bindings gt lt csdef Binding endpointName Endpointl name Endpoint1 gt csdef Bindings csdef Site lt csdef Sites gt lt csdef WebRole gt csdef WorkerRole name Worker Role vmsize small gt lt csdef Imports lt csdef Import moduleName Diagnostics gt lt csdef Imports lt csdef ConfigurationSettings gt lt csdef WorkerRole gt lt csdef ServiceDefinition gt Figure 28 Azure service definition descriptor serviceConfiguration Cloud cscfg 2 serviceDef
78. orage and Data Management offer data related services at platform and infrastructure level respectively e Deployment and Management offers the three services which facilitate and in some level automate the deployment on AWS infrastructure CloudFormation OpsWorks and Elastic Beanstalk as well as CloudWatch which enables monitoring and thus controlling the deployed AWS resources Project Title ARTIST Contract No FP7 317859 www artist project eu Page 60 of 62 D9 6 Automated Deployment Strategies Version v0 1 Draft Date 24 02 2015 AWS offers a variety of choices for deploying an application the easiest of which is the Elastic Beanstalk deployment imposing however a set of constraints Either using one of the deployment services or the AWS infrastructure directly EC2 S3 Elastic LoadBalancing Auto Scaling there is a number of service clients which enable communication with AWS SDKs including Java Net Python Ruby and PHP CLI tools and the Management Console web based user interface In addition Eclipse and Visual Studio toolkits have been developed which facilitate the development as well as the deployment by permitting communication with some AWS resources incorporating NET and Java SDKs and providing support for some deployment services Azure PDM An initial version of the Microsoft Azure deployment PDM instance is located in the ARTIST Tooling Github repository at https github com artist proje
79. ors customize the deployment process by expressing concrete deployment needs on the target and configuring the required Cloud services Moreover the modernized components can only be deployed depending on the target when packaged into concrete deployment units which are typically compliant with strict deployment standards which are Cloud or application dependent like for instance WAR or EAR files for J2EE platform deployment or OVF for VM packaging The deployment process itself is supported by the target Cloud environment normally through a target dependent SDK which offers UI tools that enable the deployment process Most of the deployment SDKs offer command line scripts that enable the manual deployment process intended for advanced users although many Cloud providers offer as well GUls either standalone ones or integrated within popular IDEs or Web accessible ones that simplify the deployment process for not advanced users As a consequence the task to deploy a modernized application or certain components requires for most of the Cloud environments either infrastructure or platform the elaboration of a set of artefacts supporting the deployment process itself Before supporting this process application owners need to identify the Cloud target provider and its offerings based on the selection of Cloud services required by the application In this context the Cloud Target Selection Tool specified in this document supports the ap
80. oviding it to the end user in a human consumable format through a user friendly environment From the extensibility point of view extensions can be easily made in order to support even more perspectives of the existing underlying models or extensions of them E g legal aspects and benchmark results e The information exchange taking place through the interaction with the user does not require but a minimum set of knowledge about the elements described and defined in the meta models This means that in the future potential changes in the cloud providers descriptions or even in the definitions of general cloud environments in the context of CloudML QQ ARTIST meta model will not result in non compatibility with the tool On the contrary new features can automatically be detected and take their place in the equation solving the problem of selecting cloud target e It allows the user to express their requirements against the target cloud environments thus fully utilizing and exploiting all the benefits coming from the construction of CloudML ARTIST modelling language e Users expression of cloud requirements immediately and automatically result in reports and suggestions about the best matching supported provider Otherwise this task even with the use of the same meta models would take a lot of time and effort while it would absolutely require a good level of modelling knowledge in general and in particular about the specific meta models und
81. perspective are Action 1 Open the Eclipse views showing features and services e Action 2 Select the desired ones from the tree structures of these views e Action 3 Indicate the candidate cloud providers among the supported ones by the CloudML ARTIST e Action 4 Ask for a validation to be performed over the selections made in previous steps Project Title ARTIST Contract No FP7 317859 www artist project eu Page 16 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 User Inteface Views Visualization of cloud features Selection of Cloud Features Core metamodel Amazon WS metamodel Google App Engine metamodel Windows Azure metamodel election of candidat cloud platforms Figure 2 Cloud Target Selection tool User Interface 2 2 Technical description The Cloud Target Selection Tool is implemented as an Eclipse plug in In this respect Eclipse libraries are used in order to provide the user interface which is essential for the tool to become functional and fulfil its purpose as a user driven decision making engine In addition a profile querying mechanism has been developed with the support of the UML2 Java library see Section 2 2 in order to exchange information between the CloudML QQ ARTIST meta models 11 and the user interface All Java classes composing this tool are developed in order to contribute into the following tasks see Figure 3
82. plication owner in the identification of required Cloud services and their matching against the available Cloud provides described by the available CloudML Q ARTIST models Moreover this model driven deployment approach relies on the availability of deployment models for the application These models include generic deployment specifications based on UML complemented with the platform independent CloudML Q ARTIST meta model and Cloud provider specifications included in Cloud ML Q ARTIST as well The deployment tool enables the semi assisted generation of deployment artefacts out of these models assuming that they already contain deployment information and requirements In a similar approach followed by T9 4 Target Generation this tool produces these textual based deployment artefacts by obtaining the deployment requirements and configuration from the models ARTIST focuses on the model driven migration support for selected target Cloud providers namely Google App Engine GAE and Microsoft Azure Nonetheless the ARTIST model driven deployment support will be investigated towards achieving the most generic and extensible deployment support possible compatible with the specific characteristics of these Cloud providers This document reports the specification design and implementation of the Cloud Target Selection and Deployment Tools and also elaborates on the model based specification of the deployment Additionally it reports on the p
83. pported where reverse engineered UML models are tailored towards a selected cloud environment For that reason we have proposed the Cloud Application Modelling Language CAML 4 5 that enables cloud based deployment topologies to be represented directly in UML and their refinement towards a concrete cloud environment Features of existing cloud environments are captured by dedicated UML profiles Thereby a clear separation is achieved between cloud environment independent and cloud environment specific deployment models 6 which is in accordance with the PIM PSM concept In our case the platform refers to the cloud environment We developed profiles for three major cloud environments Amazon AWS Google Cloud Platform Microsoft Azure Inspired from common cloud computing literature 7 8 9 recent cloud modelling approaches 10 and cloud programming approaches we developed CAML s model library that facilitates developing base deployment topologies to which cloud environment profiles are applied The benefits of realizing CAML as an internal language of UML are threefold i UML provides a rich base language for the http eclipse org modeling mdt project uml2 Amazon AWS http aws amazon com Google Cloud Platform http cloud google com 7 Microsoft Azure http azure microsoft com Deltacloud https deltacloud apache org and jclouds http jclouds apache org Project Title ARTIST Contract No FP7 317859
84. r Amazon AWS 3 3 Interoperability with Cloud Modelling Approaches and Standards One major aspect in model based engineering is to place models as first class entities in the engineering process Ideally they should be turned into executable or interpretable artefacts Regarding the deployment viewpoint it appears desirable to translate the respective models into descriptors and scripts that are passed to provisioning engines for cloud environments For instance a Google App Engine based deployment requires specific descriptors for defining the assignment of application modules to a concrete instance type This assignment can be derived from a CAML model as discussed in Section jError No se encuentra el origen de la referencia At the same time there are ongoing efforts in standardizing the specification of cloud based application deployments The recently accepted TOSCA standard aims at supporting portable cloud applications With the notion of management plans emerging TOSCA compliant engines are capable to interpret such deployment topologies and initiate the provisioning of defined service templates 13 Also in the ModaClouds project a provisioning engine for CloudML is developed 14 Clearly this is also of practical value for CAML models For that reason we have developed dedicated model transformations to enable interoperability between these languages Project Title ARTIST Contract No FP7 317859 www artist project eu Page 26 of
85. reliminary research analysis that was conducted Project Title ARTIST Contract No FP7 317859 www artist project eu Page 9 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 for the design and implementation of the tools as well as the conceptual deployment strategies identified during this research Modelling deployment in UML using CloudMLQG ARTIST is explained by example using the ARTIST Petstore use case Deployment for the other ARTIST use cases i e DEWS and Spikes LoB is modelled as well as described in the user manual section of the Deployment Tool Reusable deployment templates for concrete Cloud providers and the interoperability of the ARTIST deployment modelling approach with others are further elaborated Cloud Target Selection Tool and Deployment Tool specifications both functional and technical are provided including components and implementation details For both tools a walk through user guide is provided For the Deployment Tool this user guide describes its usage to generate deployment descriptors for the Google App Engine and the Microsoft Azure Cloud platforms for DEWS and LoB use cases respectively The implementation of the Deployment Tool provides specific support for deployment on Google App Engine and Microsoft Azure the default target Cloud platforms of choice for ARTIST use cases No specific implementation support for Amazon Web Services AWS was implemented despite it
86. res X Service Features ET EE EE Validate and suggest target platform Figure 20 Toolbar of the views 2 By selecting the first icon Figure 20A a view will appear showing the list of supported providers to select from These will be the candidate target platforms for the cloud target selection process 3 The user can select any of the shown items which represent services and cloud features The eraser button Figure 20B can seem helpful by unselecting every object and clearing the view 4 When the feature selection process is finished the validation process can begin by pressing the play button Figure 20C The validation will take place among the selected providers If the user hasn t made a selection all the supported providers will be checked default configuration 5 Theresults will appear on screen as scores for each of the selected providers 6 Steps2 to 5 can be repeated any number of times the user desires with different input in each repetition in order to gain a satisfying insight about the offerings of each cloud platform 5 3 2 Deployment Tool Deployment Tool can be used on deployment model instances of the CloudML ARTIST Figure 22 and Figure 23 below show deployment models for DEWS and LoB use cases respectively These models can be created by hand using any Eclipse UML visual editor compatible with UML2 Ecore such as Papyrus by applying CloudML ARTIST deployment meta model and specific Cloud deplo
87. rm as a Service PDM Platform Description Model Contract No FP7 317859 Project Title ARTIST www artist project eu Page 7 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 PI Platform Independent PSM Platform Specific Language SDK Software Development Kit UI User Interface UML Unified Modelling Language VM Virtual Machine WAR Web Archive WP Work Package XMI XML Metadata Interchange XML Extensible Markup Language Project Title ARTIST Page 8 of 62 Contract No FP7 317859 www artist project eu D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 Executive Summary Task 9 5 Deployment patterns expressed as transformations manages one of the activities required during the modernization phase of the ARTIST Methodology performed on the components of an application being migrated to the Cloud Once the models PSM that described the application components have been cloudified and optimized resulting on modernized models and the corresponding target source code has been generated out of these modernized models there is still an important task remaining since the modernized components need to be deployed into the target Cloud environment This deployment process is conducted and personalized by a set of descriptor files which require to be generated for the selected target Cloud environment These descript
88. rsion v1 0 Final Date 31 03 2014 Java Class ModelElement lt lt Java Class gt gt kk eu artist migration cloudselection viewdatamodel _ lt lt Java Class gt gt LeafEnumValue name String ls 9 LeafElement eu artist migration cioudselection vewdatamodel eu artist migration cloudselection viewdatamodel N SI children 0 3 hoed checked boolean a lt lt Java Class gt gt LeafProperty lt lt Java Class gt gt eu artist migration cloudselection viewdatamodel HelperElement referencedProperty String eu artist migration cloudselection viewdatamodel parentStereotype String E 7 LY lt lt Java Class lt lt Java Class gt gt lt lt Java Class gt gt G EnumerationProperty G ServiceElement LeafHLEvaluationProperty u artist migration cloudselection viewdatamodel eu artist migration cloudselection viewdatamodel uu ER parentStereotype String Figure 5 Class Diagram of View Data Model 2 2 2 3 User Interface The user interface has two main features views and handlers Views This component contains all the classes that handle communication between the tool and the user which is enabled through a graphical user interface This GUI relies mostly on the tools provided by Eclipse for plug in development For the time being two very important views are available following a
89. scription of the deployment patterns and entities Project Title ARTIST Contract No FP7 317859 www artist project eu Page 53 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Platform independent meta model for deployment patterns This section elaborates a platform independent meta model that supports the specification of deployment patterns and requirements These concepts will contribute to the extension of CloudML Q ARTIST to support deployment needs Deployment platform independent concepts and entities have been derived from the analysis of the deployment patterns and frameworks supported by the target Cloud providers conducted in APPENDIX B From this analysis we have provided two meta models one from the provider perspective see Figure 33 and another one from the application owner perspective see Figure 34 which contain deployment concepts entities and their relationships among both meta models Technically these meta models have been implemented as instances of the EMF Ecore meta meta model Both deployment PI meta models are located in the ARTIST Tooling Github repository at https github com artist project ARTIST Tooling tree master migration modernization eu artist migration modernisation dt model m odel PIMeta modelv0 3 The color schema used for entities in these meta models has the following meaning e Pink colored concepts are those already included in CloudML QARTIST
90. t Paste os Model Understanding Toolbox Ctrl V gt CCUI Configuration gt virtualization VirtualizationKind Infrastructure scaling ScalingStrategy Auto gt configuration CloudConfiguration DEWS SN Configurati gt T war 5 deployment view P DEWS deployment view GAE AWS Properties Alt Enter DEWSDeploymentOnGAE_AWS um 232Mof 889M Figure 21 Deployment Tool contextual menu In the dialog see Figure 24 select the Cloud deployment target that is the Cloud offering you want to generate the descriptors for Optionally you can specify the target location where to place the generated descriptors If so click on Browse button and select the target project in the pop up project selection dialog When finished accept the dialog to generate the descriptors After few seconds required descriptors are generated and a modal dialog informs the user about the location of those files Contract No FP7 317859 www artist project eu Project Title ARTIST Page 36 of 62 WD9 6 Automated Deployment Strategies memcache basicScaled users enviro CCUI Configuration CloudConfiguration BasicScaled maximumRunningInstances 2 idleTimeoutBeforeShutdown 1 EnvironmentConfiguration applicationIdentifier dews ccui applicationTitle DEWS Online maxldleInstance 2 minPendingLatency 1 gAEF 1 CCUI CloudNode CloudOffering middleware Java virtual
91. tes to be used by recipes and templates 2 Template files templates that recipes use to create other files such as configuration files 3 Recipes Ruby applications that define every task needed to configure a system Recipes can be executed automatically by being attached at a layers lifecycle or manually by running the corresponding CLI command Restrictions At the moment OpsWorks supports only Amazon Linux and Ubuntu 12 04 LTS among custom AWS AMIs Amazon Machine Images CloudFormation is a provisioning and deployment service based on JSON formatted text files called templates Templates are used to describe the AWS infrastructure needed for the execution of an application as well as the inter connection between them When the JSON file is created it is used as the base for a stack creation A stack is the set of all the initiated resources The top level JSON Objects contained in the template files are 1 Description A text description for the template usage Parameters A set of inputs used to customize the template per deployment Resources The set of AWS resources needed and the relationships between them Outputs A set of values to be made visible to the stack creator AWSTemplateFormatVersion Date of the tool version to be used if not created the latest version is assumed CloudFormation provides an laaS deployment solution helping mostly with resource provisioning However the management of resources and the execution o
92. test ARTIST Tooling master eu artist migration deployment gae transformation ARTIST Tooling master Figure 19 Deployment tool sub projects e eu artist migration deployment project implements the UI of the Deployment Tool and its contributions to the Eclipse workbench It launches the Deployment Tool generators selected by the user on a concrete deployment model e eu artist migration deployment azure service configuration provides the Microsoft Azure service configuration metamodel its Java entities and EMF based helper classes to serialize the Azure service configuration descriptor cscfg e eu artist migration deployment azure service definition provides the Microsoft Azure service definition metamodel its Java entities and EMF based helper classes to serialize the Azure service definition descriptor csdef e eu artist migration deployment azure service description provides the Microsoft Azure service description metamodel its Java entities and EMF based helper classes to serialize the Azure service descriptor script ps e eu artist migration deployment azure transformation provides Java helpers and ATL M2M transformations to migrate from deployment model instances of Project Title ARTIST Contract No FP7 317859 www artist project eu Page 33 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 CloudMLQ ARTIST to the Azure service configuration definition description metamo
93. u must redeploy the entire application when values need to be changed a lot of the times some application configuration settings are moved from the Web config file to the service configuration file However this gives problems since some components cannot read settings from this service configuration file Therefore typically a number of scripts are built to make those configuration changes on the fly You can deploy an application by uploading the files using the Windows Azure Management Portal by using the Publish Windows Azure Application wizard in Visual Studio or the automated way by using Windows Azure PowerShell cmdlets Both the Visual Studio wizard and the PowerShell cmdlets authenticate with your subscription by using a management certificate instead of a Microsoft account The automated deployment of an application in production is in most cases handled in multiple stages The first stage uses an MSBuild script to compile and package the application for deployment to Windows Azure This build script uses a custom MSBuild task to edit the configuration files for a cloud deployment adding the production storage connection details The second stage uses a Windows PowerShell script with some custom cmdlets to perform the deployment to Windows Azure APPENDIX C Analysis of platform independent deployment patterns and entities From the platform dependent analysis produced in the previous section this one proposes a platform independent de
94. ud Target Selection Tool Architecture The Java classes created in the context of the Cloud Target selection tool are placed in four different packages following a conceptual grouping process Each package plays a different role in the architecture as a whole All the packages to be described are sub folders of the general source package eu artist migration cloudselection e UML Model Service This package is responsible for any action connected with UML related tasks Such tasks include UML file handling model querying memory handling total control of loading and unloading UML resources and transformation of the query results into forms or structures accessible by any other package with no dependencies by the UML Java library In addition it is responsible for making the validation of user s requirements in a match making process between the requests to the models and the corresponding responses User Interface This package including two sub packages contains all classes which compose the user interface dedicated to interact with the end user Every information exchange between the tool and the user is defined and controlled through this component View Data model This component represents the data structure which is visualized so as to be accessed by the end user through the views It provides a model which acts as a bridge between the user accessible and the UML formatted information While it does not contain any definition o
95. ud offering where to deploy the migrated application based on browsing the services offered by the Cloud provider Section 3 describes the operational approach for deployment modelling based on CloudML Q ARTIST and UML Section 4 provides the functional and technical specification of the Deployment Tool which enables the users to create required deployment descriptors and scripts from deployment models for selected target Cloud offerings Section 5 provides details for the delivery and usage of the Cloud Target Selection Project Title ARTIST Contract No FP7 317859 www artist project eu Page 12 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 and Deployment tools as well as their user manuals Section 6 concludes the document outlining the main results of this work and foreseen future work and improvements APPENDIX A reports the analysis of survey conducted on the state of the art on model driven support for deployment to Cloud APPENDIX B reports on the analysis of the deployment strategies for the reference Cloud offerings Google App Engine Amazon Web Services and Microsoft Azure APPENDIX C reports the research conducted aiming at detecting platform independent deployment patterns from the analysed ones as well as designing a platform independent meta model for expressing conceptually these deployment patterns Based on this meta model platform description models PDMs for reference Cloud offerings were
96. ud vendors An approach for the deployment of multitenant aware Software as a Service SaaS applications is presented in 20 where feature models are proposed to model SaaS application configurations and to generate the corresponding deployment scripts Feature models 21 are mainly used in software product lines 22 to define a family of products A family of products has different variation points which allow the definition of a configuration for a particular product of such family The approach therefore allows modelling a family of SaaS applications and includes a set of variation points to configure them The resulting feature model configuration can then be used to deploy the application Similar to our proposal this approach allows generating the deployment scripts for the application However the variation points are too high level features e g availability environment or data separation and are not focused on the different features provided by Cloud providers as in our approach While the previous works can provide some interesting ideas to our proposal their target is not actually the deployment of web applications in Cloud providers In this sense there is a shortage of works aiming at Cloud based solutions and we have only found some approaches created in the context of projects such as Paasage or ModaClouds Paasage is focused on cloud based software development and run time adjustments according to changing execut
97. uter enabling one or more Servicelnterfaces i e API CLI IDE Web etc Additionally the customer usage of each CloudService is optionally configured by zero or more ServiceConfigurationDescriptors Any Descriptor includes a set of DescriptorEntries characterised by a unique key which can reference their parent in order to support tree based nested configuration structures A DescriptorEntry also contains a reference to the CloudML ARTIST stereotype property that references this entry value in an application model properly annotated with deployment requirements A particular kind of CloudSoftwareService is the CloudDeploymentService which supports the deployment of applications into the CloudOffering This service is configured by one or several DeploymentDescriptors Different kinds of DeploymentDescriptors have been identified e ApplicationDeploymentDescriptor typically describes the deployment configuration for an application into a CloudPlatformOffering e InfrastructureDeploymentDescriptor typically describes the deployment configuration for a virtual image into a CloudInfrastructureOffering This descriptor enables the configuration of a set of CloudlInfrastructureVirtuallmages optionally grouped into CloudInfrastructureVirtualClusters e DeploymentTemplate reusable pre configured DeploymentDescriptor for some typical usages that can be further customised by the user A DeploymentDescriptor can reuse optionally predefined and reus
98. was included in the preliminary analysis mainly for the following two reasons e AWS support has not being required by ARTIST use cases for deployment e Deployment in AWS is already supported by the Cloud platform deployment framework of ModaCloud based on CloudML ARTIST provides a translator from CloudMLQ ARTIST to CloudML ModaCloud whereby deployment models for AWS created within ARTIST can be translated and used to support AWS deployment using the ModaCloud framework Nonetheless the ARTIST deployment approach is founded on solid and generic enough model driven techniques underpinning a common deployment modelling language which enables the adaptation with little effort on implementation of the Deployment Tool to support other Cloud target environments Project Title ARTIST Contract No FP7 317859 www artist project eu Page 10 of 62 D9 6 Automatic Deployment Strategies Version v1 0 Date 31 03 2015 1 Introduction 1 1 Aboutthis deliverable The modelling of the application deployment to the Cloud takes place during modernisation phase of the ARTIST Methodology It happens once the models that described the application components have been modernised and optimized and their source code compatible with the target Cloud offering has been generated from these modernised models Then there is still an important activity remaining since the application components need to be deployed into the target Cloud environment
99. web xml Figure 25 GAE generated deployment descriptors for each module of DEWS use case Figure 26 shows the generated Google App Engine descriptor for the CCUI module 9 DEWSDeploymentOnGAE AWS di 9 SPTGDeployment di appengine web xml 23 E k xml version 1 0 encoding utf 8 gt lt appengine web app xmlns http appengine google com ns 1 0 gt lt application gt DEWS Online lt application gt lt version gt 1 0 lt version gt lt module gt CCUI lt module gt lt instance class gt F1 lt instance class gt lt basic scaling gt lt max instances gt 2 lt max instances gt lt idle timeout gt 1 lt idle timeout gt lt basic scaling gt lt ssl enabled gt false lt ssl enabled gt lt sessions enabled gt false lt sessions enabled gt lt async session persistence enabled false gt lt threadsafe gt true lt threadsafe gt lt appengine web app gt Figure 26 GAE deployment descriptor Project Title ARTIST Contract No FP7 317859 www artist project eu Page 39 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 Similarly Figure 27 shows the Microsoft Azure generated deployment descriptors and scripts for the LoB deployment model Two deployment descriptors i e service configuration and definition and one script i e service description are generated lg gt eu artist usecases LoB ARTIST UseCases mas B fx gt deployment Es serviceConfigurati
100. while pre built layers include only MySQL user can install any other database on EC2 instances using custom layers or chef Project Title ARTIST Contract No FP7 317859 www artist project eu Page 48 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 recipes e g Cassandra PostgreSQL In addition Chef recipes can be used in order to establish a connection to an existing RDS instance or DynamoDB table Application layers a Ruby on Rails PHP Node js Java and Nginx b Data Layers MySQL and Memcached c Utility Layers Ganglia and HAProxy 3 Assign instances to the layers This step is about creating the instances with the chosen configurations 4 Application deployment In this step user must specify where the code is placed supported repositories Git SVN HTTP and S3 and any additional deployment tasks such as database configuration It must be noted that OpsWorks uses chef integration framework in order to automate the deployment of applications More specifically OpsWorks uses OpsCode Chef cookbooks for all the deployment installation and configuration of tasks such as scripts execution As mentioned at the second step of application deployment there are pre built cookbooks but in order to define a specific stack layer these cookbooks can be extended or overwritten through the implementation of custom cookbooks A cookbook consists of 1 Attributes files files containing attribu
101. work typically through a dedicated file O Virtual Machine O Load Balancer e The Network Configuration file which describes Virtual Network configuration settings The default extension is netcfg Oo VirtualNetworkConfiguration specifies Virtual Network and DNS values Sidenote You can also further automate the deployment and removal of additional instances based on demand using a framework such as the Enterprise Library Autoscaling Application Block This allows to set so called rules for dynamically changing the configuration of your system e Constraint rules enable you to set minimum and maximum values for the number of instances of a role or set of roles based on a timetable e Reactive rules allow you to adjust the number of instances of a target based on aggregate values derived from data points collected from your Windows Azure environment or application PaaS Project Title ARTIST Contract No FP7 317859 www artist project eu Page 52 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 To deploy an application to Windows Azure Cloud Services three files are involved The Service Package file that contains all your application s files which can be generated using the Cspack exe command line utility or through Visual Studio e The Service Definition file describes the service model It defines the roles included with the service and their endpoints and declares configuration settings
102. www artist project eu Page 23 of 62 WD9 6 Automated Deployment Strategies Version v1 0 Final Date 31 03 2014 deployment viewpoint ii cloudifying UML models is facilitated without the need to re model existing applications and iii profiles in UML allow hiding details of cloud provider offerings from models and dynamically switching between them by un re applying respective cloud environment profiles CAML is considered as part of the CloudML Q ARTIST 11 3 1 CAML By Example To emphasize the benefits of employing UML as the host language for realizing CAML we give an overview of UML s structural viewpoints that support representing application deployments by means of the ARTIST reference use case We take the viewpoint of the software components and their deployment Figure 9a depicts some components of our application an excerpt of their realizing classes and the manifestation of these components by deployable artefacts A possible on premise deployment for them is presented in Figure 9b It covers instances of the two deployable artefacts and connects them to a Java based middleware and a relational DBMS which are in turn deployed onto a node with specified virtual machine characteristics The model elements of the deployment are instances of the custom types defined in the component viewpoint cf Figure 9a and the deployment viewpoint cf iError No se encuentra el origen de la referencia c respectively T
103. yment profiles Browse your workspace on the Navigation or Package Explorer view and locate the deployment model you want to generate deployment descriptors from Right click and select the Deployment Tool gt Generate Deployment Descriptors entry in the pop up contextual menu see Figure 21 A Deployment Tool dialog appears Project Title ARTIST Contract No FP7 317859 www artist project eu Page 35 of 62 WD9 6 Automated Deployment Strategies Applications v eoe File Edit Source Refactor P r3 v i umi x d Build Pat Refactor KSE Import Export D Package Explorer H E Model Refresh Assign Working Sets amp gt deployment Show in Inventory View G goals Profile As Gy gt models Debug As 9 Gg ct Run As Gy dt Replace With 73 DEWSDeploymentOn Acceleo E DEWSDeploymentOn Artist Version v1 0 Final Date 31 03 2014 fels dt DEWSDeploymentOnGAE AWS di Eclipse jet Window Help ww ou EY AE VIR Ye Oy Gov Shift Alt T gt 3 Papyrus conf gt gt aWSM3Medium gt oudOffering DEWS Sensor Network CloudNode CloudService AWSM3Medium instanceCategory OnDemand contract OneYearTerm utilzation Medium gt gt A jon EU 3 DEWSDeployment or ete de DOR MES Deployment Descriptors tngsystem unux DEWSDeploymentO Cloudification Toolbox 7 PetstoreApplicationG Team Es PetstoreApplicationG Compare With 3 PetstoreApplicationG Discovery Gy md
Download Pdf Manuals
Related Search
Related Contents
leggi la rassegna F11 Installation Guide Mode d`emploi 454.304 Technique de l`aquarelle ニューストピックス・読者プレゼントコーナー(PDF:1.9MB) NGS XpressCam300 La dispensa per gli insegnanti Lexmark W820/X820e/X830e/X832e Service Manual for the ca 8333 only DesignAZ MODELE - copie - Les anciens sites web de la DGE Copyright © All rights reserved.
Failed to retrieve file