Download presentation
Presentation is loading. Please wait.
Published byGabriel Bishop Modified over 9 years ago
1
Lecture III: Challenges for software engineering with the cloud CS 4593 Cloud-Oriented Big Data and Software Engineering
2
Why is cloud-oriented software engineering different – or is it? For Cloud Client Software –Choosing the platform –Work with web services instead of libraries –Data is not at hand –Network and service exceptions –Pricing issues throughout the whole development and deployment process 2
3
Choosing the platform Market and Data Centric Long term expectation of the platform Price is also a concern –Hosting costs –Data and Other service costs Continuous Integration 3
4
Pricing: Windows Azure 4
5
5
6
Pricing: Google App Engine 6
7
7
8
Work with the services Invoking a web service is basically sending a HTTP request to the web servers –SOAP services requires an XML format envelop as the input –Build a SOAP and send it out –RESTful services are like a simple GET operation from a URL –All parameters are put in the URL 8
9
Examples SOAP Web Service Restful Service –https://github.com/search?l=Java&q=java&type=Repo sitories 9
10
Work with the services Need network access when executing your software Re-Interpretation of the results from the service –SOAP services: XML Infoset –Restful services: XML, JSON, CSV, …
11
Data is not at hand Data may not be stable –You may get different result next time you access the same service with the same input Search API, Price query API Data access may be restricted –You cannot invoke the API for too many times within a short period 150K in 24 hour for google Search API
12
Code is not at hand Potential updates may affect the client software –Not all changes of the services are backward compatible –You get the benefit of not maintaining the library, but you also get the risk that their update breaks your software –Be preventive for potential changes
13
Network or server may fail Data may not be complete –Need to check the validity of data –Resend the request or handle the exception in other ways –Monitoring of the data response Data may not reach in time –Multi-thread to avoid freeze at the user side
14
Pricing Issues: Requirement Decide the required resources –How many users? –How much budget? Combine business models –Income and Outcome balance –Can the API fee be transferred? –What if we run out of money Limitation? Plan B?
15
Pricing Issues: Design and Implementation How to better make use of the services –Never waste the response results (i.e., request the same data twice) –How timely the result is? If the data may change, then perhaps we have to resend the request –Balance Gain and cost of each execution
16
Pricing Issues: Testing Test will also cost you money –Optimize your test to use less services –Using mocking frameworks to replace service dependencies Testing of service is really important –If it is not working it will cost you a lot during the real- time running –Testing with small steps and small datasets first
17
Pricing Issues: Maintenance A bug may cost you a lot –When you change something Keep eyes on which services it will affect Always ask: Will the change increase number of service request made? Always ask: Will the change results in failed service invocation? Perform sufficient testing with mocking frameworks and small test set –For Debugging Debug with mocking framework, and contact the service developer team
18
Why is cloud-oriented software engineering different – or is it? For Cloud Service Software –Choosing the infrastructure –SOAP or REST based API –Elasticity: scale the service Architecture: multi-tenant Programming model, e.g., map-reduce –Price issues again –Runtime Software Evolution 18
19
Choosing the Infrastructure Public Cloud Private Cloud Hybrid Cloud
20
Public Cloud Provided by a cloud vender –Google, Amazon Usually the most economic option All benefits of cloud computing Data privacy can be a large concern Special Requirement such as hardware features can not be satisfied
21
Private Cloud Build your own cloud for your company or organization Different products and projects can share the cloud and get most cloud features Require an internal portal to allocate resources –May be complicated –May require maintenance team –Can leverage existing frameworks, e.g., openstack
22
Private Cloud Data privacy is better protected Can handle special hardware requirements May avoid budget constraints in development –Maybe still there if departments are independent High price and limited scalability Maintenance cost May not get the full benefits of cloud, e.g., backup, recovery, …
23
Hybrid Cloud Combines public cloud and private cloud Need a virtual layer to cover the two clouds and provide portal
24
Hybrid Cloud Privacy data and special hardware requirement go to local servers Other data and computation go to public cloud Achieve both flexibility, privacy and scalability May take advantage of legacy machines Require special management layer Communication can be complicated
25
Service Interface Restful or SOAP –SOAP is where web services developed from –But restful service is dominating now Restful vs. SOAP –Restful is faster and has simpler interface –Restful service support multiple data formats –SOAP provide more advanced security and data validity checking –SOAP is more reliable (e.g., resending mechanism to guarantee successful data transfer)
26
Elasticity The software should take advantage of the scalable resources How one software instance can take advantage of multiple virtual machines –Map reduce programming model How one software instance can serve multiple users –Multi-tenant architecture
27
Pricing Issue The same as cloud clients –You may also use other services How to generate lower resource cost without affect the service quality –Less CPU time –Less read/write operations –Less memory usage –Less storage –The best combination!
28
Runtime Software Evolution Continuous Integration and deployment –Release new features as soon as developers commit them –Automatic building –Automatic testing –Automatic deployment –Tool Supports: Jenkins, Jetbrains, …
29
Runtime Software Evolution Dynamic software loading –Component-based architecture –Re-Configuration –Reflection –Just-in-time Compilation
30
Service Deployment Monitoring –Monitor how your service is being used –Monitor the usage of resources Pricing –Setup reasonable price for your service –Good thing: You may pay less to your up- stream services if you get less users Billing –Send bills to your users
31
Cloud Migration Migrate from traditional web-based or desktop- based applications to cloud Evaluating the business case for public, private and hybrid cloud models Developing an enterprise integration and migration strategy towards cloud provisioning Review enterprise applications for SaaS candidates
32
Cloud Migration Review enterprise requirements for cloud security, governance and standards Determine optimal management of your virtualized environment and cloud implementation Review case studies from early adopters of SaaS, PaaS and IaaS solutions
33
Service Deployment Methodology It is paramount that IT and business goals are aligned throughout the process when considering a move to cloud computing, such as cost savings, security, control, flexibility, manageability, simplification, ease of use, expandability, reliability, availability… Consultation and Education Assessment and Design Deployment and Migration Monitoring and Tuning Customer Business Driver
34
Deployment and Migration Assessment and Design leads to a working solutions document (published best practice solutions guides) Solutions planning Investment planning & acquisition Integration & test Deployment, documentation, operations & maintenance
35
Monitoring and Tuning A cloud monitoring solution should identify problems before they become critical. A nice option may be to deploy a third party monitoring service. By implementing a comprehensive monitoring solution IT organization are equipped with the tools to determine real business value for cloud solutions
36
Summary Software Engineering for Cloud –For Cloud Clients Platform Service invocation Budget driven –For Cloud Services Infrastructure Programming model and software architecture Monitoring Runtime evolution –Migration to the cloud
37
Next Class Web services –SOAP services WSDL SOAP Envelop –Restful services URI Self-descriptive messages
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.