Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture III: Challenges for software engineering with the cloud CS 4593 Cloud-Oriented Big Data and Software Engineering.

Similar presentations


Presentation on theme: "Lecture III: Challenges for software engineering with the cloud CS 4593 Cloud-Oriented Big Data and Software Engineering."— Presentation transcript:

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


Download ppt "Lecture III: Challenges for software engineering with the cloud CS 4593 Cloud-Oriented Big Data and Software Engineering."

Similar presentations


Ads by Google