<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CloudBees</title>
    <description>The latest articles on DEV Community by CloudBees (@cloudbees_).</description>
    <link>https://dev.to/cloudbees_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F407832%2F415783e5-602f-450a-a170-c13875e3ac2c.jpg</url>
      <title>DEV Community: CloudBees</title>
      <link>https://dev.to/cloudbees_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cloudbees_"/>
    <language>en</language>
    <item>
      <title>Build a cloud native CI/CD workflow in 2 mins - yes, really!</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Wed, 12 Jun 2024 19:01:53 +0000</pubDate>
      <link>https://dev.to/cloudbees/build-a-cloud-native-cicd-workflow-in-2-mins-yes-really-1dab</link>
      <guid>https://dev.to/cloudbees/build-a-cloud-native-cicd-workflow-in-2-mins-yes-really-1dab</guid>
      <description>&lt;p&gt;CloudBees platform is your sandbox for innovation. &lt;/p&gt;

&lt;p&gt;We want to empower every developer to embark on something innovative as quickly as possible. Our testament to this obsession starts with how easy it is to create a truly cloud native CI/CD workflow with our platform - create and execute a build, scan, and deploy workflow within 2 minutes!&lt;/p&gt;

&lt;p&gt;Here’s how. &lt;/p&gt;

&lt;h2&gt;
  
  
  STEP 1- Set up your initial credentials
&lt;/h2&gt;

&lt;p&gt;Start at &lt;a href="https://cloudbees.io/" rel="noopener noreferrer"&gt;cloudbees.io&lt;/a&gt;. You have multiple ways to sign up - ex: using your GitHub and Google accounts - to streamline the process. We’ll use the example of signing up via email here. Enter your email address and password. Verify your email following that. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4u3kh3xgxkxgemgs4vx9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4u3kh3xgxkxgemgs4vx9.png" alt="1a - set up your initial credentials" width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6foj5m2x4q08vikeb8yw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6foj5m2x4q08vikeb8yw.png" alt="1b - set up your initial credentials" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9k8k430svxxd31ntwuz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9k8k430svxxd31ntwuz.png" alt="1c - set up your initial credentials" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvv1p6ohv1ufi0282u3vn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvv1p6ohv1ufi0282u3vn.png" alt="1d - set up your initial credentials" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  STEP 2 - Install your GitHub app
&lt;/h2&gt;

&lt;p&gt;You’re now officially signed into your account! Choose your pathway: Run a sample workflow or CI insights for Jenkins. Choose the first path (‘Run a sample workflow’) for this scenario. Select GitHub as your provider. Install the GitHub app and connect the repository, which will form the basis for your workflow. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgat2vvn5d7ecvsxne2ya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgat2vvn5d7ecvsxne2ya.png" alt="2a - install your github app" width="800" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbd392106glr9prt7sbz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbd392106glr9prt7sbz3.png" alt="2b - install your github app" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq95aa7q7929s39y4z3lm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq95aa7q7929s39y4z3lm.png" alt="2c - install your github app" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Firmyf7mnzytgopb7b5t5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Firmyf7mnzytgopb7b5t5.png" alt="2d - install your github app" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjv3cxpvtjw43ikf0kwj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjv3cxpvtjw43ikf0kwj.png" alt="2e - install your github app" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  STEP 3 - Create the component in the platform
&lt;/h2&gt;

&lt;p&gt;You’re in! Name the component based on your loaded repository and click ‘Create Component.’&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5tds7psmyx1opn0nvny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5tds7psmyx1opn0nvny.png" alt="3a - create the component" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhalo3bieevkhex78nxvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhalo3bieevkhex78nxvo.png" alt="3b - create the component" width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  STEP 4 - Explore the carousel on what you can do
&lt;/h2&gt;

&lt;p&gt;You will see a workflow composer in a few seconds after clicking ‘Create Component.’ During this time, you can browse a carousel of what you can do with workflows and the platform. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3y6ec8kt2241ay7gc1bm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3y6ec8kt2241ay7gc1bm.png" alt="4a - explore" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv1ylbuvvhyd2h89f84u0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv1ylbuvvhyd2h89f84u0.png" alt="4b - explore" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvav0lmcr8uv8mrpa16o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvav0lmcr8uv8mrpa16o.png" alt="4c - explore" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  STEP 5 - Click ‘Create Sample Workflow’
&lt;/h2&gt;

&lt;p&gt;Finally, click ‘Create Sample Workflow’ to land on the workflow composer. It includes a visual workflow orchestration tool that makes creating and managing complex software delivery pipelines easy.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde60ljyfkjn3c9bqap1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde60ljyfkjn3c9bqap1n.png" alt="5a - create sample workflow" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, the platform detects a Java project and automatically updates it to reveal a Java template workflow. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgo2wgxpnr0x0cj5uc7l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgo2wgxpnr0x0cj5uc7l.png" alt="5b - create sample workflow" width="800" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there you have it! A cloud native CI/CD workflow ready for your use. You can commit it or modify it any way you want.&lt;/p&gt;




&lt;h2&gt;
  
  
  Platform Update: Fresh Look, New Features, and a Price Drop!
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Here’s a quick update on what we’ve been working on lately:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Released Feature Management 1.0 for the major progressive delivery use cases &lt;/li&gt;
&lt;li&gt;Added new usability and insight &lt;a href="https://www.cloudbees.com/blog/feature-update-compare-metrics-sub-orgs-components" rel="noopener noreferrer"&gt;upgrades&lt;/a&gt; for our popular &lt;a href="https://www.cloudbees.com/blog/introduction-to-cloudbees-platform-analytics-reports" rel="noopener noreferrer"&gt;analytics reports&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Streamlined the journey to your first workflow with immediate insights &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that’s just the beginning! With all these cool enhancements, &lt;strong&gt;we're also slashing our Team pricing big time – from $100/month to just $30/month&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What do you get when you upgrade from the Free version?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;8,000 additional workflow execution minutes&lt;/li&gt;
&lt;li&gt;Unlimited sub-organizations&lt;/li&gt;
&lt;li&gt;12 months log retention&lt;/li&gt;
&lt;li&gt;Essentials Support &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy the features you love and get even more for what you pay.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://cloudbees.io/" rel="noopener noreferrer"&gt;TRY&lt;/a&gt; the CloudBess platform today ✅
&lt;/h2&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>cicd</category>
      <category>devsecopsmadeeasy</category>
    </item>
    <item>
      <title>New Feature Update: Dynamic Time Calculations in Analytics Reports</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Fri, 31 May 2024 15:14:38 +0000</pubDate>
      <link>https://dev.to/cloudbees/new-feature-update-dynamic-time-calculations-in-analytics-reports-358a</link>
      <guid>https://dev.to/cloudbees/new-feature-update-dynamic-time-calculations-in-analytics-reports-358a</guid>
      <description>&lt;p&gt;We continue to tweak our popular &lt;a href="https://www.cloudbees.com/blog/introduction-to-cloudbees-platform-analytics-reports" rel="noopener noreferrer"&gt;analytics reports&lt;/a&gt; to improve usability and the ease of generating insights. The latest in this effort is Dynamic Time Calculations - this update lets every user view these reports specific to their location and time analysis needs. &lt;/p&gt;

&lt;p&gt;Below is a sprinkling of ways to take advantage of this feature update. &lt;/p&gt;

&lt;h2&gt;
  
  
  Personalize your time zone
&lt;/h2&gt;

&lt;p&gt;Your time zone is set automatically in your profile as a new user - this means you interpret all the insights on your analytics reports specific to your time zone. &lt;/p&gt;

&lt;p&gt;Let’s look at an example from the ‘Software delivery activity’ report. In the snapshot below, the commits trend chart shows the numbers specific to the Eastern Time Zone: 13,356 total commits from May 1st to May 31st, 2024. The same chart in a different time zone can yield a different result depending on the start of the May 1st count. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffu70x5netwamr8s4c2d4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffu70x5netwamr8s4c2d4.png" alt="Commits Trend - Analytics Reports" width="800" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users now have the option to overwrite the automatic time zone setting through their profile. Click on ‘User Profile’ under your name to head to a secondary screen. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3c5o72upjxf3k856loeb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3c5o72upjxf3k856loeb.png" alt="User Profile - Analytics Reports" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the secondary screen, uncheck the ‘Set time zone automatically’ box and pick your preferred time zone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwfgzlzz66nc9i2tq2nf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwfgzlzz66nc9i2tq2nf.png" alt="Time Zone - Analytics Reports" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Use pre-defined time filters…
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fodh6kjc8vww13xzqzhn1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fodh6kjc8vww13xzqzhn1.png" alt="Pre-defined Filters - Analytics Reports" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you click the filter button, three new pre-defined time filters appear - Last 7 days, Last 30 days, and Last 90 days. These time filters let you aggregate and get a good measure of daily, weekly, and monthly activity on a rolling basis. &lt;/p&gt;

&lt;h2&gt;
  
  
  ...Or set your own time filters
&lt;/h2&gt;

&lt;p&gt;If the pre-defined time filters don't suit your analysis needs, choose ‘Custom range’ to pick a start and end date. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feuq987gx0camqgq28jq2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feuq987gx0camqgq28jq2.png" alt="Custom Range - Analytics Reports" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All these options are available across each of the 5 analytics reports. If you have any questions, contact us via &lt;a href="https://assets.cloudbees.com/MzMzLVFQVi03MjUAAAGRvywKXthVzu1t40lXFatZJAub3cTcWUh-ANYIcljdc8C6YYeUzN2t4DnW-IFrsWNZhIHS4Xw=" rel="noopener noreferrer"&gt;Slack&lt;/a&gt; or &lt;a href="https://assets.cloudbees.com/MzMzLVFQVi03MjUAAAGRvywKXhjQNMLEZORXMuthWK3Pu8I_Chg0KuGzm0nr64cbT3y976ONZHLFlu3SnycFC0UBATA=" rel="noopener noreferrer"&gt;email our support team&lt;/a&gt;. And if you haven’t seen the platform in action yet…&lt;/p&gt;

