Tag: devops evolution

  • DevOps World 2022: DevOps is Not Just CI/CD

    DevOps World 2022: DevOps is Not Just CI/CD

    There was a time when pundits said that DevOps was the symptom and CI/CD the cure. While that may or may not be true, there is no denying that CI/CD is the very heart of DevOps. While that might still be true, DevOps today is so much more than CI/CD; it has evolved, far beyond just its core of CI/CD.

    In my preparations for the upcoming DevOps World 2022, held in Orlando, Florida, September 27 to 29, I’ve been briefed on upcoming product announcements by the CloudBees product team. I find it fascinating to see where the CloudBees product line is going. In many ways, CloudBees product evolution mirrors the evolution of DevOps itself.

    Today, DevOps includes areas such as observability, security and compliance, GitOps, cloud-native and more. Developing, integrating, testing and deploying software is only one aspect of today’s DevOps. Without divulging any specific product announcements that CloudBees will be making at DevOps World, I can tell you that CloudBees is on a journey that closely mirrors that of DevOps itself.

    In my opinion, this is as it should be. CloudBees was one of the pioneers of the DevOps movement. By harnessing Jenkins—the original DevOps killer app—CloudBees helped move DevOps into the mainstream. Of course, Kohsuke Kawaguchi (KK), the creator of Jenkins, has moved on from CloudBees and the Jenkins community was always independent of CloudBees. Nevertheless, many of us in the field see CloudBees and Jenkins as inextricably linked.

    While Jenkins is still widely deployed and used, it is no longer the epicenter of the DevOps universe. Over the last couple years, CloudBees has transitioned to become much more than just Jenkins or Enterprise Jenkins and remains at the center of DevOps innovation.

    This year‘s DevOps world will be a great opportunity for CloudBees to showcase just how far they’ve come from being solely the enterprise Jenkins company while remaining a preeminent end-to-end DevOps tools provider. If you want to know just how far, well, stay tuned for our coverage of DevOps World where we will be covering all of the product announcements as well as speaking to CloudBees executives and customers about the new products and product lines and capabilities that will be announced.

    I have written before that the theme for DevOps World this year is DevOps Remix. Our own DevOps Experience virtual event, coming in November, has a theme of DevOps Everywhere. I think both of these themes speak to the same general idea: DevOps is going where it’s never gone before. It has evolved beyond CI/CD to a new way of developing, delivering and managing software that includes securing it and testing it. Over the next few years, I think we’ll see we’re entering a new golden age of DevOps.

    If you can, join us in Orlando for DevOps World. Techstrong.TV will be broadcasting live from the event; if you can’t make it, we’ll keep you updated on all of the developments announced there. Also, join us in November for our own DevOps Experience virtual event, which will highlight DevOps Everywhere: The Edge and Beyond. Hope to see you soon!

     

  • Then and Now: The Evolution of DevOps Culture

    Then and Now: The Evolution of DevOps Culture

    There are many available resources dedicated to delivering better business value faster. Based on this advice, many organizations and teams are adopting common software delivery practices — even outside the usual use case of providing software (take, for example, SpaceX teams using agile, or leadership teams that use scrum practices and have daily stand-up calls). This progression into faster, better, cheaper and easier – no matter what you’re delivering – is what makes incorporating DevOps into business practices critical to delivering unmatched value for end users.

    Then and Now

    A great perspective to consider when approaching the subject of DevOps is how technology has changed just about everything – how we build, connect, share and educate. Up until the 2000s, for example, the standard turnaround time for taking and sharing pictures was one to three weeks, if not longer. This process used to involve film cameras, darkrooms to process the photographs, photo finishing labs and hard copy, physical prints. Today, our mobile devices allow us to snap hundreds of professional-quality images and share them immediately online.

    culture evolution

    These earth-shattering changes don’t apply to photography alone, but to many other industries including financial services, banking and IT. Consistently, technology is finding new ways to disrupt industries, priming them to be more efficient to fit into our fast-moving lifestyles.

    The DevOps Life Cycle

    Now, let’s look at software delivery. In the past, the process of traditional software delivery was linear and sequential; waterfall methodologies offered little flexibility and did not succumb to the nature of change and demand for technology services we see today. What we’ve experienced with software delivery now uses DevOps to leverage new insights through people, processes and technology, giving organizations the ability to deliver continuous business value. Yes, that means businesses are adding value to our lives all the time, whether you see it or not. For technology organizations, this process for delivering business value is modeled through what we call the DevOps life cycle — understood through the graphic below.

    DevOps culture evolution

    Getting to a DevOps Culture

    Often, an organization’s challenges with DevOps do not lie in the technology or processes themselves, but in the people part of the equation – how we work together to deliver value via cross-functional teams. To understand what building a DevOps culture means, we need to look at what culture encompasses and how our people, process and technology work together to enable a successful DevOps life cycle.

    culture evolution layers

    This layered graphic features all the various components related to culture. Each layer encompasses the next.

    ·      Mindset

    ·      Values

    ·      Principles

    ·      Practices

    ·      Tooling

    Getting to a DevOps culture involves articulating change both from the bottom up and top down in our organizations and is, therefore, no easy feat. Before we can introduce or discuss tooling, we need to understand how our practices and principles help us achieve our outcomes. Each inner layer requires the outer layer to be successful before we can truly get to defining and strengthening a DevOps culture.

    Here are my tips for getting to a DevOps culture:

    ·      Learn from and develop skills from mistakes

    ·      Focus on the important priorities

    ·      Capture collaboration

    ·      Perfect your tooling

    The DevOps Principles

    DevOps is the collection and collaboration of people, processes and technology to deliver software value continuously. Here are some core DevOps principles you can use to guide you on your DevOps journey.

    Create With the End in Mind

    High-performing teams work best when leaders and individuals understand their role in the team. Therefore, creating with the end in mind involves reassessing and often asking big picture questions, like “Who is this delivery for?” and “Why are we doing it this way?” Keep the vision in mind and make adjustments along the way.

    Even the most famous photographs in history involved many adjustments and numerous attempts to get it right. Creating with the end in mind means knowing we may not have everything right the first time around. That’s okay! Similarly, life isn’t without its own distractions, conflicts and changes. Keeping the target outcomes in mind helps us align to initiatives and actions, and to question when they don’t align.

    Cross-Functional Teams

    Many products and deliveries involve multiple people. For example, some of the best Marvel cinematic universe (MCU) movies were made thanks to the help of multiple production teams and partner companies coming together to build the powerhouse we know today. Not to mention, in my opinion, some of the best superhero movies of our time. We succeed with software delivery in the same way: by having fully responsible cross-functional delivery teams.

    The best engineering teams I’ve been on are made up of independent and autonomous individuals who know how they can contribute to the work in progress. They’re also willing and unafraid to collaborate with others to get this work done.

    Commitment to the Journey

    “I am not here to be right. I am here to get it right.” – Brené Brown, from the book Dare to Lead.

    Even with cross-functional delivery teams and creating with the end in mind, our teams still may not get everything right the first time around. Committing to DevOps is about accepting any failures that come during the journey. Committing to the journey doesn’t mean you can’t define what it involves, even if it’s out of the ordinary. Experimentation is also a part of how we, as developers, adapt to change and adopt novel approaches to delivering faster, cheaper and better software.

    The DevOps Principles as Guides

    Use these principles as the foundation for how to work together, but also use the right tools, and define and improve processes along the way. In photography, there are three components that serve as building blocks to the final images we capture: aperture, shutter speed and ISO. In DevOps, it’s our people, processes and technologies. Achieving high performance with DevOps involves all of these components working together and adjusting to our environment, situation or team.

    The key to getting to the results you desire? Not getting blindsided by any single component of getting to that result.

    The DevOps Practices and Tools

    I like to consider this section the call to action; the one says to our teams and individuals, “Gear up!” No reasonable photographer would leave for a photoshoot without their camera and camera gear, right? Similarly, DevOps practitioners and teams need the right tools to get the desired results.

    Source Code Management

    Source code management is about allowing teams to collaborate, have version control, correct and revert software code. This is fundamental for many teams to increase not only visibility and collaboration, but also start automation workflows.

    If you are an individual just starting out with writing code, I recommend learning the basics of Git, such as how to add, commit, push, merge, branch and clone code. If you’re a team, I recommend discussing the practices and standards you want to use for collaborating. Always fit your Git structure and workflow to your codebase and team dynamics.

    Continuous Integration

    What continuous integration (CI) does is take code away from local machines to package it into a deployable artifact in a CI server. What this is designed to do is automate the integration of newly committed code changes. This process is often triggered by code changes pushed into your Git repository. Using checks and other tools, teams can version and release artifacts that have already been vetted for quality and security.

    Continuous Delivery

    Continuous delivery, on the other hand, takes artifact code to production environments. CD aims to deliver code changes of all kinds to users in a fast, repeatable and safe manner. CI/CD consists of both CI and CD pipelines working together to deliver code to users.

    Infrastructure-as-Code (IaC)

    Infrastructure-as-code allows users to define hardware through code. We can improve how we provision, configure and maintain hardware systems. Infrastructure provisioning tools like HashiCorp’s Terraform and AWS Cloud Formation, configuration automation tools like Ansible, Puppet and Chef and package managers like Helm allow teams to accomplish much more when software scales and demand increases.

    Secrets and Identity Management

    Security is everyone’s responsibility. Secrets management and identity management tools make accomplishing DevSecOps easier by securing and managing sensitive information. Teams should consider how they are handling secrets and users within their architecture. HashiCorp Vault, KeyCloak, KMS and other similar tools can help you achieve your goals around security.

    There are many other practices and tools DevOps teams and organizations can use to achieve their desired outcomes. What works for one team may not work for another — hence the need to innovate and experiment in a controlled and well-led manner. Other practices that can increase your team’s ability to deliver value include value stream mapping, progressive delivery, GitOps and chaos engineering.

    People, processes, and technology belong together in a DevOps culture. While practice makes perfect, what’s more important than perfection is gathering the right answers along the way. Everything doesn’t need to be right the first time around. Just remember that no leader, individual or team in DevOps is alone. We started by defining what it means to build a DevOps culture, change mindsets and set principles and practices, so now I ask you: What does DevOps mean to you?

  • Steps on the Journey to DevOps

    Steps on the Journey to DevOps

    There was a time when people thought DevOps was a simple movement that didn’t need to be defined. I have always been told that big leaps won’t get you to your destination immediately, but little steps will get you there one day. For DevOps, the day has come, gaining mindshare among organizations and given importance like never before. However, certain companies are unable to understand what’s going on in their respective industries or how one they make their digital operations more productive.

    The Evolution of DevOps

    In 2007, Patrick Debois, a Belgian engineer, saw a growing friction between developer and operation teams. As a developer, he understood really well that development and operations can never go hand in hand, but he saw a golden opportunity to make the most of agile methodologies to manage infrastructure management processes in the similar way developers do. Initially being described as agile infrastructure, the concept was later coined as DevOps—a portmanteau of development and operations.

    A year later, in 2008, O’Reilly Media ran the very first Velocity conference, founded on the same insight: software developers and web operators never being on the same page even after sharing the same goals and language. The effort was meant to gather the tribe into one room, to talk with each other and share insights. It is said that much of the DevOps movement grew out of the Velocity conference.

    With the internet growing rapidly and sites such as Amazon, Google, Flickr, Facebook and YouTube becoming monstrous entities, those in IT witnessed seeing websites grow from one server to a dozen and even thousands. As a result, the business consequences of downtime, or of poor performance, skyrocketed.

    The need for DevOps grew with the growth of websites. And to blur the boundaries between development and operations, DevOps came into existence. Today DevOps became more than an idea. But unfortunately, the shift hasn’t been easy for everyone. DevOps has been focused too heavily on development and operations hasn’t enjoyed an equal share of improvements.

    5 Stages of DevOps Evolution

    Normalize the technology stack: The process starts from here. Several teams have started adopting true agile methods and are implementing proper version control as they seek to provide continuous integration and delivery. In fact, this is when redundant technologies are eliminated and the stack is normalized, which means practitioners must build on a standard set of technologies and place application configurations in version control.

    Standardize and reduce variability: As noted, development and operations teams are working toward one goal. This means teams must work to make sure their technology is further consolidated to a single OS or OS family, process complexity is reduced and early collaboration opportunities are explored. This is also when system configurations should be placed in version control and applications should be rearchitected to fit business needs.

    Expand DevOps practices: At this point, all the foundational pieces should be in place. This phase is a cleanup phase for discrepancies created by previous changes. For instance, the output of the application development team must match that of the delivery for true effectiveness. At this point, individual contributors can do work without approval from outside the team and changes can be made without as much wait time.

    Automate infrastructure delivery: At this stage, a company can help lessen the discrepancies between development output and operations delivery times. As a result, everyone gets closer to being one on the same page. And things such as security configurations, system configurations and provisioning are automated, which means the DevOps team can deliver faster and is better set up for future self-service.

    Provide self-service capabilities: DevOps deployments are created here. Developers can deploy testing environments on their own, and success metrics are clearly visible to the entire team.

    Helpful Resources:

    — Jaymin Vyas