How a DevOps Company Does DevOps
At JFrog, we believe in practicing what we preach by “drinking our own champagne.” This means that we not only develop and deliver market-leading products but also utilize our own solutions in our development processes.
When it comes to managing development environments, we aim to implement the best-in-class approaches. By adopting these top-tier practices, we ensure that our development environments are optimized for efficiency, reliability, and innovation, enabling us to deliver exceptional products to our customers.
In this blog, I’ll share how a DevOps company uses its own products to enhance efficiency and effectiveness in all engineering processes. Keep reading to learn about:
- Our goal of driving innovation in a fast, secure, and budget-friendly manner
- Differentiating between freestyle and paved paths. If you’d like to read more on the paved paths, check out Microsoft’s blog
- The JFrog paved path in R&D environments
- How to spin the right environment at the right time
- JFrog’s DevOps practices, including functional testing and monitoring
To hear me speak about all of this, plus see a short demo of the platform, you can also watch the webinar version of this content.
JFrog’s DevOps Goals
Our number one goal is to drive innovation in a way that’s fast, secure, and within budget. It’s also critical to maintain high uptime. Because of our range of offerings, we also need to balance the needs of both on-premises and SaaS platform customers, which means that our development environments need to support both use cases.
Freestyle vs. Paved Path
The “freestyle” and “paved path” approaches offer different benefits for engineers at different stages of development. Here’s a quick description of each:
Freestyle
- Enable fast yet secured prototyping; explore new technologies
- Minimal guardrails
- Engineer has R/W permissions & ability to deploy
Paved path
- Enable secured and high-quality delivery to production
- Quality/Security/FinOps guardrails
- Deploy permissions only
The freestyle approach is one where engineers have full freedom to explore and experiment with new technologies without any boundaries (except for security, of course). If I’m an engineer, I want to do fast prototypes while exploring new technologies and I don’t need heavy guardrails because it’s not yet in production. I should have full flexibility to experiment because what I’m working on isn’t with the customer yet.
In contrast, the “paved path” approach comes into play once an experimental project has proven successful and needs to be brought into an enterprise-grade environment. Once we have something viable, we need to stress-test it by working with it like we would in production. We need to apply more guardrails in order to see how it might actually perform in the hands of the customer.
Both paths are necessary at various points in the development process, so we need to enable both for our engineers.
The JFrog Paved Path in R&D Environments
DevOps practices at JFrog involve a gradual hardening process as projects transition from exploration to production.
Below, I’ve outlined a staged funnel starting from exploratory stages, where there’s minimal hardening, up to production-like environments where extensive hardening is required.
- Exploratory – No hardening; completely open for experimentation
- Freestyle – Innovate with more support of company tools and processes
- Evaluate – Evaluate innovation in a production-like environment
- Stress Test – Test to find out if it’ll work at the scale of production
As we move through these stages, we start to get more and more like the version control, the pipelines, or any additional security hardening that we would like. We enable a self-service for our engineers self-service because we need to be able to monitor and remediate the environments so they are up and running at all times.
From Innovation to Production (On-prem and Cloud)
JFrog uses its own products in the development process, testing new versions in an environment identical to that of a large customer. For example, if at production we have Artifactory 7.69, then we’ll develop the next version on 7.69, which will become the 7.7, 7.8, and so on. We use the current version of our own products to develop the next generation, new features, and new innovation.
Functional testing flow
In 2022 and 2023, JFrog also made efforts to harden its processes and upscale its infrastructure to handle increased data transfers. This was achieved by moving JFrog’s R&D cluster to its production class. We had all the elements and the journey was to bring our processes to the next level. We built them to scale with self-service.
A Self-Service System
JFrog has implemented a self-service system for engineers to spin up their own production-like environments. All you have to do is select your deployment type, choose the products that you want to deploy, and you get an environment where you can run all your tests. If they work, you can then distribute, push it to release and distribution. If it doesn’t work, then you’re in a debug phase until the issue is fixed.
This self-service system is highly convenient and efficient, as engineers can independently run tests and debug issues without having to file tickets or requests.
Recap
In a nutshell, here’s how a DevOps company does DevOps:
- JFrog uses its own products, like Artifactory, to develop our next generation of products.
- We use a dual approach of freestyle and paved way to drive innovation and maintain high-quality delivery.
- We have moved JFrog R&D cluster to JFrog production class, enabling us to scale data transfer from 50 terabytes to over 100 petabytes.
- We have a self-service system for engineers to spin up production-like environments without needing to file tickets.
- We use a performance test to ensure that our products can handle the load and stress of both on-prem and cloud customers.
The good news is, you can start applying some of the best practices I’ve just shown you right away! If you’d like to learn more about the JFrog Platform, schedule a demo or sign up for a free trial.