&lt;h2&gt;
  
  
  Try the CloudBees Platform for &lt;a href="https://id.cloudbees.io/realms/cloudbees/protocol/openid-connect/auth?client_id=nextgen-ui&amp;amp;redirect_uri=https%3A%2F%2Fcloudbees.io%2F&amp;amp;response_type=code&amp;amp;scope=openid+profile+email&amp;amp;state=56e73fe931b2425587abd3b5741e689f&amp;amp;code_challenge=8wfcuMieXaoTNF-2570BptaCnus3sTpJjc7wjnVnPrY&amp;amp;code_challenge_method=S256&amp;amp;response_mode=query" rel="noopener noreferrer"&gt;FREE&lt;/a&gt; today!
&lt;/h2&gt;

</description>
      <category>devops</category>
      <category>devsecops</category>
      <category>cicd</category>
      <category>reporting</category>
    </item>
    <item>
      <title>New Feature Update: Compare metrics across sub-orgs and components</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Mon, 20 May 2024 14:20:27 +0000</pubDate>
      <link>https://dev.to/cloudbees/new-feature-update-compare-metrics-across-sub-orgs-and-components-204i</link>
      <guid>https://dev.to/cloudbees/new-feature-update-compare-metrics-across-sub-orgs-and-components-204i</guid>
      <description>&lt;p&gt;One of our well-received platform features is the range of &lt;a href="https://www.cloudbees.com/blog/introduction-to-cloudbees-platform-analytics-reports" rel="noopener noreferrer"&gt;analytics reports&lt;/a&gt; offering insights for a deep dive into engineering efficiency, risk mitigation, and quality assurance. &lt;/p&gt;

&lt;p&gt;We continue to optimize these reports not only for insights but also for overall usability. Our latest update for these reports is your ability to gather and contrast insights across sub-orgs and components.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s lean on a real-world use case to take a closer look.
&lt;/h2&gt;

&lt;p&gt;Assume you’re an &lt;strong&gt;engineering director&lt;/strong&gt;. As part of your multiple mandates, &lt;strong&gt;you have to uncover where your engineering team spends their time and whether it aligns with business objectives&lt;/strong&gt;. It’s the classic case of allocating your resources to high-value projects. &lt;/p&gt;

&lt;p&gt;One way to do this is to look at your entire organization’s commits and pull requests in the software delivery report. Check out the snapshot below for starters. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9k31r7v8wdsqs6amtgj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9k31r7v8wdsqs6amtgj.png" alt="Commits Trend CloudBees Platform" width="512" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can click the highlighted icon (available on almost every widget) to slice down the pull requests further. The icon opens a drawer to the right to show the pull requests by sub-orgs and components. Drill deeper by looking at the breakdown across multiple sub-org layers. Sort the list by clicking the table header in the drawer. &lt;/p&gt;

&lt;p&gt;A key point to remember is that any breakdown depends on which org/sub-org/sub-sub-org (for ex) you select. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfiuhpb1skeojw7c2db1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfiuhpb1skeojw7c2db1.png" alt="Pull Requests" width="476" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above example, ~62% of the pull requests (557 out of 903) relate to the ‘reports-service’ component. This serves as a checkpoint on whether you should reallocate your resources as an engineering director. It’s particularly problematic if ‘reports-service’ is not a business priority. &lt;/p&gt;

&lt;p&gt;Again, this is one way to use this feature update for every single widget across the different analytics reports. Stay tuned for more updates and new feature releases in the next few weeks. In the meantime…&lt;/p&gt;

&lt;h2&gt;
  
  
  Try the CloudBees Platform for &lt;a href="https://id.cloudbees.io/realms/cloudbees/protocol/openid-connect/auth?client_id=nextgen-ui&amp;amp;redirect_uri=https%3A%2F%2Fcloudbees.io%2F&amp;amp;response_type=code&amp;amp;scope=openid+profile+email&amp;amp;state=56e73fe931b2425587abd3b5741e689f&amp;amp;code_challenge=8wfcuMieXaoTNF-2570BptaCnus3sTpJjc7wjnVnPrY&amp;amp;code_challenge_method=S256&amp;amp;response_mode=query" rel="noopener noreferrer"&gt;FREE&lt;/a&gt; today!
&lt;/h2&gt;

</description>
      <category>devsecops</category>
      <category>security</category>
      <category>reporting</category>
      <category>cicd</category>
    </item>
    <item>
      <title>DevSecOps Made Easy (Pt 2) - Stay clear of any lock-in</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Thu, 16 May 2024 20:34:32 +0000</pubDate>
      <link>https://dev.to/cloudbees/devsecops-made-easy-pt-2-stay-clear-of-any-lock-in-4ipg</link>
      <guid>https://dev.to/cloudbees/devsecops-made-easy-pt-2-stay-clear-of-any-lock-in-4ipg</guid>
      <description>&lt;h2&gt;
  
  
  The Sad Status Quo
&lt;/h2&gt;

&lt;p&gt;You must be prudent about what you’re signing up for with a DevSecOps vendor. There are so many clever ways they can lock you into an undesirable situation. Check out a few examples below.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Some limit your flexibility to move your SCM, CI/CD pipelines (for ex) when your requirements change.&lt;/li&gt;
&lt;li&gt;They can offer a CI/CD solution as a free add-on to a separate multi-year licensing agreement. And then force you to pay after you’re well embedded into their CI/CD solution. &lt;/li&gt;
&lt;li&gt;You’re dealing with a sudden increase in your annual DevSecOps subscription price because you decided to use their competitor’s cloud infrastructure.&lt;/li&gt;
&lt;li&gt;You have to learn a specific DSL to configure pipelines, even though every developer within your company finds it hard to understand. &lt;/li&gt;
&lt;li&gt;You must modify your internal processes since their DevSecOps offering can’t meet you where you are right now. &lt;/li&gt;
&lt;li&gt;You suddenly have to rewrite your infrastructure code in their terms; otherwise, their solution doesn’t work.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This list continues to grow!&lt;/p&gt;

&lt;h2&gt;
  
  
  How CloudBees Makes DevSecOps Easy
&lt;/h2&gt;

&lt;p&gt;We meet you where you are. We proceed the way you prefer. &lt;/p&gt;

&lt;p&gt;What does this mean in less marketing terms? A multitude of things, but here’s a snapshot. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CloudBees can help you transition to cloud native at your own pace&lt;/strong&gt;. You can start greenfield projects in a cloud native environment while still retaining your older infrastructure. For example, you can run both Tekton-based workflows and Jenkins pipelines in parallel within the same platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your developers can continue to use the tools they know&lt;/strong&gt; or even choose the best-of-breed tools they need for your complex environments. You’re not stuck using lightweight tool replacements. CloudBees offers multiple opportunities to integrate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We make it easy for you to integrate legacy systems and customize projects at scale&lt;/strong&gt;. You don’t have to deal with the inability of some vendors to integrate or adopt internal processes. &lt;/p&gt;

&lt;h2&gt;
  
  
  Start using the CloudBees platform for &lt;a href="https://id.cloudbees.io/realms/cloudbees/protocol/openid-connect/auth?client_id=nextgen-ui&amp;amp;redirect_uri=https%3A%2F%2Fcloudbees.io%2F&amp;amp;response_type=code&amp;amp;scope=openid+profile+email&amp;amp;state=c403e8e263704d03b76e8086f2b42317&amp;amp;code_challenge=POt_YwsMTalXu_APvYAzYZ5_7rps8HrW2DPP3yvSpgc&amp;amp;code_challenge_method=S256&amp;amp;response_mode=query" rel="noopener noreferrer"&gt;FREE&lt;/a&gt; today and find out for yourself!
&lt;/h2&gt;

</description>
      <category>devops</category>
      <category>devsecops</category>
      <category>cicd</category>
      <category>devsecopsmadeeasy</category>
    </item>
    <item>
      <title>DevSecOps Made Easy (Pt 1) - Choose the tool you prefer</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Fri, 10 May 2024 19:40:05 +0000</pubDate>
      <link>https://dev.to/cloudbees/devsecops-made-easy-pt-1-choose-the-tool-you-prefer-498m</link>
      <guid>https://dev.to/cloudbees/devsecops-made-easy-pt-1-choose-the-tool-you-prefer-498m</guid>
      <description>&lt;h2&gt;
  
  
  The Sad Status Quo
&lt;/h2&gt;

&lt;p&gt;Many of the DevSecOps vendors suffer from a mix or all of the following ailments, &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;They won't let you fully use your existing best-of-breed tools. &lt;/li&gt;
&lt;li&gt;They offer no support for integrations or limited opportunities to integrate. &lt;/li&gt;
&lt;li&gt;They make it hard to customize projects at scale. &lt;/li&gt;
&lt;li&gt;They’re deliberately challenging when it comes time to integrate any legacy system. &lt;/li&gt;
&lt;li&gt;They leave you with recurring integration issues when they oblige and integrate. &lt;/li&gt;
&lt;li&gt;They don’t adopt internal company processes effectively. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And the list grows…&lt;/p&gt;

&lt;h2&gt;
  
  
  How CloudBees Makes DevSecOps Easy
&lt;/h2&gt;

