building reusable apis in a mobile first, cloud first ... · web viewbuilding reusable apis in a...

17
Building Reusable APIs in a Mobile First, Cloud First Business Environment Published February 2015 Microsoft IT uses hybrid cloud architecture to leverage the benefits of cloud computing and to improve line of business application development by eliminating monolithic applications that require high levels of maintenance and developer involvement. The Middle Tier Services team at Microsoft IT created a comprehensive set of guidelines and implementation methods that is designed to reduce complexity, increase consistency in delivery, and decrease the total cost of ownership for line of business applications. Situation As part of the Mobile First, Cloud First strategy at Microsoft, Microsoft IT analyzed the way that applications are developed and implemented within Microsoft. This analysis revealed several opportunities to optimize the development process by using Microsoft Azure and cloud platform services. The analysis also showed redundancy and inconsistency in the way that applications across the organization interacted with corporate users and data. Solution The Middle Tier Services team at Microsoft IT has introduced a comprehensive set of guidelines and implementation methods to change the way that Microsoft IT designs and implements internal applications. These guidelines and methods result in an application design for the cloud that is more consistent, user-friendly, and cost effective. Benefits Reduced application complexity Reduced maintenance and development costs Consistent user experience Increased design quality Lower cost of ownership

Upload: lydiep

Post on 21-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Building Reusable APIs in a Mobile First, Cloud First Business EnvironmentPublished February 2015

Microsoft IT uses hybrid cloud architecture to leverage the benefits of cloud computing and to improve line of business application development by eliminating monolithic applications that require high levels of maintenance and developer involvement. The Middle Tier Services team at Microsoft IT created a comprehensive set of guidelines and implementation methods that is designed to reduce complexity, increase consistency in delivery, and decrease the total cost of ownership for line of business applications.

SituationAs part of the Mobile First, Cloud First strategy at Microsoft, Microsoft IT analyzed the way that applications are developed and implemented within Microsoft. This analysis revealed several opportunities to optimize the development process by using Microsoft Azure and cloud platform services. The analysis also showed redundancy and inconsistency in the way that applications across the organization interacted with corporate users and data.

SolutionThe Middle Tier Services team at Microsoft IT has introduced a comprehensive set of guidelines and implementation methods to change the way that Microsoft IT designs and implements internal applications. These guidelines and methods result in an application design for the cloud that is more consistent, user-friendly, and cost effective.

BenefitsReduced application complexityReduced maintenance and development

costsIncreased focus on design and

innovation

Consistent user experienceIncreased design qualityLower cost of ownership

Products and TechnologyMicrosoft AzureMicrosoft SharePoint ServerWindows 8.1

Microsoft System Center 2012Microsoft Visual StudioWindows Phone

2 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

IntroductionCloud computing has become a major consideration in all components of information technology (IT). When Microsoft CEO Satya Nadella announced the “Mobile first, cloud first” initiative in March, 2014, the pursuit of an agile, cloud-based enterprise was reinforced by his words: “We want to ensure that Microsoft thrives in a mobile first, cloud first world.” Microsoft has committed to cloud-based computing by using Microsoft Azure across all components of IT infrastructure, including applications. Like many enterprises, Microsoft wants to enable its IT department to support business-driven technology as efficiently as possible. However, as the adoption of cloud computing has grown, support for applications on multiple platforms across a large number of business groups has become more complex.

In today’s mobile first, cloud first environment, application programming interfaces (APIs) are frequently being used by Microsoft IT developers to enable interaction between applications. APIs can be used to provide functionality for applications and to connect applications for data exchange and interoperability. The Middle Tier Services Team at Microsoft IT recognized an opportunity to establish a standardized API development environment at Microsoft to provide a reliable, efficient application environment that uses mobile, first cloud first technology to realize business goals.

SituationMicrosoft IT supports thousands of business (LOB) applications globally across all of its business groups. The LOB application environment at Microsoft includes applications that have been developed internally by Microsoft development teams and applications that have been developed by Microsoft IT business partners for internal use. The LOB application portfolio is in a state of constant change; new applications are implemented, old applications are retired, and currently used applications are being migrated from local data centers to Azure. The migrated applications benefit from the increased scalability, agility, elasticity, resiliency, and availability that is provided by Azure.

