REDtalks.live #45 – being ‘open source’, practicing ‘social coding’

Great to have GitHub’s Christian Weber (t: @classicwebdog) on the show again to help us understand what being part of the open-source community is all about.

Some key theme’s from this episode:

  1. Git IS all about ‘Social Coding’
  2. GitHub is NOT your download server
  3. Adopting open-source is a lot like hosting a meetup; be present, communicate, and listen
  4. Be receptive to feedback

Watch now:

 

Thanks for listening!

REDtalks.live #44 – Security Automation /w Benn Alp

Welcome to episode 44 of REDtalks.live, your home of Ranting, Engineers, and Devops, where I’m joined by F5 Networks Global Security Solution Architect, Benn Alp.

Benn brings perspective based on many years of security experience across a range of roles and verticals. Learned in this episode:

  1. DevSecOps is finally getting some traction.
  2. Security vendors have started making more programmable security tooling.
  3. Culture is the most important thing to change in security. Removing the ‘no team’ label often attributed to security practitioners starts within the security team and how they serve the business.
  4. Benn’s arm movements are faster than the YouTube live-streaming frames per second transmission out of ‘Straya.

Enough words, watch now!

 

Thanks for listening!

REDtalks.live #43 – “API First Strategy” w/ Kin Lane

Welcome to episode #43 where I’m joined by super-famous API evangelist, Kin Lane – yes, the Kin Lane behind apievangelist.com

Watch this episode to learn about Kin’s background and how he’s helped many organizations of different sizes realize the benefits of an “API First” strategy. Or just watch to see if he really does look like this:

Theme’s in this episode:

  • API First strategy
  • API Politics
  • Applying API’s to existing technologies/services

Enough words, watch/listen here:

Thanks for listening!

REDtalks.live #42 – Dev’s gone rogue

There’s lots of talk in the computer networking media about the need to pick up some scripting/coding skills to stay relevant in the modern agile/DevOps world. To better understand this perspective, in episode #42 we take a look at it from the opposite direction… from that of two developers who switched to networking!

Joining me in this episode, Cody (who I refer to as ‘Cory’, not once, but twice… sorry, Cody – if that even is your name…) Green, and Daniel Edgar explain how developers look at networking and how to avoid the common miscommunication problems between the two important but very different worlds.

Thanks for joining me CODY Green and Daniel Edgar!

Thanks for listening!

REDtalks.live #41 – Grafana Dashboard update for SSL stats

Watch this episode to see how you can view F5 BIG-IP SSL statistics in the latest Grafana Dashboard for the BigStats telemetry exporter.

Well, I know I already posted the end of year wrap-up episode (REDtalks.live #40 – 2018 in Review) but I had a little free time and here we are on the very last day of the year with an update to add SSL statistics to the Grafana Dashboard for BigStats.

 

Thanks for listening!

REDtalks.live #40 – 2018 in Review

In REDtalks.live episode #40 we take a look at the activity throughout the year.

NOTE: We’re almost at 20,000 views on the youtube channel. Help us get there by clicking play on this video below:

2018’s REDtalks.live Posts:

In addition to the creation of two dedicated landing pages for:

Its been an honor creating content for you and I really appreciate the comments/feedback. Keep them coming! And if you have any ideas for episodes, please do get in touch here.

Thanks for listening!

REDtalks.live #39 – Me at Github Universe

Last week Github Universe happened. You missed it? I’m sorry. Don’t let it happen again!

Github Universe is awesome. Some things that stood out for me:

1) No Badge Scanning

It took me no more than 30 seconds to get through registration and collect my badge, a process that brings with it the reminder of how many times I’m going to be scanned onto follow-up email and call lists for things I’m really not interested in. Nope, not at Github Universe. Everyone is free to communicate without a sales/marketing push.

2) The Right People

Every sponsor stand I visited was staffed with the people that created/architected their offering. I can’t recall a conference where every interaction resulted in all the answers to all the questions, at once. That was pretty sweet, right there!

A quick example, I stopped by the Microsoft stand part way through a VS Code demo. I was approached and asked if I had any questions by an employee, who turned out to be one of the developers behind the Github Pull Request extension. Immediately after asking a question about the extension we were both looking at the source code and I was getting a detailed walk-through.