&lt;p&gt;The CloudBees platform uses an open and integrated architecture based around popular open standards and de-facto open-source cloud-native technologies such as Kubernetes, Tekton, OpenSearch, OAuth, OpenFeature, and Keycloak. The platform is fully extensible and easily integrated with popular DevSecOps tools.&lt;/p&gt;

&lt;p&gt;Choose the tool you prefer for the job, easily plug it in, turn it into an action, and execute anywhere you choose - avoid hassles with instability, technical complexity, and a ‘forced’ toolset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start using the CloudBees platform for &lt;a href="https://id.cloudbees.io/realms/cloudbees/protocol/openid-connect/auth?client_id=nextgen-ui&amp;amp;redirect_uri=https%3A%2F%2Fcloudbees.io%2F&amp;amp;response_type=code&amp;amp;scope=openid+profile+email&amp;amp;state=fac069326a2a4ac19c23117bb70f7aa2&amp;amp;code_challenge=zfkCb_GeMbr80skMCWGDJMmPPScY6hA8Ab1RGBWgGiI&amp;amp;code_challenge_method=S256&amp;amp;response_mode=query" rel="noopener noreferrer"&gt;FREE&lt;/a&gt; today!
&lt;/h2&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>cicd</category>
      <category>devsecopsmadeeasy</category>
    </item>
    <item>
      <title>Cloud Transformation: A Roadmap for the Future</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Tue, 23 Apr 2024 21:46:45 +0000</pubDate>
      <link>https://dev.to/cloudbees/cloud-transformation-a-roadmap-for-the-future-3ah1</link>
      <guid>https://dev.to/cloudbees/cloud-transformation-a-roadmap-for-the-future-3ah1</guid>
      <description>&lt;p&gt;As organizations strive to remain competitive in the digital age, cloud transformation has emerged as a pivotal strategy. This journey involves more than just shifting resources to the cloud; it encompasses a comprehensive reevaluation of how businesses deploy, manage, and leverage technology to drive growth and innovation. Drawing on CloudBees' expertise and industry best practices, this blog outlines a roadmap for successful cloud transformation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 1: Assessment and Planning
&lt;/h2&gt;

&lt;p&gt;Before embarking on a cloud transformation journey, it's crucial to assess your organization's readiness and define clear objectives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategy: Conduct a Thorough Assessment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Begin by evaluating your current infrastructure, applications, and workflows. Identify which areas will benefit most from cloud adoption and align your cloud strategy with your overall business goals. Consider factors such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application complexity and dependencies&lt;/li&gt;
&lt;li&gt;Data security and compliance requirements&lt;/li&gt;
&lt;li&gt;Performance and scalability needs&lt;/li&gt;
&lt;li&gt;Cost optimization opportunities&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Phase 2: Migration and Implementation
&lt;/h2&gt;

&lt;p&gt;With a solid plan in place, the next step is to start the actual migration to the cloud. This phase can be complex and challenging, involving the transfer of data, applications, and services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategy: Adopt a Phased Approach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adopt a phased approach to migration, prioritizing applications and workloads based on their complexity and business impact. Consider the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify and prioritize applications for migration&lt;/li&gt;
&lt;li&gt;Develop a migration plan and timeline&lt;/li&gt;
&lt;li&gt;Execute the migration using appropriate tools and strategies&lt;/li&gt;
&lt;li&gt;Validate and test migrated applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Utilize CloudBees solutions to manage and automate aspects of the migration process, minimizing downtime and ensuring continuity of operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 3: Optimization and Scaling
&lt;/h2&gt;

&lt;p&gt;Once your assets are in the cloud, the focus shifts to optimization. This involves fine-tuning resources to ensure cost-efficiency, performance, and security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategy: Continuous Optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Leverage cloud-native tools and services to monitor usage, automate scaling, and enhance security. CloudBees offers analytics and optimization tools that provide insights into cloud resource utilization, helping you maximize the value of your cloud investments. Key areas to focus on include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right-sizing resources based on actual usage&lt;/li&gt;
&lt;li&gt;Implementing auto-scaling policies&lt;/li&gt;
&lt;li&gt;Monitoring and optimizing costs&lt;/li&gt;
&lt;li&gt;Enhancing security through encryption, access controls, and compliance measures&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Phase 4: Innovation and Evolution
&lt;/h2&gt;

&lt;p&gt;The ultimate goal of cloud transformation is not just to replicate existing services in the cloud but to unlock new opportunities for innovation and growth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategy: Foster a Culture of Innovation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Encourage experimentation and leverage the cloud's agility to test new ideas quickly. CloudBees supports this innovative mindset through its flexible, scalable platform, enabling teams to rapidly develop, deploy, and iterate on applications. Consider the following approaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adopt agile development methodologies&lt;/li&gt;
&lt;li&gt;Implement continuous integration and continuous deployment (CI/CD) pipelines&lt;/li&gt;
&lt;li&gt;Leverage cloud-native services for machine learning, IoT, and serverless computing&lt;/li&gt;
&lt;li&gt;Foster a culture of collaboration and knowledge-sharing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Navigating Challenges
&lt;/h2&gt;

&lt;p&gt;The road to cloud transformation is fraught with challenges, from technical hurdles to cultural resistance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategy: Address Challenges Head-on&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ensure clear communication, provide training and support to your teams, and partner with a trusted provider like CloudBees. Our comprehensive suite of tools and services can help overcome the common obstacles associated with cloud transformation, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data security and compliance concerns&lt;/li&gt;
&lt;li&gt;Skills gaps and expertise shortages&lt;/li&gt;
&lt;li&gt;Integration with existing systems and processes&lt;/li&gt;
&lt;li&gt;Governance and cost management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By addressing these challenges proactively and leveraging CloudBees' expertise, organizations can mitigate risks and ensure a smoother transition to the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Measuring Success
&lt;/h2&gt;

&lt;p&gt;To gauge the effectiveness of your cloud transformation efforts, it's essential to establish metrics and KPIs that track progress and demonstrate value. Some key metrics to consider include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost savings and optimization&lt;/li&gt;
&lt;li&gt;Application performance and availability&lt;/li&gt;
&lt;li&gt;Time-to-market for new features and services&lt;/li&gt;
&lt;li&gt;User adoption and satisfaction&lt;/li&gt;
&lt;li&gt;Security and compliance posture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By regularly measuring and reporting on these metrics, organizations can showcase the tangible benefits of their cloud transformation initiatives and justify further investments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Cloud transformation is a journey that requires careful planning, execution, and ongoing management. Organizations can successfully navigate this transition by following a structured roadmap and leveraging the right tools and strategies. CloudBees stands ready to assist, providing the expertise, solutions, and support needed to harness the full potential of the cloud.&lt;/p&gt;

&lt;p&gt;Take the first step in your cloud transformation journey today. Contact CloudBees and discover how our suite of tools and services can help you achieve your goals. With CloudBees as your partner, you can confidently navigate the path to cloud transformation and unlock new opportunities for innovation and growth.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudnative</category>
      <category>devops</category>
      <category>migration</category>
    </item>
    <item>
      <title>How to build a resilient DevOps culture in times of change</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Tue, 16 Apr 2024 16:47:18 +0000</pubDate>
      <link>https://dev.to/cloudbees/how-to-build-a-resilient-devops-culture-in-times-of-change-11n2</link>
      <guid>https://dev.to/cloudbees/how-to-build-a-resilient-devops-culture-in-times-of-change-11n2</guid>
      <description>&lt;p&gt;The software development world changes so fast that embracing DevOps becomes even more critical to maintaining speed, efficiency, and innovation. Success with DevOps is a lot bigger than a simple implementation of tools or processes. You have to foster the right culture. &lt;/p&gt;

&lt;p&gt;In this post, we'll explore strategies to build that resiliency in your DevOps culture that enables your organization to survive the constant waves of change. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does RESILIENCE mean in DevOps?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Resilience in DevOps is the ability of a team to adapt, recover, and continuously improve amidst varying challenges. To create an environment where you encourage failures and adaptability is part of the team's ethos. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A few strategies to cultivate RESILIENCE…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#1 - Embrace change as a constant&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The first step in building a resilient culture is acknowledging that change is inevitable. Teams should prepare to anticipate and embrace change and not simply react to it. &lt;/p&gt;

&lt;p&gt;For instance, Spotify encourages autonomous squads to experiment and adapt quickly to foster a culture that thrives on change. Conduct training sessions, workshops, and cross-functional team interactions to expose team members to different perspectives and skills. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#2 - Foster a blameless culture&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;A blameless culture is one where team members can discuss mistakes openly and feel safe without fear of retribution. Etsy's blameless postmortems are a great example of this in action. Focus on the lessons learned instead of pointing fingers. Teams can understand what went wrong and prevent similar issues in the future. Leaders should also model vulnerability, encourage open dialogue, and emphasize learning over punishment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#3 - Encourage continuous learning and improvement&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;DevOps is as much about continuous improvement as it is about continuous delivery and integration. Take Google's "20% time" policy - a prime example of how the company prioritizes continuous learning by enabling employees to dedicate a portion of their work hours to learning and experimentation. &lt;br&gt;
Encourage teams to set aside time to explore new technologies, techniques, and methodologies to stay ahead of the curve and constantly grow. Leaders can provide resources, recognize learning efforts, and create knowledge-sharing spaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#4 - Promote psychological safety&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Psychological safety is the belief that you can speak up with ideas, questions, concerns, or mistakes without punishment or humiliation. It's the foundation of a resilient DevOps culture. Leaders can promote psychological safety by actively listening, showing empathy, and acknowledging the contributions of all team members.&lt;/p&gt;