The development process for LOB applications is often managed internally, by developers from business groups, or by developers within Microsoft IT. While the development process at Microsoft is not arbitrary, it can vary greatly between development teams and business groups within Microsoft. Developers must consider the resources an application uses, both on-premises and cloud-based, and the various development practices across the organization. A development team from the sales group in India may have a different way to design a user experience and implement data and resource access than another development team from the human resources group in North America. As a result, the applications that these two teams produce can each be significantly different in their implementations and user experiences.

Assessing Application Development at MicrosoftAs part of the ongoing process of migrating its application portfolio to cloud computing, Microsoft IT analyzed how applications were being developed across the organization, both traditionally and in Azure. The results of this analysis demonstrated, among other things, that the commonly used development methods at Microsoft were creating several issues within the organization.

Development of monolithic applicationsWithin Microsoft, many different organizations develop their own applications. An analysis of these applications revealed that for many of them, all functionality was contained within the application itself. This design made the application large, cumbersome to host, and difficult to maintain. Small changes to data sources or network connectivity meant that developers had to publish an update to the application, which then needed to be downloaded and installed by end users.

Multiple development methodsThe development methods and design principles that were applied varied from one business group to another. Internally developed applications differed in implementation and, as a result, in practical usage. This led to applications accessing resources and user

3 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

input in different ways, which was detrimental to both IT groups supporting the applications and users.

Duplicated efforts in developmentWith the monolithic application structure, many developers were creating application services and APIs within their applications that had been created elsewhere by another development team, and often several times over. The duplicated effort resulted in more time spent developing the application and inefficient use of developer resources.

Different user experiences across applicationsDevelopment teams were providing a variety of user experiences within their applications. Applications used on the same platform – Windows Phone, for example – might have completely different visual and interactive aspects, despite being used by the same group of users. These users were then forced to learn several different application interfaces. Of course, users who accessed applications developed on completely different platforms had similar problems, only more pronounced.

Different methods used to access corporate dataAnother primary concern was the way that applications interacted with resources and data. Each application, with its built-in APIs and services, had data access methods integrated with the application itself. Data and resource access methods varied as much as development methods and user experience, which made it difficult to troubleshoot issues and ensure data security.

Mobile First, Cloud FirstThe mobile first, cloud first initiative builds on previous cloud-focused strategies that Microsoft has been implementing over the past several years. During this time, cloud computing has progressed from an industry buzzword to a legitimate and effective consideration for hosting IT services.

Why Microsoft IT is mobile first, cloud firstAs part of the Microsoft migration to cloud computing, the mobile first, cloud first initiative is driven by several factors that are motivating Microsoft – and other organizations – to move to mobile-focused cloud computing. This move has several important effects on business practices and application development at Microsoft:

Bring your own device (BYOD). The proliferation of the BYOD trend that began with smart phones and tablets has extended to almost every piece of technology that is capable of communicating with the enterprise and consuming corporate IT services. Users expect – and sometimes demand – access to corporate IT resources from eveywhere. Access to corporate email on personal smart phones and access to corporate appliations from home computers, tablets, and smart phones are a small sample of the different ways that users are becoming increasingly connected to the enterprise, and not only from IT-controlled and -owned devices.

Increased movement to cloud services. As organizations are realizing the cost benefits and efficiencies of cloud computing for infrastructure, platform, and software services, it is natural for the applications and services that are consumed by corporate users to be cloud-based as well. When services and applications are housed in the same public or hybrid cloud as the infrastructure, the communication and interactions between applications, services, and infrastructure is faster, more manageable, and more reliable than those that must exchange data between on-premises and cloud-based services.

Multiple application platforms. As the number of devices that an average user interacts with grows, so do the number of operating systems and environments that the application needs to support. Mobile first, cloud first aims to create an IT environment where platform and operating system version do not dicate application access. Web applications, based in the cloud, provide a consistent user interface and access method across a large number of platforms.

Focus on user and business process development. The efficiencies that cloud computing generate lead to less time spent managing systems and infrastructure, and

4 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

more time spent developing solutions to business problems and the improvement of business processes.

Increased requirements for application agility. With multiple devices on multiple platforms being used by each user, application development is not a one-time process. As demands and industry standards change, so must the applications used every day within Microsoft. Hosting applications and infrastructure within Azure enables increased agility, resiliency, and scalability.

