<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>users &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/tag/users/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bestdevops.com</link>
	<description>Lets Learn, Do it &#38; Share! Thats a Best DevOps!!!</description>
	<lastBuildDate>Tue, 13 Oct 2026 08:54:20 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>Microsoft Previews Azure Dedicated Host: Single-Tenant Cloud Infrastructure Explained</title>
		<link>https://www.bestdevops.com/microsoft-previews-azure-dedicated-host-service-for-single-tenant-users/</link>
					<comments>https://www.bestdevops.com/microsoft-previews-azure-dedicated-host-service-for-single-tenant-users/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Fri, 02 Aug 2019 08:58:38 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Vmware]]></category>
		<category><![CDATA[Dedicated]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[users]]></category>
		<category><![CDATA[VMware]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=6637</guid>

					<description><![CDATA[Microsoft's Azure Dedicated Host preview gives organizations exclusive access to single-tenant physical servers on Azure, enabling compliance-driven workloads with greater hardware and maintenance control.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Source: <a href="https://redmondmag.com" rel="noopener">redmondmag.com</a> (original reporting, August 2019)</em></p>



<h2 class="wp-block-heading">What Is Azure Dedicated Host?</h2>



<p class="wp-block-paragraph">Microsoft announced a public preview of <strong>Azure Dedicated Host</strong> in August 2019, a service that provides organizations with exclusive access to physical Azure servers — hardware that is not shared with any other customer. This model is commonly called <em>single-tenant</em> infrastructure, as opposed to the <em>multitenant</em> model in which multiple customers share the same underlying hardware.</p>



<p class="wp-block-paragraph">For most Azure customers, virtual machines (VMs) run on shared physical hardware alongside workloads from other organizations. While Azure&#8217;s hypervisor and security architecture isolate those workloads, certain industries — healthcare, finance, defence and government contracting, for example — operate under regulatory or compliance mandates that explicitly require dedicated, unshared hardware. Azure Dedicated Host was designed to satisfy those requirements.</p>



<h2 class="wp-block-heading">Supported Workloads</h2>



<p class="wp-block-paragraph">Azure Dedicated Host supports a range of common enterprise workloads on its single-tenant physical servers:</p>



<ul class="wp-block-list">
<li><strong>Linux VMs</strong> — any Azure-supported Linux distribution running on a dedicated host.</li>
<li><strong>Windows Server VMs</strong> — Windows workloads with the option to bring existing licenses.</li>
<li><strong>SQL Server on Azure VMs</strong> — SQL Server instances hosted inside Azure VMs on dedicated hardware.</li>
</ul>



<h2 class="wp-block-heading">How Azure Dedicated Host Compares to Competing Services</h2>



<p class="wp-block-paragraph">Azure Dedicated Host is broadly comparable to similar offerings from the other major cloud providers:</p>



<ul class="wp-block-list">
<li><strong>AWS Dedicated Hosts</strong> — Amazon Web Services launched dedicated hosting several years before this Azure preview, giving AWS customers a head start with the single-tenant model.</li>
<li><strong>Google Cloud Sole-Tenant Nodes</strong> — Google Cloud Platform offers an equivalent feature called a <em>sole-tenant node</em>, which reserves a physical Compute Engine server for a single project.</li>
</ul>



<p class="wp-block-paragraph">It is worth noting that <strong>Azure Government</strong> is <em>not</em> a single-tenant service. According to a Microsoft spokesperson at the time: <em>&#8220;Azure Government is a cloud service that is shared but dedicated to government customers. As a shared cloud service, Azure Government does not provide customers control over the actual VM to physical host mapping.&#8221;</em> Azure Dedicated Host fills a different and complementary role.</p>



<h2 class="wp-block-heading">Hardware Options and VM Series</h2>



<p class="wp-block-paragraph">Customers provisioning an Azure Dedicated Host select a <strong>host type</strong> that determines the underlying hardware characteristics — VM series, RAM capacity, processor brand, and core count. A single host type supports only one VM series, though multiple VM sizes within that series can be mixed on the same host.</p>



<p class="wp-block-paragraph">At preview launch, Microsoft documented two dedicated host types on its pricing page:</p>



<ul class="wp-block-list">
<li><strong>Dedicated Host Type 1</strong> — supports the Dsv3 and Esv3 Series VMs (general purpose and memory-optimised workloads).</li>
<li><strong>Dedicated Host Type 2</strong> — supports the Fsv2 Series VMs (compute-optimised workloads).</li>
</ul>



<p class="wp-block-paragraph">Additional host types were expected to become available as the service moved toward general availability.</p>



<h2 class="wp-block-heading">Maintenance Control: Deferring Updates Up to 35 Days</h2>



<p class="wp-block-paragraph">One of the most operationally significant features of Azure Dedicated Host is granular control over host-level maintenance. On multitenant Azure infrastructure, Microsoft schedules and applies host OS updates on behalf of all customers. With a dedicated host, that control shifts to the customer.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;With an Azure Dedicated Host, you can control all host-level platform maintenance initiated by Azure (e.g., host OS updates). An Azure Dedicated Host gives you the option to defer host maintenance operations and apply them within a defined maintenance window, 35 days. During this self-maintenance window, you can apply maintenance to your hosts at your convenience, thus gaining full control over the sequence and velocity of the maintenance process.&#8221;</p><cite>— Microsoft Azure announcement, August 2019</cite></blockquote>



<p class="wp-block-paragraph">This is particularly valuable for organisations running high-availability applications where unplanned reboots can cause costly downtime or SLA breaches. A 35-day deferral window allows teams to align host maintenance with pre-approved change control periods.</p>



<h2 class="wp-block-heading">Pricing Model</h2>



<p class="wp-block-paragraph">Azure Dedicated Host uses a layered pricing structure:</p>



<ul class="wp-block-list">
<li><strong>Host cost</strong> — a charge for reserving the entire physical host, regardless of how many VMs are actually running on it.</li>
<li><strong>VM hourly cost</strong> — standard Azure VM charges for each virtual machine provisioned on the host.</li>
<li><strong>Windows licensing cost</strong> — an additional hourly charge when running Windows Server VMs, unless existing licenses are applied via Azure Hybrid Benefit (see below).</li>
</ul>



<p class="wp-block-paragraph">Because customers pay for the entire host upfront, right-sizing the host type relative to actual VM density is essential for cost efficiency. Underutilised dedicated hosts can be significantly more expensive per workload than equivalent multitenant VMs.</p>



<h2 class="wp-block-heading">Licensing: Azure Hybrid Benefit and the October 2019 Deadline</h2>



<p class="wp-block-paragraph">Microsoft used the Azure Dedicated Host launch to introduce updated licensing rules that rewarded early adoption. Organisations could apply their existing on-premises <strong>Windows Server</strong> and <strong>SQL Server</strong> licenses to Azure Dedicated Host workloads through the <strong>Azure Hybrid Benefit</strong> program — the mechanism that allows on-premises volume licenses to be re-used on Azure infrastructure.</p>



<p class="wp-block-paragraph">The key licensing conditions at the time of the preview announcement were:</p>



<ul class="wp-block-list">
<li>Licenses purchased <strong>before October 1, 2019</strong> could be used on Azure Dedicated Host <em>without</em> requiring active Software Assurance coverage.</li>
<li>Licenses purchased <strong>on or after October 1, 2019</strong> would require Software Assurance to qualify for Azure Hybrid Benefit on dedicated hosts.</li>
<li>The October 2019 deadline also applied to software hosted by what Microsoft called <strong>Listed Providers</strong>: Microsoft itself, Alibaba, Amazon (including VMware Cloud on AWS), and Google. Other hosting providers were not subject to this change.</li>
</ul>



<p class="wp-block-paragraph">This licensing approach gave organisations running compliant on-premises estates an economic incentive to migrate to Azure Dedicated Host before the deadline, while aligning future dedicated-host licensing more closely with Microsoft&#8217;s standard Software Assurance requirements.</p>



<h2 class="wp-block-heading">Key Takeaways for DevOps and Cloud Engineers</h2>



<ul class="wp-block-list">
<li><strong>Compliance-driven architectures</strong> — if your organisation requires physical host isolation for regulatory reasons (PCI-DSS, HIPAA, FedRAMP equivalents, etc.), Azure Dedicated Host provides a documented single-tenant boundary within the Azure public cloud.</li>
<li><strong>Maintenance windows matter</strong> — the ability to defer host OS patching by up to 35 days gives platform and SRE teams meaningful control over change management schedules.</li>
<li><strong>VM series constraints are real</strong> — plan host type selection carefully; mixing VM series on a single dedicated host is not supported.</li>
<li><strong>Cost modelling is non-trivial</strong> — pay-for-the-whole-host pricing requires higher VM density to achieve cost parity with standard Azure VMs.</li>
<li><strong>Azure Hybrid Benefit is the cost lever</strong> — organisations with existing Windows Server and SQL Server volume licenses should evaluate whether Azure Hybrid Benefit applies before provisioning.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/microsoft-previews-azure-dedicated-host-service-for-single-tenant-users/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exception Handling: A Best Practice Guide for Software Engineers</title>
		<link>https://www.bestdevops.com/exception-handling-a-best-practice-guide/</link>
					<comments>https://www.bestdevops.com/exception-handling-a-best-practice-guide/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Mon, 12 Jun 2017 07:53:08 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Best Practices]]></category>
		<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[users]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=1804</guid>

					<description><![CDATA[Good exception handling is harder than most developers expect. This guide covers when to catch or throw exceptions, how to design meaningful error messages, and how to avoid common pitfalls like over-wrapping exceptions or surfacing noise to users.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>This article is based on a post originally published on DZone. The core guidance has been expanded and restructured for clarity.</em></p>



<p class="wp-block-paragraph">Even well-architected software frequently has weak exception handling. Experienced teams can design clean domain models, solid persistence layers, and elegant APIs—and still ship software that crashes with cryptic stack traces or bombards users with meaningless error dialogs. Exception handling is a discipline of its own, and getting it right requires deliberate design, not an afterthought.</p>



<h2 class="wp-block-heading">What Is an Exception, Really?</h2>



<p class="wp-block-paragraph">An exception occurs when a function cannot do what it was designed to do. The cause may be technical (a file is locked, a network socket timed out) or functional (business rules are violated, input data is invalid). Before writing any catch block, a developer should answer three questions:</p>



<ul class="wp-block-list">
<li>What went wrong and why?</li>
<li>What happens if this exception is ignored?</li>
<li>What steps return the application to a defined, consistent state?</li>
</ul>



<p class="wp-block-paragraph">Not every error condition is equally serious, and the correct response varies dramatically depending on the context in which the error occurs.</p>



<h2 class="wp-block-heading">User Experience and Exceptions</h2>



<h3 class="wp-block-heading">When Should You Show the User an Error?</h3>



<p class="wp-block-paragraph">Showing an error popup is appropriate in exactly two situations:</p>



<ol class="wp-block-list">
<li><strong>The user made a mistake or can resolve the situation themselves.</strong> For example, they tried to save a file that is already locked by another process. A prompt asking them to choose a different file location is genuinely useful.</li>
<li><strong>The error is serious enough that the program must stop, and the user needs to know why.</strong> A fatal failure that cannot be recovered from warrants a clear explanation before shutdown.</li>
</ol>



<p class="wp-block-paragraph">In every other scenario, showing a popup adds noise without helping the user. If the error is internal—for example, a cache file that could not be written—the user had no intention of triggering that operation and cannot act on the message. Silently degrading (running without cache, logging internally) is almost always the right call.</p>



<h3 class="wp-block-heading">Anatomy of a Good Error Message</h3>



<p class="wp-block-paragraph">When a user-facing error message is warranted, it should contain three elements:</p>



<ul class="wp-block-list">
<li><strong>The loss of functionality (what failed):</strong> &#8220;Your file could not be saved.&#8221;</li>
<li><strong>The reason (why it failed):</strong> &#8220;The destination folder is not accessible.&#8221;</li>
<li><strong>Actionable guidance (what the user can do):</strong> &#8220;Check that you have write permission to that folder, or choose a different save location.&#8221;</li>
</ul>



<p class="wp-block-paragraph">Most developers stop after describing the problem. The third element—actionable guidance—is the hardest to write and the most valuable to the user. Omitting it leaves people stranded.</p>



<h3 class="wp-block-heading">Functional vs. Technical Exceptions</h3>



<p class="wp-block-paragraph">A <strong>technical exception</strong> stems from infrastructure: a missing file, a full disk, a refused network connection. A <strong>functional exception</strong> stems from business rules: invalid input, a constraint violation, a workflow precondition that was not met.</p>



<p class="wp-block-paragraph">For functional exceptions, consider whether the situation is truly exceptional. If your application is designed to tolerate an unavailable neighbor system and degrades gracefully when that system is unreachable, a <code>SocketException</code> at the network layer may not require any user notification—it may not even warrant a log entry if the condition is frequent and expected. Design your exception strategy around what is <em>normal</em> for your system, not around what the underlying framework considers exceptional.</p>



<h2 class="wp-block-heading">The Technical Side of Exception Handling</h2>



<h3 class="wp-block-heading">Avoid Unnecessary Custom Exceptions</h3>



<p class="wp-block-paragraph">A common anti-pattern is creating a deep hierarchy of custom exceptions that add no real information. For instance, catching a <code>FileNotFoundException</code> only to wrap it in a <code>CustomFileNotFoundException</code> extends <code>CustomIOException</code> extends <code>CustomTechnicalException</code> serves no purpose. The underlying cause is unchanged; you have only added indirection.</p>



<p class="wp-block-paragraph">Introduce a custom exception only when it provides a genuine semantic benefit—specifically, when the same underlying framework exception can arise from two distinct application-level problems that require different handling strategies. For example:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-comment">// Catching FileNotFoundException and branching on root cause</span>
<span class="hljs-keyword">try</span> {
    saveFile(path, data);
} <span class="hljs-keyword">catch</span> (FileNotFoundException ex) {
    <span class="hljs-keyword">if</span> (!hasWritePermission(path)) {
        <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> InsufficientPrivilegesException(path, ex);
    }
    <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> LocationDoesNotExistException(path, ex);
}</code></span></pre>


<p class="wp-block-paragraph">Here, two distinct custom exceptions are justified because they represent different problems with different remediation paths. Use platform-provided exceptions wherever the semantics are already correct; introduce custom ones sparingly.</p>



<h3 class="wp-block-heading">Throw Early, Catch Late</h3>



<p class="wp-block-paragraph">&#8220;Throw early, catch late&#8221; is a well-established principle. It means:</p>



<ul class="wp-block-list">
<li><strong>Throw early:</strong> Validate preconditions and detect errors as soon as possible, before state can become inconsistent.</li>
<li><strong>Catch late:</strong> Handle exceptions at the layer that has enough context to respond meaningfully—not deep in a data-access routine that knows nothing about the UI or security subsystem.</li>
</ul>



<p class="wp-block-paragraph">If a <code>FileNotFoundException</code> is caught immediately inside a low-level persistence method, that method has no access to the security layer, no ability to inspect user permissions, and no path to the UI. The exception should be allowed to propagate up to a caller that has all of that context. At that outer layer, you can inspect permissions, transform the exception into something meaningful, and decide how to respond.</p>



<p class="wp-block-paragraph">A concern sometimes raised against this approach is logging: &#8220;We need to catch early so we can log the stack trace.&#8221; This is not necessary. When you let an exception bubble up naturally, the full stack trace is preserved. You can log it at the point where you handle it, and the trace will still show you the original call site where the error originated.</p>



<h3 class="wp-block-heading">Encapsulate Exceptions at Layer Boundaries</h3>



<p class="wp-block-paragraph">When an exception crosses an architectural layer boundary—for example, from the persistence layer into the service layer, or from the service layer into the presentation layer—it is good practice to transform it into an exception appropriate for the receiving layer.</p>



<p class="wp-block-paragraph">The presentation layer should not need to know about <code>FileNotFoundException</code> or <code>SocketException</code>. It should receive something like <code>PersistenceException</code> or <code>ExternalServiceUnavailableException</code>. Two implementation strategies are common:</p>



<ol class="wp-block-list">
<li><strong>Inheritance:</strong> Make your specific exception extend the layer-boundary exception (<code>InsufficientPrivilegesException extends PersistenceException</code>). No explicit transformation is needed; the exception passes through automatically, and the stack trace is unbroken from top to bottom.</li>
<li><strong>Wrapping:</strong> Throw a new layer-boundary exception with the original as an inner/cause exception. This allows the original exception to derive from a more appropriate base class (e.g., the platform&#8217;s own <code>FileNotFoundException</code>) rather than being forced into your custom hierarchy. Log the full chain at the transformation point so the stack trace is captured even if the inner exception is not re-thrown.</li>
</ol>



<p class="wp-block-paragraph">Both approaches are valid. The key requirement is that no exception should cross a layer boundary carrying semantics that the receiving layer cannot understand or act upon.</p>



<h2 class="wp-block-heading">Practical Checklist</h2>



<p class="wp-block-paragraph">Use the following checklist when designing exception handling for any significant feature:</p>



<ul class="wp-block-list">
<li>For each error condition, ask: what went wrong, can it be ignored, and how do we recover?</li>
<li>Only surface errors to users when they can act on the information.</li>
<li>Write error messages that include the problem, the cause, and actionable guidance.</li>
<li>Do not wrap platform exceptions in custom exceptions unless the custom type adds meaningful semantic distinction.</li>
<li>Throw early (validate preconditions immediately); catch late (handle at the layer with context).</li>
<li>Transform exceptions at layer boundaries; do not let low-level technical exceptions leak into higher-level layers.</li>
<li>Log exceptions with their full stack trace at the point of handling, not at every intermediate catch block.</li>
<li>Budget time for exception handling design—it is frequently as complex as the happy-path logic itself.</li>
</ul>



<h2 class="wp-block-heading">Summary</h2>



<p class="wp-block-paragraph">Good exception handling requires the same deliberate design as any other part of the system. The most common failures are showing too many messages to users, wrapping exceptions in meaningless custom types, catching errors too early before enough context is available, and allowing low-level exceptions to leak across architectural boundaries. Addressing these patterns systematically produces software that fails gracefully, gives users actionable information when they need it, and gives developers clean, traceable diagnostics when things go wrong.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/exception-handling-a-best-practice-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