&lt;p&gt;Establish clear guidelines for respectful communication and conflict resolution to reinforce a psychologically safe environment. Building trust is a continuous process that requires consistent effort and commitment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#5 - Implement effective communication channels&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;A fast-paced DevOps environment requires clear and transparent communication. Implement effective communication channels in tools like Slack and hold regular stand-ups or check-ins to align everyone with the team's goals, roles, and responsibilities. This is especially important during periods of change when uncertainty can lead to confusion and misalignment. When selecting communication tools, consider the team's preferences and workflow to ensure seamless adoption and usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#6 - Empower team members&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Empowerment is about giving team members the autonomy to make decisions and take action. Amazon's "two-pizza teams" - i.e., teams small enough to be fed by two pizzas - exemplify how smaller, empowered teams can drive innovation and adapt quickly. &lt;/p&gt;

&lt;p&gt;Trust teams to determine the best path forward by providing clear goals and guidelines. Leaders can foster a sense of ownership and accountability, drive individuals to perform at their best, and adapt more readily to changes. Regularly solicit feedback and ideas from team members to reinforce their sense of empowerment and contribution to the team's success.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You will have to navigate challenges.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Building a resilient DevOps culture comes with challenges. One common obstacle is resistance to change, particularly from team members accustomed to traditional working methods. To address this, leaders should communicate the benefits of change clearly, involve team members in the change process, and provide support and resources to help them adapt. &lt;/p&gt;

&lt;p&gt;Another challenge is preventing burnout in a fast-paced, constantly evolving environment. Encourage work-life balance, set realistic expectations, and provide mental health resources to mitigate this risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to measure success&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Define and track relevant metrics to build a resilient DevOps culture effectively. These could include team velocity, time to recover from failures, employee satisfaction scores, and the frequency of learning opportunities. By regularly assessing these metrics and gathering feedback from team members, organizations can identify areas for improvement and celebrate successes along the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parting thoughts…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building a resilient DevOps culture is a journey, not a destination. It requires commitment, leadership, and continuous effort from all levels of the organization. &lt;/p&gt;

&lt;p&gt;As you navigate through times of change, remember that the strength of DevOps lies not just in its tools and processes but in the resilience of its people and culture. Let's nurture these human elements to build a genuinely resilient DevOps environment. Assess your current culture, identify areas for improvement, and engage your team in open discussions about how to foster resilience. Small steps, consistently taken, can lead to significant transformations over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources to further explore for insights and practical advice&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;"The DevOps Handbook" by Gene Kim, Jez Humble, Patrick Debois, and John Willis&lt;/li&gt;
&lt;li&gt;"Accelerate: The Science of Lean Software and DevOps" by Nicole Forsgren, Jez Humble, and Gene Kim&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Remember, a resilient DevOps culture harnesses the winds of change to propel the organization forward. Embrace the journey, learn from the challenges, and watch your team thrive in the face of any obstacle that comes their way.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>softwaredevelopment</category>
      <category>learning</category>
      <category>change</category>
    </item>
    <item>
      <title>Progressive Delivery: A Detailed Overview</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Mon, 08 Apr 2024 14:18:37 +0000</pubDate>
      <link>https://dev.to/cloudbees/progressive-delivery-a-detailed-overview-30hk</link>
      <guid>https://dev.to/cloudbees/progressive-delivery-a-detailed-overview-30hk</guid>
      <description>&lt;p&gt;Every developer has been there before: You release a new feature expecting a smooth ride, only to have something go awry in the back end at the last minute. &lt;/p&gt;

&lt;p&gt;An event like this can derail a launch, letting down customers and leaving you scratching your head wondering what went wrong.&lt;/p&gt;

&lt;p&gt;Suffice it to say that software development is very complex, and small issues can easily sneak through into production without detection. To avoid this, many development teams are now changing their vetting strategy and testing more during production using the progressive delivery model. &lt;/p&gt;

&lt;p&gt;Keep reading to learn the basics of progressive delivery and how it can help your company iterate with greater safety and efficiency—bringing more powerful products to market faster. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Progressive Delivery?
&lt;/h2&gt;

&lt;p&gt;In a traditional waterfall model, teams release new features to an entire user base at one time. Using progressive delivery, you roll out features gradually.&lt;/p&gt;

&lt;p&gt;Here’s how it works: DevOps managers first ship a new feature to release managers for internal testing. Once that’s done, the feature goes to a small batch of users to collect additional feedback, or is incrementally released to more users over time. The final step is a general launch when the feature is ready for the masses.&lt;/p&gt;

&lt;p&gt;It’s a bit like dipping your toes into the water before diving in. If something goes wrong during a launch, you haven’t exposed your entire user base to it. You can easily roll the feature back if you need to and make changes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j8y3fvic4r06pd05yr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j8y3fvic4r06pd05yr8.png" alt="Progressive Delivery" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Evolution of Progressive Delivery
&lt;/h2&gt;

&lt;p&gt;Progressive delivery emerged in response to widespread dissatisfaction with the continuous delivery model. DevOps teams needed a way to control software releases and catch issues early on instead of pumping out bug-filled versions to their users, and progressive delivery met this requirement.&lt;/p&gt;

&lt;p&gt;The idea stems from Microsoft’s progressive experimentation concept, which involves studying the blast radius prior to a product launch to determine how it will affect users. &lt;/p&gt;

&lt;p&gt;As the story goes, RedMonk co-founder James Governor took this concept and applied it to the continuous delivery model. Governor explains this in this &lt;a href="https://www.cloudbees.com/events" rel="noopener noreferrer"&gt;compelling webinar on progressive delivery&lt;/a&gt;—a must-watch for anyone interested in learning more on the topic. &lt;/p&gt;

&lt;p&gt;It’s important to note that &lt;a href="https://www.cloudbees.com/blog/progressive-delivery-vs-continuous-delivery" rel="noopener noreferrer"&gt;progressive delivery doesn’t replace continuous delivery&lt;/a&gt;. Rather, progressive delivery enhances continuous delivery and helps companies do it more effectively. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvlnkdv7n1oibf86ydmd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvlnkdv7n1oibf86ydmd.png" alt="Progressive Delivery Enhances Continuous Delivery" width="800" height="145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are the Benefits of Progressive Delivery?
&lt;/h2&gt;

&lt;p&gt;There are several reasons why your company may decide to move beyond continuous delivery and embrace a progressive strategy instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improve Efficiency&lt;/strong&gt;&lt;br&gt;
As Governor explains in his primer, software development is shifting away from the idea of moving quickly and breaking things. Today, there’s growing interest in accelerating development pipelines—without breaking things. &lt;/p&gt;

&lt;p&gt;Companies want to take ownership of their code and deliver high-quality software. By incorporating rigorous testing into the process, progressive delivery enables you to ship large volumes of code at a higher volume without having to worry about frustrating the user experience. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploy Selectively&lt;/strong&gt;&lt;br&gt;
Progressive delivery lets you deploy new features to select user groups. This way, you can iron out any bugs and gather feedback before a general launch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target Different Geographic Locations&lt;/strong&gt;&lt;br&gt;
People tend to use software differently depending on their geographical location. Customers in Japan may approach an application in a much different way than customers in the US, for example. &lt;/p&gt;

&lt;p&gt;Developers need to take into consideration differing workflows, privacy restrictions, and language and cultural needs. Once again, progressive delivery helps here, too, by enabling you to discover needs and conflicts early on and make adjustments as you move forward. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reduce User Pushback&lt;/strong&gt;&lt;br&gt;
In his overview of progressive delivery, Governor makes a great point that people generally don’t like it when applications change. &lt;/p&gt;

&lt;p&gt;Google recognizes this, which is why the company lets users switch over to new features at their own pace, giving them time to process the change. This reduces pushback and also gives developers more time to collect feedback and make small improvements. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ship Software Faster&lt;/strong&gt;&lt;br&gt;
With progressive delivery, you perform certain user tests during and after the launch. This ultimately saves time by enabling you to catch issues earlier. It prevents you from having to go back and make large structural changes deep in the production cycle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maintain Customer Trust&lt;/strong&gt; &lt;br&gt;
Progressive delivery protects the customer experience by reducing risk. If a small user group has trouble with an update or is overwhelmingly against it, you can figure out why and decide how to address the situation.&lt;/p&gt;

&lt;p&gt;By taking this approach, you can build customer trust while shielding the majority of customers from the messy development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free Developers to Focus on Innovation&lt;/strong&gt;&lt;br&gt;
One of the fundamental pillars of progressive development is progressive delegation. With this approach, a group of engineers first develops and tests a feature. After that, the software goes to a product manager, who conducts further testing and oversees the release. &lt;/p&gt;

&lt;p&gt;This frees developers to spend more time focusing on building and testing new features instead of refining code for release. It keeps pipelines moving, ultimately enabling companies to churn out features at scale faster. &lt;/p&gt;

&lt;p&gt;Testing tends to be dull, repetitive and time-consuming. Since talented developers want to spend their time creating and building, progressive delivery keeps teams engaged and reduces turnover.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lower Development Costs&lt;/strong&gt; &lt;br&gt;
A progressive delivery model gives teams multiple opportunities to catch bugs and vulnerabilities before a full release. Since it’s generally much cheaper to make changes early on in the development cycle, this strategy can save a lot of money over time. &lt;/p&gt;

&lt;h2&gt;
  
  
  Supporting Elements for Progressive Delivery
&lt;/h2&gt;

&lt;p&gt;Progressive delivery brings together many different software development methodologies.&lt;/p&gt;

