Tag: enterprise devops

  • Making DevOps Work with External Contractors

    Making DevOps Work with External Contractors

    On a recent ‘virtual panel’ session, many questions came in real-time from almost a thousand attendees around the globe. I’ll try to cover the most interesting questions in this column over coming weeks, but one that came through many times is very typical of the discussions I have with my customers and others, especially those from larger enterprises:

    Q. How can we implement a DevOps approach with external contractors, consultants, vendors and service providers?

    Many of my customers regularly use external programming shops and third-party consultants, from across the street and across the globe. A majority also use third-party service providers, especially cloud and hosting services, to help delivery the on-demand infrastructure that fuels DevOps.

    The good news is that you can definitely incorporate these third-party vendors into your DevOps approach, even in a large enterprise, starting with a few simple steps.

    Establish Open Communication

    Establishing open communication lines is critical to DevOps, and no less so with external contractors and service providers. This open dialog should start at the planning stages, working together to establish common goals and expectations, including timelines, work methods, pace of delivery, and generally ‘how things work.’

    I recommend connecting face-to-face if at all possible, even if you can only do it once or twice, whether you meet at their place or they come to you. There is something special about meeting in person that brings to life many important DevOps concepts – like empathy, sharing, communication and cultural understanding.

    For large and globally diverse teams, in-person meetings can be cost- and time-prohibitive, but you can also achieve similar outcomes through virtual conferencing. Here I recommend immersive ‘tele-presence’ style systems, rather than the more common ‘cheap-and-cheerful’ web conferencing tools. Grainy headshots taken with low-res webcams, displayed seven-to-a-row in tiny windows, simply will not create the deep personal connections the same way as high fidelity communications.

    Maintain Ongoing Collaboration

    However, inexpensive web-based technologies are ideal for maintaining ongoing collaboration, once you have established those initial lines of communication. Use web–based video-conferencing to bring external consultants into your teams’ regular communications, from planning sessions and standup meetings to post-mortems and ad hoc chats.

    Also consider integrating external teams into your internal messaging systems, providing them with corporate e-mail addresses, including them in mailing groups and directories, connecting them to your chat and IM applications, and providing access to collaboration tools like shared workspaces and shared storage. None of this requires them to be on-site, or even in-country, but will help immensely to make them part of a collaborative, integrated team.

    Share Access to Internal Technologies

    Speaking of technologies, I have also seen multi-national and other cross-silo teams using common tools to share SDLC activities, status reports, system views, operational insights, and even vocabularies. Sharing access to common tools between contractors and employees alike – for example to share goals and assignments during planning, manage and report on project or backlog status, check code in and out, perform QA and integration tests, integrate new code into existing repos, release code updates into QA or prod, monitor and triage operational performance, or provide feedback from one system or team to another – definitely helps to connect and integrate external teams with internal teams.

    Share Processes with Automation Tools

    Automation tools in particular will help to integrate third-party contractors into established DevOps practices and processes. Shared automation allows you to make your ‘known-good’ processes a repeatable and reliable shared resource to all your teams, internal and external. Providing shared access to automated processes for check-out/check-in, code integration, test data management, provisioning and configuration, code release, and more helps external teams to adopt the same approaches, and implement change in the same ways, as internal teams – while also providing essential audit and control.

    Use Virtualization to Span the Globe

    Virtualization technologies especially will help to abstract internal environments for external workers – across the street or across the globe. Server and OS virtualization (and related approaches like containerization and cloud computing) allow easy exchange of common platform and build environments; network virtualization allows remote teams to code for abstracted internal networks; service virtualization allows multiple teams to develop and test in parallel even without shared access to internal systems; virtual storage allows teams to easily swap in or out common shared datasets; exposing functions or microservices as virtual APIs allows remote specialists to work independently yet still leverage others’ work; and of course virtual private networks allow secure access to internal systems for remote users anywhere.

    Find Your Own Approaches

    Fundamentally, there is no reason DevOps will not work with external contractors, consultants, vendors and service providers. Communication, collaboration and integration can certainly face new barriers at the enterprise’s edge, but these are not insurmountable. Ultimately you must find approaches that work for your enterprise – and I would love to hear about them in the comments below or on Twitter – but if you establish mutual goals, ongoing communications, common processes, and shared tools, you will be well on the way.

  • A Three Step Roadmap for Enterprise DevOps

    A Three Step Roadmap for Enterprise DevOps

    The extremes of application release velocity are converging in the enterprise. Whereas Fortune 500 enterprises may have historically taken months to years for each release cycle, they are exploring new approaches from new age Internet technology firms that release new versions of an application several times in a day.

    According to a recent report on DevOps adoption, 86% of IT and business decision makers have either implemented DevOps or will roll out DevOps initiatives within the next 3 years. There is a strong appetite for enterprise DevOps, but where do you start?

    For DevOps projects, Ops will need to shift from a systems management approach to a programmatic approach. Ops should work with Dev to figure out the automation required to provision and deploy the application. Here is a three step roadmap for enterprise DevOps for those organizations looking to roll out successful DevOps initiatives:

    Step 1: Select The Right Application Candidates.

    Not every enterprise application is a right candidate for DevOps. Traditional applications are not architected for DevOps velocity, whereas enterprise applications designed with agile and iterative techniques are excellent candidates for DevOps. DevOps may be an overkill  for applications where the underlying business process rarely changes. Dev and IT Ops should choose one or two applications for DevOps style implementation.

    Step 2: Manage Your Application Lifecycle With Automation.

    Provision applications as part of the build process itself. During deployment, Ops should be able to execute a piece of code to identify application monitoring needs. Your automation framework should manage application health without manual intervention.

    • Can you fix application issues using runbooks?
    • Do you have scripts for scaling, maintaining, and load balancing the application?
    • How do you plan for new releases?
    • How do you upgrade the application?

    Treat your infrastructure as code. Application configuration, deployment, and maintenance all need to be part of an automation framework. Ops should build concurrency with the application. You should be able to configure, deploy, and bring the entire application live within no time.

    Step 3: Embrace Compliance Driven Operations.

    Your IT Ops automation framework should deliver the right visibility to support more frequent releases without complex manual processes.

    • Are you able to automate monitoring of the infrastructure for delivering the best end user experience?
    • How do you ensure that the right infrastructure resources are available for running the application?
    • Can you keep your infrastructure current by maintaining the right patch levels?

    Enterprises can modernize application delivery pipelines by selecting the right application candidates, managing application lifecycles with automation, and embracing compliance driven operations. While you might never deploy code 23,000 times a day like Amazon.com, the Enterprise DevOps framework will help you release applications faster, with higher quality and lesser risk of deployment failure.

    About the Author / Varma Kunaparaju

    YaCNNVuUVarma Kunaparaju is CTO at Vistara and a seasoned technologist with over 20 years of experience leading engineering teams to deliver enterprise software. Reach him on twitter at: @varma1

     

  • The ROI of Enterprise DevOps

    The ROI of Enterprise DevOps

    Ever since the 1996 film Jerry Maguire, I can never think about any technology development without hearing Cuba Gooding Jr as professional footballer Rod Tidwell screaming out, “Show me the money!” So I was not surprised when the CIO of a large enterprise recently asked me the enterprise exec version of that famous line:

    Q. Where is the ROI in Enterprise DevOps?

    Fortunately there is plenty of evidence to show enterprise executives exactly where to look when trying to determine the ROI of DevOps.

    “Show me the money!”

    Here on devopsy.kinsta.cloud, Rajat Bhargava has posted on talking to your CFO about DevOps, outlining four key areas of financial impact: generating cash, reducing expenses, enabling growth, long-term stability. I also had some ideas about financial aspects of getting executive support for DevOps in a great article by Erica Chickowski. And site editor Alan Shimel has posted some excellent insight on vendor-sponsored research from IDC on the cost-benefit of downtime avoidance.

    “Show me the money!”

    Not enough? Well, we also have several years of research on ROI factors associated with DevOps adoption in both small businesses and large enterprises. The company I work for, CA Technologies, has commissioned independent third party research into enterprise DevOps adoption since 2013; Puppetlabs has run similar research [PDF] with good data on all sized organizations, but especially mid-sized businesses.

    You can see in the chart below the areas where benefit accrues through the adoption of DevOps (taken from CA Technologies/Vanson Bourne research released in November 2014):

    Image 1

    Still need more? No problem! There is also good data on how much of a return you can expect from DevOps. Again, the following chart is taken from the same CA Technologies/Vanson Bourne research:

    Image 2

    Figure 2 Respondents report seeing double-digit improvements in key technology and business areas. Total varies by benefit. Figure 1 & 2 Source: Vanson Bourne/CA Technologies 2014

     “Show me the money!”

    Okay, I get it – you still want more, and you want a straight answer – a single, simple heuristic to work with. In talking with many enterprise CxOs, faster application delivery is a pressing goal, so just this one factor can act as a key ROI driver. At the Continuous Delivery (CoDe) conference in Copenhagen in October, Jan Bosch (Professor of Software Engineering at Chalmers University of Technology) showed very elegantly how faster delivery acts to reduce (i.e. shorten) the ROI period.

    His theory is based on the premise that for many (most? all?) businesses, time to revenue is dictated substantially by product release cycles. Maximum revenue accrues around product release, then tails off before spiking again for the next new product release. For example, a smartphone manufacturer will get revenue in 6-month peak and trough cycle as they release a new device twice a year; a software vendor will get a revenue peak with a new game release, which tails off until new DLC is released or a new game hits the stores.

    Because DevOps can accelerate business cycles, Jan theorized, business can bring in revenue faster, which in turn makes a DevOps-based business more profitable over the mid- to long-term. This is especially critical in the modern application economy where almost every business is a software business.

    So, for example, if DevOps allows a business to release twice as fast, they can effectively double their annual revenue, as seen below.

    Image 3

    Figure 3 Proportional revenue acceleration from doubling product release frequency with DevOps

    The impact is exaggerated for this illustration, but based on actual data (see above), a 20% increase in annual revenue would be on par with enterprise averages.

     “Show me the … costs!?”

    Of course, any discussion of ROI must realistically reflect costs too. Adopting DevOps in a large enterprise is not free – it requires investment in people, process, and technology. On the people side, even just a small cultural change often requires new activities and other behavioral shaping. Process change requires training and often impacts short-term revenues. Technology investment includes procurement of automation and measurement solutions – key components of a CAMS (Culture, Automation, Measurement, and Sharing) approach to DevOps, especially in a larger enterprise.

    Many of the investment factors can be seen in the following chart, again using CA Technologies/Vanson Bourne research:

    Image 4

    Figure 4 Which of the following is your organization likely to invest in over the next year as part of your implementation of a DevOps methodology? Total = 499 ITDMs who have already or plan to implement DevOps in the next two years. Source: Vanson Bourne/CA Technologies 2014

     “Show me … my own ROI!”

    These ROI factors are of course a combination of averages, research data points, and anecdotes. As with all generalizations, when it comes to a specific enterprise your mileage may vary. However, this is certainly a good starting point when building a business case to prove the expected ROI for your organization.

    You may find other areas for ROI too – upstream in the PMO, DBA, or downstream in NetSec, training, documentation. If you have additional data points on finding the ROI for DevOps, I would love to hear about it. Add your ideas here in the comments, or connect with me and/or devopsy.kinsta.cloud on Twitter – at @AndiMann and @DevOpsDotCom respectively.

     

     

     

  • The Trouble With Enterprise DevOps

    The Trouble With Enterprise DevOps

    The literary world and beyond has been up in arms as of late regarding the use of the word ‘literally’. It seems that many are using the word literally when they mean figuratively. For example, if you say, “I literally split my pants laughing,” it would be plausible for one to look at your pants looking for a tear. Words are funny that way. When used to emphasize the action or outcome, some will take literary privilege. Enterprise is also one of those words that are used to convey emphasis often with disregard to the implied meaning.

    When it comes to DevOps there has been a lot of debate about the modifier ‘enterprise’. Modifiers are supposed to add specificity to the noun it is modifying. Agreeably, enterprise is a horrible modifier for DevOps when used without additional modifiers representing scale. I have been, and continue to be, a big advocate of the concept of Enterprise DevOps. That said, I too have been remiss in my use of the word enterprise to further modify with the term ‘large-scale.’

    I don’t remember exactly what triggered me to seek out if the word enterprise implied large, but when I did I was surprised to find that there is no implied meaning that enterprise means large and, in fact, can be modified with small-, medium- and large-scale to represent the appropriate size. As further evidence to the ambiguity of the use of the word enterprise, I worked for a company that divided their sales organization into enterprise and commercial accounts. Clearly, this organization believes that enterprise connotes large-scale since this group was responsible for selling to a specific class of customer that spent a significant amount of money with them. In this case, scale was identified by how much money the business spent with that vendor versus annual revenues versus number of employees. So, clearly, not only does the word enterprise not imply scale, but it also has different metrics that will determine the scale of an enterprise.

    Merriam-Webster defines Enterprise as follows:

    en·ter·prise


    noun
    \
    ˈen-tə(r)-ˌprīz\

    : a project or activity that involves many people and that is often difficult

    : a business organization

    : the ability or desire to do dangerous or difficult things or to solve problems in new ways

    Obviously, none of these meanings relate to size or scale, but two of the meanings do indicate difficulty. Let’s put that in the parking lot for later.

    Why is this important? With regard to IT, I believe there is a tendency to throw around the word enterprise with no modifiers when we mean large-scale. For example, “Enterprise Software” is a term that is often used to describe very expensive and complex software applications that are designed to operate at the scale of the entire business versus the individual. Typically, the software described by enterprise software is found in mid- to large-scale enterprises where they can afford to acquire, configure and operate this type of software. Likewise, “Enterprise Storage” is a way to describe compute data storage environments for large organizations.

    Likewise, “Enterprise DevOps” is a term that that is often used to represent adoption of DevOps practices in large, complex organizations with many different stakeholders and sub-organizations making it much more difficult to coordinate efforts around efforts like continuous delivery and continuous improvement.

    Interestingly, and I believe accidentally, implementing enterprise software and adopting enterprise DevOps are difficult projects. So, based on our Webster’s definition, enterprise works as a modifier for these nouns. But there’s still the issue that for small-, mid- and large-scale enterprises the challenges and hurdles associated with DevOps adoption vary enough that the constraints and bottlenecks require different approaches to remove. This is especially true of large-scale global enterprises where development exists in four continents, operations data centers exist in multiple countries on four continents and the business operates in six continents with a comprised IT staff of 120,000 people.

    I for one will be very careful in the future to define what I mean when I’m using the word enterprise in the future. If I’m talking about large-scale enterprises, which I usually am, I will make sure that early on in my writings and presentations I specify that when you see enterprise going forward I’m talking about large-scale enterprises.

  • Enterprise DevOps: same medicine, different dose

    Enterprise DevOps: same medicine, different dose

    I am presenting at the DevOps Summit in Santa Clara early next month.  The title of my presentation is “Enterprise DevOps: Same medicine, different dose.”  I will be attempting to tackle the sometimes sticky subject of whether Enterprise DevOps is a unique species or is there just DevOps for organizations big and small.

    My personal feeling is DevOps is DevOps. That being said though, I don’t think anyone would argue that large enterprises are a different animal than smaller companies. The inertia in these organizations make culture change on a large scale harder, if not slower.  Just as you would give a different dose of medicine to a child then you would to an adult, I think you have to inject DevOps differently into a larger organization than you would a smaller one.

    That doesn’t necessarily mean that anyone selling enterprise DevOps services or tools is a snake oil salesmen though. I think understanding the differences between a large organization and smaller ones creates opportunities for vendors. I think that some in the community think that large vendors are just using the term enterprise DevOps to protect their existing turf from usurpers.

    Anyway, I will be diving deeper into this subject at my presentation. I will post the abstract link shortly and will post me slides after the show.

    In the meantime you can help me. I am interested in your thoughts on this subject and what you think is important for me to cover.  I respect all opinions so if you don’t agree with me, feel free to say so, but if you do, say why.

     

    Thanks!

     

  • Moving to DevOps in a traditional enterprise

    Moving to DevOps in a traditional enterprise

     

    Introduction

    One of the challenges of introducing DevOps in the setting of a traditional (i.e. siloed, waterfall etc) Enterprise is where to begin.

    It’s certainly something I wrestled with alongside the CTO for quite some time.

    It’s not possible to impart years of experience of moving a large company to a DevOps ways of thinking but I hope to give the main 3 pillars of how I’ve approach it previously.

    Note…none of it mentions technology and tools!  DevOps is primarily a cultural idea and therefore affects people above anything else.

    Step 1 – bring in the Rock Star

    If you are moving to DevOps in your organisation, then bringing together different people from different silos and then expecting them (under their own steam) to magically cooperate and agree on everything is a little unrealistic.

    If you are dealing with historical teams and employees – which I suspect most of you are – then breaking down silos is likely to be a significant challenge.

    Aligning incentives makes things a lot easier. If both your devs and ops guys are paid a bonus depending on how much “change” they do in a year is a simple way of getting them to agree on whether they should automate releases for example.  That’s a little too simplistic but hopefully you get what I mean.

    This may well come at the cost of something else though.  The first thing that springs to mind in the last example is quality.

    Let’s put everything straight into live!  We get paid for it!

    Ok so that isn’t going to work.

    Sometimes, at least to begin with, you need to bring people together and ultimately empower someone to make decisions when one can’t be reached through consensus.   I’ve seen a real danger in DevOps of death by committee.  The more silos you bring together then potentially the greater the possibility of them not making a decision.

    You may have heard about this idea of DevOps rockstars.  Guys (and gals) that get DevOps inside and out.  People that understand all sides of the coin (development, DBA, infrastructure etc).

    They try and influence through education and persuasion and point people in the right direction.  They help the silos reach the right decisions themselves rather than a top-down “do what I say”.

    All said and done sometimes this open inclusiveness doesn’t always work and someone needs to just stand up and be counted.

    So what’s my point?

    If you are trying to move towards DevOps then hire a rockstar (I doubt Rod Stewart is suitable btw).  Someone that has done it before.  Someone with a very mature sense of what DevOps is and preferably someone that has done most of the jobs he/she is trying to influence.

    Moreover, hire someone who’s first instinct is to try and bring people around to their way of thinking.  And lastly, someone who isn’t ultimately afraid to put their privates on the line and make a goddam decision.

    Step 2 – look at your people structure

    The traditional definition of DevOps is to break down the silos between Development and Operations so that they accomplish shared goals.

    However, I’m a keen advocate that DevOps isn’t just Dev and Ops (see http://enterprisedevops.blogspot.co.uk/2014/07/devbiztestreleasethingyops.html).

    It’s about all the functions that come together to achieve meaningful change.

    The devs, the ops guys, the business and techies should all have shared goals and incentives. Where possible they should be sat around the same desk. The team should rise and fall collectively (there is no “us and them”). The team should manage change from cradle to grave (requirements, build, test, deploy, support).

    I think we should rename Devops to “DevBizTestReleaseThingyOps”.   Catchy.

    To that end, DevOps is as much to do with “people” than it is about new tools and processes.

    With that in mind, potentially you are talking about some fairly radical changes across a wide number of people of various skills, experience and personality types.  I guess it really depends on what your organisation is structured like, the skills of your team and many other factors.  For my company (a large UK insurance company) however, it’s meant some fundamental changes.

    We started by aligning change functions (devs, testers, BA’s etc) to individual business units (rather than monolithic shared group services).

    That fundamental change has been sponsored on the back of some early and small wins by implementing things like Continuous Integration and labeling it “DevOps”.  Ok so it’s not DevOps but if using that term starts to get visibility and movement within your organisation then I don’t think that’s a bad thing. I always believed we needed a banner for the modernization of the department to fly behind.  If that banner reads “DevOps” then so be it.

    That early small success was really vital to us.

    When we started out we had a lot of push back and negativity….

    •     Why are you telling me how to do my job?
    •     You are using the wrong tools
    •     I don’t see the benefit
    •     I know more about this than you do
    •     What you are trying to do is easy
    •     We don’t have the right people
    •     This is a hipster idea for the likes of Facebook
    •     There are regulatory reasons this won’t work

    Basically everything under the sun.

    That’s stressful when you are trying to do the right thing and move the incumbent forward.

    I don’t think we helped ourselves too much to begin with.  There was too much of my team trying to pick up and change other team’s technologies and processes.  Not enough leading the other team to water and helping them implement something themselves.  Lesson learnt.

    Step 3 – create a team to help others

    I mentioned earlier that DevOps is cultural idea and not a job title.  Definitely not.  Unimaginable.

    So how is it I run a “DevOps” team?   Surely that’s a collective of “DevOps engineers”?!

    My team “Platform Services” supports the idea of the change platform at my company.  The change platform consists of tools such as Jenkins, Puppet, uDeploy, Teamcity, TFS and a few others.

    Someone ultimately needs to “own” the tools making sure they are maintained, creating best practices and establishing a roadmap for the future.

    My team goes beyond this and helps different change functions adapt to the change platform and are evangelists for things like DevOps and Continuous Delivery.

    With DevOps being concerned with breaking down silos its contradictory to have a team that bottleneck of knowledge and skills.  To this end, Platform Services is the silo-buster – we help others pick up the tools & processes and implement them.

    For example, we don’t do deployments ourselves but we do sell the benefits to other teams and help them to adopt the tools and processes.

    I think this is a good model and helps spread the success of DevOps around the IT function.

    It helps that consultancy from my guys is effectively free to other parts of the IT team (thanks to an enlightened CIO & CTO).

    I hope you found some of that useful.  Feel free to check out my blog on my move to DevOps: http://enterprisedevops.blogspot.co.uk/

    Good luck and get in contact if you have any questions or comments.

  • 5 Secrets of Enterprise DevOps

    5 Secrets of Enterprise DevOps

    whatisdevopsThere is still much debate surrounding the merits of Enterprise DevOps, some say that DevOps is great for the highly scalable startups but not feasible for the enterprise, while others say that DevOps is mandatory for a company’s survival. When enterprises evaluate the potential impact of DevOps adoption, they should consider some key points:

    1. Enterprise DevOps Adoption: One Bite at a Time

    How do you make sure your developers get instant feedback? How can you go back and forth between versions? How do you integrate your entire CI/CD pipeline? While CI/CD for dummies is a good place to start, the biggest problem is how quickly you will get bogged down by the details. Whether you participating in the NASA challenge to find all asteroid threats to the human population and save the planet, or you are at an enterprise figuring out the DevOps strategy – first things first – define the problem and break it down into actionable chunks which may be done in parallel or sequentially.

    When an enterprise is  trying to tackle the DevOps challenge, the common scenario is that lots of people will have lots of interpretations on how and what it means to implement DevOps methodologies. It’s easy for projects to get stalled in the initial planning stages. The only way to take on this challenge is to break it down into smaller workstreams, for example, by defining the workflows in terms of infrastructure automation, build & test automation and configuration management – and deciding which technologies are the best fit to solve the specific challenges in each stream. So, basically, how do you eat an elephant? A spoonful at a time.

    defs

    2. Dead in the water without on-demand cloud capacity

    The limited enterprise data center infrastructure simply cannot keep pace with agile teams that need to be able to spin up multiple parallel environments with a click of a button or an API call without getting the message “ran out of capacity”. This issue becomes even more crucial when the project cycle peaks as a new application or updates need to be deployed in no time. To maintain agility in enterprise IT, enterprises must forever break free from capacity constraints, including compute and storage resources. Without a doubt the public cloud is a great fit – you must be able to use AWS and Google Cloud on-demand. To build a massive software lab entirely on premises, knowing fully well the bursty nature of the workloads, is downright foolish. If you want production on VMware and test environments in AWS, you need to ensure high fidelity environments to have real confidence in the test results. The environments must be exact replicas – identical VMs and identical networking in the data center and the cloud. The cloud gives you the capacity but how can you make the temporary test environment identical to production? Today it is indeed possible to clone your IT infrastructure in the cloud at the push of a button.

    3. Death by Scripting for Complex Multi-tier Environments

    Continuous integration and deployment are great methods increasing effectiveness and efficiencies. However in a multi-tier environment with complex networking elements, the overhead associated with the use of manual scripting to provision the relevant resources (multiple VMs, networking, storage), configure them and deploy all the components of an application each time you need a new test environment is very high. In addition, in today’s highly dynamic environment, scripts become outdated frequently, increasing the pain factor. Design for simplicity and scale: easily repeatable deployments, being able to snapshot and rollback to earlier versions are all requirements that must be carefully considered and met. For example, what if Jenkins could use a single API call to spin up multiple clones of your entire environment in the cloud, run all your tests in parallel, automatically release resources when completed and snapshot the environment in case of errors? Simplifying the automation and designing for complexity is a key requirement for enterprises.

    4. Destroying team silos is easier said than done

    redcarOne of the greatest enterprise DevOps challenges is to make the operations team fully integrated with the dev team and be able to plan and execute despite plenty of unexpected events. True integration of the development and operations teams cannot be stressed enough. For example, the ops team must be part of the SCRUM process. Creating a DevOps team is a start, but creating that DevOps team does not actually bring dev and ops together. Barriers between teams need to come down over time –  the different teams need to cooperate and collaborate towards a larger shared vision.

    5.Managing infrastructure as code is do-able and totally worth the effort

    Delivering on the promise of infrastructure as code does not have to be back breaking. Minimizing delivery cycles including creating just-in-time environments becomes a matter of an API call, hours become minutes. A wide variety of modern technologies are at your fingertips to help you achieve your mission. The most common scenario we see today may be the modern startup where its R&D organization was built with the DevOps notion from the get-go – but that doesn’t mean Enterprises will miss the bus. The enterprises that are adopting modern DevOps methodologies are doing so quickly, without a rip-n-replace of their entire infrastructure. For example, Ram Akuka, Director of DevOps at Deutsche Telekom shared their Enterprise DevOps journey describing how they used VMware, AWS, Chef, Jenkins and Ravello to set up a fully integrated CI/CD pipeline that accelerated their software delivery cycle like never before.

    About the Author

    shrudi bhattShruti Bhat, Director product marketing at Ravello Systems, the industry’s leading nested virtualization and software-defined networking SaaS. Prior to Ravello, Shruti was a virtualization junkie at VMware, where she managed the software-defined storage product line. She combines her MBA at UCLA Anderson with a bachelor’s in computer science engineering and has previously led R&D teams at IBM and HP as well as immersed herself in start-ups.

     

  • DevOps adoption – Enterprises (part 2 of 2)

    DevOps adoption – Enterprises (part 2 of 2)

     A large enterprise has institutionalized an incredible number of processes. Their fundamental approach to IT has been built over years if not decades of experience. Their leaders may have grown up with these methodologies and approaches.

    In this article I wanted to continue the thread I started in my last article about how different organizations adopt DevOps differently. The focus of this article will be on how enterprises adopt DevOps. I will also contrast it with how startups adopt DevOps, which was the focus of the first part of this article.

    To recap the first part of the article, we discussed how startups are adopting DevOps. We stated that adoption occurs organically because of the nature of startups. Because they only start with a few people and they have little to no process, DevOps starts through the addition of tools. The founding developers or CTO will find tools to solve the practical problem of automating different aspects of their development, QA, or operations functions.

    With so few resources, automation is critical. As a startup grows they add more people to the team and process becomes more critical. So, they extend Agile into other areas of their product development process. They become more intentional with developing a DevOps oriented team.

    As the company continues to grow, DevOps is embedded into the culture. Hiring decisions are made based on whether a candidate understands how to be a part of a team practicing DevOps. The rest of the company starts to beat to the drum of rapid iteration, cross-functional integration, and increased automation. DevOps adoption in startups follows the tools, process, and then culture sequence.

    Enterprises follow a different path, and so usually take a contrasting trail to DevOps adoption for a variety of reasons. A large enterprise has institutionalized an incredible number of processes. Their fundamental approach to IT has been built over years if not decades of experience. Their leaders may have grown up with these methodologies and approaches. Further, their entire business is beating to a certain IT drumbeat. Changing the beat throws everybody in the organization off.

    There are also other major issues to DevOps adoption within an enterprise. Institutional resistance and inertia is a significant one. Change is always difficult to people. Some groups handle change better than others, but in any organization – especially a large enterprise – change needs to be orchestrated and worked effectively. Change in large organizations takes time and perhaps nothing takes longer than bringing people on board with a new approach. In addition to the personnel aspect, the organization has built strong, existing processes. Those have been over many years. Changing complex processes doesn’t happen overnight. Those processes have been built with internal and external customers in mind. Those customers expect their “solutions” delivered in a specific manner and timeframe. Accelerating that though DevOps may be great, but not if they aren’t on board and can accept the increased pace.

    DevOps impacts the entire system of an organization. The system has been tuned to a certain speed and level of quality. Increasing the front end of the process will not necessarily increase overall throughput unless the rest of the organization can increase their speed in concert. In a startup, that system is generally small and contained. Most of the individuals, systems, and processes are contained and when the pace increases, the rest of the organization can react quickly or better yet the entire organization has been built with those expectations in place. Not so for a large enterprise.

     The startup approach of adopting DevOps through adopting tools, changing processes, and embedding into the culture, will be easily rejected by a large enterprise. Even if the IT organization can deliver much faster and does, the rest of the organization won’t know what to do with the completely different approach. Perhaps the rest of the organization will even continue operating at their pace while IT operates at a different one. While not catastrophic, it is not helpful either. As larger organizations think about the best way to adopt DevOps understanding this perspective aids in adoption. Enterprises have a much harder uphill climb when it comes to adoption, however, the rewards can also be monumental.

    An enterprise’s journey into DevOps – if it is to be successful across the entire organization – starts at the cultural level. And, as we all know, cultural change in a large organization is perhaps the hardest step. Clearly the positive here is that the organization adopting DevOps will have an opportunity to perform far more effectively. Cultural change starts with the key stakeholders at the senior level creating a commitment to adopt this new methodology. Then that commitment needs to be evangelized through the organization. A top down edict doesn’t work just as a grassroots movement without senior level support doesn’t. It should be reasonably straight forward to bring those two groups together to build a shared commitment to moving to DevOps (or not). Note that large organizations can adopt and test DevOps in one of their divisions or smaller groups to understand how different the approach will be from their previous business methodology.

    Once a shared vision is reached, some of the detail work can begin. As discussed earlier, a different pace of product development needs to be matched by a different pace of distribution, sales, and marketing too. Updating and changing processes is the step that makes this happen. How will development processes change? And, how do those changes impact existing customers both internal and external? Can the same approach to quality be taken or do new processes in development require new processes in QA? Security? Operations? All of these downstream impacts will need to be matched, reviewed, and changed. Changing processes that are upwards of decades old is also fraught with risk. Many of those steps exist for a reason. Altering them may have consequences that aren’t known to all. This is yet another reason why DevOps adoption doesn’t happen overnight at large enterprises.

    Finally, as processes are updated and the cultural shift is largely underway, the IT organization can turn its attention to finding better tools. These tools need to match the processes built and, of course, the cultural style of the organization. This is why large organizations would be better served by deeply understanding their newfound processes before diving into tool selection or even purchases. Only after they understand their needs is it worthwhile to embark on deep tool selection.

    As we said in the last article as well, we’ve shown this to be a serial process, and, of course, it is never so cut and dry, especially, in a large organization. There will be overlap, there will be things that happen out of sequence, there even may be areas that jump far ahead, but largely, the adoption approach takes on the character of culture first, process second, and tools third. DevOps can be transformational for a large organization with some even going so far as to say that a DevOps culture is a predictor of stock performance. Understanding how DevOps takes shape at a large organization will help those in other large organizations as well as the vendors and consultants supporting their efforts.