2. About Ethos - East & West Ethos has bridged the gap between the world's cultures to create its own unique blend of convergence. Headquarters in China and with offices in Norway and Sweden, we deliver to customers worldwide. Well served by our deep technology roots we empower clients to grow and realize a more creative, profitable, and productive business by integrating new cutting-edge technologies and Enterprise 2.0 concepts into existing business models. 12/10/2010 2
3. About Ethos - Cloud Computing Ethos is Microsoft preferred cloud computing development partner in Greater China Region. Ethos was invited to speak at keynote presentation of Microsoft Azure Summit after Bob Muglia(President, Server and tools) and Xie Enwei (GM of DPE China). Ethos was invited to speak at Azure Summit in development session after Soma Segar (Senior Vice President, Developer Division) Ethos demoed at keynote session of TechED2010 (Beijing) with Julia Liuson(GM of Server and Tools Business, in charge of Visual Studio and Windows Azure R&D). Ethos held a technical session at TechED2010 (Beijing) on AppFabric.
4. Why the Cloud? “The bottom line: Early adopters are finding serious benefits, meaning that cloud computing is real and warrants your scrutiny as a new set of platforms for business applications.” “By 2012, 80% of Fortune 1000 enterprises will be using some cloud computing services, 20% of businesses will own no IT assets”
8. Azure datacenters North Central – US Chicago, IL North Europe - Amsterdam West Europe - Dublin East Asia – Hong Kong South Central - US San Antonio, TX South East Asia - Singapore
10. Architecture – Go multi-tenant! Multi-instance, single-tenant Single-instance, multi-tenant Tailspin Tailspin Instance of Surveys for ClientC Instance of Surveys for ClientA Instance of Surveys (not client specific) Instance of Surveys for ClientB ClientC ClientC ClientA ClientA ClientB ClientB
11. .NET API differences Permanent storage Do not store data to local disk (ie C:, but you can use it as a Scratch disk Use the Azure API’s for working with Azure Storage (Blobs/Queues/Tables) or use SQL Azure You can mount a VHD inside a Blob and mount it as an NTFS drive using Azure Drive to quickly move your application to Azure without rewriting your storage logic.
12. Logging & Diagnostics Log using Microsoft.WindowsAzure.Diagnostics Third party libraries Enterprise Library 5.0 supports Azure NLog(http://nlog-project.org/) Ethos has written a plug-in for NLog to send log to Azure log Log4Net Several implementations of AzureAppender on the net Diagnostics: Read logs using MMC plugin System Center PowerShell cmdlets DoItYourSelf using Azure API Cerebrata AzureDiagnosticsManager Remote Desktop
13. Existing software assets Legacy system integration using AppFabric and connectors Coming soon: «Windows Azure Connect» With Windows Azure Connect, you can configure IPsec protected connections between computers or virtual machines (VMs) in your organization’s network, and roles running in Windows Azure Microsoft Sync Framework VM Role
14. Sending mail from Azure Mail service is not integrated in Azure Implement a SMPT sender queue Connect to a SMPT server to send mail using System.Net.Mail.SmtpClient Connect to a POP3 server to receive mail. Find a working code sample at CodePlex If you send a lot of mail do not use a free provider, use a commercial provider like SendGrid
15.
16. What is SQL Azure Similar to an ordinary SQL Server, exposes a tabular data stream (TDS) Familiar SQL Server relational model Uses existing API and tools (SQL2008R2) Friction free provisioning and reduced management At the moment, max database size is 50GB Coming : SQL Azure Federation Support (spring 2010 )
17. SQL Azure Under The Hood Applications use standard SQL client libraries: ODBC, ADO.Net, … Application TDS (tcp:1433) Load balancer forwards ‘sticky’ sessions to TDS protocol tier Load Balancer TDS (tcp: 1433) Gateway Gateway Gateway Gateway Gateway Gateway Data Node Data Node Data Node Data Node Data Node Data Node TDS (tcp: 1433) Scalability and Availability: Fabric, Failover, Replication and Load balancing
18. Key Benefits of the Service High Availability Scalability Familiar Development Model Relational Data Model
19. Features and Types SQL Azure does not support all of the features and data types found in SQL Server Analysis Services, Replication, Reporting Services, and Service Broker are not currently provided as services on the SQL Azure. Reporting Services was announced 28. October at the PDC, soon available as a CTP
20. Transacts SQL support Transact-SQL Features Supported Constants Constraints Cursors Index management and rebuilding indexes Local temporary tables Reserved keywords Stored procedures Statistics management Transactions Triggers Tables, joins, and table variables Transact-SQL language elements such as Create/drop databases Create/alter/drop tables Create/alter/drop users and logins and so on. User-defined functions Views, including sys.synonyms view Transact-SQL Features Unsupported Common Language Runtime (CLR) Database file placement Database mirroring Distributed queries Distributed transactions Filegroup management Global temporary tables Spatial data and indexes SQL Server configuration options SQL Server Service Broker System tables Trace Flags
21. SQL Azure Migration Wizard Upgrade your database to SQL2008 first Download the Wizard sqlazuremw.codeplex.com Run the Migration Wizard Analyse and fix the reported issues before migrating You can also script directly from inside SQL Management Studio to SQL Azure Transfer data using BCP – generate CMD script in SQL
22. Top identified problems All tables need a clustered index UNIQUEIDENTIFIER, NEWSEQUENTIALID, DATETIME, ROW GUID COLUMN not supported Used for Merge replication, use Sync Framework instead. SELECT INTO is not supported Both on physical tables and temp tables Global temp variables not supported ##GlobalTmpTable SQL Server Agent not included There is no Backup functionality Sync or stream to disk
23. How to optimize for Azure SQL Azure Database Pricing (if app is not CPU bound) $9.99/month for 1 GB increases linearly to $499.95/month for 50 GB This is the main cost driver for hosted solutions on Azure Azure Storage Pricing (Blobs/Queues/Tables) $0.15/GB stored/month Suggested actions: Aggregate transactional data that you need to report later Move data to Azure Table Storage or export to Azure Blobs The Table service is designed for massive scalability and availability, supporting billions of entities and terabytes of data. It’s designed to support high volume, but smaller structured objects.
27. Threat Modeling Web Applications Step 1: Identify security objectives. Clear objectives help you to focus the threat modeling activity and determine how much effort to spend on subsequent steps. Step 2: Create an application overview. Itemizing your application's important characteristics and actors helps you to identify relevant threats during step 4. Step 3: Decompose your application. A detailed understanding of the mechanics of your application makes it easier for you to uncover more relevant and more detailed threats. Step 4: Identify threats. Use details from steps 2 and 3 to identify threats relevant to your application scenario and context. Step 5: Identify vulnerabilities. Review the layers of your application to identify weaknesses related to your threats. Use vulnerability categories to help you focus on those areas where mistakes are most often made.
28. Windows Azure Security Notes Tackling cloud security can be overwhelming without an approach. These notes summarize how we took a look at securing Web applications, web services, and data in the cloud. We basically started by mapping out common application scenarios. We then figured out a way to group threats and attacks into a set of common categories. These categories make it easy for us to analyze and inspect the various parts of an application and engineering decisions. Then we focused on finding common principles, patterns, and practices, while working with customers, field, product teams, and industry experts. 121 pages
29. Security Best Practices For Developing Windows Azure Applications This paper focuses on the security challenges and recommended approaches to design and develop more secure applications for Microsoft’s Windows Azure platform. Microsoft Security Engineering Center (MSEC) and Microsoft’s Online Services Security & Compliance (OSSC) team have partnered with the Windows Azure team to build on the same security principles and processes that Microsoft has developed through years of experience managing security risks in traditional development and operating environments. 26 pages
30. Patterns & practices Improving Web Services Security This guide shows you how to make the most of WCF (Windows Communication Foundation). With end-to-end application scenarios, it shows you how to design and implement authentication and authorization in WCF. Learn how to improve the security of your WCF services through prescriptive guidance including guidelines, Q&A, practices at a glance, and step-by-step how tos. 689 pages
32. Cloud Benefits - Real-world Performance Analysis For very limited service requests, Azure-based solution takes slightly longer time to response than self-hosted solution. When more service requests come in, response time of self-hosted solution’s longest transaction will be longer. Meanwhile, response time of Azure-based solution’s longest transaction looks comparatively steady. When service requests increase rapidly, transaction rates of self-hosted solution drops down very fast, meanwhile transaction rates of Azure-based solution looks comparatively better.
33. Performance Benchmark Hardware configuration: Legacy: CPU: 2.4G+2.4G; Memory: 1GB; Hard Drive: 60GB Azure Small Instance: CPU: 1.6GHz; Memory:1.75G; Hard Drive:225G
38. Ethos’ Approach In addition to saving cost, social cloud platforms can enable new markets and new business models. Thus it is critical to have business owners and IT departments should engaged in analyzing benefits and strategies. Ethos' approach is: 12/10/2010 38
41. Take away Understand difference and workaround of APIs Build scalable, multi-tenant application for Azure Maximize existing software assets’ value Build secure solutions for Azure Build cost-effective solutions for Azure.
43. Make your data available as OData Open Data Protocol (OData) builds on top of WCF Makes it easy to consume your data from different consumers Browsers Applications (OData Explorer, PowePivot for Excel, LinqPad, .NET, SilverLight) Java, JavaScript, PHP iPhone Windows Phone 7
45. Jobber du med et spennende Azure prosjekt ? Ta i så fall kontakt med Microsoft og du kan få hjelp til: Komme i gang Rådgivning Kursing Holde deg oppdatert Ta kontakt med: Petter Merok (petterm@microsoft.com) Børge Hansen (borgeh@microsoft.com)
46. Thanks! Contact us via: Ronny.Hansen@ethostech.no Twitter @RonnyHan Blog http://ronnys-geek-blog.blogspot.com/
48. Ethos Cloud Computing Case Study UfidaChanjet UFIDA Software Co., Ltd. is a major provider of management software solutions and e-business services, UFIDA has been consistently recognized as a Key Software Enterprise and leader in China's software industry.As Microsoft preferred cloud computing solution provider, Ethos successfully migrated Ufida‘sChanjetto the Azure platform.
49. Ethos Cloud Computing Case Study Qiming QAF Qiming is leadingsoftware providerin the automotive industry. Qiming owns one of the largest datacenters in China.Ethos is working with Qiming to enable Qiming’scritical development platform QAF to work on the cloud.
50. Ethos Cloud Computing Case Study ChangeTech An online cloud computing service to help people change habits, lifestyles and personal qualities. Very popular public health service in Norway. One of the first commercial Azure application in the world. Developed by Ethos.
East Asia - Hong KongSouth East Asia - SingaporeNorth-central US - Chicago, ILSouth-central US - San Antonio, TXNorth Europe - Amsterdam, NetherlandsWest Europe - Dublin, Ireland
Hosting a Multi-Tenant Application in Windows Azurehttp://msdn.microsoft.com/en-us/library/ff966480.aspxpatterns & practices Windows Azure Guidance sitehttp://wag.codeplex.com/Two active instances for one role will guarantees 99.95% uptime - Meaning max downtime = 4 hours 22 minutes pr. yearWe recommend that you deploy at least two instances per role to ensure high availability in case one of the instances becomes unavailable. Doing so also enables coverage of the Windows Azure Compute SLA, which guarantees 99.95% uptime. For more information please visit http://go.microsoft.com/fwlink/?LinkID=202707.
http://blogs.msdn.com/b/windowsazure/archive/2010/02/02/beta-release-of-windows-azure-drive.aspxhttp://blogs.msdn.com/b/tconte/archive/2010/02/26/using-windows-azure-drive-part-1-migrate-your-data-to-the-cloud.aspxhttp://go.microsoft.com/?linkid=9710117http://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-Episode-27-Combining-Roles-and-Using-Scratch-Disk - 41 minutesNote, a Azure Drive can only be mounted by one instance at a time!New Full IIS Capabilities: Differences from Hosted Web Corehttps://blogs.msdn.com/b/windowsazure/archive/2010/12/02/new-full-iis-capabilities-differences-from-hosted-web-core.aspx
The diagnostics service supports logging of the following data types from your cloud service:• Windows Azure logs: These are the application logs that you dump from yourapplication. These can be any messages emitted from your code.• Diagnostic monitor logs: These logs are about the diagnostics service itself.• Windows event logs: These are the Windows event logs generated on the machineon which the role instance is running.• Windows performance counters: These refer to the subscriptions to theperformance counters on the machine on which the role instance is running• IIS logs and failed request traces: These are the IIS logs and the IIS failed requesttraces generated on the Web role instance.• Application crash dumps: These are the crash dumps generated when anapplication crashes.API:http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.diagnostics.aspxhttp://msdn.microsoft.com/en-us/library/ee758705(v=MSDN.10).aspxSample:http://code.msdn.microsoft.com/WADiagnostics3.Partyhttp://entlib.codeplex.com/Read logs with:Log4Net On the Azure platform - http://cloudshaper.wordpress.com/2010/10/30/logging-with-log4net-on-the-azure-platform/http://jamesconard.com/2010/10/04/windows-azure-application-monitoring-management-packnow-available/
Overview of Windows Azure Connecthttp://msdn.microsoft.com/en-us/library/gg432997.aspxhttp://www.microsoft.com/windowsazure/virtualnetwork/Windows Azure ConnectWindows Azure Connect provides a simple and easy-to-manage mechanism to setup IP-based network connectivity between on-premises and Windows Azure resources. This capability makes it easier for an organization to migrate their existing applications to the cloud by enabling direct IP-based network connectivity with their existing on-premises infrastructure. For example, a company can deploy a Windows Azure application that connects to an on-premises SQL Server database, or domain-join Windows Azure services to their Active Directory deployment. In addition, Windows Azure Connect makes it simple for developers to setup direct connectivity to their cloud-hosted virtual machines, enabling remote administration and troubleshooting using the same tools that they use for on-premises applications.Microsoft Sync Frameworkhttp://msdn.microsoft.com/en-us/sync/default.aspx - Homehttp://code.msdn.microsoft.com/sync – sampleshttp://blogs.msdn.com/b/sync/ - team blogVM Rolehttp://msdn.microsoft.com/en-us/library/gg465398.aspx
Key Benefits of the Service The benefits of using SQL Azure are manifold. These include manageability, high availability, scalability, a familiar development model, and a relational data model. Self-ManagingSQL Azure offers the scale and functionality of an enterprise data center without the administrative overheads that are associated with on-premise instances of SQL Server. This self-managing capability enables organizations to provision data services for applications throughout the enterprise without adding to the support burden of the central IT department or distracting technology-savvy employees from their core tasks in order to maintain a departmental database application.With SQL Azure, you can provision your data storage in minutes. This reduces the initial costs of data services by enabling you to provision only what you need. When your needs change, you can easily extend your cloud-based data storage to meet those needs.High AvailabilitySQL Azure is built on proven Windows Server and SQL Server technologies, and is flexible enough to cope with any variations in usage and load. The service replicates multiple redundant copies of your data to multiple physical servers to maintain data availability and business continuity. In the case of a hardware failure, SQL Azure provides automatic failover to optimize availability for your application.ScalabilityA key advantage of SQL Azure is the ease with which you can scale your solution. After partitioning your data, the service scales as your data grows. A pay-as-you-grow pricing model makes sure that you only pay for the storage that you use, so that you can also scale down the service when you do not need it.Familiar Development ModelWhen developers create on-premise applications that use SQL Server, they use client libraries that use the tabular data stream (TDS) protocol to communicate between client and server. SQL Azure provides the same TDS interface as SQL Server so that you can use the same tools and libraries to build client applications for data that is stored in SQL Azure. For more about TDS, see Network Protocols and TDS Endpoints. Relational Data ModelSQL Azure will seem very familiar to developers and administrators because data is stored in SQL Azure just like it is stored in SQL Server, by using Transact-SQL. Conceptually similar to an on-premise instance of SQL Server, a SQL Azure server is logical group of databases that acts as an authorization boundary. Within each SQL Azure server, you can create multiple databases that have tables, views, stored procedures, indices, and other familiar database objects. This data model makes good use of your existing relational database design and Transact-SQL programming skills, and simplifies the process of migrating existing on-premise database applications to SQL Azure. For more about Transact-SQL and its relationship to SQL Azure, see Transact-SQL Support (SQL Azure Database).SQL Azure servers and databases are virtual objects that do not correspond to physical servers and databases. By insulating you from the physical implementation, SQL Azure enables you to spend time on your database design.
Deliver rich reporting, without having to maintain an infrastructure. http://www.microsoft.com/en-us/sqlazure/reporting.aspxReporting Service CTPhttp://connect.microsoft.com/sqlazurectpsData Types (SQL Azure Database)http://msdn.microsoft.com/en-us/library/ee336233.aspxGet rid of text, ntext, image data types as they are not supported in SQL Azure. In fact these data types are being deprecated (http://msdn.microsoft.com/en-us/library/ms187993.aspx). What we did was we replaced text and ntext data types with nvarchar (4000) and image datatypes with varbinary.
Microsoft SQL Azure Database supports a subset of Transact-SQL for SQL Server 2008. Deprecated Database Engine Features in SQL Server 2008 R2http://msdn.microsoft.com/en-us/library/ms143729.aspxSimilarities and Differences (SQL Azure vs. SQL Server)http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034Transact SQL reference (SQL Azure): http://msdn.microsoft.com/en-us/library/ee336281(lightweight).aspx
Overview of Options for Migrating Data and Schema to SQL Azurehttp://social.technet.microsoft.com/wiki/contents/articles/overview-of-options-for-migrating-data-and-schema-to-sql-azure.aspxImporting/Exporting data to SQL Azure databases using BCP and SQL Scriptshttp://blogs.msdn.com/b/cesardelatorre/archive/2010/06/04/importing-exporting-data-to-sql-azure-databases-using-bcp-and-sql-scripts.aspx
Why Do I Need a Clustered Index?http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspxUniqueidentifier and Clustered Indexeshttp://blogs.msdn.com/b/sqlazure/archive/2010/05/05/10007304.aspxSELECT INTO With SQL Azurehttp://blogs.msdn.com/b/sqlazure/archive/2010/05/04/10007212.aspxSELECT *INTO #CFROM CUSTOMERWHERE 1=0Replace with CREATE TABLE INSERT INTOI Miss You SQL Server Agent: Part http://blogs.msdn.com/b/sqlazure/archive/2010/07/30/10044271.aspxSQL Azure and backup http://ronnys-geek-blog.blogspot.com/2010/10/sql-azure-and-backup.html
Azure Storage is significantly cheaper and more scalable than SQL Azure. The downside is that you lose querying ability since only PartitionKey and RowKey are indexed. Consequently, you need to gauge the importance of cost effectiveness and indexing. In this particular case the ACID semantics of SQL Azure are not particularly important since the data is written by a single client.One strategy is to store your scaleout data in Azure Storage and keep an index to it in SQL Azure.
Now Available: Windows Azure Security Notes PDFhttp://blogs.msdn.com/b/jmeier/archive/2010/08/03/now-available-azure-security-notes-pdf.aspxWindows Azure Security Notes (PDF) is a collection of our notes and learnings from exploring the cloud security space and working through Windows Azure security scenarios. Note that this is not a guide and it’s not a Microsoft patterns & practices deliverable. It’s simply a way to package up, hand-off, and share what we learned during the exploration stage of our patterns & practices Windows Azure Security Guidance project.The key things you’ll want to explore in the notes are the various application scenarios, the cloud security threats and countermeasures, and the checklist.2010 Aug 03
http://wcfsecurityguide.codeplex.com/Fri Aug 1 2008
http://social.technet.microsoft.com/wiki/contents/articles/inside-sql-azure.aspx“At this time, although there are availability guarantees with SQL Azure, there are no performance guarantees. Part of the reason for this is the multitenant problem: many subscribers with their own SQL Azure databases share the same instance of SQL Server and the same computer, and it is impossible to predict the workload that each subscriber’s connections will be requesting. However, not having guarantees doesn’t mean that performance is not a critical aspect of the design of the SQL Azure infrastructure. SQL Azure provides load balancing services that evaluate the load on each machine in the data center. “
Microsoft Windows Azure Platform TCO Calculatorhttp://www.microsoft.com/windowsazure/economics/Quickly determine “quantitative” value of using Windows Azure Platform services TCO of development and running Windows Azure Platform vs. traditional delivery channels Estimation “of” and conversion “to” on-premise solution to Windows Azure Platform services David Pallman (Azure MVP) http://azureroi.cloudapp.net/http://davidpallmann.blogspot.comhttp://www.neudesic.com/cloud/Pages/Cloud.aspx
Azure Virtual Server = Running the apps directly in a Windows 2008 Virtual Server in Azure – IT Pro cost NOT included and will raise the total cost
http://www.odata.org/
Book: Windows Azure Platform: Articles from the Trenches Volume 1http://blogs.msdn.com/b/sqlazure/archive/2010/07/06/10035093.aspxCloud Computing – Roger Jenningshttp://www.amazon.com/Cloud-Computing-Windows-Platform-Programmer/dp/0470506385/ref=sr_1_4?ie=UTF8&qid=1291557584&sr=8-4Windows Azure Platform for Enterpriseshttp://msdn.microsoft.com/en-us/magazine/ee309870.aspxRoger Jennings bloghttp://oakleafblog.blogspot.com
20 million enterprises in ChinaUfida accounts for 22% market share of China management software (SAP market share in China: 9.7%)UfidaChangejet: SMEs oriented management software# of enterprise users: 500,000*