Quantcast
Channel: MSDN Blogs
Viewing all 29128 articles
Browse latest View live

Setting up Microsoft Azure Rights Management with Office 365 Message Encryption

$
0
0

 

Today I am going to talk about a new feature which Office 365 team has introduced and that is “Office 365 Message Encryption”.

http://technet.microsoft.com/en-us/library/dn569286.aspx

Office 365 Message Encryption depends on Microsoft Azure Rights Management (previously known as Windows Azure Active Directory Rights Management). To use this encryption service, you must have an Office 365 organization that includes an Exchange Online or Exchange Online Protection subscription that, which in turn, includes an Azure Rights Management subscription.

clip_image001

http://office.microsoft.com/en-us/business/office-365-enterprise-e3-business-software-FX103030346.aspx

Office 365 Enterprise E3 includes:

clip_image002

So when creating a transport rule for message encryption, we may receive the following error.

clip_image004

You can't create a rule containing the ApplyOME or RemoveOME action because IRM licensing is disabled

After doing some research found out that this was because for IRM the internal licensing was not enabled.

Please refer to the below given TechNet article that would help us understand and enable the internal licensing for the IRM.

Note: Follow all the six steps in the article mentioned below.

http://technet.microsoft.com/en-us/library/dn569291.aspx

Also on how to connect to Exchange Online, we can use any PowerShell tool from any machine and connect as mentioned in the article below.

http://technet.microsoft.com/en-us/library/jj984289(v=exchg.150).aspx

Author:

Kaustubh Dwivedi
Microsoft Security Support Engineer

Reviewer:

NITIN SINGH
Microsoft Security Support Escalation Engineer


SharePoint & SQL Server AlwaysOn Failovers – Video Demonstration

$
0
0