SolutionProviding a solution to the LOB application situation was a complex process. It required a comprehensive re-evaluation of how LOB applications are implemented at Microsoft. The assessment resulted in one general truth for application development at Microsoft: There needed to be a fundamental change in the way Microsoft IT built and designed LOB applications. The integration of standardized APIs into the development process was identified as one of the most important factors in improving the LOB application environment. Microsoft IT wanted to provide a well-defined API set for use by either internal users or external users for the following reasons:

Internal development of APIs was becoming common. Many developers who once simply used APIs were developing and providing APIs.

Mobile applications had become the driving force of transformation on the Internet. This was creating new ways of consuming content and accessing services.

APIs were becoming the primary way that previously disconnected applications were made to integrate with each other.

The Middle Tier Services team at Microsoft assumed the responsibility for determining the most effective approach to integrating API development and use. The team further established a set of goals and a design approach to use within Microsoft IT.

Solution goalsThe Middle Tier Services team established several goals when it approached the evaluation and redesign of the application development environment. The team understood that, in an environment of over 1,200 applications, the goals needed to be general enough to encompass the majority of development environments, but specific enough to ensure that the critical application development issues were addressed. These goals included the following:

Increase the business value for the application development process by making more efficient use of system resources and developer time.

Provide a framework to make it easier to assess and enforce legal and regulatory requirements.

Maintain consistent security design and implementation across the LOB application environment.

Enable a more consistent and connected experience for applications that interact with common IT services, and enable a standard for accessing data.

Create resiliency and scalability for data access within the LOB application environment.

Enable a more robust interaction between individual LOB applications, and provide a single point of integration with the LOB environment for future applications and devices.

Solution designThe solution design for a project as widespread as application development needed to encompass many aspects of Microsoft IT. The solution design also needed to involve specific teams and processes within each area. The Middle Tier Services team wanted to provide a complete solution that included four main components:

5 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

Figure 1: Cloud-based APIs conceptual solution architecture diagram

A solution architecture. The architecture illustrated in figure 1 enables Microsoft IT engineering teams to focus on a set of reusable APIs and middle tier services. The API-centric architecture is designed to provide applications with accesss to important business data, important utlility services like security and telemetry, and integration with core platforms like enterprise resource planning (ERP) and customer relationship management (CRM) across multiple applications in the environment. A more detailed example follows in this case study.

A set of reusable design patterns and practices. The Middle Tier Services team wanted to establish design patterns and practices that were based on existing successful solutions. These patterns and practices also needed to be reusable and shareable with multiple engineering teams within Microsoft IT so that the development process and the APIs produced remained consistent throughout the organization. The new tools needed to be based heavily on the products provided by Microsoft, such as Azure and Visual Studio. Finally, the Middle Tier Services team needed to have a set of application engineering and design principles that would guide developers when they implemented their APIs, services, and applications.

An API development kit. The Middle Tier Services team needed practical implementation examples and key utility services that developers could quickly and easily consume. The development kit needed to provide specific guidance on important development details, including:

o Instrumentationo Authenticationo Authorizationo Cachingo Hybrid cloud connectivityo Data encryption

A shared list of internal business and data services. The Middle Tier Services team wanted to establish a list of internal business, data, and utility services that could be leveraged by applications throughout the organization. This list would ensure that developers and engineers interact with resources and data by using consistent methods. Commonly used business, data, and utility services were the perfect place for the Middle Tier Services team to apply its design principles to make adoption and integration of new, modular applications as simple as possible, while encapsulating low-level functionality like notification, logging, and security processing into reusable utility services.

To implement these four components, the Middle Tier Services team developed the solution in several different areas of the organization.

6 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

People and processesIn order to establish a set of design principles and standards, the Middle Tier Services team understood that it needed to focus on encouraging people to adopt these new processes throughout Microsoft IT.

Securing corporate sponsorshipThe first step that the Middle Tier Services team took was to create a compelling presentation of its findings and ensure that its ideas about changes to the application development environment were correctly aligned with Microsoft’s strategy and vision.

Engineering leadership was included from the beginning of the process. The technical leads from each of the Microsoft IT business groups were assembled into a virtual team that contributed to the development of the project team’s strategy. The technical leads also participated in a prototype project to expose them to the realities and benefits of the API design and development process, which helped to secure enthusiastic support from the technical leads and their business groups. The Middle Tier Services team presented its strategy and rationale to executive management and business stakeholders and ensured that it had the support of the organization before continuing to develop its solution.

