Zen of Cloud . Learning Cloud Computing by Examples on Microsoft Azure

507 851 0
Zen of Cloud . Learning Cloud Computing by Examples on Microsoft Azure

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Cloud computing, as its name suggests, is to leverage cloud for computing workloads. These workloads are not new—we have been running applications and services on our workstations and data centers for tens of years. Then why do we need cloud? What benefits are we getting by using it? What are the new scenarios it enables? In this first section of the book, we first look back at the history of cloud computing, and then discuss some unique and exciting capabilities cloud computing brings us. We also study the basics of getting your workloads on cloud using Microsoft developer tools and services. From a developer’s perspective, you can view cloud as a huge resource pool where you can pull out resources to support your application needs, and return the resources when you are done with them. This resource usage model is the foundation of key cloud characteristics such as elasticity, availability, and agility.

Zen of Cloud Learning Cloud Computing by Examples on Microsoft Azure Haishi Bai Zen of Cloud Learning Cloud Computing by Examples on Microsoft Azure Zen of Cloud Learning Cloud Computing by Examples on Microsoft Azure Haishi Bai CRC Press Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2015 by Taylor & Francis Group, LLC CRC Press is an imprint of Taylor & Francis Group, an Informa business No claim to original U.S Government works Version Date: 20140624 International Standard Book Number-13: 978-1-4822-1581-6 (eBook - PDF) This book contains information obtained from authentic and highly regarded sources Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint Except as permitted under U.S Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers For permission to photocopy or use material electronically from this work, please access www.copyright.com (http:// www.copyright.com/) or contact the Copyright Clearance Center, Inc (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400 CCC is a not-for-profit organization that provides licenses and registration for a variety of users For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe Visit the Taylor & Francis Web site at http://www.taylorandfrancis.com and the CRC Press Web site at http://www.crcpress.com Contents Foreword xiii Section I  CLOUD COMPUTING FUNDAMENTALS   Overview of Cloud Computing 1.1 History 1.2 Essence of Cloud Computing 1.2.1 Elasticity 1.2.1.1 On and Off Mode 1.2.1.2 Rapid-Growth Mode 1.2.2 Availability 1.2.2.1 Fault Domain 1.2.2.2 Update Domain 10 1.2.3 Scalability 10 1.3 Microsoft Azure Overview 11 1.3.1 IaaS (Infrastructure as a Service) 11 1.3.2 PaaS (Platform as a Service) 12 1.3.3 SaaS (Software as a Service) 13 1.3.4 Cost Calculation .15 1.4 Preparing the Development Environment for Microsoft Azure .16 1.4.1 Subscribe to Microsoft Azure 16 1.4.2 Install Software Development Kit 16 1.5 Introduction of Microsoft Azure Management Portal 16 1.5.1 Sign In 17 1.5.2 Page Layout 17 1.6 Summary .19  2 Building Websites on the Cloud 21 2.1 2.2 2.3 2.4 Microsoft Azure Websites 21 Website Deployment and Upgrade 25 Integration with Source Control Systems 32 Scaling of Websites 37 v vi ◾ Contents 2.4.1 Vertical Scaling 37 2.4.2 Horizontal Scaling 39 2.4.3 Autoscaling 39 2.5 Migrating Existing ASP.NET Websites 40 2.5.1 Azure Websites Runtime Environment 40 2.5.2 Data Storage .41 2.5.3 Session States 41 2.6 Website Gallery .41 2.7 Website Configuration 42 2.8 Website Diagnostics and Monitoring 49 2.8.1 Website Diagnostics 49 2.8.2 Website Monitoring 52 2.8.3 Custom Domain Names 54 2.9 Summary .55  3 Cloud Service Fundamentals .57 3.1 3.2 Microsoft Azure Cloud Services 57 Cloud Services and Roles .61 3.2.1 Role 63 3.2.2 Cloud Service 63 3.3 Basic Steps of Cloud Service Deployment 64 3.4 Cloud Service Deployments and Upgrades 69 3.4.1 Incremental Updates (Update Domain Walk) 70 3.4.2 Simultaneous Updates 70 3.4.3 Multiple Deployment Environments 70 3.5 Instances and Load Balancing .74 3.5.1 Instances 75 3.5.2 Load Balancing 76 3.6 Configuration File and Definition File 79 3.6.1 Cloud Service Definition File (.csdef) 80 3.6.2 Cloud Service Configuration File (.cscfg) 81 3.7 Summary 84  4 Advanced Cloud Service 85 4.1 4.2 4.3 4.4 4.5 Endpoint Types .85 4.1.1 Input Endpoint 85 4.1.2 Internal Endpoint .85 4.1.3 InstanceInput Endpoint 86 Worker Role 88 4.2.1 Worker Role Application Scenarios 90 Inter-Role Communications 96 4.3.1 Options for Inter-Role Communication 96 Role Lifecycle 100 4.4.1 Process of Deploying and Launching a Role Instance 100 4.4.2 Role Instance Statuses 101 Startup Tasks .102 Contents ◾ vii 4.5.1 Defining Startup Tasks 102 4.5.2 Startup Task Properties 103 4.6 Diagnostics and Debug .109 4.6.1 Debugging Locally 109 4.6.2 Microsoft Azure Diagnostics 109 4.6.3 IntelliTrace .114 4.6.4 Monitoring Cloud Service 119 4.7 Developer Community 123 4.8 Summary .125  5 Data Storage: Relational Database 127 5.1 5.2 Microsoft Azure Data Storage Solutions 127 SQL Database Overview .129 5.2.1 Differences between an SQL Database and an SQL Server .129 5.3 SQL Database Management and Optimization 139 5.3.1 SQL Server Management Studio 139 5.3.2 Microsoft SQL Server Data Tools 144 5.3.3 Dynamic Management Views 145 5.3.4 Query Optimization .146 5.4 Data Sync and Migration 149 5.4.1 Data-Tier Application .149 5.4.2 Data Sync .152 5.5 Periodically Backup Your SQL Databases 157 5.6 Use MySQL Database 159 5.6.1 Microsoft Azure Store .159 5.6.2 Purchasing MySQL Service 160 5.6.3 Other Means to Run MySQL 161 5.7 Summary .161  6 Data Storage: Storage Services 163 6.1 6.2 6.3 6.4 Local Storage .163 Overview of Microsoft Azure Storage Services 164 6.2.1 Microsoft Azure Storage Account 165 6.2.2 Provisioning a Windows Storage Account 167 6.2.3 Storage Account Access Keys 168 Using BLOB Storage 170 6.3.1 BLOB Storage Overview 170 6.3.2 Block BLOB and Page BLOB 184 6.3.3 ETag and Snapshots 187 6.3.4 REST API 187 6.3.5 Shared Access Signature and Stored Access Policies 188 6.3.6 BLOB Update, Copy, and Lease .190 6.3.7 Error Handling .190 Using Table Storage .190 6.4.1 Table Storage Overview 190 6.4.2 Optimizing Data Partition .191 viii ◾ Contents 6.4.3 Query Table Data 204 6.4.4 Other Operations 204 6.4.5 Batch Operations 205 6.4.6 Dynamic Table Entities 205 6.4.7 Shared Access Signatures 206 6.5 Use Queue Storage 206 6.5.1 Queue Storage Overview 206 6.5.2 Programmatically Operate Queues 207 6.6 Monitor Storage Accounts 209 6.6.1 Configure Storage Service Monitoring 210 6.6.2 Cost of Service Monitoring .211 6.7 Summary .211  7 Virtual Machines and Virtual Networks 213 7.1 7.2 7.3 Microsoft Azure IaaS 213 Disk Images and Virtual Disks 220 Virtual Machine Communications 228 7.3.1 Virtual Machine Endpoints 228 7.3.2 Virtual Machines under the Same Cloud Service 230 7.4 Virtual Networks 234 7.4.1 Virtual Networks Overview 235 7.4.2 Point-to-Site Virtual Network 237 7.4.3 Site-to-Site Virtual Network 243 7.4.4 ExpressRoute 243 7.5 Summary 243 Section II  CLOUD SOLUTIONS  8 Cloud Solution Architecture 247 8.1 Client/Server .247 8.1.1 Characteristics of Client/Server Architecture 247 8.1.1.1 Benefits 247 8.1.1.2 Shortcomings 249 8.1.2 Client/Server Architecture on Cloud 249 8.1.3 Multitenant System Design 251 8.1.4 Migrating Client/Server Systems to Cloud .253 8.1.5 Client/Server Systems on Microsoft Azure 253 8.1.6 Mobile Clients 254 8.2 Browser/Server 254 8.2.1 Characteristics of Browser/Server Architecture .255 8.2.2 Browser/Server Architecture on Cloud 256 8.2.3 Difficulties of Adapting an Existing Single-Tenant Browser/Server Application for Multitenancy 264 8.2.4 Host Single-Tenant Systems on Microsoft Azure for Multiple Tenants .267 8.3 n-Tiered Architecture 269 8.3.1 Characteristics of n-Tiered Architecture 269 Scripting and Automation ◾ 477 17.3  Microsoft Azure Management API Microsoft Azure Management API allows developers to programmatically access most of the Microsoft Azure Management Portal capabilities Microsoft Azure Management API is a RESTstyled API, and requires SSL and certificated-based authentication to ensure security Now let us learn programming with Microsoft Azure Management API with a simple example Example 17.2:  Use Microsoft Azure Management API Difficulty: *** First, acquire a certificate We can use the makecert tool to generate a self-signed certificate: makecert -r -pe -a sha1 -n "CN=My Azure Management Certificate" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 myazuremanagementcert.cer Once the certificate is generated, we need to use Microsoft Azure Management Portal to upload this certificate Sign in to Microsoft Azure Management Portal In the navigation pane, click the SETTINGS link On the settings view, click the UPLOAD button on the command bar Pick the certificate you just created, and select the subscription to use (if you only have one subscription, you don’t see the subscription field) Click the check button to continue Then, you need to get the subscription ID When you invoke Microsoft Azure Management API calls, you need to provide the subscription ID to uniquely identify your Microsoft Azure subscription You can use the following Microsoft Azure PowerShell cmdlet to get the name, ID, and certificate of a subscription: Get-AzureSubscription | Format-Table @{Expression= {$_.SubscriptionName};width=25}, @{Expression= {$_.SubscriptionId};width=40}, @{Expression = {$_.Certificate Thumbprint}} Figure 17.6 is an example of the result of executing this command Create a new Windows Console application Modify the Program.cs file to enter the source code as shown in Code List 17.1 Figure 17.7 shows the output of this code in our environment Figure 17.6  Read Microsoft Azure subscription information 478 ◾ Zen of Cloud CODE LIST 17.1  MICROSOFT AZURE MANAGEMENT API SAMPLE 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: using using using using using using using System; System.IO; System.Net; System.Security; System.Security.Cryptography; System.Security.Cryptography.X509Certificates; System.Xml; namespace ManagementAPIListServices { class Program { static void Main(string[] args) { string subscriptionId = ""; string operationName = "hostedservices"; Ur i requestUri = new Uri("https://management.core windows.net/" + subscriptionId + "/services/" + operationName); HttpWebRequest request = (Ht tpWebRequest)HttpWebRequest Create(requestUri); request.Headers.Add("x-ms-version", "2010-10-28"); request.Method = "GET"; request.ContentType = "application/xml"; //locate certificate string certThumbprint = ""; X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); certStore.Open(OpenFlags.ReadOnly); var certs = certStore.Certificates.Find (X5 09FindType.FindByThumbprint, certThumbprint, false); certStore.Close(); //attach the certificate to the request request.ClientCertificates.Add(certs[0]); Ht tpWebResponse response = (HttpWebResponse)request GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream())) { //parese returned XML file XmlDocument doc = new XmlDocument(); doc.LoadXml(reader.ReadToEnd()); XmlNamespaceManager nm = ne w XmlNamespaceManager(doc NameTable); Scripting and Automation ◾ 479 45: 46: nm.AddNamespace("i", "ht tp://www.w3.org/2001/XMLSchemainstance"); nm.AddNamespace("M", "ht tp://schemas.microsoft.com/ windowsazure"); va r services = doc.SelectNodes("// M:HostedService",nm); Co nsole.WriteLine(string.Format("{0,-20}{1,-20} {2,-35}", "Name", "Location", "Url")); Co nsole.WriteLine(string.Format("{0,-20}{1,-20} {2,-35}", new string('=', 19), new string('=', 19), new string('=', 35))); for (int i = 0; i < services.Count; i++) { va r locationNode = services[i] SelectSingleNode ("M :HostedServiceProperties/M:Location", nm); Co nsole.WriteLine(string.Format("{0,-20} {1,-20}{2,35}", se rvices[i].SelectSingleNode("M:ServiceName", nm) InnerText, locationNode == null? " -": locationNode.InnerText, services[i].SelectSingleNode("M:Url", nm) InnerText.Substring(0,32) + " " )); } 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: } } } } Figure 17.7  Enumerate Cloud Services using Microsoft Azure Management API 480 ◾ Zen of Cloud 17.4 Summary In this chapter, we provided a brief introduction of Microsoft Azure PowerShell cmdlets, Microsoft Azure Cross-Platform Command Line Tools, and Microsoft Azure Management API Of course, the focus of this chapter is merely to get you started so that you can start exploring the rich functionalities of these tools by yourself Chapter 18 Azure and DevOps Microsoft Azure is under constant development At the time of writing, tons of new features are being added to it In this chapter, we will discuss some of Azure’s exciting new features that reflect its future directions for evolution Since it is impossible to enumerate all of the new features of Azure in a single chapter, we will focus only on those features that revolve around DevOps As the name suggests, the essence of DevOps is to ensure smooth interaction between development and operations Many of Azure’s new features resonate with this idea And Microsoft is providing additional tools and infrastructural support to enable DevOps practices 18.1  DevOps Overview Before looking at specific features, let us briefly review what DevOps really means Because DevOps is still relatively new, there has not been a universally accepted definition Generically speaking, DevOps is a collection of ideas, methodologies, practices, and tools that encourage close team collaboration, improve business agility, as well as IT alignment If you know about Agile software development, many of these ideas should sound familiar to you DevOps is a continuation of the Agile movement, and IT alignment across teams is a key aspect of DevOps It is rather difficult to cover DevOps in its entirety in just a few paragraphs because DevOps is still an evolving concept that impacts software business at different levels Instead, we will list a few DevOps phenomena that are likely to occur in your working environment Of course, what we describe here are exaggerated, ideal scenarios What you will encounter in the real world will probably be less extreme and sometimes subtle 18.1.1  Everything Is Code Developers are a creative bunch and they always want change, while one of the top-priority tasks of IT professionals is to keep systems stable This has indeed been an unresolvable conflict that has caused much friction between the two rival tribes, developers and IT professionals 481 482 ◾ Zen of Cloud From the viewpoint of DevOps, a software (or a service) is a holistic unit that consists of application code, configuration, infrastructure, and data When a software is revised or updated, not only should the application code be versioned and archived, the infrastructural changes should also be captured and versioned at the same time This requires IT professionals and developers to communicate with each other with clarity, reliability, and traceability Capturing everything as abstracted code and scripts serve the purpose perfectly With the responsibility of maintaining physical servers on cloud, IT professionals find themselves working more and more at an abstraction level where resources are described and configured by scripts This abstraction allows infrastructures to be defined and maintained as code On the other hand, because the infrastructural code can be executed by any authorized users, developers can deploy their own development and testing environments by themselves while keeping a high confidence that the production environments will be constructed and maintained in a consistent manner As the developers gain more knowledge on infrastructural code, they can start manipulating the infrastructure at the abstracted level, and IT professionals in turn can fine-tune the code for large-scale, optimized deployment 18.1.2  Everyone Is a Developer DevOps is not a new job title that sits between developments and operations It reflects the fusion of the two departments Such convergence brings new challenges to all staff Developers are often more capable of coping with such challenges—after all, code is what they live, eat, and breathe! So it is not surprising to see developers becoming superheroes, who take care of everything This phenomenon is often observed in start-ups, who have been major advocators and beneficiaries of the movement For larger enterprises and interdependent software vendors (ISVs), it is unrealistic to expect such complete fusion Instead, operations personnel behave more and more like developers as they start to work with abstract artifacts, codes, and scripts Although, in many larger enterprises, the work style and human resource allocations have been fixed by existing architectures and legacy systems However, this does not mean these companies cannot adopt DevOps for their new projects at a smaller scale 18.1.3  Every Day Is Release Day The landscape of marketing has drastically changed over the past decade Consumers are more proactive than ever Nowadays, people use technology at their fingertips to search for products and services instead of waiting to hear something they might like in marketing campaigns For a service provider, getting a higher rank in search engines and a better rating in popular sites are becoming far more important than marketing campaigns And once they get a customer, they also need to take measures to retain that customer, as the customer is in a position to find the next big thing at any time Continuous engagement with customers has become key to sustainable business And with development and operations folding into one unit, products can be released more frequently, changes can be applied quickly, and new features can be introduced more promptly Such unprecedented agility provides ISVs opportunities to respond to market changes faster and to maintain relationships with their customers Azure and DevOps ◾ 483 18.2  VM Agent and VM Extensions Configuration automation is a fundamental requirement of DevOps Microsoft Azure provides both first-party and third-party options to capture and automate machine configurations at scale And all of this is possible because of VM Agent, which we discuss next 18.2.1  VM Agent VM Agent is a lightweight process that can pull down additional VM Extensions, which are software packages that can be dynamically installed in your virtual machines to customize them to meet your specific project needs When you create a new virtual machine using Azure Management Portal, the VM Agent is enabled by default, as shown in Figure 18.1 If you want to install VM Agent to an older virtual machine, which does not come with a built-in VM Agent, you can download and run the Agent installer from this link: http://go.microsoft.com/fwlink/?​ LinkID=394789&clcid=0x409 18.2.2  VM Extensions Once VM Agent is installed on a virtual machine, it can acquire and install additional VM Extensions from the Azure VM Extension Gallery, as shown in Figure 18.2 At the time of writing, there are only a limited number of VM Extensions available from the VM Extension Gallery You can use PowerShell cmdlet Get-AzureWMAvailableExtension Figure 18.1  VM Agent is enabled by default 484 ◾ Zen of Cloud Azure VM Azure VM agent Extension Extension package Azure VM extension gallery Figure 18.2  Install VM Extensions from Gallery Figure 18.3  List of available VM Extensions Figure 18.4  List of Extensions installed on a VM (requires Microsoft Azure PowerShell; see Chapter 17) to list currently available extensions, as shown in Figure 18.3 If you want to list extensions that are already installed on a VM, you can use the GetAzureVMExtension command, as shown in the example in Figure 18.4 18.2.3  Custom Script Extension Custom Script Extension is a VM Extension that can automatically download and execute PowerShell scripts and files from Azure Storage Although the functionality of this agent is very simple, it can help you accomplish lots of customization scenarios because of the capability of PowerShell To install the Custom Script Extension, you can use cmdlet Set-AzureVMExtension, as shown in Figure 18.5 Azure and DevOps ◾ 485 Figure 18.5  Install Custom Script Extension Once the Custom Script Extension has been installed, you can start to pull down additional PowerShell scripts from your Azure Storage account and execute them In this case, I have uploaded a simple PowerShell script that simply prints “Hello World” to the output stream: Host-Write "Hello World!" Assume the script has been uploaded to my BLOB container powershell under my haishigateway account, then I can use Set-AzureVMCustomScriptExtension command to launch the script and update my virtual machine: Set-AzureVMCustomScriptExtension -ContainerName powershell -StorageAccountName haishigateway -FileName HelloWorld.ps1 -VM $vm -ReferenceName 'CustomScriptExtension' | Update-AzureVM -Verbose The output of this command is shown in Figure 18.6 To get the execution result, which can be written to either Stdout stream and/or StdErr stream, you need to refresh your virtual machine reference and then read the script execution result from its ResourceExtensionStatusList.ExtensionSettingStatus.SubStatusList property, as shown in Figure 18.7 18.2.4  DSC, Puppet, and Chef Desired state configuration (DSC), Puppet, and Chef are all configuration automation systems They allow you to choose desired states for your resources, and they make sure your requirements are met With these systems, configurations are centralized, and configuration updates are either pushed from a server or periodically pulled by agents installed on target machines Figure 18.6  Output of custom script run Figure 18.7  Retrieve script execution results 486 ◾ Zen of Cloud You may have noticed that both Puppet Agent and Chef Client are provided as VM Extensions (see Figure 18.1) DSC is part of PowerShell 4, and your configurations can be applied via mechanisms such as the Custom Script Extension we introduced in the previous section As we have discussed at the beginning of this chapter, being able to capture and automatically reinforce infrastructural requirements across different environments is one of the key enabling technologies for DevOps Unfortunately, we cannot cover these systems here as each deserves an entire book Interested readers can visit the author’s blog (http://blog.haishibai.com) to find several tutorials on these technologies 18.3 New Portal Early in 2014, a new Microsoft Portal was put into preview Existing Azure subscribers can visit https://portal.azure.com/microsoft.onmicrosoft.com to access the new portal (Figure 18.8) The new portal looks fairly different from the current portal The current portal design is resource oriented, where you can provision, manage, and monitor your Azure resources with ease The new portal focuses on your applications instead of scattered resources When you deploy an application to cloud, you probably need to provision a bunch of related resources, such as a web server, an application server, and a database In the current portal, you cannot really treat them as a single unit However, the new portal supports the concept of Resource Groups, which allow you to manage a group of related cloud resources as a single unit Figure 18.8  Microsoft Azure Preview Portal Azure and DevOps ◾ 487 Figure 18.9  A Journey on Azure portal The new portal is also highly customizable You can manage your home page tiles just as you can on a Windows PC or Windows phone You can pin everything related to your application on the home page so that you can have a consolidated view of your application Another concept of the new portal is Journey When you perform operations, the screen keeps expanding to the right, guiding you through multistep operations and revealing more and more relevant information (see Figure 18.9) And as you complete operations, you are brought back toward the left till you return to the home page A Journey is saved across browser sessions So the next time you log in, or open the portal from a different machine, you can pick up from where you left off The new portal provides strong support for DevOps It is fully integrated with Visual Studio Online, Azure monitoring, billing, and various other services so that you can gain incredible insights into every aspect of your application The dynamic UI may seem a little intimidating at the beginning, but once you have tried out a couple of operations, you will find out that the new portal is really easy to use and can become a vital tool for your DevOps scenarios 18.4  Zen of Cloud The core concept of cloud is to separate business applications from underlying infrastructures The value of cloud resides in reduced operation cost, improved quality of service, and unprecedented agility The opportunity brought by cloud is the innovations that can happen once applications are freed from the constraints of infrastructures Finally, the future of cloud is Ubiquitous Cloud promoting Ubiquitous Computing to the next level, where the real world and the cyber world merge into one No matter how technology evolves, at the end, people want the required functionalities to be delivered and to remain accessible The separation of applications and infrastructure allows application and service developers to better focus on developing core business values, without having to worry about how to tailor the application for particular platforms It is foreseeable that in the near future, local data centers, or even single server boxes, will adopt the same infrastructure designs as those for cloud platforms The parity between cloud, local systems, and even mobile systems unifies the application ecosystem so that an application can be written once and be made available everywhere An application or a service can be migrated freely among on-premises datacenters, private clouds, community clouds, and public clouds Choosing a hosting environment will no longer be an architectural decision, but just an operational decision For many software developers, the key for adopting cloud is the shift in mindset from scaling out to scaling up, from controlled environment to dynamically composed environment, and from 488 ◾ Zen of Cloud single-instance reliability to collective reliability None of these concepts are new Actually, experienced large-scale system designers and developers have been doing these things for years It is just that they are getting the public’s long-overdue attention now The real revolutionary changes brought by cloud reside in the area of Big Data and Internet of Things (IoT) Both Big Data and IoT need the capability of large scale, highly available data acquisition, transmission, storage, and manipulation Cloud provides all of these It infuses new, potent, infinite energy into Big Data and IoT development, making them both thrive on cloud Cloud is still young, and the developments in the field have been phenomenal We hope this book provides some practical help along your cloud journey, and we wish you great success with your cloud projects Thank you! uploaded by [stormrg] Bibliography Bertocci, V Programming Windows Identity Foundation Redmond, WA: Microsoft Press, 2011 Brown, J W Anti Patterns New York: Wiley, 1998 Dobson, S M Streetwise Project Management Avon, MA: Adams Media Corporation, 2003 Erl, T SOA Design Patterns Upper Saddle River, NJ: Prentice Hall, 2008 Ferraiolo, D F., Kuhn, D R., Chandramouli, R Role-Based Access Control, 2nd edition Norwood, MA: Artech House Publishers, 2007 Frithey, G., Sajal, D SQL Server 2008 Query Performance Tuning Distilled New York: Apress, 2009 Galloway, J et al Professional ASP.NET MVC Indianapolis, IN: John Wiley & Sons, Inc., 2012 Hohpe, G., B Woolf Enterprise Integration Patterns Boston, MA: Addison Wesley, 2004 Microsoft A Guide to Claims-Based Identity and Access Control Redmond, WA: Microsoft, 2010 Microsoft MSDN online documentations [Online] Microsoft, 2013a http://msdn.microsoft.com, accessed May 12, 2013 Microsoft Windows azure [Online] Microsoft, 2013b http://www.windowsazure.com, accessed May 12, 2013 Sommerville, I Software Engineering Upper Saddle River, NJ: Pearson Education Ltd., 2001 489 Information Technology This book explains the various concepts of Azure in a logical and clear manner The book consists of 69 complete, end-to-end examples that provide step-by-step guidance on implementing typical cloud-based scenarios The examples cover a wide range of application types and technologies with different levels of difficulties —Pierre Masai, CIO of Toyota Motor Europe Zen of Cloud: Learning Cloud Computing by Examples on Microsoft Azure provides comprehensive coverage of the essential theories behind cloud computing and the Windows Azure cloud platform Sharing the author’s insights gained while working at Microsoft’s headquarters, it presents nearly 70 end-to-end examples with step-by-step guidance on implementing typical cloud-based scenarios The book is organized into four sections: cloud service fundamentals, cloud solutions, devices and cloud, and system integration and project management Each chapter contains detailed exercises that provide readers with the opportunity to develop valuable hands-on skills in cloud service development • Explains how to prepare for Microsoft Azure development and how to use Microsoft Azure Management Portal • Provides best practices for designing cloud-based applications • Includes online access to updated examples and answers to the exercises Supplying comprehensive coverage of the Windows Azure cloud platform, the book provides a practical understanding and powerful tips that readers can immediately apply to their own work— making it ideal for cloud system developers, architects, and IT professionals Organized into easily digestible sessions, it is also ideal for use in instructional settings K22024 ISBN: 978-1-4822-1580-9 90000 an informa business www.crcpress.com 6000 Broken Sound Parkway, NW Suite 300, Boca Raton, FL 33487 711 Third Avenue New York, NY 10017 Park Square, Milton Park Abingdon, Oxon OX14 4RN, UK 781482 215809 w w w.crcpress.com

Ngày đăng: 12/04/2017, 09:24

Mục lục

  • Front Cover

  • Contents

  • Foreword

  • Chapter 1: Overview of Cloud Computing

  • Chapter 2: Building Websites on the Cloud

  • Chapter 3: Cloud Service Fundamentals

  • Chapter 4: Advanced Cloud Service

  • Chapter 5: Data Storage : Relational Database

  • Chapter 6: Data Storage : Storage Services

  • Chapter 7: Virtual Machines and Virtual Networks

  • Chapter 8: Cloud Solution Architecture

  • Chapter 9: High-Availability Design

  • Chapter 10: High-Reliability Design

  • Chapter 11: High-Performance Design

  • Chapter 12: Claim-Based Architecture

  • Chapter 13: Mobile Service

  • Chapter 14: Internet of Things

  • Chapter 15: Message-Based System Integration

  • Chapter 16: Source Control and Tests with Visual Studio Online

  • Chapter 17: Scripting and Automation

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan