The cloud computing manifesto is a complication of proceedings and results of the cloud computing use case group that brought the cloud vendors as well as the cloud users on a single platform via use case scenarios that demonstrate the economic benefits as well as the performance on the cloud.
The aim of this paper is to showcase the abilities and requirements that should be there in the cloud environment so that the processes like portability, ease of workflow management and interoperability are done properly.
Open Cloud An Introduction to Its Application:
Application Programming Interfaces
Majority of the cloud computing solutions are interconnected and work with the interfacing over the API’s , The API’s are classified into following levels :
- The WIRE is the first level of API’s , It has two modes . First one is via the REST requests and the second one is via the SOAP requests. In case of REST , the developer would make the HTTP header and connect it to the open connection available to process further. Whereas in case of SOAP modeled services, the developer adds the data’s payload potential into the process that includes the necessary steps required to parse the HTML files.
- Particular Language specific toolboxes , Developers use it for passing their SOAP or REST requests. Though the person who handles the development focuses on the data and it’s types, the formatting is handled automatically by the toolboxes.
- Toolboxes that are service specified, In this case the person doing the development can be much more specific and business centric so that his productivity boosts up because it’s focus is not on the protocol that wires the information but only on the organizational workflows.
- Toolboxes to neutralize the services, This is the biggest API level . The significance of this category is that the developer can the platform independent i.e. he doesn’t need to think about the configurations of the cloud offered by the cloud provider.
Categories of API’s
- General programming is the first category, it involves programming in various languages like C, C++, PHP etc and nothing is very cloud much oriented with the cloud settings.
- Deployment phase is the second category that may have some specific mechanisms and packages like having a .net package etc.
- Cloud services being offered by the vendor fall into the third category, this involves databases and messages over the cloud apart from other cloud options available.
- Infrastructure Management, This involves detailed control over services like managing the firewall and the network or doing the load balancing.
- Last category is the internal interface, that is the internal programming interface to connect the internal parts of the cloud system.
Open Cloud Manifesto User case scenario’s:
- End to End User and cloud: In this case the user at the terminal would be operating on the data. There should be a user authentication on the cloud where the user has independence to use any technology to operate it apart from the regular security and the service level agreements.
- Enterprise to end user via the cloud: The cloud acts as a medium here to reach to the user. The user should have a direct registration with the enterprise company in this case.
- Enterprise connected to the cloud interface: In this case, the cloud interface is used by the enterprise for all its internal programs. This is the most friendly use case in the initial stages of the cloud.
- A cloud connecting two enterprises: As the name suggests , it uses two enterprises connected via a single cloud.
- A privately held cloud: This is very different from the above cases in a way that the cloud is personally held by the enterprise.
- Replacing cloud vendors: As the user processes keep changing, the cloud servers too get changed in this case. The best advantage of cloud standardization is the ability to work with any cloud vendors available at my given point of time.
- Hybrid Clouds: This involves the co ordination of various public and private clouds to work together .
- Processing the payroll : The major user problems like huge processing time and high configuration hardware requirements are solved Enterprise to cloud is the best use case for this scenario.
- Project Management along with Logistics: The major factor in this scenario is that the development atmosphere is up to date that reduced the processing time. An enterprise connected to end user via the cloud is the best scenario for this case.
- Centralized Government: In this case the IT expertise is consolidated and thus reducing the requirements for the hardware. A private cloud is a good use case scenario.
- Local Government: This scenario is exactly the same as the previous case, the only difference is that this involves a hybrid cloud whereas a centralized government has a private cloud.
- Data processing done astronomically: An enterprise to end user via the cloud is the best possible scenario for this case and it reduces immensely the energy bandwidths as well as the hardware expenses.
- Database: The developer working on any application in the cloud environment needs access to the database and therefore a cloud database management application would be required by the developer.
- Central logging: Maintaining a healthy logging of all the changes made is the most common requirement of a developer ir respective of any environment.
- Caching: Developers need a dedicated API to flush out the cached pages and to add new stuff into the caching.
- Identity Management: If an application is accessed via more than one sources where it is stored, it needs login and access to those sources and hence a proper security mechanism to access it is required.
- Point to Point Messaging: A developer needs a dedicated messaging API to send messages on every instance of operations.
- Pub-Sub Messaging: Developers need a strong API setup to post topics to the queuing system of the application.
- Job Processing: A dedicated API to start, pause and stop all tasks is required by the developers in large scale jobs.
- Session Management: Session Management is a very important part in the entire process, whenever a cloud or its API goes down on the performance side, it is very critical to store the session and proper session management is required for the same.
- Service Accessibility: Developers should be friendly what kind of service is being offered by the cloud vendors along with proper API commands and credentials for the same.
- Service Level Agreements: Developers require the knowledge of what all options are provided by the cloud vendors to further satisfy the client requirements.
- Storage: Developers need a way to store and access the data and the metadata both with a backup facility option.
Though Cloud development is safe and secure to develop, additional focus is required on the security of the cloud as the cloud servers of the enterprise may be located with different vendors at different locations globally and not in house with the enterprise most of the times. Therefore additional care should be taken to protect the cloud via the developers to keep the security levels high so that there is no vendor lock in because of breach of security by the development team.
Service level agreements
Service level agreement abbreviated as an SLA refers to the agreement between the cloud vendor and the consumer that is the development team. It has the following components:
- All service details to be delivered to the cloud
- Mutual roles of both the developer and the vendor for cloud maintenance
- A set of scaling and service management factors to determine that if the service delivered by the vendor is adequate and up to the mark as mentioned in the SLA or not.
- Alternative solutions available if by any chance anyone out of both the parties goes out of the contract or the contract fails on a mutual agreement.
- How would the SLA change and upgrade or downgrade with time and requirements.
Service Level Objectives:
Service level objectives define the objectives in terms of facts and figures, for eg:
- The pending requests in the system should never be more than 12 at any point of time.
- The time of a request throughput should always be less than 2.5 seconds.
- If there is any read request that requires data streaming it should begin in less than 1.5 seconds.
Service Level Management:
The service level agreement is followed via the service level management best practices. Let us consider a use case scenario where the actual bandwidth demanded and on agreement by the consumer is coming out to be less and that is causing some troubles in the user application access that includes problems like increased load time or video buffering etc. In this case the cloud vendor would increase the bandwidth so that the service level agreement is obeyed and the user is satisfied.
Service Level Agreement Requirements:
Security is the first and foremost requirement by a user in the Service level agreement as discussed above.
- Data Encryption
Data encryption and decryption services should be available so that the data can not be miss used.
Privacy concerns may arise when the data is highly critical and confidential data, it involves the services like that of encryption, decryption, retention and deleting the data.
- Hardware Restructuring
When a VM is turned off or stopped full time, the hardware may be required to be disposed off and this may be a requirement by the user, most of the cloud vendors provide this service.
- Geo Regulatory Compliance
Various countries have their own IT laws for data monitoring and regulations and this should be followed keeping the user’s perspective on his data secure.
Sometimes a cloud maybe down for several hours and the user is billed for that time, if the vendor does not informs that the cloud was down, a user may not have sufficient proofs for the same. Therefore being transparent is the best possible way for a vendor to gain a good market reputation.