To demonstrate how SharePoint and SQL Server AlwaysOn work together, especially with a failover, I did a quick video to show it in action. Here it is, enjoy (https://www.youtube.com/watch?v=se_M1vdriMA if the embedded video doesn’t load):

SQL Server AlwaysOn is a key tool in maintaining a high-availability SharePoint solution. More information on how to implement it @ http://blogs.msdn.com/b/sambetts/archive/2014/05/16/sharepoint-2013-on-sql-server-alwayson-2014-edition.aspx

 

Cheers,

// Sam Betts

Azure Rights Management - No Subscriptions Found when we click on the Advanced Feature button on the Rights Management Page

$
0
0

 

So it was about time that someone wrote an article about Advanced Feature option on the Rights Management Page.

But first of all what is Azure Rights Management?

Almost every organization is Internet-connected these days, with users bringing personal device to work, accessing company data on the road and home, and sharing sensitive information with important business partners. As part of their daily work, users share information by using email, file-sharing sites, and cloud services. In these scenarios, traditional security controls (such as access control lists and NTFS permissions) and firewalls have limited effectiveness if you want to protect your company data while still empowering your users to work efficiently.

http://technet.microsoft.com/en-in/library/jj585026.aspx

How do we enable it on the Office 365 Portal?

http://technet.microsoft.com/en-us/library/jj658941.aspx

Going a little deep and you can create and manage custom templates in the Azure Management Portal. You can do this directly from the Azure Management portal, or you can sign in to the Office 365 admin center, and choose the advanced features for Rights Management, which then redirects you to the Azure Management portal.

More about the Advance Feature for Rights Management: http://technet.microsoft.com/en-in/library/dn642472.aspx

But I am not here to talk about the advanced feature here. But more of when we decide that we want to go ahead and try this out and we end up with an error.

No Subscriptions Found when we click on the Advanced Feature button on the Rights Management Page

When we click on the advanced features button on the rights management page (Figure 1) we get a message like the one in Figure 2.

Figure 1

clip_image002

Figure 2.

clip_image002[4]

So what happened here?

I am logged onto the office365 with kaustubh@kausd.onmicrosoft.com . So the tenant here is kausd.onmicrosoft.com.

Office 365 account: kaustubh@kausd.onmicrosoft.com

What is a Tenant?

We as cloud users would often hear the term “tenant” a lot. As per oxford tenant would mean: a person who occupies land or property rented from a landlord.

Same way in office 365 it means your own space and in general it is denoted by .onmicrosoft.com.

So if one company has an office 365 name space abc@domain.onmicrosoft.com then no other company can use the same name space.

Now when I click on the advanced features button it takes us tohttps://account.activedirectory.windowsazure.com/.

This page would land us on Azure Management portal once it verifies that we have a subscription associated with my account with which I am logged in on office 365.

For example, Azure Space will look if my account Kaustubh.kausd.onmicrosoft.com has a subscriptions associated with it, if found it will check if my account is a Service administrator or a co-administrator.

In case it does not find that my account satisfies any of the conditions mentioned above it will throw a message like the one in Figure 2.

What is Microsoft Azure?

What is Azure? In short, it’s Microsoft’s cloud platform: a growing collection of integrated services—compute, storage, data, networking, and app—that help you move faster, do more, and save money. But that’s just scratching the surface.

http://azure.microsoft.com/en-us/overview/what-is-azure/

In case if any one of them is not true we will get message we saw in figure 2.

Now let’s look at how to resolve this kind of issue.

Scenario 1:

Some of the users are confused if they have or don’t have an Azure Account.

So let’s check that by visiting https://manage.windowsazure.com and see if we can login here or not.

Login with the same account the account as of office365. At this point you will be logged of from Office365 if the login to the Azure Portal Succeeds.

Under setting section look if he we have the subscription associated with the Directory that you intend to use (Figure 3). In my case it would be kausd.onmicrosoft.com.

Now in starting I could never logon to the Azure portal with the Kaustubh@kausd.onmicrosoft.com because of the reason that kausd.onmicrosoft.com was not associated with any subscription.

I have multiple directories (Figure 3) and the default directory was the one that had the subscription associated with it. So I had to first login to the portal as a global administrator (Figure 4) where the account used is kausd@outlook.com.

Figure 3

image

Figure 4

image

kausd@outlook.com was the account through which I first signed up for my Azure Account.

Under setting section and click edit directory (Figure 5) and (Figure 6).

Figure 5

image

Figure 6

image

NOTE: For this change you have to be a Global Administrator.  Once you associate the directory you need to make Kaustubh@kausd.onmicrosoft.com either a service administrator or a co-administrator.

For this we need to go to the Active Directory section select the Directory you (kaustubh@kausd.onmicrosoft.com) belong to.

clip_image012

Under users tab look for the account and once you expand that you would see a section where a role can be assigned (Figure 7). Again I have to be a global administrator for this.

Figure 7

image

Here I have made Kaustubh@kausd.onmicrosoft.com as the service administrator.

Once done with these steps we should be done.

Scenario 2:

In case we don’t have an Azure Subscription then we can always sign up for a trial.

We need to click on sign up for Windows Azure and then we can proceed with procedure in Scenario 1.

I hope you find the above given information helpful and useful. Welcome to the Microsoft Rights Management world.

Author:

Kaustubh Dwivedi
Microsoft Security Support Engineer

Reviewer:

NITIN SINGH
Microsoft Security Support Escalation Engineer

Error while generating any kind of report on Threat Management Gateway 2010

$
0
0

 

While working on a TMG 2010 issue, we were getting an error when generating any kind of report. The error is mentioned below.

================================================================================

System.Web.Services.Protocols.SoapException: The item '/ISA2008

Reports/Summary_ServerParticipation' cannot be found. --->

Microsoft.ReportingServices.Diagnostics.Utilities.ItemNotFoundException: The

item '/ISA2008 Reports/Summary_ServerParticipation' cannot be found.

at

Microsoft.ReportingServices.WebServer.ReportExecution2005Impl.LoadReport(String

Report, String HistoryID, ExecutionInfo2& executionInfo)

at

Microsoft.ReportingServices.WebServer.ReportExecutionService.LoadReport(String

Report, String HistoryID, ExecutionInfo& executionInfo).

The error occurred on object 'Reports' of class 'Reports Configuration' in the

scope of array <Servername>

=================================================================================

It is always a good idea to actually look if actually the Report “Summary_ServerParticipation” existed in the SQL or not.

So we opened the Reporting Services Configuration Manager on the TMG 2010 Server.

Clicked the Highlighted link below.

clip_image002

This opened an IE window and we could not find any report in the location mentioned.

clip_image004

Compared this to a healthy TMG 2010 Server and I could see a bunch of reports present. Highlighted is the report that we are actually getting an error:

clip_image005

So, our Task now was to do a restore of the Database from a healthy TMG 2010 server that is holding the above populated report to the TMG 2010 server, we are facing issue with.

Details of the TMG servers.

TMG2 – TMG 2010 Server with the issue.

TMG1 – Healthy TMG 2010 Server.

Take a backup before we proceed.

Based on the complexity of the implementation of the action plan, we will be accomplishing this task in Phases:

Phase 1: Taking Backup of the Database from TMG 2:

How to: Back Up a Database (SQL Server Management Studio)

http://technet.microsoft.com/en-us/library/ms187510(v=sql.105).aspx

Database’s that we need to take a backup for:

clip_image006

Phase 2: Backing Up the Encryption Key from Reporting Services Configuration Manager:

Backing up the Encryption Key.

Back up encryption keys -Reporting Services Configuration Manager (Native Mode)

http://msdn.microsoft.com/en-us/library/ms157275.aspx

clip_image008

Now as we are done backing up the database’s from TMG2, we need to perform the same steps for exporting the database from the working TMG1 Server.

At the end we will have 3 files that we need:

EK- Encryption Key

ReportsServer$ISARS – Report Server Database.

ReportsServer$ISARSTempDB – Report Server Temporary Database.

clip_image009

Phase 3: Deleting the Database from the TMG 2 and Importing a healthy Database from TMG 1:

On TMG 2 we need to delete only ReportsServer$ISARS from the SQL Management Studio.

Now why we delete this database only is because firstly this is the database where our report Summary_ServerParticipation is under. And we want to replace our Database ReportsServer$ISARS with a healthy one.

How to: Restore a Backup from a Device (SQL Server Management Studio)

http://technet.microsoft.com/en-us/library/ms188312(v=sql.105).aspx

We need to only import ReportsServer$ISARS as that’s what we are recovering.

Phase 4: Importing the Encryption Key onto the TMG 2 server that we exported from the TMG 1 Server:

Restore encryption keys -Reporting Services Configuration Manager (Native Mode)

http://msdn.microsoft.com/en-us/library/ms157275.aspx .

It will take a little bit to complete this process , do watch out for the message in the Results Section.

Phase 5: Delete the TMG 1(Working Server) instance from the Scale-out Deployment.

Delete the Working Server Instance(TMG1) and after deleting we should see only one server which is TMG2.

How to Delete TMG1 Instance:

On the ReportsServer$ISARS Datbase execute the below mentioned query.

delete from keys where machinename=’TMG1’.

To confirm the Exact Machine Name:

On the table dbo.keys under ReportsServer$ISARS Database execute the below mentioned query.

Select [MachineName] from [ReportServer$ISARS].[dbo].[Keys]

After deleting the Instance TMG1, visit the Scale-out Deployment Status.

clip_image011

We would see only TMG2 Server listed there.

This completes the process and now to confirm if we can see the Reports on TMG2. Follow the same procedure mentioned in the starting of the article.

Or you can directly generate a report and see if we are still getting the error. If followed in the exact way we should see the issue getting rectified.

I hope this article will come handy in solving these kind of Reporting issues while working on Forefront Threat Management Gateway.

Author:

Kaustubh Dwivedi
Microsoft Security Support Engineer

Reviewer:

NITIN SINGH
Microsoft Security Support Escalation Engineer

ebook deal of the week: Microsoft SharePoint 2013 Inside Out

$
0
0

Microsoft SharePoint 2013 Inside Out

List price: $39.99  
Sale price: $19.99
You save 50%

Buy

Conquer SharePoint 2013—from the inside out! You're beyond the basics, so dive right into SharePoint 2013—and really put your business collaboration platform to work! This supremely organized reference packs hundreds of timesaving solutions, troubleshooting techniques, and workarounds. It's all muscle and no fluff. Discover how the experts facilitate information sharing across the enterprise—and challenge yourself to new levels of mastery. Learn more

Terms & conditions

Each week, on Sunday at 12:01 AM PST / 7:01 AM GMT, a new eBook is offered for a one-week period. Check back each week for a new deal.

The products offered as our eBook Deal of the Week are not eligible for any other discounts. The Deal of the Week promotional price cannot be combined with other offers.

From the MVPs: PowerShell and SQL Stored Procedure

$
0
0

This is the 45th in our series of guest posts by Microsoft Most Valued Professionals (MVPs). You can click the “MVPs” tag in the right column of our blog to see all the articles.

Since the early 1990s, Microsoft has recognized technology champions around the world with the MVP Award. MVPs freely share their knowledge, real-world experience, and impartial and objective feedback to help people enhance the way they use technology. Of the millions of individuals who participate in technology communities, around 4,000 are recognized as Microsoft MVPs. You can read more original MVP-authored content on the Microsoft MVP Award Program Blog.

This post is by Lync MVP Desmond Lee. Thanks, Desmond!

PowerShell and SQL Stored Procedure

PowerShell is the window to managing many aspects of a Lync Server 201x environment. Coupled with the deployment of the Monitoring Server service (or separate role in 2010), extensive data can be collected to support operational and troubleshooting demands. By installing the optional Monitoring Reports on selected SQL Server Reporting Services (SSRS) instances, common types of reports are easily available at your disposal.

As Lync deployments become ever more popular and widespread, it became evident that the Lync Management Reports shipped with the product do not address certain reporting requirements needed in the field. Since persistent and dynamic Lync data are stored in various SQL databases in the backend as well as on each Front-End Server, the act of firing up SQL Management Studio, connecting to the right server and executing a SQL query will enable you to put together a user-defined report. You can find many excellent blog posts that walk you through the intricacies of constructing the often complicated looking SQL statements.

Microsoft discourages building SQL queries to pull information directly from the underlying database tables for a good reason. Besides the inherent complexity and tediousness involved, such as the use of multiple table JOINs, the database schema, table relationships and naming conventions may change in future updates and product versions. Hence the risk of breaking customized SQL queries is very real indeed.

In this compact article, I shall show you how to utilize the built-in SQL stored procedures associated with the Lync databases. Think of a stored procedure as a function which comprises of one or more PowerShell statements, and is capable to accept input parameters and return one or more values. Stored procedures are found in the rtc / Programmability / Stored Procedures node of the rctlocal instance.

One popular yet missing report (from Lync Management Reports) is to list the various Lync client versions deployed in the environment. We shall be using the common skeleton code framework to build and run SQL queries in PowerShell (see code listing for the complete script).

To begin, instead of constructing a SQL query similar to the following:

SELECT rtc.dbo.Resource.UserAtHost as 'SIP Address',
CAST(rtcdyn.dbo.RegistrarEndpoint.ClientApp as varchar(100)) as 'Client Version'
FROM rtcdyn.dbo.RegistrarEndpoint
INNER JOIN rtc.dbo.Resource
ON rtcdyn.dbo.RegistrarEndpoint.OwnerId = rtc.dbo.Resource.ResourceId
WHERE IsServerSource = 0

You simply specify the name of the stored procedure and assign it to CommandText:

$SqlCmd.CommandText = “DiagShowEndpointsByClientApp”

The result, stored in the first table of the dataset, is a summary of the range of Lync client versions, all the way from desktop to mobile apps, which are currently in use in the environment.

clip_image002

If the stored procedure expects one or parameters, you can supply them as well. Here, we are interested to confine our list to users connecting using Lync Mobile for Android devices:

$clientVersion = "Android"
$SqlCmd.Parameters.AddWithValue("@_Contains",[string]$clientVersion)

The second table (index 1) of the dataset contains the results matching the given criteria.

clip_image004

To discover if parameters are optional or not, go ahead and inspect the stored procedure with the help of SQL Management Studio.

clip_image005

That is all to it in using stored procedures with PowerShell really. Be aware that this technique can be employed anywhere stored procedures are available in place of writing your own SQL queries.

Using readily available SQL stored procedures makes it easy to harness the power and work already done by Microsoft to generate reports absent in the out-of-box Lync Monitoring Reports, while future-proofing your PowerShell scripts against any underlying database changes less the agony of building your own complex SQL queries. I hope this article will help you put to real good use of the vast potential of PowerShell and stored procedures.

image

Clubs .NET: Pequeñas iniciativas, gran potencial

$
0
0

A menudo escuchamos tanto la coletilla “change the world” que a veces deja de tener sentido. No nos damos cuenta de que son, precisamente, las pequeñas iniciativas las que ayudan a empujar la rueda que hace girar el mundo.

Así que, me gustaría presentaros a los clubs .NET: nacen del espíritu de estudiantes apasionados que lo “único” que desean es disfrutar con lo que más les gusta: la tecnología. Y sin embargo, nos sorprenden en más de una ocasión.

 

Instituto Tajamar (Madrid)

Universidad de Albacete

Universidad de Alcalá

Universidad de Alicante

Universidad Autónoma de Barcelona

Universidad Autónoma de Madrid

Universidad de Cantabria

Universidad Complutense de Madrid

  • Nombre:
  • Web:  Construyendo
  • Twitter:
  • Contacto: Alberto González
  • Información: club creado este año pero que dará mucho de que hablar con sus talleres de  Unity.

Universidad de A Coruña

  • Nombre: Fic .NET Club
  • Web: Construyendo
  • Email:   fic.net@outlook.com
  • Contacto: Alejandro Martín (@alex030293 )
  • Información:focalizados en la promoción de las novedades de Microsoft, y próximamente será uno de los participantes de un proyecto que está en plena ebullición.

Universidad de Málaga

Universidad Oberta de Catalunya

  • Nombre: UOC DotNetClub
  • Web: Construyendo
  • Twitter: @UOCDotNetClub
  • Contacto:  Cristian Moreno (@dantebcn85)
  • Información:les encantan dar webcasts y podcasts y próximamente unos vídeos chulísimos creados por ellos.

Universidad de Oviedo

  • Nombre: Uniovi
  • Twitter:  @eiinetclub
  • Contacto:Diego Zapico (@Zapy91)
  • Información: su objetivo es aprender y compartir conocimientos de cualquier tecnología.

Universidad Politécnica de Madrid Campus Sur

  • Nombre:DotNetClub EUI UPM
  • Web: http://dotnet.eui.upm.es/blog/
  • Twitter:@dotnetclubEUI
  • Contacto:Roberto Pérez
  • Información: otro club que está en renovación de equipo, pero en el pasado estuvieron muy activos y este año empezarán con energías renovadas. Les gusta mucho Azure, robótica, IA, BBDD, microelectrónica, apps...

Universidad Politécnica de Madrid IEEE

Universidad Rey Juan Carlos

Universidad de Salamanca

UNED

 

Heads Up: Hey, Scripting Guy! Blog Series

$
0
0

Microsoft Scripting Guy Ed Wilson here. This week, the week of Oct. 19, I begin a special series of Hey Scripting Guy blog posts where we will be talking about why upgrade to Windows PowerShell 4.0. This series will be way cool, and I have enlisted the help from various MVP's, as well as from the PowerShell team. So, what is in store for you? Here is the lineup:

On Sunday I talk about the parade of features we have added to PowerShell over the various versions. The point of the article is to try and get ahead of the learning curve.

On Monday PowerShell MVP Richard Siddaway talks about some of the considerations involved in an upgrade.

On Tuesday PowerShell MVP Teresa Wilson, aka Scripting Wife, talks about how PowerShell 4.0 makes her life easier in day to day usage.

On Wednesday PowerShell MVP Jeff Wouters provides a history lesson with Windows PowerShell and concludes that PowerShell 4.0 Rocks.

On Thursday IIS MVP Terri Donahue talks about some of the changes brought about by PowerShell 4.0 that compelled her to upgrade.

On Friday PowerShell MVP Dave Wyatt says the big reason for upgrading is DSC, DSC and DSC.

On Saturday Windows PowerShell Team Member John Slack rounds out the week by providing his unique insiders perspective.

 

In all it is a powerful week of articles that you will not want to miss. Hope to see you over there.

ed wilson

Microsoft Scripting Guy

http://technet.microsoft.com/en-us/scriptcenter/default.aspx

Follow us on Twitter: http://twitter.com/scriptingGuys


Visual Studio Online (TFS as a Service) – What you need to know to get started

$
0
0

You may already have an account, but before moving your company’s code, work items etc. it is important to know what is possible and what the terms and conditions are. Below I have collected some important links:

Introduction:
http://azure.microsoft.com/en-us/services/visual-studio-online/
http://www.visualstudio.com/en-us/products/what-is-visual-studio-online-vs.aspx

Pricing:
http://azure.microsoft.com/en-us/pricing/details/visual-studio-online/

Features Timeline:
http://www.visualstudio.com/news/release-archive-vso

SLA & Terms of Service:
http://www.microsoft.com/en-us/download/details.aspx?id=42290
http://www.visualstudio.com/en-us/support/terms-of-service-vs.aspx
http://blogs.msdn.com/b/bharry/archive/2013/10/14/how-do-you-measure-quality-of-a-service.aspx

Status & Support:
http://blogs.msdn.com/b/vsoservice/
http://www.visualstudio.com/support/support-overview-vs

Migrating:
http://www.visualstudio.com/en-us/get-started/migrate-team-projects-vs.aspx

Users and Azure AD:
http://www.visualstudio.com/get-started/manage-organization-access-for-your-account-vs

Integration & Service Hooks:
http://www.visualstudio.com/integrate/
http://www.visualstudio.com/en-us/integrate/reference/reference-vso-hooks-overview-vsi
http://www.visualstudio.com/en-us/integrate/explore/explore-vso-vsi.aspx
http://blogs.msdn.com/b/slange/archive/2014/08/26/send-email-to-a-team-room-with-vso-service-hooks-and-zapier.aspx
http://www.visualstudio.com/integrate/reference/reference-vso-overview-vsi
http://www.visualstudio.com/en-us/get-started/integrating-with-service-hooks-vs

Backup:
Visual Studio Online utilize SQL Azure, which provides High-Availability and Disaster-Recovery. This is described here http://msdn.microsoft.com/en-us/library/azure/jj650016.aspx

Test & Build – On Premise:
If you don’t want to or cant use the build & test features provided by the service you can connect from both on-premise build and test controllers: http://nakedalm.com/connect-a-test-controller-to-team-foundation-service/ and http://myalmblog.com/2014/04/configuring-on-premises-build-server-for-visual-studio-online/

Feel free to suggest more and I will add them :-)

