Categories
Self-Hosting

5 DevOps best practices to reinforce with monitoring tools

This blog is contributed to Developer Nation by Netdata

As part of a modern software development team, you’re asked to do a lot. You’re supposed to build faster, release more frequently, crush bugs, and integrate testing suites along the way. You’re supposed to implement and practice a strong DevOps culture, read entire novels about SRE best practices, go agile, or add a bunch of Scrum ceremonies to everyone’s calendar. Every week, the industry recommends that you “shift-left” another part of the DevOps pipeline, to the point where you’re supposed to handle everything from unit testing to production deployment optimization from day one.

While you might have some experience in monitoring software, the reality is that as an aggregate, some others around you probably don’t. According to the Stack Overflow Developer Survey 2020, nearly 40% of developers have less than 5 years of professional experience. There’s not enough time for anyone to learn all these DevOps tools and best practices while also putting meaningful code into a GitHub repository on a regular basis.

Monitoring, and the metrics data it creates, can be a powerful way to encourage DevOps best practices through a common language, and implementing it doesn’t have to be complicated or time-consuming. By combining a DevOps mindset with a “full-stack” monitoring tool, you can start getting instant feedback about the performance and availability of what you’re trying to build—without waiting another 5 years for your team’s DevOps experience to catch up.

If your team has already settled on a monitoring tool, you can start applying these best practices today. If you’re still looking for the right piece of kit, you can start making informed tooling decisions based on what’s going to strengthen your team.

Focus on infrastructure monitoring first

When we talk about monitoring software for DevOps teams, we’re talking primarily about infrastructure monitoring. Infrastructure monitoring is the practice of collecting metrics data about the performance and availability of an application’s “full stack.” That’s everything including the hardware, any virtualized environment, the operating system, and any services (like databases, message queues, or web servers) that might make your application possible.

Depending on the full stack’s complexity, infrastructure monitoring can mean keeping an eye on a single virtual machine (VM) running on Google Cloud Platform (GCP), a Kubernetes (k8s) deployment with dozens of ephemeral nodes that scale horizontally during periods of high usage, or anything in between.

Here’s some key infrastructure metrics to keep an eye on using your monitoring tool (Netdata included):

If you can collect eBPF metrics, that’s even better, even if you aren’t experienced enough to make sense of them yet. eBPF metrics are still very much the cutting edge of infrastructure monitoring, providing extremely granular detail into exactly how the Linux kernel deals with your full stack, so there’s still a lot of flux in recommendations and best practices.

Monitor performance and availability in every environment

Modern DevOps teams should be monitoring the full stack no matter where it runs. This presents quite a large break from tradition, where the operations (Ops) team handled monitoring only once the application was running in production. The perception was that seeing users interact with a full stack was the only way to catch real bugs.

The latest best practices acknowledge that it’s possible—even inevitable—to catch bugs early by monitoring everywhere. That starts with local development servers and extends to any number of testing, staging, or production environments. That also means the monitoring tool should work whether the application is running off the latest M1 Macbook Air or in a multi-cloud deployment across dozens of virtual machines (VMs).

Before you go rushing into your next release process, take time to develop the tooling to monitor in more places. That might mean creating a custom Dockerfile for local development, or adding hooks into your CI/CD toolchain to deploy a fresh staging environment every time a developer reaches a milestone.

How’s this for an easy deployment experience in any environment?

Collect everything, worry about it when you need it

The only way to know that something is going wrong with your application’s infrastructure is to have the data to support it. One common practice is to vacuum up every metric, store it for 2-3 weeks, and have it available if you need to go back in time and root cause an issue or outage.

One way to ensure you’re collecting everything is to choose a tool with high granularity. Every infrastructure monitoring tool collects and visualizes metrics at a specific granularity, which is another way of talking about the time period between one point of collection and the next.

One data point every 60 seconds = low granularity One data point every 1 second = high granularity If you have a transitive-but-critical error that comes and goes within 5 seconds, a low-granularity solution might not even show a blip, which means you still don’t know anything went wrong in the first place.

With low granularity, metrics are averaged out over long periods of time, which has the unwanted effect of flattening what should be a worrying spikes into nothing more than a blip in the noise.

Netdata itself uses an internal time-series database for storing per-second metrics in an efficient way, which gives you tons of flexibility to find the sweet spot between disk space considerations and keeping historical metrics around long enough for proper analysis.

Some DevOps teams even use tools like (e)BPF, which collect and visualize metrics with an event granularity, which means they can show you every event, and not just an average/minimum/maximum of data between two points in time.