Readiness planning and implementationThe implementation of the new components would require considerable planning, training, and follow-up with engineering teams and developers. The Middle Tier Services team established a tiered training program that would be delivered to all those involved in the application development process. This tiered program helped to jumpstart changes in engineering and development practices, and resulted in feedback from the development team suggesting how the processes could be implemented most effectively.

TechnologyAs with most IT implementations, there was a large focus on technology and how the design principles would be practically applied to realize the solution goals that the Middle Tier Services team created.

Application programming interface (API) designThe Middle Tier Services team realized any solution required standardized and universally accessible application programming interfaces (APIs). Too many applications were created with a monolithic design, and the need for a set of commonly used APIs was highlighted and became the primary focus of the project. The APIs needed to be hosted, cloud based, and independent of any one specific application. APIs could then be reused for mobile applications, cloud services, and even other APIs.

Designing APIs for use throughout Microsoft IT led the Middle Tier Services team to create a comprehensive API design guide that outlined the primary principles and practices that developers should use when their applications interact with corporate resources and with other applications. This design guide fully embraced the concept of Representational State Transfer (REST) API design and Service Oriented Architecture (SOA) based design principles and patterns.

Understanding REST API design principlesThe key principle of REST design involves creating an API that is separated into logical resources. REST API design maintains a URL-based access methodology and provides resource access that is universal across applications. REST design principles include the following:

Expose services as plain HTTP URLs. Use well defined URL structure to designate the service and the tenant with the API. Expose a consistent set of core constructs. Maintain a unified versioning scheme that provides a clear path to stability.

7 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

Offer a common authentication schema across APIs.An example of REST API implementation guidance - Authentication for ASP.NET Web API To better understand the design and implementation guidance provided in the API development kit, examine the following example of an authentication design pattern for hybrid cloud scenarios that uses claims- and token-based authentication for ASP.NET Web API (which is Microsoft’s primary technology for implementing REST APIs). The key constructs of the ASP.NET identity model are as follows:

A claim is a set of information stored in key-value pair form. Claims are used to store information about users like full name, phone number, or email address. More importantly, claims can be used as a replacement for identity roles. Claims are part of the user identity. In Web API, you can find your claims in “User.Identity”.The most important benefit from claims is that you can let a third party authenticate a user, and the third party will report the success or failure of authentication as well as which claims are being used for the user. Figure 2 illustrates this type of authentication broker pattern.

A token stores a set of data in local or session storage or in a cookie, either on the server side or client side. In token-based authentication, when a request comes, it should be accompanied by a token. The server first will authenticate the attached token with the request, and then it will search the associated cookie for the token and return the information needed from the cookie.

Figure 2: Token-based Authentication (Source: Authentication in ASP.NET)

Microsoft ASP.NET tools for Microsoft Azure Active Directory (Azure AD) make it simple to enable authentication for web applications hosted on Azure websites. You can use Azure AD to authenticate Office 365 users from your organization, corporate accounts synced from your on-premises Active Directory, or users created in your own Azure AD domain.

Azure AD supports the OAuth 2.0 and OpenID Connect standards that feature extensive use of bearer tokens, including bearer tokens represented as JSON Web Tokens (JWTs). A bearer token is a lightweight security token that grants the “bearer” access to a protected resource. A party must first authenticate with Azure AD to receive the bearer token. If the required steps are not taken to secure the token in transmission and storage, the token can be intercepted and used by an unintended party. While some security tokens have a built-in mechanism for preventing unauthorized parties from using them, bearer tokens do not have this mechanism and must be transported in a secure channel, such as transport layer security (HTTPS). Figure 3 illustrates the authentication process with Azure AD.

8 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

Figure 3: Using Azure AD for Web API Authentication (Source: Azure AD)

Solution summaryThe final solution consisted of four distinct components: an API design guide, an API development kit, a set of API management processes, and an API catalog. Together, these components form the complete set of implementation tools and guidelines for mobile first, cloud first application development at Microsoft.

API design guideThe API design guide is at the core of the API-based solution. The design guide includes standards for API creation and implementation, along with code samples and templates. The design guide helps to enforce the API design principles that the Middle Tier Services team created.

The design guide contains both general and specific guidance on API design. It addresses API design from an architectural perspective, helping developers to understand the critical principles for designing a cloud-based API. It also provides guidance on incorporating the API with the rest of the cloud-based API environment. The API design guide contains specific direction on design and coding. It focuses on using REST API design principles and extending these principles to data source interaction, versioning, coding consistency, and security.

