Scenarios of cloud solutions. Backup and fault tolerance in web, mobile and media scenarios
Aplana Company has prepared an extensive overview of scenarios for the use of Windows Azure platform services. We are pleased to share with you this interesting document that will be useful for any individual developers and companies involved in creating applications and considering the Windows Azure cloud as a platform for their solutions. This guide consists of three parts, this is the second part in which you will learn about backup and resiliency web application scripts, mobile and media scripts. The first part of the document is available at this link .
Backup for websites
The solution for backing up and then restoring a website allows you to implement a backup mechanism for a website based on Windows Azure Storage. In some cases, the solution allows for compatibility at the web server and database levels, as well as the ability to launch a copy of the website directly from the cloud. The approach to backing up websites can consist of several steps, listed below:
- Creating a website backup
- Starting a site from the cloud
- Database Migration
We will begin the discussion of the solution related to the backup and subsequent restoration of the website by creating a backup copy of the website.
In general, there are four types of websites whose backups are supported as part of this solution:
- Simple website on IIS
- Copy: code, server settings, file system structure, files
- Simple PHP Website
- Copy: code, server settings, file system structure, files
- IIS website with database
- Copy: code, server settings, file system structure, files, database
- PHP website with database
- Copy: code, server settings, file system structure, files, database
Launching a site from the cloud
In cases where the website is based on a set of technologies supported by the infrastructure services of the Windows Azure cloud platform, this solution can be expanded by creating a virtual machine or a set of virtual machines with their subsequent placement in the Windows Azure infrastructure.
Note that this approach is one of the ways to improve the website's resiliency.
The cost of implementing a solution to launch a copy of the website from the "cloud" depends on the characteristics of the virtual machine in which the image of the site will be located, database requirements, and also the volume of outgoing traffic.
Website Resiliency Improvement
The solution for improving website resiliency allows for increased scalability and website resiliency, quick response to DOS and DDOS attacks, monitoring and analysis of incoming traffic, and dynamic web server configuration.
The following are possible approaches to implementing this solution, the choice of which depends on the configuration of the existing web server, the customer’s infrastructure, as well as the tasks facing it:
- Migrate a site to Windows Azure.
- Possible implementations are using Windows Azure Web Role, Windows Azure Web Sites, deploying Windows Server and Internet Information Services (IIS) in a virtual machine (infrastructure services)
- Using infrastructure services to deploy a website in a virtual machine
- Using the auto-scaling mechanism (allows you to increase the number of resources that process incoming requests and thereby “withstand” DOS / DDOS attacks for some time) - this is possible if you use the platform services Windows Azure
- Creating a monitor that controls the number and characteristics of the virtual machines in which the website is hosted - possible if you use the Windows Azure infrastructure services
- Enhanced Resiliency
- Placing additional copies of the site in the same data center, data center in the same geographical area, in the data center in another geographical area, connecting the Traffic Manager for external load balancing and distribution of incoming requests
- Implementation of the module for monitoring and analysis of incoming traffic
- Monitoring and analysis of incoming traffic involves the collection of information, which can then be used to dynamically configure the web server
- Implementing a dynamic web server configuration mechanism
- Based on the data collected by the monitoring and analysis module for incoming traffic, it is possible to set rules for the dynamic configuration of the web server
- Increase site scalability
- Improving Site Resiliency
- Decrease in probability of loss of resource availability during DOS / DDOS attacks
- The ability to analyze and dynamically configure the web server
As noted above, this solution can be implemented in several stages, depending on the current tasks of the customer.
Mobile access to resources
This solution allows you to use the "cloud" to provide mobile access to company resources - both for company employees, and for partners and end users.
One of the tasks that many companies often face is to provide access to company resources located in the internal infrastructure - such resources can be either files or some applications or processes. Most often, such a task arises in those cases when it is required to provide access to resources from mobile devices - these can be both mobile devices of employees and mobile devices of end users.
There are three main categories of users of mobile services:
- Employees - their number is known; there are no special requirements for application scalability
- Partners - their number is known; moderate application scalability requirements
- End users - their number is not known in advance, high requirements for application scalability
There are 3 main types of resources that may be of interest to employees equipped with mobile devices:
- Applications running in the company's internal infrastructure
- Data stored in databases and other types of storage located in the company's internal infrastructure
- Company internal portals and websites available only within the company
The following scenarios are naturally obtained from such a classification of resources:
- Scenario 1:
- The company needs to provide employees equipped with mobile devices with access to internal applications
- Scenario 2:
- The company needs to provide employees equipped with mobile devices with access to data or a subset of the data stored within the company
- Scenario 3:
- The company needs to provide employees equipped with mobile devices with access to the company's internal portals and / or websites (intranet)
- Current infrastructure and technology used internally
- Budget and resources dedicated to creating mobile solutions
- Company policies in the field of support for devices brought by users (Bring Your Own Device, BYOD) and standards for mobile devices and supported device types adopted by the company
In general, a decision to provide mobile access to company resources must meet the following requirements:
- The solution should support authentication and authorization both at the level of the mechanisms adopted by the company (for example, Active Directory and role model), and the most popular systems, including Live ID, Google ID, etc.
- In the case of providing access to a subset of resources to external users, the number of which is not known in advance, the solution should provide an adequate response to incoming requests, timely allocating the necessary resources required for their processing
- Support for various types of mobile devices
- In the case of providing access to a subset of resources to external users or partners, the solution should provide support for various types of mobile devices - both at the interface level, and at the level of interaction methods and protocols.
Mobile access to applications
In this scenario, the company needs to provide employees equipped with mobile devices with access to internal applications.
The implementation of this scenario depends on the applications, access to which should be implemented at the level of the created solution. In general, there are three types of applications:
- Applications supporting basic integration mechanisms
- Applications Supporting Web Service-Level Integration Mechanisms
- Applications made as a functional set of web services integrated among themselves
In the first case, the implementation of the so-called “Integration layer”, which will be a software solution that interacts with the basic mechanisms of integration of “traditional” applications and “opens” these mechanisms for a standard set of web services created as part of the solution.
The second and third type of applications will require the implementation of a mechanism for the interaction of existing web services at the application level with a standard set of web services created as part of the solution.
Mobile data access
In this scenario, a company is required to provide employees equipped with mobile devices with access to data or a subset of the data stored within the company.
The implementation of this scenario depends on the type of data that must be accessed as part of the solution being created. In the general case, this can be data stored in database management systems (DBMS) and data stored as files in storages of the corresponding type.
In general, there are two types of data available within the framework of the created solution:
- Data whose composition and content rarely changes
- For example: contact information, product list, marketing materials
- Data whose composition and contents change frequently
- For example, stocks, stock prices
Depending on the type of data presented above, two approaches can be implemented to provide mobile access to them - either obtaining data directly from the company's repositories (for frequently changing data), or creating an intermediate “cloud” storage to provide access to rarely modified data. Depending on the frequency of data changes, one or another approach or a combination of the two can be used. In order to reduce the load on the company's internal systems, for example, automatic uploading of data at specified time intervals or, for example, synchronization of data stored in the DBMS with the corresponding storage in the “cloud” can be implemented.
As in the previous scenario, the specific implementation of this solution depends on the type of data, the frequency of its updating and the amount of data intended for consumption by mobile users.
Mobile access to web resources
In this scenario, the company needs to provide employees equipped with mobile devices with access to internal portals and / or company websites (Internet).
Relatively often, a company has the task of making web resources available, the full optimization of which is not possible. For example, despite the fact that all modern mobile devices support web browsers that can be used to access web resources, often the structure and design of such resources do not meet the requirements of ease of use when accessing them from mobile devices. This problem is especially relevant for mobile phones with a small screen size - in this case, it is assumed to work with web pages optimized for this form factor. Creating a separate mobile version of web resources is not always possible - this task requires an additional budget, resources and, often, all resources are simply not needed by users equipped with mobile devices.
The approach proposed in this solution is to create an intermediate “cloud” storage that would serve as a “buffer” between users equipped with mobile devices and the company's web resources. This approach may be relevant in cases where the number of users is not known in advance, and optimization of the existing infrastructure is not possible - in this case, the cloud buffer takes care of all scalability tasks. Further, depending on the needs of a particular customer, either mobile client applications or a set of HTML pages optimized for display on mobile devices can be created.
The approach described above has the following advantages:
- Allows you to provide mobile access to company web resources without the need to optimize existing infrastructure
- Provides high reliability and scalability through the use of appropriate components of the platform services of the Windows Azure platform
- Provides the necessary level of security, as users access the “cloud” buffer, and not the internal web resources of the company
- It is extensible - without any changes on the side of the company's infrastructure, if necessary, support for new types of devices can be added
The cost of deploying a solution for mobile access to company’s web resources in the general case is the sum of the cost of the two solutions described earlier - solutions for access to applications and solutions for data access.
The choice of a “cloud” as a buffer between the customer’s infrastructure and mobile users can significantly increase the scalability and fault tolerance of the solution. At the same time, virtually no changes are required to the existing customer infrastructure. This is exactly what the specialists of the Aplana company did when creating a solution for one of the airports in the capital. The solution implemented on the Windows Azure platform receives data from the airport’s internal system via FTP, converts it, stores it in the cloud storage and provides hundreds of thousands of airport mobile application users with information on flights, services and public transport.
Using multimedia data
Microsoft Windows Azure Platform Services (PaaS) includes a component for working with multimedia data (Windows Azure Media Services). Media services are a set of functions for placing, transforming, protecting and broadcasting content.
Media Services and Training
An example of the use of media services can be an internal training system for employees and partners. This system implements the ability to track the actions of students - for example, they cannot skip video fragments, must respond to information displayed on the screen, etc. Combined with the game mechanism (gamification), such a system can be a new step in the training and development of employees and partners.
Media Services and Marketing Programs
The second example of the use of media services is the publication on the website of the company and / or its partners of marketing materials with embedded advertising and a metrics collection system. This approach does not require the placement of materials on external hosting systems such as YouTube and allows a flexible approach to the definition of the data being collected, their presentation formats, etc., and also provides features such as support for converting file formats on the fly, adaptive streaming, etc. P.
The second option is to use media services as an intermediate platform for creating marketing materials, for example, to collect opinions from a specific audience or partners. Completed materials are published on YouTube or in another public media hosting service.
Using Media Services
In order to increase the transparency of its activities, one of the ministries of the Russian Federation decided to post video recordings of the activities of its units in the public domain. Video recordings are accompanied by a set of advanced attributes, some of which are automatically added from the internal system of the ministry. The total amount of information is several million records.
Using Windows Azure Media Services allows you to solve the problem of providing video information in the form of an adaptive stream that takes into account the connection speed of users, and integration with Active Directory (through Windows Azure Active Directory) ensures the distribution of rights to employees of the organization who post data and edit attributes.
Monetization of data and services
Another option for using Microsoft Windows Azure platform services (PaaS) is to create a service to provide data (for example, directories, etc.) to partners for their subsequent “sale” to end consumers.
In this case, a service is created that has a “commercial” component, for example, which allows you to track the number of data requests from each partner and, on this basis, issue monthly invoices to partners.
Since the data and the services themselves are located in the cloud, this solution makes it independent of the main customer’s infrastructure, scalable - i.e. with an increase in the number of service calls, additional resources are automatically allocated and measured - i.e. it becomes possible to track calls to the service and data.
About Aplan Company
Aplana company specializes in the development, testing and maintenance of software created in accordance with the specific requirements of customers and provides services for the implementation and integration of applications for corporate clients in the Russian and foreign markets. The Aplana company is a member of the IT Co. Group, it has representative offices in Russia, the USA and the UK.
Aplana is an official Microsoft partner and has a number of Microsoft Partner Awards in the field of software development ... in 2013, Aplana received the Partner of the Year award in the nominations ...
Aplana company was the first Russian company to become a member of Azure Circle, a program that brings together leading Microsoft partners who perform a full range of work on creating applications on the Windows Azure platform for corporate clients. Participation in this program allows Aplan to expand the range of services provided, raise the technical level and quality of ongoing projects, and also provides an opportunity to attract Microsoft resources when searching for solutions to emerging issues and suggesting optimized design solutions.
The company employs developers who pass the Designing and Developing Windows Azure Applications exam, confirming their qualifications in the platform and cloud technologies of Microsoft. In addition, Aplana has implemented a number of successful projects for Russian and foreign customers, including the Telegraph Media Group, UBM Medica, Sheremetyevo Airport and several other companies.
Read on in the next article ...