<?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>Data-recovery &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/tag/data-recovery/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 16:02:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Choosing the Right AWS Backup Strategy: Native vs. Third-Party Solutions</title>
		<link>https://www.bestdevops.com/choose-the-aws-backup-strategy-that-best-fits-your-needs/</link>
					<comments>https://www.bestdevops.com/choose-the-aws-backup-strategy-that-best-fits-your-needs/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Sat, 28 Sep 2019 05:25:04 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[cloud-based]]></category>
		<category><![CDATA[Data-recovery]]></category>
		<category><![CDATA[Database Service]]></category>
		<category><![CDATA[Elastic File-System]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=8173</guid>

					<description><![CDATA[Cloud providers don't back up your data automatically. Learn how AWS Backup compares to third-party alternatives across resource coverage, storage location, and recovery flexibility.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Cloud providers do not automatically back up data on their subscribers&#8217; behalf. This shared-responsibility model means organizations must proactively decide how to protect their AWS-hosted data. Amazon offers a native solution — AWS Backup — while several third-party vendors such as Druva, N2WS, and Cloud Daddy also provide data protection for AWS environments. Choosing the right approach requires evaluating several key factors.</p>



<h2 class="wp-block-heading">What Resources Can Be Protected?</h2>



<p class="wp-block-paragraph">The first question to ask about any backup solution is which AWS services it supports. AWS Backup covers several core services, including:</p>



<ul class="wp-block-list">
<li><strong>Amazon DynamoDB</strong> — managed NoSQL database</li>
<li><strong>Amazon Elastic Block Store (EBS)</strong> — block storage for EC2 instances</li>
<li><strong>Amazon Elastic File System (EFS)</strong> — managed network file storage</li>
<li><strong>Amazon Relational Database Service (RDS)</strong> — managed relational databases</li>
<li><strong>AWS Storage Gateway</strong> — a hybrid service that exposes iSCSI volumes to on-premises systems</li>
</ul>



<p class="wp-block-paragraph">Third-party tools may extend coverage to additional AWS services or offer more granular control over what gets backed up. Before selecting a solution, audit every AWS service your organization relies on and confirm that it is included in the product&#8217;s supported scope.</p>



<h3 class="wp-block-heading">Application Consistency</h3>



<p class="wp-block-paragraph">AWS Backup relies on snapshots. For Windows workloads running on EC2, snapshots can leverage the Volume Shadow Copy Service (VSS) to produce application-consistent backups — meaning the backup captures a clean state that applications can reliably recover from. Organizations running non-Windows workloads should verify whether AWS Backup can deliver application-consistent backups for their specific stack, or whether a third-party agent-based solution would be a better fit.</p>



<h2 class="wp-block-heading">Where Are Backups Stored?</h2>



<p class="wp-block-paragraph">AWS Backup stores data in <strong>backup vaults</strong>, which are encrypted using AWS Key Management Service (KMS) keys. A single AWS account can create up to 100 backup vaults, and each vault can hold up to one million recovery points. Vaults are straightforward to create and are well-integrated with AWS Identity and Access Management (IAM) for access control.</p>



<p class="wp-block-paragraph">The key limitation is that backup vaults reside entirely within the AWS cloud. This creates two potential risks:</p>



<ol class="wp-block-list">
<li><strong>Account compromise:</strong> If an attacker gains access to an AWS account, backups stored within the same account could be at risk alongside primary data. AWS Organizations and cross-account backup copies can mitigate this, but they require deliberate configuration.</li>
<li><strong>Regional or cloud-level disruption:</strong> While a full AWS outage is rare, regional incidents do occur. Backups stored in the same region as the source data may be affected by the same event.</li>
</ol>



<p class="wp-block-paragraph">Many third-party backup vendors store data outside the AWS cloud entirely — for example, in a separate cloud provider&#8217;s object storage. This provides genuine separation between primary data and backups, which can strengthen your overall resilience posture. It may also reduce storage costs depending on what Amazon charges for backup vault storage versus alternative destinations.</p>



<h2 class="wp-block-heading">Data Recovery: Speed, Flexibility, and Support</h2>



<p class="wp-block-paragraph">A backup strategy is only as good as its recovery process. AWS Backup has two notable advantages here:</p>



<ul class="wp-block-list">
<li><strong>No data egress over the internet:</strong> Because backup data is stored within the AWS cloud, restore operations do not require transferring large datasets across the internet. This typically results in faster recovery times.</li>
<li><strong>Single-vendor support:</strong> When something goes wrong during a restore, having Amazon as both the cloud provider and the backup vendor means you deal with one support chain rather than coordinating between multiple vendors.</li>
</ul>



<p class="wp-block-paragraph">Third-party solutions can offer greater recovery flexibility. Some tools allow EC2 instances to be restored to alternative cloud platforms, such as Microsoft Azure — a valuable option for organizations that want multi-cloud resilience or are in the middle of a cloud migration. Third-party products may also provide more granular restore options, such as item-level recovery for databases or file-level restore from volume snapshots.</p>



<h2 class="wp-block-heading">Integration With Your Existing Backup Infrastructure</h2>



<p class="wp-block-paragraph">A factor that is easy to overlook is operational overhead. If your organization already manages a backup platform for on-premises workloads, ask whether it also supports AWS environments. Introducing a completely separate backup tool for cloud data means additional consoles to monitor, separate reporting, and separate policies to maintain.</p>



<p class="wp-block-paragraph">Some third-party vendors provide unified platforms that cover both on-premises and cloud workloads under a single interface. This can reduce complexity and make it easier to enforce consistent RPO and RTO targets across your entire environment. AWS Backup, by contrast, is AWS-specific and does not extend to on-premises infrastructure directly.</p>



<h2 class="wp-block-heading">Key Decision Factors at a Glance</h2>



<figure class="wp-block-table"><table><thead><tr><th>Factor</th><th>AWS Backup</th><th>Third-Party Solutions</th></tr></thead><tbody><tr><td>Supported AWS services</td><td>Core services (EBS, RDS, EFS, DynamoDB, Storage Gateway)</td><td>Varies by vendor; often broader coverage</td></tr><tr><td>Application consistency</td><td>VSS for Windows; limited for others</td><td>Varies; agent-based tools often stronger here</td></tr><tr><td>Backup storage location</td><td>Within AWS (same or cross-account)</td><td>Can be outside AWS entirely</td></tr><tr><td>Recovery speed</td><td>Fast (no internet transfer)</td><td>Depends on storage location</td></tr><tr><td>Recovery flexibility</td><td>AWS-only restore targets</td><td>May support cross-cloud restore</td></tr><tr><td>Unified management</td><td>AWS-only workloads</td><td>May cover on-premises and multi-cloud</td></tr><tr><td>Support model</td><td>Single vendor (Amazon)</td><td>Requires coordination if issues arise</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">AWS Backup is a solid, well-integrated choice for organizations that primarily run AWS workloads and value simplicity, fast in-cloud restores, and native service integration. It is most effective when paired with cross-account or cross-region backup copies to address the single-account risk.</p>



<p class="wp-block-paragraph">Third-party solutions become more attractive when you need broader service coverage, application-consistent backups for non-Windows workloads, off-cloud storage for stronger isolation, cross-cloud recovery options, or a unified platform that spans on-premises and cloud environments.</p>



<p class="wp-block-paragraph">There is no single correct answer — the right AWS backup strategy depends on your workload types, recovery objectives, risk tolerance, and existing tooling. Evaluate each option against those specific requirements before committing.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/choose-the-aws-backup-strategy-that-best-fits-your-needs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Deploy a Kubernetes Cluster on Ubuntu Server: A Step-by-Step Guide</title>
		<link>https://www.bestdevops.com/kubernetes-next-step-could-be-to-try-orchestrating-everything-else/</link>
					<comments>https://www.bestdevops.com/kubernetes-next-step-could-be-to-try-orchestrating-everything-else/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Thu, 19 Sep 2019 05:38:48 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Data-recovery]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[IT teams]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=7854</guid>

					<description><![CDATA[Learn how to bootstrap a three-node Kubernetes cluster on Ubuntu Server using kubeadm, Docker, and Flannel — from installing dependencies to joining worker nodes.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Kubernetes has become the orchestration platform of choice in the enterprise. When you need the ability to quickly scale containerized workloads, few tools match its power and flexibility. But getting a cluster up and running from scratch can feel daunting. This guide walks you through deploying a three-node Kubernetes cluster on Ubuntu Server using <code>kubeadm</code> — the official bootstrapping tool.</p>



<p class="wp-block-paragraph">The example topology uses three machines:</p>



<ul class="wp-block-list">
<li><strong>kubemaster</strong> — 192.168.1.218 (control-plane node)</li>
<li><strong>kubenode1</strong> — 192.168.1.219 (worker node)</li>
<li><strong>kubenode2</strong> — 192.168.1.220 (worker node)</li>
</ul>



<p class="wp-block-paragraph">You can add as many worker nodes as your environment requires. Adjust IP addresses and hostnames to match your own network.</p>



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



<ul class="wp-block-list">
<li>Three machines running Ubuntu Server 18.04 (fully updated)</li>
<li>A user account with <code>sudo</code> privileges on each machine</li>
<li>Network connectivity between all three nodes</li>
<li>Unique hostnames assigned to each machine (covered below)</li>
</ul>



<h2 class="wp-block-heading">Step 1 — Install Docker on All Three Nodes</h2>



<p class="wp-block-paragraph">Kubernetes requires a container runtime. On Ubuntu 18.04, <code>docker.io</code> is available directly from the default repositories. Run the following on <strong>every node</strong>:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">sudo apt-<span class="hljs-keyword">get</span> install docker.io -y</code></span></pre>


<p class="wp-block-paragraph">Add your current user to the <code>docker</code> group so you can run Docker commands without <code>sudo</code>:</p>


<pre class="wp-block-code"><span><code class="hljs language-php">sudo usermod -aG docker $USER</code></span></pre>


<p class="wp-block-paragraph">Log out and log back in for the group membership change to take effect. Then enable and start the Docker service:</p>


<pre class="wp-block-code"><span><code class="hljs">sudo systemctl start docker
sudo systemctl enable docker</code></span></pre>


<h2 class="wp-block-heading">Step 2 — Add the Kubernetes Repository and Install kubeadm</h2>



<p class="wp-block-paragraph">Kubernetes tools are not included in Ubuntu&#8217;s default repositories. Add the official Kubernetes apt repository on <strong>every node</strong>:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">curl -s https:<span class="hljs-comment">//packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add</span>
sudo apt-add-repository <span class="hljs-string">"deb http://apt.kubernetes.io/ kubernetes-xenial main"</span></code></span></pre>


<p class="wp-block-paragraph">Then install the three core Kubernetes utilities on <strong>every node</strong>:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">sudo apt-<span class="hljs-keyword">get</span> install kubeadm kubelet kubectl</code></span></pre>


<ul class="wp-block-list">
<li><strong>kubeadm</strong> — bootstraps and manages the cluster lifecycle</li>
<li><strong>kubelet</strong> — the node agent that runs on every node</li>
<li><strong>kubectl</strong> — the command-line client for interacting with the cluster</li>
</ul>



<h2 class="wp-block-heading">Step 3 — Configure Hostnames and the Hosts File</h2>



<p class="wp-block-paragraph">Assign a unique, descriptive hostname to each machine. Run this command <strong>on each node</strong>, substituting the appropriate hostname:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">sudo hostnamectl <span class="hljs-keyword">set</span>-hostname HOSTNAME</code></span></pre>


<p class="wp-block-paragraph">For example, on the master node:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">sudo hostnamectl <span class="hljs-keyword">set</span>-hostname kubemaster</code></span></pre>


<p class="wp-block-paragraph">Next, edit <code>/etc/hosts</code> on <strong>every node</strong> so that all machines can resolve each other by name:</p>


<pre class="wp-block-code"><span><code class="hljs">sudo nano /etc/hosts</code></span></pre>


<p class="wp-block-paragraph">Append the following lines, replacing the IP addresses with your own:</p>


<pre class="wp-block-code"><span><code class="hljs language-css">192<span class="hljs-selector-class">.168</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-class">.218</span> <span class="hljs-selector-tag">kubemaster</span>
192<span class="hljs-selector-class">.168</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-class">.219</span> <span class="hljs-selector-tag">kubenode1</span>
192<span class="hljs-selector-class">.168</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-class">.220</span> <span class="hljs-selector-tag">kubenode2</span></code></span></pre>


<p class="wp-block-paragraph">Save and close the file.</p>



<h2 class="wp-block-heading">Step 4 — Disable Swap on All Nodes</h2>



<p class="wp-block-paragraph">Kubernetes requires swap to be disabled. The kubelet will fail to start if swap is active. To disable it persistently, open <code>/etc/fstab</code>:</p>


<pre class="wp-block-code"><span><code class="hljs">sudo nano /etc/fstab</code></span></pre>


<p class="wp-block-paragraph">Comment out any line that references a swap partition by prepending it with a <code>#</code> character. Save and close the file. Then disable swap immediately for the current session:</p>


<pre class="wp-block-code"><span><code class="hljs">sudo swapoff -a</code></span></pre>


<h2 class="wp-block-heading">Step 5 — Initialize the Control-Plane Node</h2>



<p class="wp-block-paragraph">Run the following command <strong>on the master node only</strong>. The <code>--pod-network-cidr</code> flag specifies the IP range for the pod network. The value you use must match the requirements of the pod network add-on you choose. For Flannel, the conventional CIDR is <code>10.244.0.0/16</code>:</p>


<pre class="wp-block-code"><span><code class="hljs">sudo kubeadm init --pod-network-cidr=10.244.0.0/16</code></span></pre>


<p class="wp-block-paragraph">When initialization completes successfully, <code>kubeadm</code> prints a <code>kubeadm join</code> command at the end of its output. <strong>Copy this command</strong> — you will need it to join your worker nodes to the cluster.</p>



<h3 class="wp-block-heading">Configure kubectl Access on the Master</h3>



<p class="wp-block-paragraph">Still on the master node, set up your user&#8217;s kubeconfig file so you can interact with the cluster using <code>kubectl</code>:</p>


<pre class="wp-block-code"><span><code class="hljs language-php">mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config</code></span></pre>


<h2 class="wp-block-heading">Step 6 — Deploy a Pod Network (Flannel)</h2>



<p class="wp-block-paragraph">A pod network add-on is required before any pods — including DNS — can be scheduled. This example uses <strong>Flannel</strong>, a simple overlay network. Apply the Flannel manifest from the master node:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">kubectl apply -f https:<span class="hljs-comment">//raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml</span></code></span></pre>


<p class="wp-block-paragraph">Wait until the Flannel pods reach a <code>Running</code> state before proceeding:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">kubectl <span class="hljs-keyword">get</span> pods --all-namespaces</code></span></pre>


<h2 class="wp-block-heading">Step 7 — Join the Worker Nodes to the Cluster</h2>



<p class="wp-block-paragraph">On each worker node (<strong>kubenode1</strong> and <strong>kubenode2</strong>), run the <code>kubeadm join</code> command that was printed during the master initialization in Step 5. It will look similar to:</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">sudo</span> <span class="hljs-selector-tag">kubeadm</span> <span class="hljs-selector-tag">join</span> 192<span class="hljs-selector-class">.168</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-class">.218</span><span class="hljs-selector-pseudo">:6443</span> <span class="hljs-selector-tag">--token</span> &lt;<span class="hljs-selector-tag">token</span>&gt; \
    <span class="hljs-selector-tag">--discovery-token-ca-cert-hash</span> <span class="hljs-selector-tag">sha256</span>:&lt;<span class="hljs-selector-tag">hash</span>&gt;</code></span></pre>


<p class="wp-block-paragraph">Use the exact command and token values that <code>kubeadm init</code> produced in your environment.</p>



<h2 class="wp-block-heading">Step 8 — Verify the Cluster</h2>



<p class="wp-block-paragraph">Back on the master, confirm that all nodes have joined and are in the <code>Ready</code> state:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">kubectl <span class="hljs-keyword">get</span> nodes</code></span></pre>


<p class="wp-block-paragraph">Expected output (after a minute or two for the nodes to become ready):</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">NAME</span>          <span class="hljs-selector-tag">STATUS</span>   <span class="hljs-selector-tag">ROLES</span>                  <span class="hljs-selector-tag">AGE</span>   <span class="hljs-selector-tag">VERSION</span>
<span class="hljs-selector-tag">kubemaster</span>    <span class="hljs-selector-tag">Ready</span>    <span class="hljs-selector-tag">control-plane</span>,<span class="hljs-selector-tag">master</span>   5<span class="hljs-selector-tag">m</span>    <span class="hljs-selector-tag">v1</span><span class="hljs-selector-class">.x</span><span class="hljs-selector-class">.x</span>
<span class="hljs-selector-tag">kubenode1</span>     <span class="hljs-selector-tag">Ready</span>    &lt;<span class="hljs-selector-tag">none</span>&gt;                 2<span class="hljs-selector-tag">m</span>    <span class="hljs-selector-tag">v1</span><span class="hljs-selector-class">.x</span><span class="hljs-selector-class">.x</span>
<span class="hljs-selector-tag">kubenode2</span>     <span class="hljs-selector-tag">Ready</span>    &lt;<span class="hljs-selector-tag">none</span>&gt;                 2<span class="hljs-selector-tag">m</span>    <span class="hljs-selector-tag">v1</span><span class="hljs-selector-class">.x</span><span class="hljs-selector-class">.x</span></code></span></pre>


<p class="wp-block-paragraph">Your cluster is now operational. You can deploy workloads using <code>kubectl apply</code> or <code>kubectl run</code>.</p>



<h2 class="wp-block-heading">Next Steps</h2>



<ul class="wp-block-list">
<li>Explore managed Kubernetes offerings (Amazon EKS, Google GKE, Azure AKS) to reduce operational overhead in production environments.</li>
<li>Set up the Kubernetes Dashboard for a visual overview of cluster resources.</li>
<li>Investigate Helm for templated, repeatable application deployments.</li>
<li>Review the official <a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/" rel="noopener">kubeadm cluster creation documentation</a> for production hardening guidance.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/kubernetes-next-step-could-be-to-try-orchestrating-everything-else/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