Break down silos with metrics

One of the DevOps mindset’s core purposes is to break down existing silos between what used to be separate development (Dev) and operations (Ops) teams. In the past, the Dev team finished writing code, flung across the fence to the Ops team, and wiped their hands clean from whatever came next. The Ops team then spent their days putting out fires and understanding how the application worked.

DevOps is designed to stop this unproductive cycle, but it only works if everyone has access to the same platform and uses the same language: metrics. Choose a tool that’s accessible to everyone who touches application code or controls the production environment. That doesn’t mean having one person who controls the infrastructure monitoring dashboards and lets the rest of the organization look at it in read-only mode.

Make sure your monitoring tool encourages the sharing of information. Let anyone on your team, no matter their role, peek at your configurations or dashboards. By looking over your shoulder, they might learn something valuable, like a metric they’d previously overlooked or a unique troubleshooting strategy. On the other hand, the tool should also let anyone experiment and explore in a “sandbox” that doesn’t affect the core health and availability dashboards.

For example, Netdata Cloud uses the concepts of War Rooms, which are shared containers for DevOps teams who need to do infrastructure monitoring. Every node, alert, and custom dashboard in that War Room is shared between everyone, but each team member can freely create, reconfigure, and learn. No more keys to the dashboarding kingdom, and no more worrying about messing up someone else’s perfectly-crafted troubleshooting experience.

Bubble it up into continuous monitoring

While continuous integration (CI) and continuous delivery (CD; CI/CD) have gotten all the attention, a lot of DevOps practitioners have forgotten about continuous monitoring (CM). This practice helps DevOps teams track, identify, and make decisions from all collected metrics, across all environments, in real time.

While some consider CM the last part of the DevOps pipeline—the practice of monitoring an application in production—other organizations bring CM to the entire CI/CD toolchain, monitoring internal processes and tooling to identify issues before being released into the wild.

With a sophisticated CM strategy in place, your team can better respond to ongoing incidents, with the added benefit of making leaps in the 4 key metrics for DevOps success: mean time to acknowledge (MTTA), mean time to recovery (MTTR), mean time between failures (MTBF), and mean time to failure (MTTF). You’ll improve company-wide visibility into the performance and availability of its stack, and you’ll end up driving real business results, like happier users and improved retention. Because Netdata deploys (easily) everywhere, has highly-granular metrics, and lets users of all experience levels explore and learn their infrastructure, it’s perfect for leveling up a DevOp team with CM.

Don’t have a DevOps monitoring tool yet?

The IT infrastructure monitoring tools that make all these best practices come to life come in a huge variety of shapes and sizes, from open-source toolchains you cobble together on your own to enterprise-friendly monoliths that do everything but cost a ton.

Because there are so many moving parts, a lot of developers and DevOps teams hesitate when choosing an IT monitoring tool, and then end up with something that doesn’t actually empower them, knock down silos between teams, or ramp up the speed of development.

One choice that enables all of the above best practices, and many more, is Netdata. Download the free and open-source Netdata Agent to start implementing DevOps best practices and improve team’s performance know-how with a free, open-source monitoring tool.

Once you’re seeing metrics with per-second granularity, familiarize yourself with Netdata’s documentation and guides to explore more opportunities to explore, troubleshoot, and resolve even the most complex of full-stack issues.

Categories
Community

Ada Developers Academy: Diversifying the tech industry for good

The Developer Nation community takes great pride in collaborating with organisations that contribute to the diverse and inclusive evolution of the software development ecosystem. 

Featured in our blog spotlight today, the Ada Developers Academy whose mission is  to prepare women and gender expansive adults to be software developers while advocating for inclusive and equitable work environments. Ada primarily serves and addresses the needs of Black, Latine, Indigenous Americans, Native Hawaiian & Pacific Islander, LGBTQIA+, and low-income people. Here is more about Ada as explained by Alexandra Holien, VP of Revenue and Marketing, Deputy Director. 

Nine in ten students, employees, senior HR leaders, and human resources officers surveyed by Accenture in 2019 said that attracting women with tech experience is critical for their company’s success. 

