Aplana’s company has prepared an extensive review of usage scenarios for Windows Azure platform services. We are pleased to share with you this interesting document, which 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 scenarios and web application fault tolerance, mobile and media scenarios. The first part of the document is available at this link .
Backup for websites
The solution associated with the backup and subsequent restoration of the website allows you to implement a backup mechanism for the website based on Windows Azure Storage. In some cases, the solution allows to ensure compatibility at the web server and database levels, as well as to realize the ability to launch a copy of the website directly from the cloud. The approach to backing up web sites can consist of several steps listed below:
- Create a backup copy of the website
- Launching a site from the cloud
- Database Transfer
The discussion of the backup solution and the subsequent restoration of the website will begin with a backup of the website.
Create a backup copy of the website
In general, there are four types of websites that can be backed up as part of this solution:
')
- Simple IIS website
- Copies: code, server settings, file system structure, files
- Simple PHP site
- Copies: code, server settings, file system structure, files
- IIS website with database
- Copies: code, server settings, file system structure, files, database
- PHP website with database
- Copies: code, server settings, file system structure, files, database
The cost of implementing a solution to create a backup copy of a website on the Windows Azure platform depends on how the component that generates and sends the “package” with a copy of the website to the Azure Storage is implemented.
Launch of the site from the "cloud"
In cases where the website is based on a set of technologies supported within the framework of the infrastructure services of the Windows Azure cloud platform, this solution can be extended 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 resiliency of the website.
The cost of implementing a solution to launch a copy of a site from the “cloud” depends on the characteristics of the virtual machine that will contain the site image, database requirements, and outgoing traffic.
Increase website resiliency
The solution to improve the resiliency of websites allows you to implement enhanced scalability and resiliency of the website, rapid response to DOS and DDOS attacks, monitoring and analysis of incoming traffic, as well as dynamic configuration of the web server.
The following are possible approaches to the implementation of this solution, the choice of which depends on the configuration of the existing web server, customer's infrastructure, as well as its tasks:
- Website transfer to Windows Azure.
- Possible implementation options 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
- Scalability
- Using the auto-scaling mechanism (allows you to increase the number of resources that process incoming requests and, thus, “withstand” DOS / DDOS attacks for some time) - perhaps in the case of using Windows Azure platform services
- Creating a monitor that controls the number and characteristics of the virtual machines hosting the website — possibly with Windows Azure infrastructure services
- Ensuring increased 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 geographic area, connecting the Traffic Manager for external load balancing and distribution of incoming requests
Possible extensions of this solution:
- Implementation of the module for monitoring and analyzing incoming traffic
- Monitoring and analyzing incoming traffic involves gathering information that can then be used to dynamically configure a web server.
- Implementing a dynamic web server configuration mechanism
- Based on the data collected by the monitoring and analysis module of incoming traffic, it is possible to set rules according to the dynamic configuration of the web server
The advantages of the proposed solution to improve the resiliency of websites:
- Increase site scalability
- Increase site resiliency
- Reducing the likelihood of loss of availability of resources during DOS / DDOS attacks
- 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 providing 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 cases where access to resources from mobile devices is required - 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 requirements for application scalability
- 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 internal infrastructure of the company
- Internal company portals and websites that are accessible only within the company
From this classification of resources, the following scenarios are naturally obtained:
- Scenario 1:
- The company is required to provide employees with mobile devices access to internal applications.
- Scenario 2:
- A company needs to provide employees with mobile devices access to data or a subset of the data stored within the company.
- Scenario 3:
- The company is required to provide employees with mobile devices access to the internal portals and / or company websites (intranet)
The implementation of one or more of the above scenarios depends, at a minimum, on the following:
- Current infrastructure and technologies used internally
- Budget and resources allocated to the creation of mobile solutions
- Company policies in support of devices brought by users themselves (Bring Your Own Device, BYOD) and standards for mobile devices and supported device types adopted by the company
In general, the decision to provide mobile access to the company's resources must meet the following requirements:
- Security
- The solution should support authentication and authorization at the level of the company's adopted mechanisms (for example, Active Directory and role model), as well as the most popular systems, including Live ID, Google ID, etc.
- Scalability
- In the case of granting 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 Application Access
In this scenario, the company needs to provide employees with mobile devices access to internal applications.
The implementation of this scenario depends on the applications, access to which must be implemented at the level of the created solution. In general, there are three types of applications:
- Applications supporting basic integration mechanisms
- Applications that support web service-level integration mechanisms
- Applications implemented as a functional set of web services integrated with each other
In the first case, the implementation of the so-called. “Integration layer”, which will be a software solution that interacts with the basic integration mechanisms 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 interaction of web services existing at the application level with a standard set of web services created within the solution.
Mobile data access
In this scenario, a company needs to provide employees with mobile devices 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 within the framework of the solution being created. In general, these can be data stored in database management systems (DBMS) and data stored as files in the repositories of the corresponding type.
In general, there are two types of data available within the solution being created:
- Data whose composition and content rarely changes
- For example: contact information, list of products, marketing materials
- Data whose composition and contents change frequently
- For example, stock balance, product prices
Depending on the type of data listed above, two approaches can be implemented to ensure mobile access to them - either to retrieve data directly from the company's repositories (for frequently changing data) or to create an intermediate “cloud” repository to provide access to rarely changing 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 a 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 their update 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 with mobile devices access to internal portals and / or company websites (the Internet).
Relatively often, the company has the task of making available web resources, 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 for 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 supposed 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 who are equipped with mobile devices.
The approach proposed in this solution is to create an intermediate "cloud" storage, which would serve as a "buffer" between users with mobile devices and the company's web resources. Such an approach may be relevant in cases where the number of users is not known in advance, and the optimization of the existing infrastructure is not possible - in this case, the cloud buffer assumes all the 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 the company's web resources without the need to optimize the existing infrastructure
- Provides high reliability and scalability by using the appropriate components of the platform services of the Windows Azure platform
- Provides the necessary level of security, as users access the “cloud” buffer, not the company's internal web resources.
- 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 the company's web resources generally consists of the cost of two previously described solutions — a solution on access to applications and a solution on access to data.
Example
The choice of a “cloud” as a buffer between the customer’s infrastructure and mobile users can significantly increase the scalability and resiliency of the solution. At the same time, practically no changes are required to the already existing infrastructure of the customer. This is exactly what the specialists of Aplana did when creating a solution for one of the airports in the capital. Implemented on the Windows Azure platform, the solution receives data from the internal airport system via FTP, converts it, stores it in the cloud storage and presents information about flights, services and public transport to hundreds of thousands of users of airport mobile applications.
Use of multimedia data
The 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 hosting, transforming, protecting and broadcasting content.
Media services and training
An example of using 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 clips, must respond to the information presented 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 using media services is publishing marketing materials with embedded advertising and a metrics collection system on the website of the company and / or its partners. This approach does not require the placement of materials on external hosting systems such as YouTube and allows flexibility in defining the collected data, their presentation formats, etc., and also provides features such as support for on-the-fly file format conversion, adaptive streaming, etc. P.
The second option is to use media services as an intermediate platform when creating marketing materials, for example, to collect opinions from a specific audience or partners. Completed materials are published on YouTube or in another public service hosting multimedia files.
Use of media services
Example
In order to increase the transparency of its activities, one of the ministries of the Russian Federation decided to lay out video recordings of the activities of its departments in open access. Video recordings are accompanied by a set of extended 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 speed of connection of users, and integration with Active Directory (through Windows Azure Active Directory) provides distribution of rights to employees of an organization who place data and edit attributes.
Monetization of data and services
Another option to use 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 users.
In this case, a service is created that has a “commercial” component, for example, which allows you to track the number of requests for data from each partner and, on this basis, issue monthly bills to the partners.
Since the data and the services themselves are located in the "cloud", it makes such a solution independent of the customer's basic infrastructure, scalable - i.e. when the number of calls to the service grows, additional resources are automatically allocated and measurable — that is, There is a possibility of tracking appeals to the service and data.
About Aplana
The company “Aplana” 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 company “Aplana” is a member of the Group of Companies “IT”, has representative offices in Russia, the USA and the UK.
Aplana is the official partner of Microsoft 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 nominations ...
Aplana was the first Russian company to become a member of Azure Circle, a program that brings together Microsoft's leading partners who perform a full range of work on creating applications on the Windows Azure platform for corporate clients. Participation in this program allows Aplana to expand the range of services provided, raise the technical level and quality of projects implemented, and also provides the opportunity to attract Microsoft resources when searching for solutions to emerging issues and offering optimized design solutions.
The company employs developers who have passed the Designing and Developing Windows Azure Applications exam, confirming their qualification in the field of Microsoft platform and cloud technologies. 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 a number of other companies.
Continued in the next article ...