API development kitThe API development kit is a Visual Studio extension. The extension, once installed, creates the necessary Visual Studio solution structure and NuGet references required for developing an API. The templates include selected utility services and code samples that enable an end-to-end experience and provide examples of common mobile application development scenarios, such as:

Logging Caching Security Encryption Hybrid connectionAPI developers can leverage these utility services and code samples in their code or use them as a Visual Studio template that has all of the utility services incorporated.

9 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

The API development kit is complemented with, and fully integrated into, the Modern Apps development kit. The Modern Apps development kit is used to develop apps in the modern Windows 8.1 and Windows Phone user interfaces. The Modern Apps development kit includes both mobility scenarios and end-to-end integration testing perspectives. The intentional integration of the API development kit with existing development tools, like the Modern Apps development kit, encourages adoption among developers. The combined capabilities of both development kits can enable more agile development cycles with consistent quality and less duplication of common development tasks.

API management processesThe API, at the center of the new application ecosystem, becomes the bridge between application interfaces and the data and resources that applications need to access. API management processes help to ensure that the API ecosystem remains relevant and functional. In addition, API management processes revolve around the maintenance of core assets, which are the APIs themselves. Examining and managing how these APIs are used and updated enables the entire organization to take advantage of their benefits.

The API management solution provides three core functions:

The management solution enables organizations to turn their internal services into APIs for partner or public consumption.

API management processes help drive API adoption. API management processes enable business and operational insights.API catalogTo encourage the adoption of the newly developed APIs, and to establish API standards and accessibility, the Middle Tier Services team proposed the creation of an API catalog. The catalog would act as a central hub for the API ecosystem to provide access to APIs for developers. In addition, the catalog would maintain important information about the available APIs.

Implementing API design principles at Microsoft ITThe following example demonstrates how Microsoft IT has used the design and implementation guidelines developed by the Middle Tier Services team to leverage the strengths of cloud-based API and application development.

Creating a unified human resourcesLike many of Microsoft’s internal departments, the human resources (HR) business group supports a large number of applications and services that have been developed within the HR business group to meet business needs. Internally developed applications are in a constant state of change, so the IT support team within HR established its own application of the API design guidelines that the Middle Tier services team created.

Implementing mobile first, cloud first APIsThe HR IT architecture team developed a foundational services architecture to apply to the entire application environment, not just one application. The architecture solution is the starting point for newly developed applications, and it is centered on Azure-based API solutions, which are used to perform many specific functions, including:

Gathering data from many data sources Accessing data for presentation-layer applications Integrating on-premises and cloud-based data Integrating SharePoint Online data and the presentation layer with internally

developed applications and on-premises data sources Communicating and exchanging data with partner services

10 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

The architecture team found many ways to reuse APIs among applications that, in previous versions, had not shared the same code base. These changes made the applications faster to develop, easier to deploy, and more flexible.

Figure 4: Microsoft HR IT Foundational Services Architecture

The HR IT team was also intent on maintaining documentation and instrumentation for new APIs and tracking where the APIs were leveraged so changes to API functionality could be referenced to the affected applications. The HR IT team also built a model for data that focused on RESTful, lightweight interfaces that could be easily integrated into applications, regardless of the development platform.

The focus on a modular, API-focused design resulted in a new web API layer based on the Azure platform. These web APIs expose data and transactions in a secure manner that enforces business rules so that the APIs can be used for all development platforms, including mobile devices and SharePoint apps. The HR IT team is moving away from building monolithic applications and toward focusing on the services they are providing, thus aligning it with the mobile first, cloud first direction at Microsoft.

BenefitsPrior to initiating the API development kit project, Microsoft IT commissioned a mobility capability study, including the current state assessment of mobile apps and the associated middle tier services, as well as benchmarking with other similar enterprise organizations. One of the key findings illustrates an important business value of reusable APIs and middle tier services: the total spending on various forms of middle tier services and APIs at Microsoft IT is about twice the total spending on modern apps. Unfortunately, the vast majority of these existing internal APIs and middle tier services are not reusable. They are typically private and address only narrow business scenarios. With a conservative estimate of 10 to 20 percent reuse of these planned shared APIs, the cost savings from this small amount of reuse alone is significant.

Development team benefits Development teams can focus on business solutions instead of utility

services. As the API design principles are applied to application development, the robust set of available APIs enable development teams to spend less time developing utility services and data access methods because these services and methods are already available as consumable, reusable APIs. The time savings results in more time spent on the effectiveness, business impact, and design of an application. This focus enables greater innovation in application design and a better user experience.