&lt;p&gt;Here’s a breakdown of some key enabling elements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A/B Testing&lt;/strong&gt; &lt;br&gt;
A/B testing, or split testing, involves taking two versions of a piece of software and comparing how they perform. &lt;/p&gt;

&lt;p&gt;For example, you might release an app with two different interfaces and see how users respond. After collecting feedback, you can move forward confidently with the app that generates stronger results. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Canary Testing&lt;/strong&gt; &lt;br&gt;
Canary testing originates from the phrase “canary in the coal mine,” wherein miners would use a live bird to test for toxic fumes. &lt;/p&gt;

&lt;p&gt;With modern canary testing, you release code to a small group of users to see if it’s safe to release to a larger base. In this case, users act like canaries by testing the software. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lwepkw7izsgik9pndfm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lwepkw7izsgik9pndfm.png" alt="Canary Testing" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blue-Green Deployments&lt;/strong&gt;&lt;br&gt;
In a blue-green deployment, you set up two identical production environments: a blue and green one. One is live, and the other is for testing.&lt;/p&gt;

&lt;p&gt;When it’s time to release a new software version, you swap the blue and green environments. This approach can reduce downtime and risk when rolling out a new service. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpu9fpzz56qfenhf9k3ya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpu9fpzz56qfenhf9k3ya.png" alt="Blue-Green Deployments" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continuous Delivery Release Orchestration (CDRO)&lt;/strong&gt;&lt;br&gt;
CDRO tools enable rapid application delivery and help deliver better quality software. &lt;/p&gt;

&lt;p&gt;These tools introduce automation and monitoring throughout various stages of development, expediting testing and streamlining monitoring. With the right solution in place, you can manage your pipeline and environment more effectively while taking advantage of deployment automation and leveraging pipeline analytics to continuously refine your processes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observability&lt;/strong&gt; &lt;br&gt;
Observability is a control theory method for understanding a complex system. It involves using tools like logging, tracing and analytics engines to understand how services are performing and interacting. &lt;/p&gt;

&lt;p&gt;Through observability, it’s possible to determine whether you need to release an update to a group of users. Pairing user analytics engines with feature flag management systems can also automate the rollout or rollback based on pre-specified user criteria.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service Mesh&lt;/strong&gt;&lt;br&gt;
A &lt;a href="https://www.cloudbees.com/blog/an-overview-of-the-service-mesh-and-its-tooling-options" rel="noopener noreferrer"&gt;service mesh&lt;/a&gt; is an infrastructure layer that sits over a container network interface (CNI) and contains a control plane and a data plane. Two popular examples include Istio and AWS App Mesh. &lt;/p&gt;

&lt;p&gt;This type of solution can enable user segmentation, traffic shifting management, observability and automation—all of which play a crucial role in progressive delivery. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Flags&lt;/strong&gt;&lt;br&gt;
Feature flags, or feature toggles, are an important operational mechanism for progressive delivery. Flags let you control various functions during runtime. &lt;/p&gt;

&lt;p&gt;By deploying feature flags, you can turn features on and off for different groups of users. In this light, feature flags help control and limit deployments to select users. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsn1af1ifu4t2o2o08ha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsn1af1ifu4t2o2o08ha.png" alt="Feature Flags" width="800" height="139"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Move Beyond Continuous Delivery With CloudBees
&lt;/h2&gt;

&lt;p&gt;Thinking about implementing progressive delivery in your DevOps strategy? &lt;/p&gt;

&lt;p&gt;It’s a bold leap. But it’s one that could have a profound impact on the way your company handles software releases. Through progressive delivery, your team can tighten its grip on software production, collect more user feedback and catch errors before they slip into production. &lt;/p&gt;

&lt;p&gt;If you’re thinking about moving forward with progressive delivery, check out the &lt;a href="https://www.cloudbees.com/products/saas-platform" rel="noopener noreferrer"&gt;CloudBees platform&lt;/a&gt;, which includes an advanced feature flagging mechanism that enables dev teams to target different users based on various attributes and manage who receives updates and when. &lt;/p&gt;

&lt;p&gt;For more information on how you can use CloudBees Feature Management to accelerate your progressive delivery efforts and build a smoother production environment, &lt;a href="https://docs.cloudbees.com/docs/cloudbees-platform/latest/feature-management" rel="noopener noreferrer"&gt;check out the documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;p&gt;Read the eBook: &lt;a href="https://www.cloudbees.com/c/ebook-5-things-you-need-to-get-started-with-enterprise-progressive-delivery" rel="noopener noreferrer"&gt;5 Things You Need to Get Started with Enterprise Progressive Delivery&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloudnative</category>
      <category>featureflags</category>
      <category>release</category>
    </item>
    <item>
      <title>Feature Flags vs. Feature Management: A Technical Deep Dive for SREs</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Mon, 01 Apr 2024 13:46:01 +0000</pubDate>
      <link>https://dev.to/cloudbees/feature-flags-vs-feature-management-a-technical-deep-dive-for-sres-5e43</link>
      <guid>https://dev.to/cloudbees/feature-flags-vs-feature-management-a-technical-deep-dive-for-sres-5e43</guid>
      <description>&lt;p&gt;As Site Reliability Engineers (SREs), your primary mission is to ensure the reliability, stability, and performance of production systems. In the pursuit of this goal, you constantly seek out innovative approaches and technologies that can help mitigate risks, minimize downtime, and deliver value to users. Two such methodologies that have gained significant traction in the SRE community are feature flags and feature management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this blog post, we'll dive deep into the technical aspects of feature flags and feature management, exploring how they can be leveraged by SREs to enable progressive delivery, improve system resilience, and optimize the user experience.&lt;/strong&gt; We'll discuss the implementation details, best practices, and challenges associated with these approaches, focusing on how they align with the specific roles, responsibilities, and priorities of SREs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Flags: A Granular Approach to Functionality Control
&lt;/h2&gt;

&lt;p&gt;Feature flags, also known as feature toggles, are a powerful technique that allows SREs to control the activation and deactivation of specific application functionalities without modifying the codebase. At its core, a feature flag is a conditional statement that determines whether a particular feature should be executed based on predefined criteria. The most basic implementation of a feature flag in Go can be expressed as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;func main() {
    if isFeatureEnabled() {
        // Execute new feature code
    } else {
        // Fall back to existing functionality
    }
}

