<?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>Software Develpoment &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/tag/software-develpoment/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>Mon, 12 Oct 2026 07:30:23 +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>Five Best Practices for DevOps Automation</title>
		<link>https://www.bestdevops.com/five-best-practices-for-devops-automation/</link>
					<comments>https://www.bestdevops.com/five-best-practices-for-devops-automation/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Wed, 19 Dec 2018 05:18:27 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software Develpoment]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=4779</guid>

					<description><![CDATA[Source- cioreview.com Open source libraries and frameworks play a crucial role in the DevOps environment that emphasizes the shorter development lifecycles, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Source- <a href="https://www.cioreview.com/news/five-best-practices-for-devops-automation-nid-27681-cid-99.html" target="_blank" rel="noopener">cioreview.com</a></p>
<p>Open source libraries and frameworks play a crucial role in the DevOps environment that emphasizes the shorter development lifecycles, collaboration, and innovation. It’s important not to neglect the security of these open source components. Here we will talk about five things that one must consider concerning the safety of an open source project.</p>
<p><strong>•  Security Automation</strong></p>
<p>A significant driving force for DevOps is to automate as much as possible. DevOps automation emphasizes using technologies like virtual machines and containerization to repackage applications into reusable blocks, many of which consist of open source code.</p>
<p>Also, because of this automation and at the pace at which the updates occur, security teams are left behind quickly. Information Security teams need to find out ways of automating several of the most critical security procedures. Greater automation into security checks implies that it is less likely that DevOps practices will release software that contains vulnerable open source components.</p>
<p><strong>•  Open Source Tools</strong></p>
<p>Open source codes form the majority of the footprint of modern proprietary codebases and focus on the libraries and frameworks first.  Moreover, open source tools provide an excellent way to improve open source security in DevOps.</p>
<p><strong>•  Incorporation of Open Source Code-Checking Tools Into Development</strong></p>
<p>Shifting security to the left means that developers need to overcome the inherent tendency to focus on application functionality without considering safety. For this, the developers can integrate some open source code-checking tools into development environments.</p>
<p><strong>•  Hackers Target- Open Source</strong></p>
<p>One of the disadvantages with increased use of Open Source is that the malicious actors are aware of the components that contain vulnerabilities and they can use this knowledge to target companies developing software. Hackers are always in search of organizations that have become lax in their security checks; therefore it is advisable for the organizations to keep a regular check.</p>
<p><strong>•  Policy and Governance</strong></p>
<p>For DevOps and open source to work collaboratively, there is an urgent need to develop dedicated open source policies by DevOps organizations. When these developers are given free space to use open source libraries and frameworks without monitoring or documentation, the chances are high that vulnerabilities creep into the applications.</p>
<p>Hence it is evident that the open source model offers benefits to DevOps teams concerning achieving their goals. As security is of prime importance, many source tools are helping to enhance the safety of the applications developed in DevOps.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/five-best-practices-for-devops-automation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Implementing Continuous Delivery in Kubernetes with Jenkins and Fabric8</title>
		<link>https://www.bestdevops.com/learn-how-continuous-delivery-is-implemented-in-kubernetes/</link>
					<comments>https://www.bestdevops.com/learn-how-continuous-delivery-is-implemented-in-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Fri, 17 Mar 2017 12:22:53 +0000</pubDate>
				<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Best Practices]]></category>
		<category><![CDATA[Continuous Delivery Tutorials]]></category>
		<category><![CDATA[Continuous Delivery with Kubernetes]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Software Delivery]]></category>
		<category><![CDATA[Software Develpoment]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=963</guid>

					<description><![CDATA[Learn how to implement CI/CD pipelines in Kubernetes using Jenkins and Fabric8. This guide covers local cluster setup with gofabric8, cloud deployment on GCE via Stackpoint, and Jenkins configuration with the Kubernetes plugin.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In a modern software development environment, continuous integration and continuous delivery (CI/CD) are central to shipping reliable software quickly. Kubernetes and Docker support this model well: their ability to rapidly create, scale, and terminate containers maps naturally onto the short-lived environments that CI/CD pipelines require.</p>



<p class="wp-block-paragraph">This article explains how to implement CI/CD in Kubernetes using two complementary tools: <strong>Fabric8</strong> and <strong>Jenkins</strong>. Another tool sometimes used for this purpose is Gulp, but it is out of scope here.</p>



<h2 class="wp-block-heading">Why CI/CD and Kubernetes Are a Natural Fit</h2>



<p class="wp-block-paragraph">CI/CD requires environments that can be provisioned and torn down on demand for every code change. Kubernetes provides exactly that: declarative workload definitions, fast container scheduling, and namespace-level isolation make it straightforward to spin up ephemeral build, test, and staging environments without manual intervention.</p>



<p class="wp-block-paragraph">The main challenges developers face when adopting CI/CD on Kubernetes are the number of microservices to orchestrate and the pace of change in the container ecosystem. Purpose-built platforms such as Fabric8 and Jenkins with the Kubernetes plugin reduce this complexity.</p>



<h2 class="wp-block-heading">Fabric8: An Open-Source CI/CD Platform for Kubernetes</h2>



<p class="wp-block-paragraph">Fabric8 is an open-source developer platform designed to run on top of Kubernetes, OpenShift, and Google Container Engine. It provides an integrated environment for building, testing, and deploying microservices and manages the full CD pipeline lifecycle.</p>



<h3 class="wp-block-heading">Key Fabric8 Features</h3>



<ul class="wp-block-list">
<li><strong>Web-based developer console</strong> — create, edit, deploy, and test microservices from a browser.</li>
<li><strong>Centralised management tooling</strong> — aggregated logging, metrics collection, and Java container management.</li>
<li><strong>Integration and API support</strong> — Apache Camel integration, RESTful and SOAP API visualisation and management.</li>
<li><strong>Java developer tools</strong> — Maven plugins and Java libraries that expose Kubernetes APIs in a developer-friendly way.</li>
<li><strong>CD pipeline management</strong> — tooling to define, run, and monitor continuous delivery pipelines.</li>
</ul>



<h2 class="wp-block-heading">Setting Up a Local Cluster with gofabric8</h2>



<p class="wp-block-paragraph">The <code>gofabric8</code> CLI tool bootstraps a Fabric8 environment on top of a local Kubernetes cluster (via Minikube). On Linux, the KVM hypervisor driver is required before starting.</p>



<h3 class="wp-block-heading">Step 1 — Install the KVM Driver</h3>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment"># Download the KVM driver binary</span>
sudo curl -L https:<span class="hljs-comment">//github.com/dhiltgen/docker-machine-kvm/releases/download/v0.7.0/docker-machine-driver-kvm \</span>
  -o /usr/local/bin/docker-machine-driver-kvm

<span class="hljs-comment"># Make it executable</span>
sudo chmod +x /usr/local/bin/docker-machine-driver-kvm

<span class="hljs-comment"># Install required KVM packages (Debian/Ubuntu)</span>
sudo apt install libvirt-bin qemu-kvm</code></span></pre>


<h3 class="wp-block-heading">Step 2 — Install gofabric8</h3>


<pre class="wp-block-code"><span><code class="hljs language-javascript">curl -sS https:<span class="hljs-comment">//get.fabric8.io/download.txt | bash</span></code></span></pre>


<p class="wp-block-paragraph">After installation, add the <code>gofabric8</code> binary to your <code>PATH</code> by appending the export line to <code>~/.bashrc</code> (or <code>~/.bash_profile</code>), then reload the file:</p>


<pre class="wp-block-code"><span><code class="hljs language-php">export PATH=$PATH:$HOME/.fabric8/bin
source ~/.bashrc</code></span></pre>


<h3 class="wp-block-heading">Step 3 — Start the Local Cluster</h3>


<pre class="wp-block-code"><span><code class="hljs">gofabric8 start</code></span></pre>


<p class="wp-block-paragraph">This command downloads any required tooling and starts a single-node Kubernetes cluster locally. Once the cluster is running, open the Fabric8 browser console with:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">gofabric8 <span class="hljs-built_in">console</span></code></span></pre>


<h2 class="wp-block-heading">Deploying a Fabric8 Cluster in the Cloud with Stackpoint</h2>



<p class="wp-block-paragraph">For production or shared development environments, running the cluster in a public cloud is more practical. Stackpoint.io (now part of NetApp Kubernetes Service) provides a managed Kubernetes provisioning service that supports Amazon Web Services, Google Cloud Platform, and Microsoft Azure.</p>



<h3 class="wp-block-heading">Provisioning a GCE-Backed Cluster</h3>



<ol class="wp-block-list">
<li>Log in to your Stackpoint account and select <strong>Add Cluster</strong>.</li>
<li>Choose <strong>Google Compute Engine</strong> as the provider.</li>
<li>In the GCE console (<code>console.cloud.google.com</code>), create a new project, then navigate to <strong>APIs &amp; Services → Credentials → Service Account Key</strong> to generate a JSON key file.</li>
<li>Paste the JSON key into the credentials field on Stackpoint and click <strong>Create</strong>.</li>
<li>Provide a cluster name and any required customisations, then click <strong>Submit</strong>.</li>
<li>Wait for the cluster build to complete (status will update in the Stackpoint dashboard).</li>
</ol>



<h3 class="wp-block-heading">Connecting kubectl to the New Cluster</h3>



<p class="wp-block-paragraph">Download the <code>kubeconfig</code> file from Stackpoint, then configure <code>kubectl</code> to use it:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">export</span> KUBECONFIG=~<span class="hljs-regexp">/Downloads/</span>kubeconfig
kubectl config use-context stackpoint</code></span></pre>


<p class="wp-block-paragraph">Verify the cluster nodes are visible:</p>


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


<h2 class="wp-block-heading">Implementing CI/CD with Jenkins on Kubernetes</h2>



<p class="wp-block-paragraph">Jenkins remains one of the most widely used CI/CD servers. A community-maintained Docker image (<code>csanchez/jenkins-kubernetes</code>) packages Jenkins together with the Kubernetes plugin, making it straightforward to run Jenkins inside Docker and connect it to a Kubernetes cluster.</p>



<h3 class="wp-block-heading">Step 1 — Pull the Image and Create a Data Container</h3>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment"># Pull the Jenkins Kubernetes image</span>
sudo docker pull csanchez/jenkins-kubernetes

<span class="hljs-comment"># Create a named container to hold Jenkins data</span>
sudo docker create --name jenkins-k8s csanchez/jenkins-kubernetes</code></span></pre>


<h3 class="wp-block-heading">Step 2 — Run Jenkins Using the Data Container</h3>


<pre class="wp-block-code"><span><code class="hljs language-javascript">sudo docker run \
  --volumes-<span class="hljs-keyword">from</span> jenkins-k8s \
  -p <span class="hljs-number">8080</span>:<span class="hljs-number">8080</span> \
  -p <span class="hljs-number">50000</span>:<span class="hljs-number">50000</span> \
  -v /<span class="hljs-keyword">var</span>/jenkins_home \
  csanchez/jenkins-kubernetes</code></span></pre>


<p class="wp-block-paragraph">Port <code>8080</code> exposes the Jenkins web UI; port <code>50000</code> is used by Jenkins agents (JNLP). Jenkins data is persisted in the <code>jenkins-k8s</code> container volume, so it survives container restarts.</p>



<h3 class="wp-block-heading">Step 3 — Initial Jenkins Configuration</h3>



<ol class="wp-block-list">
<li>Navigate to <code>http://localhost:8080</code> in your browser.</li>
<li>Log in as <code>admin</code> using the initial password printed in the container startup log.</li>
<li>Choose to install the recommended plugins or select plugins manually. Allow the installation to complete.</li>
<li>Create your first admin user by providing a username, password, and email address.</li>
</ol>



<h3 class="wp-block-heading">Step 4 — Configure the Kubernetes Plugin</h3>



<p class="wp-block-paragraph">The Kubernetes plugin enables Jenkins to dynamically provision build agents as Kubernetes pods, freeing you from maintaining static build servers.</p>



<ol class="wp-block-list">
<li>In Jenkins, go to <strong>Manage Jenkins → Configure System</strong>.</li>
<li>Scroll to the <strong>Cloud</strong> section and click <strong>Add a new cloud → Kubernetes</strong>.</li>
<li>Fill in the Kubernetes API URL, namespace, and credentials appropriate for your environment.</li>
<li>Click <strong>Test Connection</strong> to verify Jenkins can reach the cluster, then click <strong>Save</strong>.</li>
</ol>



<p class="wp-block-paragraph">When you need Jenkins agents, a JNLP slave image is available on Docker Hub. The Kubernetes plugin will spin up a pod using this image on demand and tear it down once the build completes.</p>



<h2 class="wp-block-heading">Choosing Between Fabric8 and Jenkins</h2>



<p class="wp-block-paragraph">Fabric8 and Jenkins are complementary rather than competing tools. Fabric8 provides an opinionated, integrated platform with a browser console and pre-built CD pipeline support, making it a good fit for teams that want a complete out-of-the-box experience on Kubernetes. Jenkins offers maximum flexibility through its plugin ecosystem and is appropriate when you need fine-grained control over pipeline logic or need to integrate with existing infrastructure.</p>



<p class="wp-block-paragraph">In practice, many teams run Jenkins <em>inside</em> a Fabric8 environment, using Fabric8&#8217;s developer console for visibility and lifecycle management while Jenkins drives the actual build and test execution.</p>



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



<ul class="wp-block-list">
<li>Kubernetes&#8217; container lifecycle features align well with the ephemeral environment requirements of CI/CD pipelines.</li>
<li><strong>Fabric8</strong> provides a complete open-source platform for managing microservice CI/CD on Kubernetes, OpenShift, and GKE.</li>
<li><strong>gofabric8</strong> bootstraps a local Fabric8 cluster with a single command; cloud clusters can be provisioned via Stackpoint.</li>
<li><strong>Jenkins</strong> with the Kubernetes plugin enables dynamic, pod-based build agents and integrates with existing Jenkins pipelines.</li>
<li>The two tools are complementary and are often used together in the same environment.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/learn-how-continuous-delivery-is-implemented-in-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
