Modeling Value Streams using DevOptics Free Plan

Hot off the press: you can now model your value stream and track your deployment frequency using the Free Plan for CloudBees DevOptics. We released this new functionality as part of the ramp-up to next week’s DevOps World | Jenkins World San Francisco. There are two main new aspects: an improved, and free, value stream modeler, and extending the availability of deployment frequency available to the Free plan.


With the stream modeler you can capture how software flows through your system (or you can design how you want it to flow) by creating and connecting Gates. Then, if your flow is based on jobs running on Jenkins or CloudBees Core CI/CD masters, you can connect these gates to the jobs using the DevOptics Plugin and leverage the computational aspects of CloudBees DevOptics.

The connected masters need to be configured to a DevOptics account, either in a Free plan or in a Premium plan. Both plans provide CD platform monitoring (Run Insights) – the Free plan only provides 7 days of statistics while Premium extends that to 90 days. The Free plan now also provides Deployment Frequency metric for all gates, albeit also only for 7 days. The Premium plan adds two more Job-based metrics: Change Failure Rate and Mean Time to Recovery as well as Mean Lead Time. Mean Lead Time is based on Value propagation in the form of commits and tickets through your Value Stream, which is a key feature of DevOptics Premium.

You can get more details about all this from the CloudBees DevOptics User Guide, and you can try it out from devoptics.cloudbees.com!


Using the Value Stream modeler is straight-forward. Setting up the plugin to enable Deployment Frequency is pretty easy too but below I spell out the steps, starting right after my earlier post: Upgrading to the latest DevOptics


After connecting the plugin go to the Settings creen in DevOptics This is how it looks if you have configured only have Run Insights section of the Plugin:

And this is how it looks after connecting also the Value Streams section:

Now create your value stream:

Here is a very simple one-gate value stream

If we leave the gate unconfigured, it will look as this (note the wrench icon):

But, since we want to track Deployment Frequencies, we will now edit and configure the gate against one of the jobs in a master where a plugin has been installed. This is the configuration popup:

Save and you will see that the wrench goes away:

At this point we are ready! We just need to run some jobs on the master and data will flow, so…


We go to our Jenkins and run some jobs…


Now if we go back to the DevOptics app and look at the Value Streams screen we will see something like this:

On the Run Insights side, the graphs will initially look as below – note that the grey bars are gone and there is some empty space for the most immediate time interval:

But, if we wait a bit for the data to be propagated, we will see:

which is exactly what we expected.

So, there you go! Enjoy!

Day 1 building a SaaS

Here is my list of things to do ASAP when building a SaaS product (like DevOptics). What is yours?

Deployment Environments

Get a DEV (inside the firewall), STAGE (outside the firewall) and PROD (outside) set up.

Continuous Deployment

Arrange for your software flow so it will go from Repo commit to PROD automatically.

  • Implement zero-down time deployments from day 1, using blue-green, or k8s cut-overs

Feature Flags

Add Feature Flags (like Rollout) on Day One.  Stay in the trunk. Don’t keep code out of PROD.

Front-End Infrastructure

Set your front-end infrastructure for speed and decouple from back-end

  • We like GraphQL; others work
  • Arrange for Mock APIs
  • Set lightweight Front/Back separation
  • We like Cypress 

Instrument your System for Ops

Instrument on Day One using something like DataDog APM.  Reuse existing SaaS Services, don’t build your own.

Operate in Self-Contained Teams

A team should be able to build the back-end and the front-end.  Minimize interactions between teams. Get things to PROD.  PM and UX must be part of your team.

Keep Value Flowing

Don’t hog Value / Code in Open PRs.  Push functionality out, even with a Feature Flag.  Get Feedback. 

Iterate on Processes

That’s the core of “Agile”; operate with Agility and iterate

Add Connection with Customer

Use a SaaS service from Day One. There are multiple options out there.

Track Usage

Instrument your SaaS so you can track usage, front-end and back-end. Use something like Segment, Looker, Interana.

Upgrade your DevOptics – July 2019 Edition

DevOps World | Jenkins World SF is around the corner, so time for an update post to add to the collection of posts on DevOptics … et al.

Back in September 2018 I posted instructions on how to install your Jenkins distribution from scratch, and then how to install the DevOptics Plugins.  Let’s assume you had done that, so, picking up from there…

The first step would be to install the latest version of Jenkins.   Since I already had one, I just accepted the request from within Jenkins and installed the new version.  That got me from 2.121.3 to

Next was to upgrade the DevOptics Plugin

 By now I was running a fairly old version, I jumped from 1.1349 to 1.1739

The upgrade went pretty smoothly, and I restarted.  Then I went to look at the Connectivity status of the DevOptics Plugin.  Here, the latest Plugin is trying something different: it is asking me if I want to enable the Value Stream functionality.  Here is the screenshot:

The Value Stream functionality depends on additional plugins.  I can continue as-is, without installing the extra dependencies, or I can install the recommended plugins.  I chose the latter, and then I reinstalled.

I knew that my DevOptics subscription had changed recently, so, partly as an exercise, I disconnected the plugin and then reconnected.  This is the popup we get on disconnect