This made my week! And it didn’t just happen once…

3) Culture

The people at Github Universe were all on the same side: the sponsors, the guests, the event support staff, everyone went out of their way to ensure the best experience was had by all. I really cannot fault the execution…

4) My awesome demonstration!

Last, but not least, I appeared on the Github Universe Demo Desk where I demonstrated managing some F5 BIG-IP virtual appliances via Github Enterprise and the practice of Network Configuration as Code.

Here’s the powerpoint presentation: Introducing Network Configuration as Code

And here are the videos:

Quick Intro

 

RBAC & Config Rollback

 

Advanced – multi-change commit

 

REDtalks.live #38 – Grafana Dashboard for BigStats

Having good data is only part of a solution. There’s loads of data on my laptop, for example, that goes unused almost everyday. However, the practice of putting data to work via meaningful representation is how we plan effectively and make informed decisions!

For those who haven’t been following the development of BigStats, its an open source project for ‘exporting’ telemetry off of F5 BIG-IP devices to various destinations and databases. Now, with the release of the ‘Grafana Dashboard for BigStats’, you can start realizing the value of that exported data.

dashboard_overview1

Requires BigStats v0.4 or newer (get that here: https://github.com/f5devcentral/BigStats) installed on your BIG-IP.

Take it for a spin: https://grafana.com/dashboards/7958

Would be great to hear your thoughts!

Twitter: @PearceNathan
https://redtalks.live/BigStats/

 

REDtalks.live #37 – BigStats v0.4 released

BigStats v0.4 has been released! Yay!!! BigStats-300dpi

Way back in REDtalks.live #32 – Stats & Dashboards (May 25th) I demonstrated a prototype solution for getting useful data out of a BIG-IP and into various telemetry pipelines… Well, that was version 0.1, and now we’re up to version 0.4! So, what’s happened since?

Highlights from the RELEASE_NOTES.md file:

  1. We now have a RELEASE_NOTES.md file to track all the awesome!
  2. Support for Apache Kafka message brokers
  3. Support for both AS3 declarations AND traditional configurations (it originally only supported the AS3 declarative interface).
  4. Support for output sizing: Small (VIP Stats only), Medium (VIP + Pool stats), Large (working on this….)
  5. Support for Device Stats (RAM and CPU)
  6. Apache Kafka ‘topic’ config:
    1. All data in one topic, or;
    2. Separate topics per BIG-IP Tenant
  7. Enforced minimum polling interval of 10 seconds (play safe, kids)
  8. Added “config.enabled: true|false” to the config because, sometimes you want some peace and quiet.
  9. Provided a BigStatsSettings object schema (schema validator might be coming soon..)

Here’s an sample stats object built from crawling the running config of a BIG-IP every ‘config.interval: n‘ seconds:

{
        "ip-172-31-1-20-us-west-1-compute-internal": {
                "services": {
                        "Tenant_01/App1": {
                                "/Tenant_01/App3/172.31.4.11:80": {
                                        "clientside_curConns": 0,
                                        "clientside_maxConns": 0,
                                        "clientside_bitsIn": 0,
                                        "clientside_bitsOut": 0,
                                        "clientside_pktsIn": 0,
                                        "clientside_pktsOut": 0,
                                        "/Tenant_01/App1/web_pool1": [
                                                {
                                                        "172.31.10.112:80": {
                                                                "serverside_curConns": 0,
                                                                "serverside_maxConns": 0,
                                                                "serverside_bitsIn": 0,
                                                                "serverside_bitsOut": 0,
                                                                "serverside_pktsIn": 0,
                                                                "serverside_pktsOut": 0,
                                                                "monitorStatus": "down"
                                                        }
                                                },
                                                {
                                                        "172.31.10.111:80": {
                                                                "serverside_curConns": 0,
                                                                "serverside_maxConns": 0,
                                                                "serverside_bitsIn": 0,
                                                                "serverside_bitsOut": 0,
                                                                "serverside_pktsIn": 0,
                                                                "serverside_pktsOut": 0,
                                                                "monitorStatus": "down"
                                                        }
                                                },
                                                {
                                                        "172.31.10.113:80": {
                                                                "serverside_curConns": 0,
                                                                "serverside_maxConns": 0,
                                                                "serverside_bitsIn": 0,
                                                                "serverside_bitsOut": 0,
                                                                "serverside_pktsIn": 0,
                                                                "serverside_pktsOut": 0,
                                                                "monitorStatus": "down"
                                                        }
                                                },
                                                {
                                                        "172.31.10.114:80": {
                                                                "serverside_curConns": 0,
                                                                "serverside_maxConns": 0,
                                                                "serverside_bitsIn": 0,
                                                                "serverside_bitsOut": 0,
                                                                "serverside_pktsIn": 0,
                                                                "serverside_pktsOut": 0,
                                                                "monitorStatus": "down"
                                                        }
                                                }
                                        ]
                                }
                        },
                        "Common": {
                                "/Common/172.31.4.200:80": {
                                        "clientside_curConns": 0,
                                        "clientside_maxConns": 0,
                                        "clientside_bitsIn": 0,
                                        "clientside_bitsOut": 0,
                                        "clientside_pktsIn": 0,
                                        "clientside_pktsOut": 0,
                                        "/Common/noAS3_POOL": [
                                                {
                                                        "172.31.10.200:8080": {
                                                                "serverside_curConns": 0,
                                                                "serverside_maxConns": 0,
                                                                "serverside_bitsIn": 0,
                                                                "serverside_bitsOut": 0,
                                                                "serverside_pktsIn": 0,
                                                                "serverside_pktsOut": 0,
                                                                "monitorStatus": "down"
                                                        }
                                                },
                                                {
                                                        "172.31.10.201:8080": {
                                                                "serverside_curConns": 0,
                                                                "serverside_maxConns": 0,
                                                                "serverside_bitsIn": 0,
                                                                "serverside_bitsOut": 0,
                                                                "serverside_pktsIn": 0,
                                                                "serverside_pktsOut": 0,
                                                                "monitorStatus": "down"
                                                        }
                                                },
                                                {
                                                        "172.31.10.202:8080": {
                                                                "serverside_curConns": 0,
                                                                "serverside_maxConns": 0,
                                                                "serverside_bitsIn": 0,
                                                                "serverside_bitsOut": 0,
                                                                "serverside_pktsIn": 0,
                                                                "serverside_pktsOut": 0,
                                                                "monitorStatus": "down"
                                                        }
                                                }
                                        ]
                                }
                        }
                },
                "device": {
                        "memory": {
                                "memoryTotal": 7574732800,
                                "memoryUsed": 1525312880
                        },
                        "cpu0": {
                                "cpuIdle": 161495459,
                                "cpuIowait": 169763,
                                "cpuSystem": 292088,
                                "cpuUser": 973939
                        },
                        "cpu1": {
                                "cpuIdle": 160343033,
                                "cpuIowait": 68690,
                                "cpuSystem": 426881,
                                "cpuUser": 992052
                        }
                }
        }
}

Here’s the code/docs: https://github.com/f5devcentral/BigStats

In addition to all this awesome, I’ve also shared my lab environment setup details! So, if you want to build a Graphite/Grafana demo like in episode #32, or maybe you want to test against a single node Kafka Broker but don’t know how to do this, well, look no further. Here are all my lab setup instructions: https://gist.github.com/npearce/

Thanks for listening!

REDtalks.live #36 – Christian Weber from GitHub on Infrastructure as Code

Delighted to have GitHub’s Christian Weber on the show this week to share his experiences with Infrastructure as Code.

Watch this episode to hear Christian explain some personal experiences, from his days before he worked at GitHub, where Infrastructure/Configuration as Code would have made a big difference. Learn from first-hand experience how certain practices can bring order back to a dire situations.  But if you’re too busy right now, you could just come and hear our talk at the F5 Agility conference in Boston (August 13th – 16th) titled “Super-NetOps: Configuration as Code”


“…by treating everything, like a configuration file, as a template we go back into our previous state without relying on a failure state as a means of recovery…”

Christian Weber, GitHub


 

Enough words from me, Christian’s wisdom awaits you in the video below:

 

Thanks for listening!