Gender diversity brings substantial benefits to individual companies and the tech economy at large:

  • Bringing more women onto engineering teams directly improves product quality – by reducing problems like algorithmic or design bias, which are made worse by a lack of diversity. Companies with above-average diversity received 45% of their revenue from new products vs. 26% for companies with below-average diversity scores.
  • A study by the Stanford Graduate School of Business found that greater gender diversity raises tech company share prices. Companies in the top-quartile for gender diversity on executive teams are 21% more likely to outperform and out-earn the U.S. average (WomenDeliver.org), and tech companies led by women are more capital-efficient than companies run by men, achieving 35% higher ROI and, when venture-backed, 12% higher revenue (Kauffman Foundation). 
  • Companies with inclusive environments nurture innovation and shrink the gender pay gap. A study by the Gallup Organization found that more diverse companies have 22% less employee turnover rate; creating faster, sustainable growth.

Still, many companies struggle to recruit and retain diverse talent – that’s where Ada Developers Academy comes in. 

Our one-year, tuition-free coding school fast-tracks women and gender-expansive* folks into junior software developer roles. Through six months in the classroom and five months in an industry internship with one of our company partners, Ada students build the skills and experience they need to become developers. We know our model works – 94% of our graduates are hired into full-time software engineering jobs within six months of graduation. 

We develop engineers who are highly skilled and collaborative; graduates are experienced in practical, team-based software development and learning new technology rapidly. Our students are highly diverse; all are women or gender-expansive, 72% are people of color, 40% are racial minorities underrepresented in tech (Black, Latine, Indigenous, Native Hawaiian/Pacific Islander), and 34% are LGBTQIA+. Through our internship program, we help you find your future software developer from our diverse talent pool while also providing inclusive leadership training to managers to build better teams, better tech, and better business.

Our company partners rave about Ada graduates:

“Ada is a great partner that produces professional, and technically skilled women, who have proven successful in a fast-paced, technically challenging environment. Not only have the employees that we have hired through Ada internships continued to grow in their careers, given the strong foundation they started with, but they have all been strong carriers of our core values. They are collaborative, communicative and passionate about their work…I’ve gotten to know a lot of different coding education programs, and Ada continues to be a favourite to work with.”

Zillow 

“Diversity and Inclusion in the workplace is a top priority for Skytap. We know we still have a long way to go, but also recognise, we would not be where we are today without Ada. We have learned a great deal on the importance of having diverse talent and perspectives and ​inclusion in the workplace at all levels. Our organisation absolutely reaps the rewards by having more diversity in thought as we build a great product for our customers.”

Skytap

“The ability to attract outstanding tech talent is one of our greatest challenges. Ada has allowed us to do that while increasing the diversity of our workforce. Our software engineering organization is now 30% percent female — three times the national average. Ada has had a huge positive impact on our work culture. We’ve made improvements in our inclusivity and hiring practices, and it’s awesome to give our male developers the opportunity to work with devs who break the mold and shatter stereotypes.”

EnergySavvy

“After graduating from Ada, I not only successfully entered the industry but also advanced my career more quickly than I ever thought possible. Now, as a CTO, I can create opportunities for so many more people from non-traditional backgrounds, and I’m excited to impact how a whole company thinks about talent.”

Strike Graph CTO and Ada alum

“We want and could employ so many more Ada students.”

Amazon

Ada welcomes companies of all sizes to share in our mission by becoming a partner. We not only partner with tech heavyweights like Amazon, Google, Uber, and Microsoft, but also smaller companies and startups seeking diverse talent. Alexandra Holien, VP of Revenue and Strategy at Ada explains, “Companies are finally seeing the positive impact diversity has on productivity and the bottom line. DEI has steadily and rightfully become a priority for big tech. We are giving them direct access to the most diverse pool of talented coders that will transcend the next generation.” 

After nearly ten years of success in Seattle, Ada began expanding operations across the U.S., starting with Atlanta in 2021 and the greater Washington, D.C. area in 2023. “Our aim in expanding to diverse cities that are beginning to experience tech industry growth is to ensure that the wealth generated by the industry benefits the whole community and not just a select few,” says Ada CEO Lauren Sato. “Coming from Seattle, we have seen how booming tech can push communities out of their city, and we hope to see Atlanta become the first market to grow tech from within.” 

Since our founding in 2013, Ada has served over 1,000 participants and generated $50M in new salaries for women and gender-expansive folks in the tech economy, narrowing gender and racial equity gaps in one of our most prosperous and influential sectors. 

Learn more at www.adadevelopersacademy.org, and contact partnerships-team@adadevelopersacademy.org for information on partnering with us. Follow Ada on LinkedIn, Instagram, TikTok, Twitter, or Facebook

*Ada uses a national reference for the term “gender-expansive” (also sometimes called non-binary, non-conforming or genderqueer) and Transgender provided by GLAAD: https://www.glaad.org/reference/transgender