And this is the message we get on reconnect:

Cool.  Now I am back to where I was, except that now the new dependencies have been installed and my DevOptics plugin is fully connected.

At this point we are cooking and the Plugin should be connected to the back-end. Stay tuned for the next post in this series.

DevOptics Update – Dec 2018

The DevOptics team is hitting speed and we are cranking new features.  The CloudBees blog and the DevOptics ChangeLog are pretty good at tracking these changes but here is super-quick pass on some of the most recent changes.

Help now with ChangeLog and Support

We added links in the help icon to the DevOptics ChangeLog and, if the account is Standard or Starter-Kit to Support

Improved Modeling of Value Streams

The graphical value stream editor has been improved to help model Value Streams earlier in the development process.  The editor now allows the creation of new gates, new phases, connecting and deleting of gates and transitions, and, separate the mapping of these gates to jobs that are being instrumented.  By separating modeling from instrumentation, DevOptics now can be used easily to describe, reason about and improve the software delivery. 

Value Streams for Micro-Services

DevOptics now supports Value Streams that have multiple ending gates.  This corresponds to a software situation where there are multiple software pipelines, delivering multiple artifacts.  In the case of us, the DevOptics team, we have one software pipeline for each server-side (micro) services, and for our plugin.

Filters per Master in CD Platform Analytics

The CD Platform Analytics now supports filtering per master

Export Metrics to CSV

Metrics can be exports to CSV format for further processing or presentation

Group Tickets by Run

Previously tickets in a gate – shown in gate details – where sorted “chronologically”.  The precise date was that of the creation of the commit.  We now show the tickets grouped by the run that made them change gates. 

The new display is much more useful.  For example, in a deployment gate, the grouping shows what features were promoted in the last run, and that is what I, as an engineering manager, can use to track that activity

Produces / Consumes for Value Streams

There is a new mechanism for tracking the production and consumption in Gates.  We support scripted pipelines, withMaven steps, and Freestyle jobs.

Here are two examples from the section on pipeline steps of the documentation 

For more details check out the documentation:

And More…

I’m using the DevOptics tag for all the posts on that topic, so you can find them all HERE.

Work at Home Setup

I have been meaning to capture my work setup for a bit, so here is a quick note on it:

Physical Setup

Standing desk from Fully: a Jarvis bamboo adjustable.  I have a 48”x30” tabletop as I didn’t have space for a wider desk at the time but I would get a 60”x30” next time.  Desk is adjustable with electric motor w/ 4 presets. Totally worth the price.

Monitor is an old Apple 27 inch Thunderbolt.  I have two but I am currently running with a single one, with a tray for my laptop.  When I was using two monitors I had the right in landscape and the left in portrait with my laptop closed on a Kradl vertical stand, but I found I spent too much time moving windows around the screens and I like the cleaner setup of the current arrangement.   The monitor arms can handle the weight of the 2 monitors (23.5lb each), they are Chief Kontour K1D.

Keyboard (MS Natural Ergonomics 4000) and Mouse (Logitech) wired.  Cheap and reliable.

Chair from Ikea (Vagsberg).  Height is adjustable but tilt is not.  The dimensions works for me and its a very cheap chair.  I upgraded the castors with non-marking polyurethane wheels upgraded.

Dedicated “Spare” room, shared with pets (1 dog, 2 cats).

Geography

US West Coast.  Team ranges 9 TZs; I’m at the West side of the range.  I work from home close to 100% of the time, plus trips for meetings (elsewhere in the US, Europe).

Connectivity

Sonic.net (local, running on ATT Uverse).  50Mb/5Mb. I wish I had Fiber but there is no fiber in our area and I like the service from Sonic.  NetGear Orbi tri-band (not really) “mesh” router.   WiFi is available throughout the house.

Social Setup

Kids are grown up and living on their own.  Most of my social interaction is with the team (video, Slack) and with neighborhood, which has plenty of dog walking folks and kids walking to/from school.

Join us! Looking for a RSE/OPS/Cloud Engineer for DevOptics

The DevOptics team has an opening for an OPS person to contribute to our architectural, operational and implementation activity as a modern SaaS.  We are a distributed team operating across multiple time-zones.  We are looking for somebody that will work in Eastern / Central US Time-Zone.

We interact continuously online, synchronously and asynchronously, we complement this with F2F meetings.  Below is a photo from our last F2F, in Malahide, IRL.

IMG_3812
Our last F2F in Malahide

Job details HERE.  Looking forward to meet you!

PS.  We collectively speak (at least) 6 languages, have 8 nationalities, and live in 7 countries.  We value diversity although, as you can see from the photo, our efforts have not been fully successful.  Apply!

CloudBees DevOptics New Features (mid-Oct ’18)

This is an indirect link to the official post.

Our team has been delivering improvements to CloudBees DevOptics since DevOps World | Jenkins World 2018 in San Francisco.  Now, as we we head to DevOps World | Jenkins World in Nice, France, I want to point out how we use the continuous delivery model ourselves to improve and update our own products.

ModalWarning

The rest of the post is HERE.