Development teams experience increased agility. When developers consistently interact with the same set of cloud-based APIs and services, the development process becomes more agile. It is easier to modify and upgrade applications because the APIs

11 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

are separate from the application itself and do not need to be modified along with the user interface and functionality aspects. APIs are more consistently available, due to the more reliable nature of Azure.

IT benefits Reduced complexity. The infrastructure requirements and overall design is simpler,

with most services and components hosted on Azure rather than in one or more on-premises data centers.

Better management processes. It is easier to manage the support and implementation of applications because of the distributed nature of the applications and well-documented design principles. Applications throughout the organization have consistent behavior patterns and are therefore easier for IT to troubleshoot.

Business benefits and cost savings Consistent user experience. Users experience the benefits of development

standards. When applications use the same APIs and access resources in the same way, users receive a more consistent and predictable application environment.

Improved design quality. When developers can focus on the design and business processes of an application, instead of the data access and infrastructure components, the result is a more thoughtful and better designed application, leading to better performance and fewer quality issues.

Reduced total cost of ownership. While the initial time investment for developing new APIs can be seen as high, the returns quickly outweigh the costs as developers start adopting the new APIs and implementing them in their applications. Developer time is reduced, and duplication of effort is less common as developers work together to maintain and utilize a robust API catalog.

Lessons LearnedThe Middle Tier Services team learned several lessons while creating the design guide and development kit. They are outlined in the topics below.

Organizational planning and integrationIt is extremely important to establish corporate sponsorship early in the process to ensure that your application design principles are in-line with your organization’s business goals. Early corporate sponsorship also helps to encourage adoption when the design recommendations are presented and ensures you have organizational backing to monitor and enforce implementation of the design guidelines.

Design managementDesign management procedures and standards are the focus of this paper, and the entire work should be considered a set of best practices. More specifically, the following design principles should be considered when managing the design process:

Use REST APIs where appropriate. Manage design-time and run-time of the API lifecycle. Maintain sound security and compliance design. Design for multitenancy. Provide scale-out, cloud-based architecture. Maintain predictable performance. Design for fault tolerance and resiliency to ensure a highly available application

environment. Ensure that APIs support the instrumentation necessary for monitoring and

maintaining support analytics. This creates an application environment that is easy to monitor and troubleshoot.

Cloud API integration

12 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

APIs that are designed and implemented in the public cloud embrace the widely available nature that is recommended in the API design guide. Organizations can leverage managed services in the public cloud to reduce the infrastructure and maintenance requirements for their application environments. Also, public cloud API integration leverages the key benefits of the public cloud, including:

Scalability Agility Elasticity Resiliency AvailablityMobile cloud challenges and considerationsWhen designing mobile applications, focus should be put on accessibility. Research shows that users’ attention spans are very short when they use mobile applications. The context of using mobile devices is in most cases “on the go” and “in transit,” so users are concentrating less than when they use their stationary devices. At the same time, users demand access to the same functionality, which should be presented in a platform-specific, simple, and intuitive manner. ConclusionMicrosoft IT created a more consistent and effective application development process for the mobile-first, cloud-first environment by implementing a core set of API guidelines and tools. These components ensure that applications developed by Microsoft IT are properly designed and integrated in the application ecosystem. This design results in more effective use of Microsoft IT development resources. Microsoft IT and the Middle Tier Services team continue to implement and refine the API design and management process as the application environment at Microsoft continues to change and evolve.

ResourcesMicrosoft Azure Cloud Computing

Microsoft Azure API Management Service

Microsoft Azure Active Directory

Microsoft ASP.NET Web API

Service Management REST API Reference

Microsoft Visual Studio

Service Management REST API Reference

Related videosREST API Tutorial - What is REST ?

Azure API Management Channel 9 Video

ASP.NET Web API 2 - Web Services for Websites, Modern Apps, and Mobile Apps

For more informationFor more information about Microsoft products or services, call the Microsoft Sales Information Center at (800) 426-9400. In Canada, call the Microsoft Canada Order Centre

13 | Building Reusable APIs in a Mobile First, Cloud First Business Environment

at (800) 933-4750. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information via the World Wide Web, go to:

http://www.microsoft.comhttp://www.microsoft.com/microsoft-IT

© 2015 Microsoft Corporation. All rights reserved. Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.