func isFeatureEnabled() bool {
    // Logic to determine if the feature is enabled
    // This can be based on configuration, environment variables, or other factors
    return true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;isFeatureEnabled()&lt;/code&gt; function can return a simple boolean value, or it can involve more complex logic based on user attributes, environment variables, or external configuration management systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From an SRE perspective, feature flags offer several key benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Risk Mitigation&lt;/strong&gt;: By gradually rolling out new features to a subset of users, SREs can minimize the impact of potential failures and reduce the risk of outages. If a feature introduces performance issues or unexpected behavior, it can be quickly disabled without affecting the entire user base.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rapid Rollbacks&lt;/strong&gt;: In the event of a critical bug or performance degradation, feature flags act as kill switches, allowing SREs to quickly disable problematic functionalities without resorting to complete rollbacks. This helps maintain system stability and reduces the mean time to recovery (MTTR).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Controlled Experiments&lt;/strong&gt;: Feature flags enable SREs to conduct controlled experiments, such as A/B testing or canary releases, to assess the performance and user impact of new features. This data-driven approach aligns with SRE practices of making informed decisions based on metrics and evidence.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Implementing feature flags requires careful consideration of factors such as flag management, data consistency, and performance overhead. SREs must establish clear naming conventions, define flag lifecycle policies, and ensure that flag evaluations do not introduce significant latency to the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Management: Orchestrating Flags at Scale
&lt;/h2&gt;

&lt;p&gt;While feature flags provide the tactical means to control individual functionalities, feature management offers a strategic framework for overseeing and orchestrating the entire lifecycle of feature flags across multiple services and environments. Feature management platforms provide a centralized interface for creating, configuring, and monitoring feature flags, as well as analyzing their impact on system behavior and user engagement.&lt;/p&gt;

&lt;p&gt;From an SRE's standpoint, feature management is crucial for maintaining system stability, optimizing resource utilization, and ensuring a smooth user experience. By centralizing flag management and providing a holistic view of feature interactions, SREs can proactively identify potential conflicts, monitor feature-level metrics, and make informed decisions about feature rollouts and rollbacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key aspects of feature management that are particularly relevant to SREs include:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with Monitoring and Alerting&lt;/strong&gt;: Feature management platforms can be integrated with existing SRE toolchains, such as monitoring systems and incident management platforms. This allows SREs to set up alerts for abnormal flag behavior, track feature-level metrics, and quickly identify and respond to issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compliance with SLOs and Error Budgets&lt;/strong&gt;: Feature flags and feature management can help SREs stay within their defined service level objectives (SLOs) and error budgets. By controlling the exposure of new features and quickly disabling problematic functionalities, SREs can minimize the impact on system reliability and maintain the desired level of service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automation and Tooling&lt;/strong&gt;: Feature management platforms often provide APIs and SDKs that can be integrated with SRE automation and tooling. This allows SREs to programmatically manage feature flags, automate rollout and rollback processes, and incorporate feature flag checks into their existing workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Progressive Delivery: The Convergence of Feature Flags and Feature Management
&lt;/h2&gt;

&lt;p&gt;Progressive delivery is an umbrella term that encompasses various deployment strategies aimed at reducing the risk and increasing the velocity of software releases. Techniques such as canary releases, blue-green deployments, and dark launches rely heavily on the effective use of feature flags and feature management.&lt;/p&gt;

&lt;p&gt;For SREs, progressive delivery is a key approach to ensuring the stability and reliability of production systems while enabling rapid innovation. By leveraging feature flags and feature management, SREs can implement progressive delivery practices that allow for the gradual and controlled rollout of new features, minimizing the blast radius of potential issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Challenges and Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While feature flags and feature management offer significant benefits, &lt;strong&gt;they also introduce certain challenges that SREs must navigate&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flag Proliferation&lt;/strong&gt;: As the number of feature flags grows, managing them can become complex and error-prone. SREs should establish clear guidelines for flag creation, documentation, and retirement to prevent flag sprawl and technical debt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance Impact&lt;/strong&gt;: Evaluating feature flags on every request can introduce performance overhead, especially in high-traffic scenarios. SREs should optimize flag evaluation logic, leverage caching mechanisms, and monitor the performance impact of feature flags.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistency and Synchronization&lt;/strong&gt;: In distributed systems, ensuring the consistency of flag states across multiple services and instances can be challenging. SREs should implement robust synchronization mechanisms, such as distributed configuration stores or event-driven architectures, to maintain flag coherence.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To address these challenges and ensure the effective use of feature flags and feature management, &lt;strong&gt;SREs should adhere to the following best practices&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Establish Clear Naming Conventions&lt;/strong&gt;: Use descriptive and meaningful names for feature flags, following a consistent naming scheme that reflects the purpose and scope of each flag.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Implement Flag Lifecycle Management&lt;/strong&gt;: Define a clear lifecycle for feature flags, including creation, activation, deactivation, and retirement. Regularly review and clean up stale or unused flags to maintain a lean flag inventory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitor and Alert on Flag Usage&lt;/strong&gt;: Implement monitoring and alerting mechanisms to track the usage and performance of feature flags. Set up alerts for abnormal flag behaviors, such as sudden spikes in flag evaluations or inconsistent flag states across instances.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaborate with Development Teams&lt;/strong&gt;: SREs should work closely with development teams to define flag-driven development practices, establish flag management policies, and foster a culture of experimentation and iterative delivery. This collaboration ensures that feature flags are used effectively and align with the overall goals of the organization.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Future of Feature Flags and Feature Management
&lt;/h2&gt;

&lt;p&gt;As software systems continue to grow in complexity and scale, the importance of feature flags and feature management will only increase. SREs can expect to see further advancements in these areas, such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI-Driven Flag Optimization&lt;/strong&gt;: Machine learning algorithms can analyze historical flag usage patterns and user behavior to recommend optimal flag configurations and rollout strategies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Flag Discovery and Synchronization&lt;/strong&gt;: Advanced feature management platforms may employ techniques like static code analysis and runtime instrumentation to automatically discover and synchronize feature flags across multiple codebases and environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with Chaos Engineering&lt;/strong&gt;: Feature flags can be used as a tool for chaos engineering experiments, allowing SREs to inject controlled failures or simulated load into specific feature paths to assess the resilience and performance of the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Decentralized Flag Management&lt;/strong&gt;: With the rise of microservices and distributed architectures, decentralized flag management approaches, such as using service meshes or distributed key-value stores, may become more prevalent to ensure flag consistency and reduce reliance on a single centralized platform.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Feature flags and feature management are essential tools in the SRE's arsenal for enabling progressive delivery, improving system resilience, and optimizing the user experience. By understanding the technical nuances of these methodologies and applying best practices, SREs can effectively leverage feature flags and feature management to navigate the complexities of modern software development.&lt;/p&gt;

&lt;p&gt;As the landscape of software engineering continues to evolve, SREs must stay abreast of the latest advancements in feature flag and feature management technologies, embracing new approaches and integrating them into their progressive delivery workflows. By doing so, they can ensure that their systems remain agile, reliable, and responsive to the ever-changing needs of users and businesses alike.&lt;/p&gt;

</description>
      <category>sre</category>
      <category>devops</category>
      <category>featureflags</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>Build With CloudBees Platform and Win an Exclusive T-shirt</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Thu, 22 Feb 2024 17:05:28 +0000</pubDate>
      <link>https://dev.to/cloudbees/build-with-cloudbees-platform-and-win-an-exclusive-t-shirt-371i</link>
      <guid>https://dev.to/cloudbees/build-with-cloudbees-platform-and-win-an-exclusive-t-shirt-371i</guid>
      <description>&lt;p&gt;Win back some time to do actual coding with the new CloudBees DevSecOps platform. Take advantage of our secure, self-service, composable, reusable workflows to speed software to production. The CloudBees platform presents a comprehensive DevOps solution, empowering teams to craft and execute efficient &lt;a href="https://www.cloudbees.com/capabilities/ci-cd-workflows" rel="noopener noreferrer"&gt;CI/CD workflows&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For those new to the platform, through the end of March, we will select 10 lucky users each week to receive a cool t-shirt&lt;/strong&gt;. All you have to do is to submit a workflow created using the &lt;a href="https://www.cloudbees.com/products/saas-platform" rel="noopener noreferrer"&gt;CloudBees platform&lt;/a&gt;. See below to learn more!&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a CI/CD Workflow and Get a Free T-shirt
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9myovu2bfdftraftbte.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9myovu2bfdftraftbte.png" alt="CloudBees Platform T-shirt" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CloudBees is offering a chance to win a free t-shirt to users who sign up for the platform (it’s FREE), create a workflow, and share your results on social media.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here are the steps to submit a CI/CD workflow and get a cool t-shirt:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sign up for a free &lt;a href="https://id.cloudbees.io/realms/cloudbees/protocol/openid-connect/auth?client_id=nextgen-ui&amp;amp;redirect_uri=https%3A%2F%2Fcloudbees.io%2F&amp;amp;response_type=code&amp;amp;scope=openid+profile+email&amp;amp;state=fb65507289864a86b814b6ec96c5122f&amp;amp;code_challenge=axrmJp6PYcOdn7owbYpP4a4BeZJ2SvpboFJkArI8vnI&amp;amp;code_challenge_method=S256&amp;amp;response_mode=query" rel="noopener noreferrer"&gt;CloudBees platform account&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Create a connection to your source repository&lt;/li&gt;
&lt;li&gt;Create a new component &lt;/li&gt;
&lt;li&gt;Define a workflow using the graphical composer or the built-in YAML editor&lt;/li&gt;
&lt;li&gt;Trigger your workflow to execute it&lt;/li&gt;
&lt;li&gt;Take a screenshot of your workflow and share it on &lt;a href="https://www.linkedin.com/company/cloudbees" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;, &lt;a href="https://twitter.com/cloudbees" rel="noopener noreferrer"&gt;X&lt;/a&gt;, or &lt;a href="https://www.facebook.com/CloudBees/" rel="noopener noreferrer"&gt;Facebook&lt;/a&gt;, with both #CloudBeesPlatform #CoolDevT hashtags. Also, be sure to tag @CloudBees in your post. Each week, we’ll choose 10 lucky users to get a free t-shirt! (To be shipped at the end of March.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Watch this step-by-step video to learn how to create a workflow:
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/12zLnePkEXc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a CI/CD Workflow?
&lt;/h2&gt;

&lt;p&gt;CI/CD stands for &lt;a href="https://www.cloudbees.com/continuous-delivery/continuous-integration" rel="noopener noreferrer"&gt;continuous integration&lt;/a&gt; and &lt;a href="https://www.cloudbees.com/blog/what-is-continuous-deployment-a-complete-explanation" rel="noopener noreferrer"&gt;continuous delivery&lt;/a&gt;. CI/CD are a set of practices and automated processes that enable teams to deliver software more frequently and reduce tedious, manual, time-consuming processes. A CI/CD workflow typically involves several stages, such as code management, build automation, security and code quality scanning, testing, deployment, and release. The main aim of a CI/CD workflow is to reduce the time and effort required to deliver software, securely, while maintaining quality and stability&lt;/p&gt;

&lt;h2&gt;
  
  
  The Benefits of Using CloudBees
&lt;/h2&gt;

&lt;p&gt;CloudBees is a cloud native, end-to-end DevOps solution that, among other things, enables teams to create and run CI/CD workflows. CloudBees offers several benefits for teams, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalability: CloudBees platform can scale to meet the needs of any size organization, from startups to large enterprises.&lt;/li&gt;
&lt;li&gt;Flexibility: CloudBees platform supports multiple cloud providers and integrates with many tools and technologies.&lt;/li&gt;
&lt;li&gt;Security: CloudBees provides built-in security, as well as RBAC for managing access and permissions.&lt;/li&gt;
&lt;li&gt;Visibility: CloudBees offers real-time dashboards and reporting that enable teams to track the progress of their CI/CD workflows and identify bottlenecks or issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.cloudbees.com/products/saas-platform" rel="noopener noreferrer"&gt;The CloudBees platform&lt;/a&gt; is the DevOps solution that allows teams to create and run efficient CI/CD workflows, by accelerating software delivery with scalability, flexibility, security, and visibility. Don't miss the chance to win a free t-shirt by &lt;a href="https://id.cloudbees.io/realms/cloudbees/protocol/openid-connect/auth?client_id=nextgen-ui&amp;amp;redirect_uri=https%3A%2F%2Fcloudbees.io%2F&amp;amp;response_type=code&amp;amp;scope=openid+profile+email&amp;amp;state=54d537f93b524c64bc4e811bac3de466&amp;amp;code_challenge=aNGefE9tDovZmrw6DfIiowMfp76TUS001eu2zHIr0gE&amp;amp;code_challenge_method=S256&amp;amp;response_mode=query" rel="noopener noreferrer"&gt;signing up&lt;/a&gt; and sharing your workflow!&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>devsecops</category>
      <category>kubernetes</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>The Future of DevSecOps with the CloudBees Platform—An In-Depth Look</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Tue, 20 Feb 2024 22:05:06 +0000</pubDate>
      <link>https://dev.to/cloudbees/the-future-of-devsecops-with-the-cloudbees-platform-an-in-depth-look-1606</link>
      <guid>https://dev.to/cloudbees/the-future-of-devsecops-with-the-cloudbees-platform-an-in-depth-look-1606</guid>
      <description>&lt;p&gt;The &lt;a href="https://www.cloudbees.com/products/saas-platform" rel="noopener noreferrer"&gt;new CloudBees platform&lt;/a&gt; was launched in November of last year. In this blog, we will set the stage for why and how we developed the CloudBees platform by describing the two types of applications that dominate software delivery today, the challenges DevSecOps teams face and, finally, the way the CloudBees platform was architected to address those challenges. Let's go!&lt;/p&gt;

&lt;p&gt;Today's digital ecosystem is buzzing with a myriad of applications, each with distinct characteristics and requirements. Two prominent types dominate this ecosystem: cloud native and traditional applications. Addressing the unique DevSecOps requirements of both these applications is crucial, and this is where the new CloudBees platform shines.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Dichotomy of Modern Software Applications
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cloud Native Applications&lt;/strong&gt;: These applications, born in the mid-2010s, have been propelled by the rising influence of public cloud infrastructures, Docker container technologies, and Kubernetes management platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traditional Applications&lt;/strong&gt;: Encompassing a range from applications deployed in application servers to non-containerized applications deployed to traditional server infrastructure these are the software world's current stalwarts. Some are transitioning into cloud native applications, while many retain their original forms due to unique non-cloud native use cases.&lt;/p&gt;

&lt;p&gt;Both categories have longevity, though their proportions might evolve.&lt;/p&gt;

&lt;h2&gt;
  
  
  DevSecOps Challenges
&lt;/h2&gt;

&lt;p&gt;The CloudBees platform stands at the intersection of cloud native advancements and traditional application legacies. It promises a cohesive, unified experience from code commit to deployment. Envision a realm where developer experience and productivity harmoniously coexist. This isn't just a tool—it's a culture.&lt;/p&gt;

&lt;p&gt;Enhanced developer experience remains a constant across cloud native and traditional applications. &lt;/p&gt;

&lt;p&gt;As Jim Mercer, IDC Research Vice President DevOps and DevSecOps, articulated:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Developer experience, security, and efficiency often conflict with DevSecOps, and too much complexity shifts onto developers. Solutions such as the new CloudBees platform, which combines cloud native tools like Tekton-based pipeline automation and a graphical workflow composer, can pull these workstreams closer, creating a paved path for developers to innovate more securely."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq2kqbcnr2mgxcj3kmbo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq2kqbcnr2mgxcj3kmbo.png" alt="CloudBees Platform UI Composer" width="800" height="829"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This accentuates the responsibility on platform engineering teams to provide an uninterrupted &lt;a href="https://www.cloudbees.com/use-case/developer-self-service" rel="noopener noreferrer"&gt;self-service experience for developers&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  CloudBees: Bridging the Gap
&lt;/h2&gt;

&lt;p&gt;CloudBees offers a tailor-made solution for the distinct DevSecOps demands of both application types. &lt;/p&gt;

&lt;p&gt;The CloudBees platform helps developers efficiently handle Kubernetes deployments, powered by Tekton with an extended actions syntax. &lt;/p&gt;

&lt;p&gt;Spike Washburn, engineering leader at CloudBees, explained: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We talked about should we adopt something that already exists, such as Tekton, a Kubernetes-centric YAML language for describing automations running in a Kubernetes cluster? Or should we adopt something closer to a GitHub Actions DSL for ease of use? Our choice was to create a DSL that is closely aligned to GitHub Actions, yet provides the power of Tekton while abstracting away the complexity of Kubernetes. In doing so, we provide ease of use for all developers, even those who aren't Kubernetes experts."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CloudBees ensures existing tool investments remain intact while boosting deployment capabilities for conventional environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6fgfhcsmam77ut0iewh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6fgfhcsmam77ut0iewh.png" alt="CloudBees Platform Visual Editor" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The DSL From CloudBees
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.cloudbees.com/docs/cloudbees-saas-platform/latest/workflows/example-workflow" rel="noopener noreferrer"&gt;The new DSL&lt;/a&gt; simplifies the creation, assessment, and repurposing of workflows for all staff, regardless of their coding proficiency. It's harmonized with actions from other vendors, but it's not a keyword match. A powerful action library enhances its GitHub Actions compatibility and facilitates powerful reuse mechanisms for both existing and custom-made actions. The platform's usability is not limited to the actions library. Users can easily integrate or modify workflow templates via a visual editor in the CloudBees platform.&lt;/p&gt;

&lt;p&gt;While CloudBees maintains a strong bond with Jenkins and offers connectivity, its platform is fundamentally constructed using Tekton to dispatch jobs to Kubernetes, meaning Jenkins is not required for job execution or &lt;a href="https://www.cloudbees.com/use-case/heterogeneous-orchestration" rel="noopener noreferrer"&gt;orchestration&lt;/a&gt;. However, CloudBees platform can still orchestrate Jenkins, CloudBees CI, and other DevOps tools in hybrid environments.&lt;/p&gt;

&lt;p&gt;CloudBees platform encompasses workflow and actions DSLs, simplifying the creation of fresh pipelines and jobs. These DSLs share multiple parallels with other tools, including the structure and several keywords. Replication of actions you are currently using becomes straightforward using the inherent actions library or tailored scripts.&lt;/p&gt;

&lt;p&gt;A notable distinction between CloudBees platform and other tools resides in action execution. CloudBees utilizes containers, offering enhanced workflow state support due to its dependency on containers and Kubernetes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The CloudBees Advantage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cloud native workflows: Leveraging the intrinsic Tekton-based system of the CloudBees platform.&lt;/li&gt;
&lt;li&gt;External &lt;a href="https://www.cloudbees.com/capabilities/ci-cd-workflows" rel="noopener noreferrer"&gt;CI/CD workflows&lt;/a&gt;: Orchestrating eminent tools like Jenkins, CloudBees CI, GitHub Actions, and more.&lt;/li&gt;
&lt;li&gt;Hybrid workflows: Blending the best of both of the above.&lt;/li&gt;
&lt;li&gt;Jenkins-centric workflows: Expected by 2024, there will be Jenkins-integrated workflows within the CloudBees platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Organizations can cherry-pick from these, aligning with factors like application types and their modernization vision.&lt;/p&gt;

&lt;p&gt;CloudBees platform is a pioneer in addressing the evolving DevSecOps challenges confronting organizations. Catering to both cloud native and traditional applications, it ensures organizations glide through the digital domain with agility, security, and efficacy.&lt;/p&gt;

&lt;p&gt;Today, we celebrate the CloudBees platform, but we’re even more eager for tomorrow. Our journey is about evolving, about looking ahead, and ensuring we're not just meeting but anticipating your needs.&lt;/p&gt;

&lt;p&gt;The CloudBees platform isn't a one-size-fits-all solution, because no such solution truly exists in the diverse world of software delivery. Instead, we offer a spectrum of use cases, adaptable and moldable, to ensure that every organization, irrespective of its unique landscape and vision, finds its perfect fit. The future of DevSecOps is not just about innovation; it's about tailored innovation. &lt;/p&gt;

&lt;p&gt;Welcome to the future, powered by CloudBees. Take a leap, see the difference, and let’s craft the future of DevSecOps together.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.cloudbees.com/products/saas-platform" rel="noopener noreferrer"&gt;Learn more about the new CloudBees platform&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://id.cloudbees.io/realms/cloudbees/protocol/openid-connect/auth?client_id=nextgen-ui&amp;amp;redirect_uri=https%3A%2F%2Fcloudbees.io%2F&amp;amp;response_type=code&amp;amp;scope=openid+profile+email&amp;amp;state=c2c9e9dd30bc4e0da3ca7ff848b4354c&amp;amp;code_challenge=6GMXmFLVfp0WRfqhuaZcb_OcxuZFZ0OY75JmfNtCp7s&amp;amp;code_challenge_method=S256&amp;amp;response_mode=query" rel="noopener noreferrer"&gt;Sign up for free and let the CloudBees platform elevate your DevSecOps endeavors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cicd</category>
      <category>devsecops</category>
      <category>kubernetes</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>How to Disable Code: The Developer’s Production Kill Switch</title>
      <dc:creator>CloudBees</dc:creator>
      <pubDate>Mon, 15 Jun 2020 15:21:16 +0000</pubDate>
      <link>https://dev.to/cloudbees/how-to-disable-code-the-developer-s-production-kill-switch-1bam</link>
      <guid>https://dev.to/cloudbees/how-to-disable-code-the-developer-s-production-kill-switch-1bam</guid>
      <description>&lt;p&gt;&lt;em&gt;The following is a guest post written by Carlos Schults.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Being able to disable code in production is a power that many developers aren’t aware of. And that’s a shame. The ability to switch off some portions—or even complete features—of the codebase can dramatically improve the software development process by allowing best practices that can shorten feedback cycles and increase the overall quality.&lt;/p&gt;

&lt;p&gt;So, that’s what this post will cover: the mechanisms you can use to perform this switching off, why they’re useful and how to get started. Let’s dig in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Would You Want to Disable Code?
&lt;/h2&gt;

&lt;p&gt;Before we take a deep dive into feature flags, explaining what they are and how they’re implemented, you might be asking: Why would people want to switch off some parts of their codebase? What’s the benefit of doing that?&lt;/p&gt;

&lt;p&gt;To answer these questions, we need to go back in time to take a look at how software was developed a couple of decades ago. Time for a history lesson!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage2.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Dark Ages: Integration Hell
&lt;/h3&gt;

&lt;p&gt;Historically, integration has been one of the toughest challenges for teams trying to develop software together. &lt;/p&gt;

&lt;p&gt;Picture several teams inside an organization, working separately for several months, each one developing its own feature. While the teams were working in complete isolation, their versions of the application were evolving in different directions. Now they need to converge again into a single, non conflicting version. This is a Herculean task.&lt;/p&gt;

&lt;p&gt;That’s what “&lt;a href="https://www.atlassian.com/continuous-delivery/continuous-integration/how-to-get-to-continuous-integration" rel="noopener noreferrer"&gt;integration hell&lt;/a&gt;” means: the struggle to merge versions of the same application that have been allowed to diverge for too long. &lt;/p&gt;

&lt;h3&gt;
  
  
  Enter the Solution: Continuous Integration
&lt;/h3&gt;

&lt;p&gt;“If it hurts, do it more often.” What this saying means is that there are problems we postpone solving because doing so is hard. What you often find with these kinds of problems is that solving them more frequently, before they accumulate, is way less painful—or even trivial.&lt;/p&gt;

&lt;p&gt;So, how can you make integrations less painful? Integrate more often.&lt;/p&gt;

&lt;p&gt;That’s continuous integration (CI) in a nutshell: Have your developers integrate their work with a public shared repository, &lt;em&gt;at the very least&lt;/em&gt; once a day. Have a server trigger a build and run the automated test suite every time someone integrates their work. That way, if there are problems, they’re exposed sooner rather than later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage1.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Handle Partially Completed Features
&lt;/h3&gt;

&lt;p&gt;One challenge that many teams struggle with in CI is how to deal with features that aren’t complete. If developers are merging their code to the mainline, that means that any developments that take more than one day to complete will have to be split into several parts. &lt;/p&gt;

&lt;p&gt;How can you avoid the customer accessing unfinished functionality? There are some trivial scenarios with similarly trivial solutions, but harder scenarios call for a different approach: the ability to switch off a part of the code completely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Flags to the Rescue
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Defining Feature Flags
&lt;/h3&gt;

&lt;p&gt;There are many names for the mechanisms that allow developers to switch a portion of their code off and on. Some call them “feature toggles” or “kill switches.” But “feature flags” is the most popular name, so that’s what we’ll use for the remainder of this post. So, what are feature flags?&lt;/p&gt;

&lt;p&gt;Put simply, feature flags are techniques that allow teams to change the behavior of an application without modifying the code. In general, flags are used to prevent users from accessing and using the changes introduced by some piece of code, because they’re not adequate for production yet for a number of reasons.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disable Code: What Are the Use Cases?
&lt;/h3&gt;

&lt;p&gt;We’ll now cover some of the most common use cases for disabling code in production.&lt;/p&gt;

&lt;h4&gt;
  
  
  Switching Off Unfinished Features
&lt;/h4&gt;

&lt;p&gt;As you’ve seen, one of the main use cases for feature flags is preventing users from accessing features that aren’t ready for use yet.&lt;/p&gt;

&lt;p&gt;That way, programmers developing features that are more complex and take a longer time to complete aren’t prevented from integrating their work often and benefiting from it.&lt;/p&gt;

&lt;h4&gt;
  
  
  Enabling A/B Testing
&lt;/h4&gt;

&lt;p&gt;The adoption of feature flags enables the use of several valuable practices in the software development process, one of which is &lt;a href="https://rollout.io/blog/a-b-testing-with-feature-flags/" rel="noopener noreferrer"&gt;A/B testing&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;A/B testing is a user experience research technique that consists of comparing two versions of a website or application to decide which one to keep. It entails randomly splitting users into two groups, A and B, and then delivering a different version of the application to each group. One group might receive the current production version, which we call the “control,” whereas the second group would receive the candidate for the new version, called the “treatment.” &lt;/p&gt;

&lt;p&gt;The testers then monitor the behavior of both groups and determine which of the versions achieved better results. &lt;/p&gt;

&lt;p&gt;Feature flags are a practical way to enable A/B testing because they allow you to quickly and conveniently change between the control and treatment versions of your application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage4.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Enabling Canary Releases
&lt;/h4&gt;

&lt;p&gt;If you deliver the new version of your app to your entire userbase at once, 100 percent of your users will be impacted if the release is bad in some way. What if you could gradually roll out the new version instead? You’d first deploy to a small subset of users, monitoring that group to detect issues. If something went wrong, you could roll it back. If everything looked fine, you could then gradually release the version for larger groups. That’s a &lt;a href="https://rollout.io/blog/canary-deployment/" rel="noopener noreferrer"&gt;canary release&lt;/a&gt; in a nutshell. It’s another powerful technique that feature flags might help with.&lt;/p&gt;

&lt;h4&gt;
  
  
  Customizing Features According to Users’ Preferences
&lt;/h4&gt;

&lt;p&gt;It’s not uncommon to have to customize your application according to the needs of specific users, and there are several ways in which software teams can accomplish that—some more efficient, and others less so (companies that create separate branches or entire repositories for each client come to mind).  &lt;/p&gt;

&lt;p&gt;This is another area where feature flags could help, allowing teams to dynamically switch between different versions of the same functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disable Code in Production 101
&lt;/h2&gt;

&lt;p&gt;How do you go about disabling code? That’s what we’re going to see now, in three increasingly sophisticated phases.&lt;/p&gt;

&lt;h3&gt;
  
  
  First Stage: The Most Basic Approach
&lt;/h3&gt;

&lt;p&gt;We start with an approach that’s so primitive, it maybe shouldn’t be considered a feature flag at all. Consider the pseudocode below:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;calculateAdditionalWorkHours(Employee employee, Date start, Date end) {

    var result = useNewCalculation
        ? calculateAdditionalWorkHoursImproved(employee, start, end)
        : calculateAdditionalWorkHoursSameOldWay(employee, start, end);

    return result;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In the code above, we’re just commenting out the old version of some method and replacing it with a new version. When we want the older version to be used, we just do the opposite. (Well, I said it was primitive.) This approach lacks one of the most fundamental properties of a feature flag—the ability to change how the application behaves without changing its code.&lt;/p&gt;

&lt;p&gt;However, it plants the seed for more sophisticated approaches.&lt;/p&gt;

&lt;h3&gt;
  
  
  Second Stage: Taking the Decision Out of the Code
&lt;/h3&gt;

&lt;p&gt;The previous approach didn’t allow developers to select the desired version of the feature without changing the code. Fortunately, that’s not so hard to do. First, we introduce a logical variable to determine which version we’re going to use:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;calculateAdditionalWorkHours(Employee employee, Date start, Date end) {

    var result = useNewCalculation
        ? calculateAdditionalWorkHoursImproved(employee, start, end)
        : calculateAdditionalWorkHoursSameOldWay(employee, start, end);

    return result;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then, we use some mechanism to be able to assign the value to the variable from an external source. We could use a configuration file:  &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var useNewCalculation = config[newCalculation];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Passing arguments to the application might be another option. What matters is that we now have the ability to modify how the app behaves from the outside, which is a great step toward “true” feature flagging.&lt;/p&gt;

&lt;p&gt;Keep in mind that the code examples you see are all pseudocode. Using your favorite programming language, there’s nothing stopping you from starting with this approach and taking it up a notch. You could, for instance, use classes to represent the features and design patterns (e.g., factories) to avoid &lt;strong&gt;if&lt;/strong&gt; statements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage3-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage3-1.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 3: Full-Fledged Feature Flag Management
&lt;/h3&gt;

&lt;p&gt;The previous approach might be enough when your application has only a small number of flags. But as that number grows, things start to become messy.&lt;/p&gt;

&lt;p&gt;First, you have the issue of technical debt. Manually implemented feature flags can create terribly confusing conditional flows in your codebase. That only grows worse with new flags being introduced each day. Additionally, they might make the code harder to understand and navigate, especially for more junior developers, which is an invitation for bugs.&lt;/p&gt;

&lt;p&gt;Another problem is that as the number of flags grows, it becomes more and more common to forget to &lt;a href="https://rollout.io/blog/feature-flag-retirement/" rel="noopener noreferrer"&gt;delete old, obsolete ones&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The main problem of a homegrown approach is that it doesn’t give you an easy way to see and manage all of your flags at once. That’s why our third and final stage is a single piece of advice: Instead of rolling out your own feature flags approach, &lt;a href="https://rollout.io/blog/feature-flags-as-a-service/" rel="noopener noreferrer"&gt;adopt a third-party feature flag management system&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frollout.io%2Fblog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2020%2F05%2Fimage5.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Flags Are a CI/CD Enabler
&lt;/h2&gt;

&lt;p&gt;We’ve covered the mechanisms developers can use to disable portions of their codebase in production without having to touch the code. This capability is powerful and enables techniques such as A/B testing and canary releases, which are all hallmarks of a modern, agile-based software development process.&lt;/p&gt;

&lt;p&gt;The names for the techniques might vary—feature flags, feature toggles, feature flipper, and so on. The way in which the techniques are implemented can also vary—from a humble &lt;strong&gt;if&lt;/strong&gt; statement to sophisticated cloud-based solutions.&lt;/p&gt;

&lt;p&gt;But no matter what you call them, you can’t overstate the benefit these mechanisms offer. They’re an enabler of Continuous Integration, which is essential for any modern software organization that wants to stay afloat.&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>tutorial</category>
      <category>featureflags</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
