Search results matching tags 'Career' and 'Azure'http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&tag=Career,Azure&orTags=0Search results matching tags 'Career' and 'Azure'en-USCommunityServer 2.1 SP2 (Build: 61129.1)How Does the Cloud Change a Developer's Job?http://sqlblog.com/blogs/buck_woody/archive/2013/02/12/how-does-the-cloud-change-a-developer-s-job.aspxTue, 12 Feb 2013 16:26:51 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:47670BuckWoody<p>I've recently <a href="http://sqlblog.com/b/buckwoody/archive/2013/01/22/how-does-the-cloud-change-a-systems-architect-s-job.aspx" target="_blank">posted a blog on how cloud computing would change the Systems Architect&rsquo;s role in an organization</a>, another on <a href="http://sqlblog.com/b/buckwoody/archive/2013/01/29/how-does-the-cloud-change-a-database-administrator-s-job.aspx" target="_blank">how the cloud changes a Database Administrator's job</a>, and the <a href="http://sqlblog.com/b/buckwoody/archive/2013/02/05/how-does-the-cloud-change-a-systems-administrator-s-job.aspx" target="_blank">last post dealt with the </a><a>Systems Administrator</a>. In this post I'll cover the changes facing the Software Developer when using the cloud. </p>
<p>The software developer role was the earliest adopter of cloud computing. This makes perfect sense, because the software developer has always used computing "as a service" - they (most often) don't buy and configure servers, platforms and the like, they write code that runs on those platforms. And there's probably not a simpler definition of a software developer to be found, but as with all simple statements, you lose fidelity and detail.&nbsp; I'll offer a more complete list in a moment.</p>
<p>Because the software developer's process involves designing, testing and writing code locally and then migrating it to a production environment, all of the paradigms in cloud computing - <a href="http://sqlblog.com/b/buckwoody/archive/2012/06/13/windows-azure-write-run-or-use-software.aspx" target="_blank">from IaaS to PaaS to SaaS</a> - come naturally. </p>
<h1>The Software Developer's Role</h1>
<p>The software developer has evolved since the earliest days of programming.The software developer not only "writes code"&nbsp; - there are far more tasks involved in modern systems development:</p>
<ul>
<li><span style="color:#993300;">Assisting the Business Role(s) in developing software specifications<br /></span></li>
<li><span style="color:#993300;">Planning software system components and modules<br /></span></li>
<li><span style="color:#993300;">Designing system components<br /></span></li>
<li><span style="color:#993300;">Working in teams writing classes, modules, interfaces and software endpoints<br /></span></li>
<li><span style="color:#993300;">Designing data layouts, architectures, access and other data controls</span></li>
<li><span style="color:#993300;">Designing and implementing security, either programmatic, declarative, or referential<br /></span></li>
<li><span style="color:#993300;">Mixing and matching various languages, scripting and other constructs within the system<br /></span></li>
<li><span style="color:#993300;">Designing and implementing user and account security rights and restrictions</span></li>
<li><span style="color:#993300;">Designing various software code tests - unit, functional, fuzz, integration, regression, performance and others</span></li>
<li><span style="color:#993300;">Deploying systems <br /></span></li>
<li><span style="color:#993300;">Managing and maintaining code updates and changes<br /></span></li>
</ul>
<p>Like most of the previous roles, those tasks also unpacks into a larger set of tasks, and no single developer has exactly that same list. And like the DBA, the role is often more, or less of that list based on where the developer works. Smaller companies may include the development platform in the duties so that a developer is also a systems administrator. In larger organizations I've seen developers that specialized on User Interfaces, Engine Components, Data Controls or other specific areas.</p>
<h1>How the Cloud Changes Things</h1>
<p>The software developer role obviously has the same concerns and impacts of "the cloud" as the Systems Architect. They need to educate themselves on the options within this new option (<span style="color:#0000ff;">Knowledge</span>), try a few test solutions out (<span style="color:#0000ff;">Experience</span>) and of course work with others on various parts of the implementation (<span style="color:#0000ff;">Coordination</span>).</p>
<p>The big changes for a developer include three major areas: Hybrid Software Design, Security, and Distributed Computing.</p>
<h2>Hybrid Software Design</h2>
<p>After the PC revolution, software developers designed systems that ran primarily on a single computer. From there the industry moved to "client/server", where most of the code still lived on the user's workstation, and various levels of state (such as the data layer) moved to a server over fast connected lines. After than followed the Internet phase, which had less to do with HTML coding than it did with state-less architectures. While no architecture is truly stateless, there are ways of allowing the client to be in a different state than the server of the application at any one time - this is the way the Web works.</p>
<p>Even so, the developer often simply moved one the primary layers (such as Model, View or Controller) to the server, using the User Interface merely as the View or Presentation layer. While technically stateless, this doesn't require a great deal of architecture change - there are various software modules that run on a server, and perhaps that connects to a remote data server. In the end, it's still a single paradigm.&nbsp;</p>
<p>We now have the ability to run IaaS (hardware abstraction), PaaS (hardware, operating system and runtime abstraction) and SaaS (everything abstracted, API calls only) in a single environment such as Windows Azure. A single application might have a Web-based Interface Server with federated processes&nbsp; (using a PaaS set of roles), a database service (using a SaaS provider such as Windows Azure SQL Database), a specialized process in Linux (using an IaaS role in Windows Azure) and a translator API (from the Windows Azure Marketplace). This example involves only one vendor - Microsoft. I've seen applications that use multiple vendors in this same way.</p>
<p>Thinking this way opens up a great deal of flexibility - and complexity. Complexity isn't evil; it's how complicated things get done many times. The modern developer&nbsp; needs to understand how to build hybrid software architectures. </p>
<p style="color:#993300;"><span style="color:#993300;"><em><span style="color:#0000ff;">Resources</span>:</em></span> Hybrid Architectures with step-by-step instructions and examples:&nbsp;<a href="http://msdn.microsoft.com/en-us/library/hh871440.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/hh871440.aspx </a> and <span style="color:#993300;">Windows Azure Hybrid Systems</span>:&nbsp;<a href="http://msdn.microsoft.com/en-us/library/hh871440.aspx?AnnouncementFeed&amp;nbsp;" target="_blank">http://msdn.microsoft.com/en-us/library/hh871440.aspx?AnnouncementFeed&nbsp;</a></p>
<h2>Security</h2>
<p>Having a single security boundary, such as "everyone who works in my company", is a relatively simple problem to solve. Normally the System Administrators configure and control a security provider, such as Active Directory, and developers can access that security layer programmatically.&nbsp; That allows for good separation of duties and role-based control.</p>
<p>In modern applications, clients, managers, and users both internal and external need various levels of access to the same objects, code and data. A client should be able to enter an order, a store should be able to accept the order, the credit-card company should be able to check the order and authorize payment, and the managers should be able to report on the order or change it if needed. Using role-based security across multiple domains would be impossible to maintain.</p>
<p>Enter "claims-based" authentication. In this paradigm, the user logs in with whatever security they use - corporate or other Active Directory, Facebook, Google, whatever. The application (using Windows Identity Foundation or WIF) can accept a "claim" from that provider, and the developer can match whatever parts of that claim they wish to the objects, code and data. And example might be useful.</p>
<p>Buck logs in to his corporate Active Directory (AD), and attempts to use a program based in Windows Azure. Windows Azure rejects the login silently, and is configured to check with Buck's AD. Buck's AD says "yes, I know Buck, and he has been granted the following claims: "partner", "manager", "approver". The developer does not need to know about Buck's AD, Buck, his login, or anything else. She simply codes the proper data access to allow "approver" to approve a sale.&nbsp;</p>
<p>This allows a lot of control, at a very fine level, without having to get into the details of each security provider. .</p>
<p><span style="color:#993300;"><em><span style="color:#0000ff;">Resources</span>:</em></span> <span style="color:#993300;">Overview of using claims-based Azure Security</span>: <a href="http://adnanboz.wordpress.com/2011/02/06/claims-based-access-and-windows-azure/" target="_blank">http://adnanboz.wordpress.com/2011/02/06/claims-based-access-and-windows-azure/ </a></p>
<h2>Distributed Computing</h2>
<p>Is there a difference between stateless computing, or even the hybrid programming I mentioned earlier, and "Distributed Computing"? Yes - the primary difference is latency. Even stateless code can have too small a tolerance for latency.&nbsp;</p>
<p>Dealing with slow connectivity, or breaks in connections has many impacts. One method of dealing with this is to locate data and computing of that data as closely as possible, even if this means relaxing consistency or duplicating data. Another method is to go back to a great paradigm from the past that is possible underused today is a Service Oriented Architecture. The Windows Azure Service Bus is possibly one of the fastest and easiest way to adopt cloud computing without completely rearchitecting your application. </p>
<p><span style="color:#0000ff;"><em>References</em></span>: <span style="color:#993300;">Great breakdown of the thought process around a distributed architecture:</span> <a href="http://msdn.microsoft.com/en-us/magazine/jj553517.aspx" target="_blank">http://msdn.microsoft.com/en-us/magazine/jj553517.aspx </a>and <span style="color:#993300;">using a Windows Azure Relay Service</span>: <a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/" target="_blank">http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/</a>&nbsp;</p>How Does the Cloud Change a Systems Administrator's Job?http://sqlblog.com/blogs/buck_woody/archive/2013/02/05/how-does-the-cloud-change-a-systems-administrator-s-job.aspxTue, 05 Feb 2013 15:46:02 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:47492BuckWoody<p>I recently<a href="http://sqlblog.com/b/buckwoody/archive/2013/01/22/how-does-the-cloud-change-a-systems-architect-s-job.aspx" target="_blank"> posted a blog entry on how cloud computing would change the Systems Architect&rsquo;s role in an organization</a>, and another on <a href="http://sqlblog.com/b/buckwoody/archive/2013/01/29/how-does-the-cloud-change-a-database-administrator-s-job.aspx" target="_blank">how the cloud changes a database administrator's job</a>. This time I'll cover a few of the changes the cloud brings for the <a href="http://en.wikipedia.org/wiki/Systems_administrator" target="_blank">Systems Administrator</a>.</p>
<p>The systems administrator shares some similarity with the database administrator, in that it's rare to find a single job description that fits all people in that role. There are some basic similarities among various organizations, so I'll use those as a starting point.</p>
<h1>The Systems Administrator Role</h1>
<p>The systems administrator role is perhaps one of the earliest in technology, at least as far as the implementation of a system goes. In the earliest days of computing, electronic technical professionals built prototype computers, and newly minted "programmers" wrote logical instructions for these systems. In time, the systems administration role owned the installation, configuration, operation and tuning of these systems once they went into production and use on a larger scale. A few of the tasks associated with the role are:</p>
<ul>
<li><span style="color:#993300;">Planning, installing and configuring systems</span></li>
<li><span style="color:#993300;">Planning, designing and creating storage, networking and other system components<br /></span></li>
<li><span style="color:#993300;">Planning, designing and implementing High Availability and Disaster Recovery for each system</span></li>
<li><span style="color:#993300;">Maintaining and monitoring systems<br /></span></li>
<li><span style="color:#993300;">Implementing performance tuning systems based on monitoring</span></li>
<li><span style="color:#993300;">Re-balancing workloads across servers based on monitoring</span></li>
<li><span style="color:#993300;">Securing systems, networks and individual computers based on requirements and implementation</span></li>
<li><span style="color:#993300;">Planning, implementing and controlling user and account security rights and restrictions<br /></span></li>
</ul>
<p>Like the DBA, that&rsquo;s just a short list, and each of those tasks also unpacks into a larger set of tasks. And like the DBA, the role is often more, or less of that list based on where the system administrator works. In smaller companies I've been a "systems administrator" that also ran the database and mail servers, web systems, front-line end-user support and made the coffee. In larger organization I was only able to spend the day on one or two parts of that list, since there were so many systems and they interacted with so many other systems.</p>
<p>Systems administrators often deal with multiple operating systems. In one company where I was a system administrator, I worked with no less than six operating systems from mainframes to PC servers, two of them highly specialized to the hardware.</p>
<h1>How the Cloud Changes Things</h1>
<p>The systems administrator has the same concerns and impacts of "the cloud" as the DBA and the Systems Architect. They need to educate themselves on the options within this new option (<span style="color:#0000ff;">Knowledge</span>), try a few test solutions out (<span style="color:#0000ff;">Experience</span>) and of course work with others on various parts of the implementation (<span style="color:#0000ff;">Coordination</span>).</p>
<p><a href="http://www.windowsazure.com/en-us/manage/windows/fundamentals/intro-to-windows-azure/#components" target="_blank">I've mentioned the three big buckets of cloud computing</a>, dealing with Virtual Machines (IaaS) writing code (PaaS) and using software that&rsquo;s already written and being delivered via an Application Programming Interface (API).&nbsp; In my experience, the systems administrator role normally tackles the first "bucket" most often - IaaS, which has at its base the technology of virtualization.</p>
<h2>Virtualization</h2>
<p>One of the first areas the systems administrator is involved with "the cloud" is in the <a href="http://en.wikipedia.org/wiki/Virtualization" target="_blank">area of virtualization</a>. This technology isn't new - in fact, I worked on Virtual Machines (VM's) way back in my mainframe days. It's the process of using software to emulate hardware - which has implications far beyond that simple sentence.</p>
<p>Virtualization is normally a standard on-premises process. When you take Virtual Machines and host them in another location, this is called Co-Location, or CoLo. Personally, I don't define either of these activities as "Cloud" computing - it's simply virtualization. Infrastructure as a Service (IaaS) normally involves several more components, at the very least being able to set up the systems (provision) and deploy them in a standard, automated way. It also involves (at a minimum) the ability to monitor, move and alter the systems using a prescribed methodology. There are other parts of IaaS to be sure, but this level above simply scripting installations or virtualizing a machine is where the system administrator becomes involved in this new "cloud computing" paradigm.</p>
<p>There are multiple VM technologies available, from the hypervisor that is built-in to the Windows operating system (Hyper-V) to third-party alternatives such as VMWare. The choice of cloud provider often dictates the selection of hypervisor. Windows Azure uses Hyper-V, and allows you to move systems from the cloud to the desktop and back again. Other providers use VMWare, or a proprietary format. Some allow you to push or pull images from the cloud service, others do not. The systems administrator must educate themselves on the business need and then select the cloud provider that best fits the requirements for a workload. It's also common to use several cloud providers within a single company.</p>
<p><span style="color:#993300;"><em><span style="color:#0000ff;">Resources</span>:</em></span> <span style="color:#993300;">Windows Azure Virtual Machines</span>: <a href="http://www.windowsazure.com/en-us/manage/windows/tutorials/virtual-machine-from-gallery/">http://www.windowsazure.com/en-us/manage/windows/tutorials/virtual-machine-from-gallery/</a>&nbsp;and<span style="color:#993300;"> System Center</span>: <a href="http://blogs.technet.com/b/server-cloud/archive/2011/12/01/managing-and-monitoring-windows-azure-applications-with-system-center-2012.aspx" target="_blank">http://blogs.technet.com/b/server-cloud/archive/2011/12/01/managing-and-monitoring-windows-azure-applications-with-system-center-2012.aspx</a>&nbsp;</p>
<h2>Cloud Computing Architecture - Private, Public and Hybrid</h2>
<p>It's important to note that IaaS can be on-premises, at another facility, or both. The first is called "private cloud", the second "public cloud", and the third "hybrid cloud". Yes, these are marketing terms, but they are useful in describing where the decisions are for deploying a system. If data security is paramount, then private cloud may be the right choice for a given workload. If agility or cost is an issue, public cloud may be the right answer for another workload. And in many cases - perhaps most - using both architectures is the right way to split the workload.&nbsp;</p>
<p>The key is to understand the workload well. In the past the system administrator needed to know the component requirements, such as how much memory, CPU, network and storage a workload needed. In cloud computing, these are also concerns, but you need to add in the questions of cost, business use, location of users, security and other vectors. These concerns bring the systems administrator closer to the business and its goals.</p>
<p><span style="color:#993300;"><em><span style="color:#0000ff;">Resources</span>:</em></span> <span style="color:#993300;">Windows Azure Hybrid Systems</span>:&nbsp;<a href="http://msdn.microsoft.com/en-us/library/hh871440.aspx?AnnouncementFeed&amp;nbsp;" target="_blank">http://msdn.microsoft.com/en-us/library/hh871440.aspx?AnnouncementFeed&nbsp;</a></p>
<h2>DevOps</h2>
<p>One new term introduced into cloud computing is "DevOps" - short for Developer Operations. Not everyone agrees that this is even a real "thing" - that it's a made-up term by cloud vendors. Regardless, there is a new set of tasks that the cloud brings that may sit within the purview of the system administrator.&nbsp;</p>
<p>Basically it involves the administration needed at the PaaS or SaaS level. The IaaS function of cloud computing holds most of the same characteristics as an on-premises system, defined the in the first list I mentioned above. But when the organization uses Platform as a Service, the operating system, much of the security, scale and other components of infrastructure are abstracted into the platform, and are often even controlled by the developer.</p>
<p>But once the application "goes live", there are a host of billing, controlling, scaling and other security questions that developers aren't equipped to handle. Who takes care of those? As companies are finding out, they need to appoint someone to cover these overlapped areas between developers and administrators.</p>
<p><span style="color:#0000ff;"><em>References</em></span>: <span style="color:#993300;">How DevOps brings order:</span> <a href="http://searchcloudcomputing.techtarget.com/feature/How-DevOps-brings-order-to-a-cloud-oriented-world" target="_blank">http://searchcloudcomputing.techtarget.com/feature/How-DevOps-brings-order-to-a-cloud-oriented-world</a> and Managing Windows Azure: <a href="http://www.windowsazure.com/en-us/manage/overview/" target="_blank">http://www.windowsazure.com/en-us/manage/overview/ </a></p>How Does the Cloud Change a Database Administrator’s Job?http://sqlblog.com/blogs/buck_woody/archive/2013/01/29/how-does-the-cloud-change-a-database-administrator-s-job.aspxTue, 29 Jan 2013 15:08:32 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:47385BuckWoody<p>I recently<a href="http://sqlblog.com/b/buckwoody/archive/2013/01/22/how-does-the-cloud-change-a-systems-architect-s-job.aspx" target="_blank"> posted a blog entry on how cloud computing would change the Systems Architect&rsquo;s role in an organization</a>. In a way, the Systems Architect has the easiest transition to a new way of using computing technologies. In fact, that&rsquo;s actually part of the job description.&nbsp;I mentioned that a Systems Architect has three primary vectors to think about for cloud computing, as it applies to what they should do:</p>
<ol>
<li><span style="color:#0000ff;">Knowledge - Which options are available to solve problems, and what are their strengths and weaknesses.</span></li>
<li><span style="color:#0000ff;">Experience - What has the System Architect seen and worked with in the past.</span></li>
<li><span style="color:#0000ff;">Coordination - A system design is based on multiple factors, and one person can't make all the choices. There will need to be others involved at every level of the solution, and the Systems Architect will need to know who those people are and how to work with them.</span></li>
</ol>
<h1>The Database Administrator Role</h1>
<p>But a Database Administrator (DBA) is probably one of the harder roles to think about when it comes to cloud computing. First, let&rsquo;s define what a Database Administrator usually thinks about as part of their job:</p>
<ul>
<li><span style="color:#993300;">Planning, Installing and Configuring a Database Platform</span></li>
<li><span style="color:#993300;">Planning, designing and creating databases</span></li>
<li><span style="color:#993300;">Planning, designing and implementing High Availability and Disaster Recovery for each database (HADR) based on requirements for its workload</span></li>
<li><span style="color:#993300;">Maintaining and monitoring the database platform</span></li>
<li><span style="color:#993300;">Implementing performance tuning on the databases based on monitoring</span></li>
<li><span style="color:#993300;">Re-balancing workloads across database servers based on monitoring</span></li>
<li><span style="color:#993300;">Securing databases platforms and individual databases based on requirements and implementation</span></li>
</ul>
<p>That&rsquo;s just a short list, and each of those unpacks into a larger set of tasks.</p>
<p>The issue is that<em> I&rsquo;ve never actually met a DBA that does all of those things</em>, or <strong>just</strong> all of those things. Many times they do much more, sometimes the systems are so large they specialize on just a few of them.</p>
<p>And as you can see from the list, some of these areas are shared with other roles. For instance, in some shops, the DBA plans, purchases, sets up and configures the hardware for database servers. In others that&rsquo;s done<br />by the Infrastructure Team. In some shops the DBA designs databases from software requirements, and in others the developers do that &ndash; or perhaps it&rsquo;s done as a joint effort. The same holds true for database code &ndash; sometimes the<br />DBA does it, other times the developer, and still others it&rsquo;s a shared task.</p>
<p>In fact, you could argue that there are few other roles in IT where the roles are so intermixed. Also, the DBA works with software the company develops, and software the company buys. They work with hardware, networking, security and software. There are certain aspects of design and tuning that are outside the purview of some of those things, and inside the others.</p>
<p>With all of these variables, simply telling a DBA that they should &ldquo;use the cloud&rdquo; is not the proper approach.</p>
<h1>How the Cloud Changes Things</h1>
<p>To be sure, the DBA has the same vectors as the Systems Architect. They need to educate themselves on the options within this new option (<span style="color:#0000ff;">Knowledge</span>), try a few test solutions out (<span style="color:#0000ff;">Experience</span>) and of course work with others on various parts of the implementation (<span style="color:#0000ff;">Coordination</span>). But it goes beyond that.</p>
<p><a href="http://www.windowsazure.com/en-us/manage/windows/fundamentals/intro-to-windows-azure/#components" target="_blank">There are three big buckets of cloud computing</a>, dealing with simply using a Virtual Machine (IaaS) to writing code without worrying about the virtualization or even the operating system (PaaS) and using software that&rsquo;s already written and being delivered via an Application Programming Interface (API). Each of these has so many options and configurations that it&rsquo;s often better to think about the problem you&rsquo;re trying to solve rather than all of the technology within a given area - although some of that is certainly necessary anyway.&nbsp;</p>
<h2>Database Platform Architecture</h2>
<p>I&rsquo;ll start with when the DBA should even consider cloud computing for a solution. Once again, it&rsquo;s not an &ldquo;all or nothing&rdquo; paradigm, where you either run something on premises or in the cloud &ndash; it&rsquo;s often a matter of selecting the right components to solve a problem.&nbsp; In my design sessions with DBA&rsquo;s I break these down into three big areas where they might want to consider the cloud &ndash;and then we talk about how to implement each one:</p>
<ol>
<li><span style="color:#0000ff;">Audiences</span></li>
<li><span style="color:#0000ff;">HADR</span></li>
<li><span style="color:#0000ff;">Data Services</span></li>
</ol>
<h3>Audiences</h3>
<p>If the users of your database systems all sit in the same facility, you own the servers and networking, and the application servers are separate from the database server, it doesn&rsquo;t usually make sense to take that database workload and place it on Windows Azure &ndash; or any other cloud provider. The latency alone prevents a satisfactory performance profile, and in some cases won&rsquo;t work at all. It doesn&rsquo;t matter if the cloud solution is cheaper or easier &ndash; if you&rsquo;re moving a lot of data every second between an on-premises system and the cloud it won&rsquo;t work well.</p>
<p>However &ndash; if your users are in multiple locations, especially globally, or you have a mix of company and external customer users, it might make sense to evaluate a shared data location. You still need to consider the implications of how much data the application server pushes back and forth, but you may be able to locate both the application server and SQL Server in an IaaS role. Assuming the data sent to the final client will work across public Internet channels, there may be a fit. There are security implications, but unless you have point-to-point connections for your current solution you&rsquo;re faced with the same security questions on both options.</p>
<p>Your audience might also be developers looking for a way to quickly spin up a server and then turn it down when they are done, paying for the time and not the hardware or licenses. This is also a prime case for evaluating IaaS. And there are others that you'll find in your own organization as you work through the requirements you have.&nbsp;&nbsp;</p>
<p>Resources: Windows Azure Virtual Machines: <a href="http://www.windowsazure.com/en-us/manage/windows/tutorials/virtual-machine-from-gallery/">http://www.windowsazure.com/en-us/manage/windows/tutorials/virtual-machine-from-gallery/</a>&nbsp;and&nbsp;<span style="color:#993300;">Windows Azure SQL Server Virtual Machines</span>: <a href="http://www.windowsazure.com/en-us/manage/windows/common-tasks/install-sql-server/">http://www.windowsazure.com/en-us/manage/windows/common-tasks/install-sql-server/</a></p>
<h3>HADR</h3>
<p>The next possible place to consider using cloud computing with SQL Server is as a part of your High Availability and Disaster Recovery plans. In fact, this is the most common use I see for cloud computing and the Database Administrator. The key is the Recovery Point Objective (RPO) and Recovery Time Objective (RTO). Based on each application&rsquo;s requirements, you may find that using Windows Azure or even supplementing your current plan is<br />the right place to evaluate options. I&rsquo;ve covered this use-case in more detail in another article.</p>
<p><span style="color:#993300;">References: SQL Server High Availability and Disaster Recovery options with Windows Azure</span>: <a href="http://sqlblog.com/b/buckwoody/archive/2013/01/08/microsoft-windows-azure-disaster-recovery-options-for-on-premises-sql-server.aspx">http://blogs.msdn.com/b/buckwoody/archive/2013/01/08/microsoft-windows-azure-disaster-recovery-options-for-on-premises-sql-server.aspx</a></p>
<h3>Data Services</h3>
<p>Windows Azure, along with other cloud providers, offers another way to design, create and consume data. In this use-case, however, the tasks DBA&rsquo;s normally perform for sizing, ordering and configuring a system don&rsquo;t apply.</p>
<p>With Windows Azure SQL Databases (the artist formerly known as SQL Azure), you can simply create a database and begin using it. There are places where this fits and others where it doesn&rsquo;t, and there are differences, limitations and enhancements, so it isn&rsquo;t meant as replacement for what you could do with &ldquo;Full-up&rdquo; SQL Server on a Windows Azure Virtual Machine or an on-premises Instance. If a developer needs an Relational Database Management<br />(RDBMS) data store for a web-based application, then this might be a perfect fit.</p>
<p>But there is more to data services than Windows Azure SQL Databases. Windows Azure also offers MySQL as a service, RIAK and MongoDB (among others) and even Hadoop for larger distributed data sets. In addition you can use Windows Azure Reporting Services, and also tap into datasets and data functions in the Windows Azure Marketplace.</p>
<p>The key for the DBA with this option is that you <em>will</em> have to do a little investigation this time, and potentially without a specific workload in mind this time. I think that&rsquo;s acceptable thing to ask &ndash; DBA&rsquo;s constantly keep up with data processing trends, and most will consider different ways to solve a problem.</p>
<p><span style="color:#993300;">References:</span></p>
<p><span style="color:#993300;">Windows Azure SQL Databases</span>: <a href="http://www.windowsazure.com/en-us/home/features/data-management/" target="_blank">http://www.windowsazure.com/en-us/home/features/data-management/</a></p>
<p><span style="color:#993300;">Windows Azure Reporting Services</span>: <a href="http://www.windowsazure.com/en-us/manage/services/other/sql-reporting/" target="_blank">http://www.windowsazure.com/en-us/manage/services/other/sql-reporting/</a></p>
<p><span style="color:#993300;">HDInsight Service (Hadoop on Azure): </span><a href="https://www.hadooponazure.com/" target="_blank">https://www.hadooponazure.com/</a></p>
<p><span style="color:#993300;">MongoDB Offerings on Windows Azure</span>: <a href="http://www.windowsazure.com/en-us/manage/linux/common-tasks/mongodb-on-a-linux-vm/" target="_blank">http://www.windowsazure.com/en-us/manage/linux/common-tasks/mongodb-on-a-linux-vm/</a></p>
<p><span style="color:#993300;">Windows Azure Marketplace</span>: <a href="http://www.windowsazure.com/en-us/store/overview/" target="_blank">http://www.windowsazure.com/en-us/store/overview/</a></p>
<p>&nbsp;</p>How Does the Cloud Change a Systems Architect’s Job?http://sqlblog.com/blogs/buck_woody/archive/2013/01/22/how-does-the-cloud-change-a-systems-architect-s-job.aspxTue, 22 Jan 2013 15:43:59 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:47243BuckWoody<p>I know - I said I didn't like the "cloud" term, but my better-phrased "Distributed Systems" moniker just never took off like I had hoped. So I'll stick with the "c" word for now, at least until the search engines catch up with my more accurate term.</p>
<p>I thought I might spend a little time on how the cloud affects the way we work - from Systems Architects to Database Administrators and Developers, and Systems Administrators - a group often referred to as "IT Pro's". But each role within these groups have different aspects when using cloud computing. In this post we'll take a look at the role of the Systems Architect, and in the posts that follow I'll talk more about the other roles in the IT Pro area.</p>
<h1>The Systems Architect Role</h1>
<p>What does a "Systems Architect" do? Like most IT roles, it depends on the company or organization where they work. <a href="http://en.wikipedia.org/wiki/Systems_architect" target="_blank">In fact, the term isn't even specific to technology</a>, but I'll use it in that context here. In general, a Systems Architect takes the requirements for a given system, and assembles the relevant technology areas that best fulfill those requirements. That's a single-sentence explanation, and needs further unpacking.</p>
<p>As an example, a Systems Architect at a medical firm&nbsp;is presented with a set of requirements for tracking a patient through the entire care cycle. The Systems Architect first looks at all of the requirements for the data that needs to be collected based on business, financial, regulations, and other requirements, and then how that data needs to flow from one system to another. They check the security requirements, performance, location and other aspects of the system. They then check to see which options are available for processing that data, and which parts they should "build or buy".</p>
<p>For instance, the requirements might be so specific that only custom code is the proper solution - but even there, choices still exist, such as which language(s) to use, what type of data persistence (a Relational Database Management System or or other data storage and processing) will be used, what talent within the company is available for the system and a myriad of other decision.</p>
<p>All of this boils down to three primary vectors:</p>
<ol>
<li><span style="color:#0000ff;"><strong>Knowledge</strong> - Which options are available to solve problems, and what are their strengths and weaknesses.</span></li>
<li><span style="color:#0000ff;"><strong>Experience</strong> - What has the System Architect seen and worked with in the past.</span></li>
<li><span style="color:#0000ff;"><strong>Coordination</strong> - A system design is based on multiple factors, and one person can't make all the choices. There will need to be others involved at every level of the solution, and the Systems Architect will need to know who those people are and how to work with them.</span></li>
</ol>
<h1>How the Cloud Changes Things</h1>
<p>From the outset, it doesn't seem that using a distributed system would change anything in the Systems Architect role. Isn't the cloud simply another option that the Systems Architect needs to learn and apply? Yes, that is true - but it goes a bit deeper. Let's return to those vectors a moment to see what a Systems Architect needs to take into account.</p>
<h2>Knowledge</h2>
<p>The first and probably most obvious impact is learning about cloud technologies. But the important part of that knowledge is to learn <em>when</em> and <em>where</em> to use each service. It's a common misconception that the cloud should be an "all or nothing" approach. That's just not true - every Windows Azure project I work on has some element of on-premises interaction, and in some cases only one small part of a solution is placed on the Windows Azure architecture. Since Windows Azure contains IaaS (VM's) PaaS (you write code, we run it)&nbsp; and even SaaS (Such as Hadoop or Media Services), a given architecture can use multiple components even within just one provider. And I've worked on several projects where the customer used not only Windows Azure and On-Premises environments, but also components from other providers. That's not only acceptable, but often the best way to solve a given problem.</p>
<p>As part of the learning experience, it's vital to keep in mind what you need to pick as key decision points. In your organization, cost could be ranked higher than performance, or perhaps security is the highest decision point.</p>
<p>To stay educated, there are various journals, websites and conferences that Systems Architects use to keep current. Almost all of those are talking about "cloud" - but there is no substitute for learning from the vendor about their solution. I'm speaking here of the technical information, not the marketing information. The marketing information is also useful, at least from a familiarity standpoint, but the technical information is what you need.</p>
<p><span style="color:#800000;">Resource: For Windows Azure, the Systems Architect can start here:</span> <a href="http://sqlblog.com/b/buckwoody/archive/2012/06/13/windows-azure-write-run-or-use-software.aspx" target="_blank">http://blogs.msdn.com/b/buckwoody/archive/2012/06/13/windows-azure-write-run-or-use-software.aspx</a>&nbsp; </p>
<h2>Experience</h2>
<p>Cloud computing is relatively new - it's only been out a few years, and the main competitors are only now settling in to their respective areas. It might not be common for a Systems Architect to have a lot of hands-on experience with cloud projects.</p>
<p>Even so, there are ways to leverage the experience of others, such as direct contact or even attending conferences where customers present findings from their experiences.</p>
<p>You can also gain hands-on experience by setting up pilots and proof-of-concept projects yourself. Most all vendors - Microsoft included - have free time available on their systems. The key to an experiment like this is choosing some problem you are familiar with that exercises as many features in the platform as possible. There is no substitute for working with a platform when you want to design a solution. </p>
<h2>Coordination</h2>
<p>Probably one of the largest changes in the Systems Architect role that the cloud brings is in the area of coordination. When a Systems Architect deals with the business and other technical professionals, there is a 20+ year history of technology that we are all familiar with. When you mention "the cloud", those audiences may not have spent the time you have in understanding what that means - and often they think it means the "all or nothing" approach I mentioned earlier.</p>
<p>I've found that a series of "lunch and learns" for the technical staff is useful to explain to each role-group how the cloud is used in their area is useful. In the posts that follow this one, I'll give you some material for those. For managers and business professionals, you'll want to go a different route. I've found that an "Executive Briefing" e-mail, consisting of about a page, with headings that are applicable to your audience.</p>
<p><span style="color:#800000;">Resource: Writing Executive Summaries:</span> <a href="http://writing.colostate.edu/guides/guide.cfm?guideid=76" target="_blank">http://writing.colostate.edu/guides/guide.cfm?guideid=76</a> </p>Book Review (Book 11) - Applied Architecture Patterns on the Microsoft Platformhttp://sqlblog.com/blogs/buck_woody/archive/2012/05/15/book-review-book-11-applied-architecture-patterns-on-the-microsoft-platform.aspxTue, 15 May 2012 16:50:34 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:43364BuckWoody<p>This is a continuation of the books I challenged myself to read to help my career - one a month, for year. <a href="http://sqlblog.com/b/buckwoody/archive/2011/06/28/book-review-programming-windows-azure-by-siriram-krishnan.aspx"><span style="text-decoration:underline;"><span style="color:#0066cc;">You can read my first book review here</span></span></a>, and <a href="http://sqlblog.com/b/buckwoody/archive/2011/06/07/head-in-the-clouds-eyes-on-the-books.aspx" target="_blank">the entire list is here</a>. The book I chose for April 2012 was: <a href="http://www.amazon.com/Applied-Architecture-Patterns-Microsoft-Platform/dp/184968054X" target="_blank">Applied Architecture Patterns on the Microsoft Platform</a>. I was traveling at the end of last month so I&rsquo;m a bit late posting this review here.</p>
<p><strong>Why I chose this book: </strong></p>
<p>I actually know a few of the authors on this book, so when they told me about it I wanted to check it out. The premise of the book is exactly as it states in the title - to learn how to solve a problem using products from Microsoft.</p>
<p><strong>What I learned:</strong></p>
<p>I liked the book - a lot. They've arranged the content in a "Solution Decision Framework", that presents a few elements to help you identify a need and then propose alternate solutions to solve them, and then the rationale for the choice. But the payoff is that the authors then walk through the solution they implement and what they ran into doing it.</p>
<p>I really liked this approach. It's not a huge book, but one I've referred to again since I've read it. It's fairly comprehensive, and includes server-oriented products, not things like Microsoft Office or other client-side tools. In fact, I would LOVE to have a work like this for Open Source and other vendors as well - would make for a&nbsp;great library for a Systems Architect. This one is unashamedly aimed at the Microsoft products, and even if I didn't work here, I'd be fine with that. As I said, it would be interesting to see some books on other platforms like this, but I haven't run across something that presents other systems in quite this way.</p>
<p>And that brings up an interesting point - This book is aimed at folks who create solutions within an organization. It's not aimed at Administrators, DBA's, Developers or the like, although I think all of those audiences could benefit from reading it. The solutions are made up, and not to a huge level of depth - nor should they be. It's a great exercise in thinking these kinds of things through in a structured way.</p>
<p>The information is a bit dated, especially for Windows and SQL Azure. While the general concepts hold, the cloud platform from Microsoft is evolving so quickly that any printed book finds it hard to keep up with the improvements.</p>
<p>I do have one quibble with the text - the chapters are a bit uneven. This is always a danger with multiple authors, but it shows up in a couple of chapters. I winced at one of the chapters that tried to take a more conversational, humorous style. This kind of academic work doesn't lend itself to that style.</p>
<p>I recommend you get the book - and use it. I hope they keep it updated - I'll be a frequent customer. :)</p>
<p>&nbsp;</p>“I could use a little help here” or “I can do it myself, thank you” for Cloud Projectshttp://sqlblog.com/blogs/buck_woody/archive/2012/04/03/i-could-use-a-little-help-here-or-i-can-do-it-myself-thank-you-for-cloud-projects.aspxTue, 03 Apr 2012 13:20:55 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:42665BuckWoody<p>Windows Azure allows you to write code in languages within the .NET stack, you can use Java, C++, PHP, NodeJS and others. Code is code - other than keeping things stateless, using a Web or Worker Role in Azure is not all that different from working with an on-premises system. </p> <p><em>However….</em></p> <p>Working in a scalable, component-based stateless architecture that can use federated security is not all that common for many developers. Some are used to owning the server, scaling up, and state-full paradigms that have a single security domain. Making the transition whilst trying to create a new software application or even port a previous one can be daunting. <a href="http://blogs.msdn.com/b/buckwoody/archive/2010/11/16/windows-azure-learning-plan.aspx" target="_blank">Sure, we have absolutely tons of free training, kits, videos, online books and more to learn on your own</a>, but some things like architecture can be pivotal as you move along. </p> <p>So the question is, should you just strike out on your own for a Cloud project, or get <a href="http://www.microsoft.com/microsoftservices/en/us/journey_to_the_cloud.aspx" target="_blank">Microsoft Consulting Services</a> or another partner to work with you on your first one? I use a few decision points to help guide the projects I assist in.</p> <p align="center"><em><font color="#c0504d">Note: I’m a huge fan of having help that ends up giving you training and leaves you in charge. If you do engage with someone to help you, make sure you keep this clear and take more and more ownership yourself as the project progresses.</font></em> </p> <p><strong>How much time do you have?</strong></p> <p>Usually the first thing I ask is about the timeline for the project. It doesn’t matter how skilled you are, if you have a short window to get things done it’s better to get help - especially if this is your first cloud project. Having someone that knows the platform well can save you amazing amounts of time. If you have longer, then start with the training in the link above and once you feel confident, jump in. </p> <p><strong>How complex is the project?</strong></p> <p><strong>I</strong>f there are a lot of moving parts, it’s best to engage a partner. The reason is that certain interactions - particularly things like Service Bus or Data Integration&#160; - can be quite different than what you may have encountered before. </p> <p><strong>How many people do you have?</strong></p> <p>I have a “pizza rule” about projects I’ve used in my career - if it takes over two pizzas to feed everyone on the project, it’s too big and will fail. <img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/8780.wlEmoticon_2D00_smile_5F00_2.png" /> That being said, one developer and a one-week deadline does not a good project make, usually. It’s best to have at least one architect (or someone in that role) guiding the project along, and at least two developers to work on a cloud project. That’s a generalization of course, since I’ve seen great software on Azure with one developer writing code all by herself, but for more complex projects, more (to a point) is better. The nice thing about bringing on a partner is that you don’t have to hire them full time - they help you and then they go away. </p> <p><strong>How critical is the project?</strong></p> <p>There’s no shame in using some help. If the platform is new, if the project is large and complex, and if it is critical to the business, you should engage a partner. That’s regardless of Cloud or anything else - get some help. You don’t want to hit your company’s bottom line in a negative way, but you have to innovate and get them a competitive advantage. Do your research, make sure the partner is qualified to help you, and get it done.</p> <p>Don’t let these questions scare you off. There are lots of projects you can implement on Windows and SQL Azure with nothing other than the Software Development Kit (SDK) that you get for free with Windows Azure. And assistance comes in many forms - sometimes just phone support, a friend you can ask. Microsoft Consulting Services or any of our great partners. You can get help on just the architecture piece or have them show you how to write the code. They’ll get involved as little or as much as you like. </p>The Data Scientisthttp://sqlblog.com/blogs/buck_woody/archive/2011/11/15/the-data-scientist.aspxTue, 15 Nov 2011 15:00:18 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:39814BuckWoody<p>A new term - well, perhaps not that new - has come up and I’m actually very excited about it. The term is Data Scientist, and since it’s new, it’s fairly undefined. I’ll explain what I <em>think</em> it means, and why I’m excited about it.</p> <p>In general, I’ve found the term deals at its most basic with analyzing data. Of course, we all do that, and the term itself in that definition is redundant. There is no science that I know of that does not work with analyzing lots of data. But the term seems to refer to more than the common practices of looking at data visually, putting it in a spreadsheet or report, or even using simple coding to examine data sets. </p> <p>The term Data Scientist (as far as I can make out this early in it’s use) is someone who has a strong understanding of data sources, relevance (statistical and otherwise) and processing methods as well as front-end displays of large sets of complicated data. Some - but not all - Business Intelligence professionals have these skills. In other cases, senior developers, database architects or others fill these needs, but in my experience, many lack the strong mathematical skills needed to make these choices properly. </p> <p>I’ve divided the knowledge base for someone that would wear this title into three large segments. It remains to be seen if a given Data Scientist would be responsible for knowing all these areas or would specialize. There are pretty high requirements on the math side, specifically in graduate-degree level statistics, but in my experience a company will only have a few of these folks, so they are expected to know quite a bit in each of these areas. </p> <p><strong>Persistence</strong></p> <p>The first area is finding, cleaning and storing the data. In some cases, no cleaning is done prior to storage - it’s just identified and the cleansing is done in a later step. This area is where the professional would be able to tell if a particular data set should be stored in a Relational Database Management System (RDBMS), across a set of key/value pair storage (NoSQL) or in a file system like HDFS (part of the Hadoop landscape) or other methods. Or do you examine the stream of data without storing it in another system at all? </p> <p>This is an important decision - it’s a foundation choice that deals not only with a lot of expense of purchasing systems or even using Cloud Computing (PaaS, SaaS or IaaS) to source it, but also the skillsets and other resources needed to care and feed the system for a long time. The Data Scientist sets something into motion that will probably outlast his or her career at a company or organization.</p> <p>Often these choices are made by senior developers, database administrators or architects in a company. But sometimes each of these has a certain bias towards making a decision one way or another. The Data Scientist would examine these choices in light of the data itself, starting perhaps even before the business requirements are created. The business may not even be aware of all the strategic and tactical data sources that they have access to. </p> <p><strong>Processing</strong></p> <p>Once the decision is made to store the data, the next set of decisions are based around how to process the data. An RDBMS scales well to a certain level, and provides a high degree of ACID compliance as well as offering a well-known set-based language to work with this data. In other cases, scale should be spread among multiple nodes (as in the case of Hadoop landscapes or NoSQL offerings) or even across a Cloud provider like Windows Azure Table Storage. In fact, in many cases - most of the ones I’m dealing with lately - the data should be split among multiple types of processing environments. This is a newer idea. Many data professionals simply pick a methodology (RDBMS with Star Schemas, NoSQL, etc.) and put all data there, regardless of its shape, processing needs and so on. </p> <p>A Data Scientist is familiar not only with the various processing methods, but how they work, so that they can choose the right one for a given need. This is a huge time commitment, hence the need for a dedicated title like this one. </p> <p><strong>Presentation</strong></p> <p>This is where the need for a Data Scientist is most often already being filled, sometimes with more or less success. The latest Business Intelligence systems are quite good at allowing you to create amazing graphics - but it’s the data behind the graphics that are the most important component of truly effective displays. </p> <p>This is where the mathematics requirement of the Data Scientist title is the most unforgiving. In fact, someone without a good foundation in statistics is not a good candidate for creating reports. Even a basic level of statistics can be dangerous. Anyone who works in analyzing data will tell you that there are multiple errors possible when data just seems right - and basic statistics bears out that you’re on the right track - that are only solvable when you understanding why the statistical formula works the way it does. </p> <p>And there are lots of ways of presenting data. Sometimes all you need is a “yes” or “no” answer that can only come after heavy analysis work. In that case, a simple e-mail might be all the reporting you need. In others, complex relationships and multiple components require a deep understanding of the various graphical methods of presenting data. Knowing which kind of chart, color, graphic or shape conveys a particular datum best is essential knowledge for the Data Scientist. </p> <p><strong>Why I’m excited</strong></p> <p>I love this area of study. I like math, stats, and computing technologies, but it goes beyond that. I love what data can do - how it can help an organization. I’ve been fortunate enough in my professional career these past two decades to work with lots of folks who perform this role at companies from aerospace to medical firms, from manufacturing to retail. </p> <p>Interestingly, the size of the company really isn’t germane here. I worked with one very small bio-tech (cryogenics) company that worked deeply with analysis of complex interrelated data. </p> <p>So&#160; watch this space. No, I’m not leaving Azure or distributed computing or Microsoft. In fact, I think I’m perfectly situated to investigate this role further. We have a huge set of tools, from RDBMS to Hadoop to allow me to explore. And I’m happy to share what I learn along the way. </p>Big Data and the Cloud - More Hype or a Real Workload?http://sqlblog.com/blogs/buck_woody/archive/2011/10/18/big-data-and-the-cloud-more-hype-or-a-real-workload.aspxTue, 18 Oct 2011 13:57:36 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:39156BuckWoody<p>Last week Microsoft announced several new offerings for “Big Data” - and since I’m a stickler for definitions, I wanted to make sure I understood what that really means. What is “Big Data”? What size hard drive is that? After all, my laptop has 1TB of storage - is my laptop “Big Data”?</p> <p>There are actually a few definitions for this term, most notably those involving the <a href="http://nosql.mypopescu.com/post/9621746531/a-definition-of-big-data" target="_blank">“Four V’s” Volume, Velocity, Variety and Variability</a>. Others <a href="http://nosql.mypopescu.com/post/10120087314/big-data-and-the-4-vs-volume-velocity-variety" target="_blank">disagree with this</a> definition. I tend to try and get things into their simplest form, so I’m using this definition for myself:</p> <p align="center"><font color="#c0504d" size="3">Big data is defined as a <em>large set </em>of <em>computationally expensive </em>data that is <em>worked on simultaneously</em>.</font> </p> <p>Let me flesh that out a&#160; little. To be sure, “Big Data” has a larger size than say a few megabytes. The reason this is important is that it takes special hardware to be able to move large sets of data around, store it, process it and so on. (<font color="#c0504d">large set</font>)</p> <p>If you store a LOT of data, but only use a small portion of it at a time, that really isn’t super-hard to do. It’s mainly a storage issue at that point. But, if you do need to work with a large portion of the data at one time, then the memory, CPU and transfer components of the system have to adapt to be responsive - new ways to work with that data (game theory, knot-algorithms, map-reduce, etc.) need to be brought into play. (<font color="#c0504d">computationally expensive</font>)</p> <p>Once that data is loaded into the processing area (memory or whatever other mechanism is used) it must be worked on in parallel to come back in a reasonable time. You have two options here - you can scale the system up with more internal hardware (CPU’s, memory and so on) or you can scale it out to have multiple systems work on it at the same time using paradigms such as map/reduce and so on. Actually, when you lay this out in an architecture diagram, scale up or out doesn’t actually change the logical structure of the process - in scale out the network becomes the bus, and the nodes become more RAM and computing power. Of course, there are changes in code for how you stitch the workload back together. (<font color="#c0504d">worked on simultaneously</font>)</p> <p>So back to the original question. Is Big Data, as I have defined it here, a workload for Windows and SQL Azure? Absolutely! In fact, it’s probably one of the main workloads, and I believe it represents the latest, and perhaps also the earliest frontier of computing. Jim <a href="http://research.microsoft.com/en-us/um/people/gray/" target="_blank">Gray, a former researcher here at Microsoft and a hero of mine, was working on this very topic.</a> I believe as he did - all computing is simply an interface over data. </p> <p>Microsoft has multiple offerings on the topic of Big Data. In posts that follow from myself and my co-workers, we’ll explore when and where you use each one. Whether you are a data professional or a developer, this is the new frontier - <a href="http://www.straightpathsql.com/archives/2011/10/microsoft-loves-your-big-data/" target="_blank">don’t wait to educate yourself</a> on how to leverage Big Data for your organization. </p> <p><strong>Hadoop on Windows Azure and SQL Server&#160; </strong>- Microsoft’s <a href="http://www.hortonworks.com/the-whys-behind-the-microsoft-and-hortonworks-partnership/" target="_blank">partnership to include Hadoop workloads on Windows Azure</a> and <a href="http://www.microsoft.com/download/en/details.aspx?id=27584" target="_blank">SQL Server/Parallel Data Warehouse (PDW)</a></p> <p><strong>LINQ to HPC </strong>- Microsoft’s High-Performance Computing SKU of <a href="http://blogs.technet.com/b/windowshpc/archive/2011/05/20/dryad-becomes-linq-to-hpc.aspx" target="_blank">HPC is now in Azure</a></p> <p><strong>Windows Azure Table Storage </strong>- A <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh508997.aspx" target="_blank">key/value pair type storage with full partitioning</a> that is immediately consistent, able to handle huge loads of data and works with any REST-compatible language</p> <p>&#160;<strong>Other offerings </strong>- Including the new <a href="http://www.microsoft.com/en-us/sqlazurelabs/default.aspx" target="_blank">Data Explorer</a>, <a href="http://research.microsoft.com/en-us/news/headlines/daytona-071811.aspx" target="_blank">Project Daytona (with a Big Data Toolkit for Scientists and researchers)</a>, <a href="http://www.microsoft.com/sqlserver/en/us/future-editions/SQL-Server-2012-breakthrough-insight.aspx" target="_blank">Power View</a> and more. </p> <p>The era of Big Data is here. And you can use Windows and SQL Azure to bring it to your organization. </p>Should I learn Cloud Computing Next?http://sqlblog.com/blogs/buck_woody/archive/2011/07/12/should-i-learn-cloud-computing-next.aspxTue, 12 Jul 2011 13:45:42 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:36811BuckWoody<p>My previous role at Microsoft was in the SQL Server team. I spent quite a bit of time there, and had some really great experiences. I was able to travel and speak as well as doing my “regular” job in the programming team, so I got to meet a lot of people. I also teach at the University of Washington, and see a lot of companies and students in that role. Last year I moved into the Windows and SQL Azure team, and from all of those sets of experiences I am now getting the same question quite frequently: </p> <p align="center"><em>“What should I learn next in my technical career? Cloud Computing? Azure, something else?”</em></p> <p>Well, I don’t think it’s a great idea to leave something that you know well to start out in a new area, just for the sake of change. If you enjoy what you’re doing and where you’re doing it, the key there is to enhance that value as much as you can. If, however, you are looking to stay on the cutting edge, or you’re looking to make a change for other reasons, there are a few places that I’m finding are evolving quickly. I’ve also found that in a new market, be a generalist, in a mature one, be a specialist. It’s all about supply and demand, so whatever is needed, try to fill that role. </p> <p>Note that these are my observations. My particular set of customers and students stretch across the US and into Europe, so I don’t have as much visibility into the Asia region. You may find that your area has a different emphasis, so your mileage may vary. These are the areas that I am finding that have a growing interest, and places where I see people getting new jobs. Most of these are within companies, but that doesn’t mean you can’t use these skills as a self-employed consultant. </p> <p><strong>Security</strong></p> <p>Just like the “junk drawer” we all have in our kitchens at home, the data we store on our systems is often out-of-sight, out-of-mind in both IT and in a company. But with the latest high-profile break-ins, hacks, leaks and just plain thefts companies are starting to realize that a security breach hits the bottom line, in their reputation, and in their ability to attract and retain customers. So your next move - before you consider Windows Azure or anything else - <em>should be security</em>. </p> <p>Am I suggesting that you leave your current role and become a general security specialist? Well, you could do that, but you would actually raise your profile significantly right in your current role if you become an expert in hardening the areas you are responsible for. Make sure that management&#160; and the rest of your team know that you’re the “go-to” person for security in your area. You’re not only helping your career, you’re helping your company and you’re helping my data - and yours - stay private.</p> <p><strong>Virtualization</strong></p> <p>Many companies are afraid to trust the cloud, often because of security. So they take an interim step of using Infrastructure as a Service (IaaS), often on-site and controlled by the IT department, which is a “private cloud”. In all aspects of computing, this has an impact. While the service model (how things are deployed automatically) comes later, you first have to be familiar with virtualization. So take time after you learn about security and find out how virtualization works, how each vendor implements it, and how it impacts your area. </p> <p><strong>Cloud Computing Technologies</strong></p> <p>It’s everywhere. Open any technical magazine or navigate to any IT website and you’ll see the cloud mentioned. Your company is hearing it, so you need to learn it. I recommend understanding the difference between IaaS, PaaS and SaaS, and of course learning Windows Azure. <a href="http://blogs.msdn.com/b/buckwoody/archive/2010/11/16/windows-azure-learning-plan.aspx" target="_blank">I have a full learning plan here that will get you started</a>. Again, it’s not something that will necessarily replace what you have today - but it should certainly be an option for your computing paradigms going forward. </p> <p><strong>Departmental Application Development</strong></p> <p>Wait - am I talking about something like &lt;gasp&gt; Microsoft Access programming? <em>Why yes, I am</em>. But not necessarily Access. Let me explain.</p> <p>Because of the cloud, savvy technical business folks can “go around” IT with a simple credit-card. When they need to author a simple application to do what they need to do and share it amongst themselves, they may just do that without you. And they might use Access, or any number of other technologies. I’ve been seeing this quite a lot lately. </p> <p>So why not help them? Hold some classes in proper, secure lightweight application design. I recommend Lightswitch, personally - it was designed for this very purpose. Or any programming language that you’re comfortable with. Just show them the right way to either write the code themselves, or the right way to engage you to do it. </p>Book Review (Book 1) - Programming Windows Azure by Siriram Krishnanhttp://sqlblog.com/blogs/buck_woody/archive/2011/06/28/book-review-programming-windows-azure-by-siriram-krishnan.aspxTue, 28 Jun 2011 17:18:00 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:36520BuckWoody<div style="float:none;margin:0px;padding:4px 0px 4px 0px;" class="wlWriterHeaderFooter"></div>
<p><span style="font-size:x-small;">As part of my professional development, I&rsquo;ve created a list of books to read throughout the year, starting in June of 2011. This a review of the first one, called <a href="http://www.amazon.com/Programming-Windows-Azure-Microsoft-Cloud/dp/0596801971/ref=sr_1_1?ie=UTF8&amp;qid=1307850128&amp;sr=8-1" target="_blank">Programming Windows Azure by Siriram Krishnan</a>. You can find my entire list of books I&rsquo;m reading for my career here: <a href="http://sqlblog.com/b/buckwoody/archive/2011/06/07/head-in-the-clouds-eyes-on-the-books.aspx">http://blogs.msdn.com/b/buckwoody/archive/2011/06/07/head-in-the-clouds-eyes-on-the-books.aspx</a>&nbsp;</span></p>
<p><strong><span style="font-size:x-small;">Why I Chose This Book:</span></strong></p>
<p><span style="font-size:x-small;">As part of my learning style, I try to read multiple books about a single subject. I&rsquo;ve found that at least 3 books are necessary to get the right amount of information to me. This is a &ldquo;technical&rdquo; work, meaning that it deals with technology and not business, writing or other facets of my career. I&rsquo;ll have a mix of all of those as I read along. </span></p>
<p><span style="font-size:x-small;">I chose this work in addition to others I&rsquo;ve read since it covers everything from an introduction to more advanced topics in a single book. It also has some practical examples of actually working with the product, particularly on storage. Although it&rsquo;s dated, many examples normally translate. I also saw that it had pretty good reviews.</span></p>
<p><span style="font-size:x-small;"><strong>What I learned:</strong></span></p>
<p><span style="font-size:x-small;">I learned a great deal about storage, and many useful code snippets. I do think that there could have been more of a focus on the application fabric - but of course that wasn&rsquo;t as mature a feature when this book was written. I learned some great architecture examples, and in one section I learned more about encryption. In that example, however, I would rather have seen the examples go the other way - the book focused on moving data from on-premise to Azure storage in an encrypted fashion. Using the Application Fabric I would rather see sensitive data left in a hybrid fashion on premise, and connect to for the Azure application. Even so, the examples were very useful.</span></p>
<p><span style="font-size:x-small;">If you&rsquo;re looking for a good &ldquo;starter&rdquo; Azure book, this is a good choice. I also recommend the last chapter as a quick read for a DBA, or Database Administrator. It&rsquo;s not very long, but useful. Note that the limits described are incorrect - which is one of the dangers of reading a book about any cloud offering. The services offered are updated so quickly that the information is in constant danger of being &ldquo;stale&rdquo;. Even so, I found this a useful book, which I believe will help me work with Azure better. </span></p>
<p><span style="font-size:x-small;"><strong>Raw Notes:</strong></span></p>
<p><span style="font-size:x-small;">I take notes as I read, calling that process &ldquo;reading with a pencil&rdquo;. I find that when I do that I pay attention better, and record some things that I need to know later. I&rsquo;ll take these notes, categorize them into a OneNote notebook that I synchronize in my Live.com account, and that way I can search them from anywhere. I can even read them on the web, since the Live.com has a OneNote program built in. Note that these are the raw notes, so they might not make a lot of sense out of context - I include them here so you can watch my though process.</span></p>
<ol>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#e36c0a;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1;tab-stops:list .5in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><a href="http://www.amazon.com/Programming-Windows-Azure-Microsoft-Cloud/dp/0596801971/ref=sr_1_1?ie=UTF8&amp;qid=1307850128&amp;sr=8-1" target="_blank"><span style="color:#e36c0a;mso-bidi-font-family:arial;"><span style="text-decoration:underline;"><span style="font-family:Arial;font-size:x-small;">Programming Windows Azure by Siriram Krishnan</span></span></span></a><span style="font-size:x-small;"><span style="font-family:Arial;">: Learning about how to select applications suitable for Distributed Technology. </span></span></span></li>
<ol>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Application Fabric gets the least attention; probably because it was newer at the time. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Very clear (Chapter One) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Good foundation </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Background and history, but not too much </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">I normally arrange my descriptions differently, starting with the use-cases and moving to physicality, but this difference helps me. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Interesting that I am reading this using Safari Books Online, which uses many of these concepts. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;">Taught me some new aspects of a Hypervisor </span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:'Courier New';mso-ansi-language:en;">&ndash;</span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"> very low-level information about the Azure Fabric (not to be confused with the Application Fabric feature) (Chapter Two) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Good detail of what is included in the SDK. Even more is available now. CS = Cloud Service (Chapter 3) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Place Storage info in the configuration file, since it can be streamed in-line with a running app. Ditto for logging, and keep separated configs for staging and testing. Easy-switch in and switch out.<span style="mso-spacerun:yes;">&nbsp; </span>(Chapter 4) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">There are two Runtime API&rsquo;s, one of external and one for internal. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Realizing how powerful this paradigm really is. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Some places seem light, and to drop off but perhaps that&rsquo;s best. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Managing API is not charged, which is nice. I don&rsquo;t often think about the price, until it comes to an actual deployment (Chapter 5) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Csmanage is something I want to dig into deeper. API requires package moves to Blob storage first, so it needs a URL. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Csmanage equivalent can be written in Unix scripting using openssl. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Upgrades are possible, and you use the upgradeDomainCount attribute in the Service-Definition.csdef file </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>Always use a low-privileged account to test on the dev fabric, since Windows Azure runs in partial trust. Full trust is available, but can be dangerous and must be well-thought out. (Chapter 6) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;">Learned how to run full CMD commands in a web window </span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:'Courier New';mso-ansi-language:en;">&ndash;</span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"> not that you would ever do that, but it was an interesting view into those links. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;">This leads to a discussion on hosting other runtimes (such as Java or PHP) in Windows Azure. I got an expanded view on this process, although this is where the book shows its age a little. Books can be a problem for Cloud Computing for this reason </span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:'Courier New';mso-ansi-language:en;">&ndash;</span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"> things just change too quickly. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;">Windows Azure storage is not eventually consistent </span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:'Courier New';mso-ansi-language:en;">&ndash;</span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"> it is instantly consistent with multi-phase commit. Plumbing for this is internal, not required to code that. (Chapter 7) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">REST API makes the service interoperable, hybrid, and consistent across code architectures. Nicely done. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Use affinity groups to keep data and code together. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Side note: e-book readers need a common &ldquo;notes&rdquo; feature. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">There&rsquo;s a decent quick description of REST in this chapter. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;">Learned about CloudDrive code </span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:'Courier New';mso-ansi-language:en;">&ndash;</span><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"> PowerShell sample that mounts Blob storage as a local provider. Works against Dev fabric by default, can be switched to Account. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Good treatment in the storage chapters on the differences between using Dev storage and Azure storage. These can be mitigated. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">No, blobs are not of any size or number. Not a good statement (Chapter 8) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Blob storage is probably Azure&rsquo;s closest play to Infrastructure as a Service (Iaas). </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Blob change operations must be authenticated, even when public. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Chapters on storage are pretty in-depth. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Queue Messages are base-64 encoded (Chapter 9) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">The visibility timeout ensures processing of message in a disconnected system. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Order is not guaranteed for a message, so if you need that set an increasing number in the queue mechanism. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">While Queues are accessible via REST, they are not public and are secured by default. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Interesting &ndash; the header for a queue request includes an estimated count. This can be useful to create more worker roles in a dynamic system. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Each Entity (row) in the Azure Table service is atomic &ndash; all or nothing. (Chapter 10) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">An entity can have up to 255 Properties </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>Use &ldquo;ID&rdquo; for the class to indicate the key value, or use the [DataServiceKey] Attribute. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>LINQ makes working with the Azure Table Service much easier, although Interop is certainly possible. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Good description on the process of selecting the Partition and Row Key. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>When checking for continuation tokens for pagination, include logic that falls out of the check in case you are at the last page. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>On deleting a storage object, it is instantly unavailable, however a background process is dispatched to perform the physical deletion. So if you want to re-create a storage object with the same name, add retry logic into the code. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Interesting approach to deleting an index entity without having to read it first &ndash; create a local entity with the same keys and apply it to the Azure system regardless of change-state. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>Although the &ldquo;Indexes&rdquo; description is a little vague, it&rsquo;s interesting to see a Folding and Stemming discussion a-la the Porter Stemming Algorithm. (Chapter 11) </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>Presents a better discussion of indexes (at least inverted indexes) later in the chapter. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Great treatment for DBA&rsquo;s in Chapter 11. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">We need to work on getting secondary indexes in Table storage. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">There is a limited form of transactions called &ldquo;Entity Group Transactions&rdquo; that, although they have conditions, makes a transactional system more possible. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Concurrency also becomes an issue, but is handled well if you&rsquo;re using Data Services in .NET. It watches the Etag and allows you to take action appropriately. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">I do not recommend using Azure as a location for secure backups. In fact, I would rather have seen the examples in (Chapter 12) go the other way, showing how data could be brought back to a local store as a DR or HA strategy. Good information on cryptography and so on even so. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;">Chapter seems out of place, and should be combined with the Blob chapter. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>(Chapter 13) on SQL Azure is dated, although the base concepts are OK. </span></span></span></li>
<li style="line-height:13.5pt;margin:0in 0in 0pt;background:white;color:#00b050;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;" class="MsoNormal"><span style="font-family:'Bookman Old Style','serif';mso-bidi-font-family:arial;mso-ansi-language:en;"><span style="font-size:x-small;"><span style="font-family:Arial;"><span style="mso-spacerun:yes;">&nbsp;</span>Nice example of simple ADO.NET access to a SQL Azure (or any SQL Server Really) database. </span></span></span></li>
</ol></ol>
<p><span style="font-size:x-small;">&nbsp;</span></p>