A list of resources to get you started in the world of startups / venture capital

$
0
0
I’ve begun compiling a list of resources that I’ve gathered along the way, as I continue to learn more about the world of startups and venture capital. Let me know if there’s anything that you feel is missing from me, and I’d love ...read more...(read more)

How we do Pair Programming

$
0
0

Our team is responsible for developing and maintaining all of Azure Management SDK which includes quite a bit of languages and tool. For example, we own .NET SDK (https://github.com/Azure/azure-sdk-for-net), PowerShell Toolset (https://github.com/Azure/azure-sdk-tools-pr), Java SDK (https://github.com/Azure/azure-sdk-for-java), Node JS SDK (https://github.com/Azure/azure-sdk-for-node), XPlat CLI Toolset (https://github.com/Azure/azure-sdk-tools-xplat), PHP SDK (https://github.com/Azure/azure-sdk-for-php), as well as a pretty complex internal code generation platform. That being said we are a rather small team and until recently had at max 1-2 devs expert in each language/platform. That obviously presented a few issues. To gain maximum efficiency our PMs would always have to give us a diverse mix of tasks that included all of the languages and platforms. Whenever there was a big event such as //build or TechEd and the deliverables piled up (usually PowerShell and XPlat CLI got hit the worst) some team members had to work late hours while others were not really able to help. Also the daily scrums were kind of boring, since people could not really relate to what everyone else was doing.

So, to make the long story short, we have discussed at our last retrospective that our team would probably benefit from doing XP style pair programming (we have recently moved into an open space and the room setup was congruent to pairing). Since we didn’t have any XP practitioners on our team I have shot an email to our in-house Agile guru Arlo Belshee (http://arlobelshee.com/) who has generously agreed to come over to coach our team.

Here is what we have decided to do:
1. Do 2 pairing sessions a day – 90 minutes in the morning and 90 minutes in the afternoon. This arrangement gives us enough time to answer emails and review GitHub pull requests while letting us have 100% focus during the pairing sessions. By the way, pairing is intense. Doing 8 hrs a day of straight pairing will fry your brain!
2. Use the thinker/typer approach for coding tasks (not sure what is the official XP name for this) – one person types and one person thinks. The one typing is not allowed to type on his/her own. The moment the typer wants to contribute he/she needs to push out the keyboard. If both people want to “think” they need to discuss. This is by far the best pairing strategy we’ve found, which prevents the person who is not typing from falling asleep.
3. Change partners every session. That works for us.
4. Change work items every session. One person from the pair stays on the work items (if it takes more than 1 session to complete the item) and the other should go. Another rule is that a person can’t stay on a single task for more than 2 sessions!
5. Picking the right pair – initially we’ve agreed to do a mix of an expert with someone new to the area. For example someone who knows PowerShell pairs with a Java guys on a PowerShell task. This enables for the fastest knowledge dissemination. Later on, as the knowledge becomes more even, so will the pairs get more even.
6. Use the whiteboard to track work items and tasks. Before the session begins we write down all work items that are up for pairing on the board and discuss which exactly steps need to be done. The people volunteer for pairs and the names are written down on the board next to the items. Finally as work gets done, the tasks get crossed out one by one.
7. Pick easily “pairable” items, expanding the set of “pairable” items as we go. Here is a diagram that Arlo drew:
 
Initially we took just small simple coding problems that we knew how to solve while keeping a more complicated items for individual work. As time went by we started picking more complex items as well as non-coding research tasks. The goal is to make all work items “pairable”.
8. Do a brief retrospective on Tuesdays and Thursdays to micro-adjust our new process

So far we’ve been doing this approach for 3.5 weeks and based on the team feedback its working great for everyone. By the way, if you are going to try pairing, make sure to try pairing for the entire month before making the decision (Arlo’s suggestion). The first few days you will see a dramatic improvements. The 2nd - 3rd week you may start to hate it (the brain will rebel against someone always telling it what to do and will just shut down). The 3rd – 4th week is when you will get into the rhythm and will wonder how you were able to code without a partner before.

So here is where we are today. The team is now able to work on literally any codebase. Some quotes from the retrospectives have been “this is the most fun I’ve had coding in the past 6 months”, or “I have learned in one session more than I have learned in a long time being stuck doing X”. By the way, as you may imagine the main fear of our PMs has been that while we are learning and stuff we would stop delivering as many story points (2 people on 1 keyboard). The reality has been quite the opposite. We’ve started pairing in Sprint 39 and have finished more points than in Sprint 38. Now we are in Sprint 40 and have one week left to go. Based on velocity chart we should be complete if not more than at least as many story points as in the last sprint. Also our flow (we’re doing a mix of Scrum and Kanban) has become much more even. We max a max of 4-5 items in Active state, as opposed to 10-15 in the past.


So overall I would say this has been quite a successful experiment. Feel free to post comments or email me if you’d like more details on how pairing is working out for us.

Дан старт Imagine Cup 2015!

$
0
0

Конкурс Imagine Cupпродолжается практически круглый год, поэтому уже сейчас пришла пора задуматься о том, какой проект представить на конкурс в этом году. В то время как мы проводим серию хакатонов Imagine Cup по всей России, чтобы помочь студентам придумать и реализовать свою идею, регистрация на конкурс уже открыта, и некоторые интересные международные конкурсы уже начались!

image

Как будет проходить конкурс в России?

В этом году, как и в прошлом, финал конкурса пройдет в США. Россия представит на международном этапе конкурса лучшую команду, которая будет отобрана на национальном российском финале соревнований в Москве весной 2015 г.

Прием заявок на конкурс продлится до февраля 2015 г. (точную дату мы объявим дополнительно), после чего мы определим оптимальный формат проведения регионального отбора команд для участия в национальном финале. Заявки можно подать уже сейчас онлайн, заполнив соответствующую формуна сайте http://www.imaginecup.ru.

Соревнования, как и в прошлом году, проводятся в трех категориях: игры, инновациии социальные проекты.

Международные онлайн-соревнования

Как и в прошлом году, вы можете участвовать также в ряде международных онлайн-конкурсов, соревнуясь сразу с командами и участниками со всего мира. Эти конкурсы устроены таким образом, чтобы помочь вам на каждом этапе развития проекта – участвуя во всех конкурсах по очереди, вы в конце концов создадите действующий прототип своего продукта. Онлайн-конкурсы отражают основные этапы развития проекта:

  • Конкурс видеопитчейпредполагает, что вы хорошенько продумали идею своего проекта и можете изложить её в коротком видео
  • В конкурсе Project Blueprintтребуется описать ваш проект по некоторому шаблону, чтобы убедиться, что вы продумали все основные составляющие проекта, такие как целевая аудитория, бизнес-модель, или геймплей игры.
  • Конкурс прототиповпредлагает вам разработать более детальное представление проекта и его внешнего вида и информационной архитектуры. Вам необходимо представить такие документы, как storyboard или user flow diagram.

Набор требуемых материалов слегка различается для каждого из основных конкурсов (игры, инновации и социальные проекты). Подробности можно почитать на международном сайте соревнований.

Конкурс Code Hunt Challenge

В рамках Imagine Cup также есть соревнование, предназначенная для тех, кто ищет легкие пути. В этом соревновании легко поучаствовать, потратив всего полчаса времени, и при этом вы приобретете полезные навыки и получите удовольствие. В прошлом году таким конкурсом был Brain Games, в этом году мы представляем совершенно новый индивидуальный конкурс – Code Hunt Challenge.

В рамках Code Hunt вы работаете в рамках специального тренажера, в котором вам показывается фрагмент ошибочно-работающей программы на C#. Вам необходимо найти в программе ошибку и исправить её так, чтобы она выдавала требуемый результат. Начиная с очень простых заданий, конкурс постепенно становится всё более захватывающим…

Соревнования Code Hunt проводятся раз в месяц в течение двух суток в третьи выходные месяца (по гринвичскому времени). Это значит, что ближайшие соревнования пройдут 15-16 ноября. В другие дни вы можете подготовиться к соревнованиям пройдя пробные упражнения на сайте www.codehunt.com.

Imagine Cup – конкурс и образовательная программа

Важно отметить, что Imagine Cup – это не просто конкурс, который проходит весной и летом каждого года. Это еще и образовательная активность: хакатоны, онлайн-курсы по технологиям и предпринимательству, вебинары и много другое. Это активность длиною в год, которую надо начинать прямо сейчас. Регистрируйтесь в группе Imagine Cup вконтакте, чтобы быть в курсе активностей, следите за новостями в блоге, будьте активны и будьте счастливы!

End of sprint - added bitmap saving, CPU readback, and ColorMatrixEffect

Top 10 Microsoft Developer Links for the Week of October 13, 2014

$
0
0

The great thing about regular expression languages is that there are so many to choose from!

$
0
0

Before you ask a question about regular expressions, you should make sure you and your audience agree on which regular expression language you are talking about.

Here is a handy table of which features are supported by which regular expression language.

You can use that table to solve this customer's problem:

I have a regular expression that works just fine when I test it in 〈insert regular expression testing tool, like RegExr or RegexPlanet〉, but I can't get it to work in real life.

C:\> findstr /r /c:"a(?!.*b)" file.txt
(prints no results!)
C:\>

My goal is to find all lines that contain an a not followed anywhere by a b.


Your invitation to a unique business intelligence experience at UCISA CISG!

$
0
0
Simpson Associates HomepageTwitterLinkedin
Simpson Associates Microsoft CIE

Microsoft and Simpson Associates are partnering at this year’s UCISA CISG event in Manchester.  We’re excited to be presenting the unique opportunity
that Office 365 provides to our customers to leverage business intelligence as
a way of effectively managing areas like student number planning and
institutional performance.

 

The invitation that is being sent to all of our existing customers from Simpson Associates is below, and we’re looking forward to seeing lots of you there at the Midland Hotel in Manchester.

 

As UCISA Corporate Members we will be exhibiting at this year’s CISG at The Midland Hotel, Manchester once again and we would like to invite you to an exclusive new immersion experience that we will be running in partnership with Microsoft throughout the event.

Many of our University clients are looking for new and affordable ways to deliver accessible and pervasive dashboards to a larger number of information consumers. These consumers range from university-wide personnel, to students themselves;  and they need an affordable way to meet this demand!

At this year’s CISG event we are encouraging you to see how you could capitalise on your existing investments in Microsoft, by offering hands on sessions with Office 365 and Power BI during our workshop(s) the Customer Immersion Experience (CIE).

In many instances Universities already have investments in SQL, SharePoint and Microsoft and so it is a natural and affordable progression to explore the BI potential in these existing products which are accessible from every desktop.

If you would like to really understand how you could accelerate your  performance management capability using your current technology assets, then the Customer Immersion Experience (CIE) offers just that.

We'd like to extend an invitation for you to join us for a different kind of meeting. Enrolment is limited therefore we recommend you pre-book a place in advance here. 

Register Now
TechnologyServicesHigher Education

 

Remember Your NDA

$
0
0

 

Editor's note:  The following post was written by MVP Award Program Manager Kerry Herger

It’s almost November and we’re now just days away from the start of the 2014 MVP Global Summit!  In a very short time over 1600 MVPs from around the globe will gather on the Microsoft campus to participate in over 500 technical sessions with hundreds of members of Microsoft product teams.

The sheer number of participants—and the amount of content shared—makes this the largest community event in the world. But that’s only part of what sets this annual gathering apart. For over 20 years, Microsoft teams have sat down with these technology and community leaders to provide MVPs visibility into early stage products and new releases giving MVPs the information they need to look forward in their work with community and to gain valuable community feedback to help make our products better.

“To me the MVP Summit is a great opportunity for what I call “direct interaction” between the MVP community on the one hand and all the different product teams and engineers in the product teams on the other hand” says Microsoft Developer Division Corporate Vice President Soma Somasegar.  “It’s the-two way dialogue, the two-way conversation and the feedback that is a part of what makes MVP Summit a great opportunity both for the product teams and the MVP community to meet face-to-face and have the high-level interaction and communication going on.”

Most MVPs have numerous communications with Microsoft product teams throughout their award year, but the hands-on experience and deep exchange of ideas at the MVP Global Summit is something most members of the community—including Microsoft’s product teams—look forward to all year. To lay the groundwork for this relationship, all MVPs sign a Non-Disclosure Agreement (NDA) assuring they will not share any confidential information they may gain from Microsoft. Throughout the MVP Global Summit, MVPs hear the refrain, “Don’t forget your NDA!” since it’s essential to the dynamic exchange of ideas between the MVP community and Microsoft.  

 

Azure SQL Database 主動異地備援 (Active Geo-Replication) 功能

$
0
0

 

感謝北科大劉建昌同學翻譯微軟公司主管  Tobias Ternstrom於 2014 年 7 月 12 日所發表的文章 http://azure.microsoft.com/blog/2014/07/12/spotlight-on-sql-database-active-geo-replication/

 

在本篇文章中,我們將繼續針對 Azure SQL Database 各種業務連續性 ( Business Continuity ) 方案作介紹,以及討論最近 Azure SQL Database Premium 版所提供的主動異地備援 ( Active Geo-Replication ) 功能。除了本篇文章的介紹之外,您也可以透過 Channel 9觀看由 Sasha Nosov 和 Scott Klein 所主講的關於主動異地備援如何運作以及如何確保業務連續性的介紹影片。

何謂業務連續性 ( Business continuity )

所謂業務連續性 ( Business continuity ) 意指當企業在面臨資訊基礎建設或系統發生中斷時,能夠讓資訊服務持續不間斷之機制、策略或是程序。依照資料庫的角度來看,最主要有四種造成服務中斷的狀況 :

1. 本地端硬體或軟體故障時會影響資料庫節點 ( node ) 之運作。( 例如 : 磁碟機故障 )

2. 資料庫內的資料損毀或是遭到刪除 : 此種錯誤通常是因為應用程式的 bug 或人為因素所造成,因此無法透過基礎建設 ( infrastructure ) 方式來偵測問題或排除問題。

3. 資料中心停止運作 : 發生這種原因可能是由自然災害所引起,在這種情況下,需要使用容錯轉移 ( failover ) 的異地備援 ( geo-redundancy ),將現有服務移轉到備用的資料中心。

4.升級或維護時所發生的錯誤 : 當在進行更新或是維護時,發生了出乎意料的錯誤,此時需要將資料庫還原到更新前的原始狀態。

Azure SQL Database 如何保持業務連續性

從 Azure SQL Database 建立的那一刻起,Azure 系統一直維持每個資料庫都有三個甚至是更多的副本來保護資料庫,資料異動確認 ( updates committed ) 回應前至少已經有兩份資料副本,在高可用性 ( HA ) 措施的保護下,要是發生上述第一點服務中斷的情況,也就是本地端的硬體或軟體發生故障時,仍可以有效的保護資料庫持續提供服務。

而在最新發布的 Azure SQL Database 服務層 ( Basic,、Standard、Premium ) 中,也為了因應上述其他三種資料庫服務中斷情況,提供了確保用戶業務連續性方案。

以下將個別來介紹Azure SQL Database如何在中斷發生的狀況下維持商業連續性 :

資料庫內的資料損毀或是遭到刪除

所有的 Azure SQL Database 資料庫版本 ( Basic、Standard、Premium ) 服務層都提供了自動備份的功能。這項功能專門可以解決因資料損毀或被刪除所造成的錯誤。Azure SQL Database 會每週做一次完整備份 ( full backups ),每天做一次差異備份 ( differential backup ) 以及每五分鐘進行交易記錄備份 ( log backups )。而備份的保存期限會依照使用者所使用服務層而有所不同,Premium 版為 35 天、Standard 版為 14 天、Basic 版為 7 天。您可以利用在保存期限內的任何一個備份來還原資料庫,甚至可以還原最近遭到刪除的資料庫,此一自由還原資料至任意時間點的功能可參閱此篇內容

資料中心停止運作

而針對 Azure 資料中心因為某些原因造成的長時間停擺,Azure SQL Database 各版本提供多種將資料庫備份到另外一個地區資料中心的功能,目前有三種跨資料中心的備援方式可供選擇 :

1. 異地還原功能 ( Geo-restore ) ,無論 Azure SQL Database 的 Basic、Standard 和 Premium 版都能夠透過異地還原功能,在配對的資料中心運用 Azure Storage 內的地理備援複本將資料還原,相關資訊可參閱此篇內容

2. 標準異地備援 ( Standard geo-replication ) Azure SQL Database 在 Standard 和 Premium 版上擴展了本地端高可用性系統 ( Local HA system ) 能力,用戶可在 Azure 配對之資料中心 ( paired region ) 上建立和維護一個次要資料庫,在平時這個次要資料庫是離線並且是無法讀取的,一旦遇到主資料中心發生停止運作的情況,用戶可以決定是否進行容錯轉移,此時在配對資料中心備援用的次要資料庫方可使用,相關資訊可參閱此篇內容

3. 主動異地備援 ( Active geo-replication ) Azure SQL Database Premium 版用戶可以選擇此異地備援方式,降低資料遺失風險、並能在最短時間恢復在異地恢復運作的一項災難備援解決方案。主動準異地備援功能可讓用戶選擇多達 4 個地理備援的次要資料庫,而這些次要資料庫可以在任何時候進行讀取,並且也可以用於負載平衡 ( Load Balance ) 快速讀取這些副本資料。主動異地備援目前已經進入技術預覽階段,用戶可以公開測試。

升級或維護時所發生的錯誤

使用主動異地備援,您可以建立一個連續的資料庫副本,透過它能夠立即的凍結先前更新或是維護的資料庫和應用程式,而在這個過程之中若是偵測到的錯誤,也能夠快速地回復到這個連續的資料庫副本。

不同的 Azure SQL Database 服務層提供了不同的災難備援解決方案。我們想要強調的是,在不同 Azure SQL Database 服務層之間用戶可以輕易地進行 ”降級” 或是 ”升級”,因此,當資料庫需要進行一些很重要的更新時,您可以先將資料庫從 Standard 版 ”升級” 到 Premium 版,這樣就能夠使用最保險的主動異地備援方式進行系統更新。等到更新完成之後,再將資料庫 ”降級” 回 Standard 版。這樣的好處一方面可以減少成本,另外一方面又能夠提升資料庫在更新時的可靠度。

主動異地備援細節

接下來我們將仔細的描述主動異地備援如何使用於確保業務連續性,並且透過下面的圖示來說明它是如何運作的。

clip_image002

圖一 一個 Azure SQL Database Premium 版的資料庫可以同時在同個區域或是不同的區域上建立最多四個可讀取的次要資料庫

主動異地備援關係 ( Active geo-replication relationships ) 可以透過 Azure 入口管理網站、PowerShell、REST API 來進行管理和建立。在入口網站中,您可以從主要或是輔助的資料庫中管理其備援關係,並且從主資料庫中監控每一個次要資料庫複製的狀況。

clip_image004

圖二 可以使用 Azure 管理入口網站建立和監控多達四個不同資料中心上的次要資料庫

每個資料庫可以建立多達四個可讀取的次要資料庫,每一個都與主資料庫擁有相同的名稱,但是分別建立於不同的伺服器上(伺服器所在的資料中心區域可以相同,也可以不同 )。當次要資料庫第一次被建立時,其狀態為主資料庫當前的狀況,一旦當次要資料庫建立完畢之後,它將會從主資料庫那裡進行連續性的資料複製。

次要資料庫就如同一般的資料庫,在本地端同樣地擁有高可用性系統 ( HA system ) 架構的保護。

clip_image006

圖三 次要資料庫的名稱與主資料庫相同,但是位於不同的伺服器上

不同於 Azure SQL Database 本地端高可用性架構下採用即時的資料複製方式,主動異地備援從主資料庫將資料複製到次要資料庫的資料複製方式是屬於非同步的,當主資料庫正在等待與次要資料庫完成資料交易時,主資料庫不會產生封鎖 ( blocked ) 的狀況。當複製資料到較遙遠的資料中心時,這項改變將可以解決資料複製時發生連線問題 (connection problems) 或網路高延遲 ( high-latency )。

為了確保次要資料庫進行資料交易時,不會造成主資料庫發生瓶頸 ( bottleneck ),因此次要資料庫需要擁有與主資料庫相同 ( 甚至更高 ) 的服務水準等級。

在使用主動異地備援時,次要資料庫是可以讀取的,所以可以支援唯讀 (read-only) 負載之應用情境。當使用者要跨越多個資料庫進行複雜的查詢動作或是需要低延遲時間讀取資料時,這項功能就能夠派上用場。

clip_image008

圖四 : 當某地資料中心發生停擺,可以終止備援關係,並且應用程式將進行容錯轉移到次要位置上。

每個主資料庫的備援關係 ( Replication relationships ) 是可以手動進行調整的,它允許您可以在任何時間點終止複寫。如果您決定終止主區域的複寫,您可以選擇立即終止 ( 這樣會遺失所有尚未執行的交易 ),也可以選擇在所有交易結束之後再終止。如果是資料中心停止運作,連帶影響到主資料庫停止服務,此時仍然可以手動使用容錯移轉。

clip_image010

圖五 : 您可以選擇立即停止或是等待所有數據交易處理完之後再停止

注意 : 只有主資料庫才有提供上述兩種停止作業方式。

若是從次要資料庫終止備援關係的話,備援關係將立即終止,並且您將會失去尚未被複製的資料交易。而會失去多少將取決於主資料庫在故障的時間點所做的備份以及在連線中緩衝多少資料交易。當您決定是否要終止備援關係時���您需要考慮到資料遺失的問題以及是否資料庫是否需要再進行備份。

clip_image012

圖六 : 若是從次要資料庫上進行停止異地備援的動作,就只能夠選擇立即停止

一旦您終止了主資料庫與次要資料庫間的備援關係,此時次要資料庫將成為一個可以正常讀寫的資料庫,同時您也擁有這個資料庫完整的存取權限。由於次要資料庫與主資料庫擁有相同的名稱 ( 但是在不同的伺服器上 ),因此您需要在應用程式上重新配置連接字串 ( Connection String )。若您進行了容錯移轉,這將需要在新的資料庫上重新建立與先前主資料庫相同的地理備援關係,以確保在容錯轉移之後,仍繼續擁有地理備援或負載平衡的能力,滿足業務連續性上的需求。

clip_image014

圖七 : 在終止次要資料庫的備援關係之後,新的主資料庫也需要建立地理備援關係來保護資料庫,並且也支援負載平衡

主動異地備援可以被整合進任何應用程式架構中,但是在某些應用架構中使用它是有風險存在的。更多關於此主題的資訊請參照本文

結論

主動異地備援不僅提供了強大的地理備援功能來保護資料庫不受到資料中心停擺所影響,更能夠使用在不同的商業連續性方案。主動異地備援目前已進入技術預覽階段,只有 Azure SQL Database Premium 版方有提供。

您可以透過此文章了解更多關於 Azure SQL Database 使用主動異地備援來維持業務連續性,或是觀看在Channel 9上由 Sasha 和Scott主講關於主動異地備援如何支援實際業務的影片。我們將認真聽取您的意見,請您放心使用它,並且告知我們您的想法。

這篇文章原始發佈於「Microsoft Azure 中文部落格」

Azure SQL Database 主動異地備援 (Active Geo-Replication) 功能

$
0
0

 

感謝北科大劉建昌同學翻譯微軟公司主管  Tobias Ternstrom於 2014 年 7 月 12 日所發表的文章 http://azure.microsoft.com/blog/2014/07/12/spotlight-on-sql-database-active-geo-replication/

 

在本篇文章中,我們將繼續針對 Azure SQL Database 各種業務連續性 ( Business Continuity ) 方案作介紹,以及討論最近 Azure SQL Database Premium 版所提供的主動異地備援 ( Active Geo-Replication ) 功能。除了本篇文章的介紹之外,您也可以透過 Channel 9觀看由 Sasha Nosov 和 Scott Klein 所主講的關於主動異地備援如何運作以及如何確保業務連續性的介紹影片。

何謂業務連續性 ( Business continuity )

所謂業務連續性 ( Business continuity ) 意指當企業在面臨資訊基礎建設或系統發生中斷時,能夠讓資訊服務持續不間斷之機制、策略或是程序。依照資料庫的角度來看,最主要有四種造成服務中斷的狀況 :

1. 本地端硬體或軟體故障時會影響資料庫節點 ( node ) 之運作。( 例如 : 磁碟機故障 )

2. 資料庫內的資料損毀或是遭到刪除 : 此種錯誤通常是因為應用程式的 bug 或人為因素所造成,因此無法透過基礎建設 ( infrastructure ) 方式來偵測問題或排除問題。

3. 資料中心停止運作 : 發生這種原因可能是由自然災害所引起,在這種情況下,需要使用容錯轉移 ( failover ) 的異地備援 ( geo-redundancy ),將現有服務移轉到備用的資料中心。

4.升級或維護時所發生的錯誤 : 當在進行更新或是維護時,發生了出乎意料的錯誤,此時需要將資料庫還原到更新前的原始狀態。

Azure SQL Database 如何保持業務連續性

從 Azure SQL Database 建立的那一刻起,Azure 系統一直維持每個資料庫都有三個甚至是更多的副本來保護資料庫,資料異動確認 ( updates committed ) 回應前至少已經有兩份資料副本,在高可用性 ( HA ) 措施的保護下,要是發生上述第一點服務中斷的情況,也就是本地端的硬體或軟體發生故障時,仍可以有效的保護資料庫持續提供服務。

而在最新發布的 Azure SQL Database 服務層 ( Basic,、Standard、Premium ) 中,也為了因應上述其他三種資料庫服務中斷情況,提供了確保用戶業務連續性方案。

以下將個別來介紹Azure SQL Database如何在中斷發生的狀況下維持商業連續性 :

資料庫內的資料損毀或是遭到刪除

所有的 Azure SQL Database 資料庫版本 ( Basic、Standard、Premium ) 服務層都提供了自動備份的功能。這項功能專門可以解決因資料損毀或被刪除所造成的錯誤。Azure SQL Database 會每週做一次完整備份 ( full backups ),每天做一次差異備份 ( differential backup ) 以及每五分鐘進行交易記錄備份 ( log backups )。而備份的保存期限會依照使用者所使用服務層而有所不同,Premium 版為 35 天、Standard 版為 14 天、Basic 版為 7 天。您可以利用在保存期限內的任何一個備份來還原資料庫,甚至可以還原最近遭到刪除的資料庫,此一自由還原資料至任意時間點的功能可參閱此篇內容

資料中心停止運作

而針對 Azure 資料中心因為某些原因造成的長時間停擺,Azure SQL Database 各版本提供多種將資料庫備份到另外一個地區資料中心的功能,目前有三種跨資料中心的備援方式可供選擇 :

1. 異地還原功能 ( Geo-restore ) ,無論 Azure SQL Database 的 Basic、Standard 和 Premium 版都能夠透過異地還原功能,在配對的資料中心運用 Azure Storage 內的地理備援複本將資料還原,相關資訊可參閱此篇內容

2. 標準異地備援 ( Standard geo-replication ) Azure SQL Database 在 Standard 和 Premium 版上擴展了本地端高可用性系統 ( Local HA system ) 能力,用戶可在 Azure 配對之資料中心 ( paired region ) 上建立和維護一個次要資料庫,在平時這個次要資料庫是離線並且是無法讀取的,一旦遇到主資料中心發生停止運作的情況,用戶可以決定是否進行容錯轉移,此時在配對資料中心備援用的次要資料庫方可使用,相關資訊可參閱此篇內容

3. 主動異地備援 ( Active geo-replication ) Azure SQL Database Premium 版用戶可以選擇此異地備援方式,降低資料遺失風險、並能在最短時間恢復在異地恢復運作的一項災難備援解決方案。主動準異地備援功能可讓用戶選擇多達 4 個地理備援的次要資料庫,而這些次要資料庫可以在任何時候進行讀取,並且也可以用於負載平衡 ( Load Balance ) 快速讀取這些副本資料。主動異地備援目前已經進入技術預覽階段,用戶可以公開測試。

升級或維護時所發生的錯誤

使用主動異地備援,您可以建立一個連續的資料庫副本,透過它能夠立即的凍結先前更新或是維護的資料庫和應用程式,而在這個過程之中若是偵測到的錯誤,也能夠快速地回復到這個連續的資料庫副本。

不同的 Azure SQL Database 服務層提供了不同的災難備援解決方案。我們想要強調的是,在不同 Azure SQL Database 服務層之間用戶可以輕易地進行 ”降級” 或是 ”升級”,因此,當資料庫需要進行一些很重要的更新時,您可以先將資料庫從 Standard 版 ”升級” 到 Premium 版,這樣就能夠使用最保險的主動異地備援方式進行系統更新。等到更新完成之後,再將資料庫 ”降級” 回 Standard 版。這樣的好處一方面可以減少成本,另外一方面又能夠提升資料庫在更新時的可靠度。

主動異地備援細節

接下來我們將仔細的描述主動異地備援如何使用於確保業務連續性,並且透過下面的圖示來說明它是如何運作的。

clip_image002

圖一 一個 Azure SQL Database Premium 版的資料庫可以同時在同個區域或是不同的區域上建立最多四個可讀取的次要資料庫

主動異地備援關係 ( Active geo-replication relationships ) 可以透過 Azure 入口管理網站、PowerShell、REST API 來進行管理和建立。在入口網站中,您可以從主要或是輔助的資料庫中管理其備援關係,並且從主資料庫中監控每一個次要資料庫複製的狀況。

clip_image004

圖二 可以使用 Azure 管理入口網站建立和監控多達四個不同資料中心上的次要資料庫

每個資料庫可以建立多達四個可讀取的次要資料庫,每一個都與主資料庫擁有相同的名稱,但是分別建立於不同的伺服器上(伺服器所在的資料中心區域可以相同,也可以不同 )。當次要資料庫第一次被建立時,其狀態為主資料庫當前的狀況,一旦當次要資料庫建立完畢之後,它將會從主資料庫那裡進行連續性的資料複製。

次要資料庫就如同一般的資料庫,在本地端同樣地擁有高可用性系統 ( HA system ) 架構的保護。

clip_image006

圖三 次要資料庫的名稱與主資料庫相同,但是位於不同的伺服器上

不同於 Azure SQL Database 本地端高可用性架構下採用即時的資料複製方式,主動異地備援從主資料庫將資料複製到次要資料庫的資料複製方式是屬於非同步的,當主資料庫正在等待與次要資料庫完成資料交易時,主資料庫不會產生封鎖 ( blocked ) 的狀況。當複製資料到較遙遠的資料中心時,這項改變將可以解決資料複製時發生連線問題 (connection problems) 或網路高延遲 ( high-latency )。

為了確保次要資料庫進行資料交易時,不會造成主資料庫發生瓶頸 ( bottleneck ),因此次要資料庫需要擁有與主資料庫相同 ( 甚至更高 ) 的服務水準等級。

在使用主動異地備援時,次要資料庫是可以讀取的,所以可以支援唯讀 (read-only) 負載之應用情境。當使用者要跨越多個資料庫進行複雜的查詢動作或是需要低延遲時間讀取資料時,這項功能就能夠派上用場。

clip_image008

圖四 : 當某地資料中心發生停擺,可以終止備援關係,並且應用程式將進行容錯轉移到次要位置上。

每個主資料庫的備援關係 ( Replication relationships ) 是可以手動進行調整的,它允許您可以在任何時間點終止複寫。如果您決定終止主區域的複寫,您可以選擇立即終止 ( 這樣會遺失所有尚未執行的交易 ),也可以選擇在所有交易結束之後再終止。如果是資料中心停止運作,連帶影響到主資料庫停止服務,此時仍然可以手動使用容錯移轉。

clip_image010

圖五 : 您可以選擇立即停止或是等待所有數據交易處理完之後再停止

注意 : 只有主資料庫才有提供上述兩種停止作業方式。

若是從次要資料庫終止備援關係的話,備援關係將立即終止,並且您將會失去尚未被複製的資料交易。而會失去多少將取決於主資料庫在故障的時間點所做的備份以及在連線中緩衝多少資料交易。當您決定是否要終止備援關係時,您需要考慮到資料遺失的問題以及是否資料庫是否需要再進行備份。

clip_image012

圖六 : 若是從次要資料庫上進行停止異地備援的動作,就只能夠選擇立即停止

一旦您終止了主資料庫與次要資料庫間的備援關係,此時次要資料庫將成為一個可以正常讀寫的資料庫,同時您也擁有這個資料庫完整的存取權限。由於次要資料庫與主資料庫擁有相同的名稱 ( 但是在不同的伺服器上 ),因此您需要在應用程式上重新配置連接字串 ( Connection String )。若您進行了容錯移轉,這將需要在新的資料庫上重新建立與先前主資料庫相同的地理備援關係,以確保在容錯轉移之後,仍繼續擁有地理備援或負載平衡的能力,滿足業務連續性上的需求。

clip_image014

圖七 : 在終止次要資料庫的備援關係之後,新的主資料庫也需要建立地理備援關係來保護資料庫,並且也支援負載平衡

主動異地備援可以被整合進任何應用程式架構中,但是在某些應用架構中使用它是有風險存在的。更多關於此主題的資訊請參照本文

結論

主動異地備援不僅提供了強大的地理備援功能來保護資料庫不受到資料中心停擺所影響,更能夠使用在不同的商業連續性方案。主動異地備援目前已進入技術預覽階段,只有 Azure SQL Database Premium 版方有提供。

您可以透過此文章了解更多關於 Azure SQL Database 使用主動異地備援來維持業務連續性,或是觀看在Channel 9上由 Sasha 和Scott主講關於主動異地備援如何支援實際業務的影片。我們將認真聽取您的意見,請您放心使用它,並且告知我們您的想法。

Sample chapter: Microsoft SQL Server 2012 Internals: Special Storage

Viewing all 29128 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>