Home > Blogs > VMware Accelerate Advisory Services > Tag Archives: AppDev

Tag Archives: AppDev

What Is DevOps, and Why Should I Care? — The IT Leadership Perspective

kai_holthausBy Kai Holthaus

One of the newest buzz words in IT organizations is “DevOps.” The principles of DevOps are contrary to how IT has traditionally managed software development and deployment. So, why are more and more organizations looking to DevOps to help them deliver IT services to customers better, cheaper and faster?

But…what exactly is DevOps anyway? It is not a job or a tool or a market segment; it’s best defined as a methodology, or an approach. It has ideological elements that are in common with techniques like Sigma Six and Lean. More on this later.

Software Development and Deployment Today

DevOps todayIn today’s world, there’s a “wall” between the teams that develop software and the teams that deploy software. Developers work in the “Dev” environment, which is like a sandbox where they can code, try, test, stand up servers and tear them down, as the coding work requires. Teams working in the “Ops” environment deploy the software into a production environment, where they also ensure the software is operational. Often, the developed software is literally ‘thrown over the wall’ to operations teams with little cooperation during the deployment.

Why Was It Set Up That Way?

This “wall” is an unintended consequence of the desire to allow developers to perform their tasks, and operational teams to do theirs. Developers are all about change; their job is to change the existing (and functional) code base to produce additional functionality. Operations teams, on the other hand, desire stability. Once the environment is stable, they would like to keep it that way, so that customers and users can do their work.

For that reason, developers usually do not even have access to the production environment. Their work—by nature—is considered too disruptive to the stability of the production environment.

The Problems with Today’s Development and Deployment

Because of the separation between developers and operations, deployment is often cumbersome and error-prone. While developers are usually asked to develop deployment techniques and scripts, these techniques first have to be adapted to the production environment. Then they have to be tested. And since the deployment teams don’t usually understand the new code (or its requirements) as well as the developers, the risk to introduce errors rises. Worst case, it will lead to incidents, which are all too common.

Additionally, in today’s datacenters that are not yet software-defined, new infrastructure—such as compute, storage or network resources—is hard to set up and integrate into the environment. This further slows down deployments and raises the possibility of disruptions to the environment.

DevOps to the Rescue

At its core, DevOps is a new way of developing and maintaining software that stresses collaboration, integration and automation. It attempts to break down the “wall” between development and operations that exists today by removing the functional separation between the teams. It uses agile development and testing methodologies, such as Scrum, and relies on virtualization and automation to migrate entire environments instead of migrating just the codebase between environments.

The main goal of implementing a DevOps approach is to improve deployment frequency—up to “continuous deployment”—of small, incremental improvements to the functionality of software. Essentially, “dot releases,” and with software updates evolving from manufactured media to online streaming, this makes complete sense.

DevOps_graphic2

Why DevOps? Why Now?

With the increased availability and utilization of software to provision, manage and decommission resources—such as compute, storage and network in datacenters and IT environments—the DevOps approach is becoming more and more common. IT organizations are now able to create new resources, integrate them quickly into environments, and even move them between environments with the click of a button. This allows developers to develop their code in a particular technology stack, and then easily migrate the entire stack to the production environment, without disrupting the existing environment.

Sounds Great, How Do I Start?

The three main aspects that need to be addressed to implement a DevOps approach for the development and operations of software come down to the familiar elements of project management:

  • People
  • Process
  • Technology

On the people side, teams have to be established that have accountability over the software across its entire lifecycle. The same teams that develop the software will also assure the quality of the software and deploy the software into the production environment.

From a process perspective, an agile development methodology, such as Scrum, must be implemented to increase the frequency at which deployable packages of software are being created. Reducing the amount of change at each deployment cycle will also increase the success rate of the deployments, and reduce the number of incidents being created.

On the technology side, DevOps relies heavily on the Software-defined Datacenter (SDDC), including high levels of automation for the provisioning, management and decommissioning of datacenter resources.

VMware Is Here to Help

VMware has been the leader in providing the software to enable the SDDC. VMware also has the knowledge and technology to enable you to use DevOps principles to improve your software-based service delivery. VMware vRealize Code Stream enables continuous deployment of your software. And if you like to be on the leading edge of technology, check out VMware Photon for a technology preview of software that allows you to deploy new apps into your environments in seconds.


Kai Holthaus is a delivery manager with VMware Operations Transformation Services and is based in Oregon.

Collaboration Between AppDev & Infrastructure for ITaaS

Mark SternerBy Mark Sterner

Traditionally, IT organizations operated in a siloed environment. AppDev teams were tasked with meeting the needs of the business and Infrastructure teams provided the environment to support AppDev. These two organizations had little interaction and even less collaboration. Even worse, the infrastructure provisioning process was viewed as a roadblock to getting the business with what they needed when they needed it.

In today’s IT world two factors have turned this scenario upside down. The first is the trend toward virtualization and automation, which enable the infrastructure team to provide the supporting environments at the speed of business. The second is the desire of companies to adopt an ITaaS (IT as a Service) approach in which IT focuses on the outcomes the business needs and functions much like a business itself.  Evolving to an ITaaS approach requires a great deal of collaboration between all levels of the IT organization, including effective and structured collaboration between AppDev and Infrastructure.

One of the most powerful results of an ITaaS approach is the provision of cost effective, nimble solutions at the speed of business. To achieve this it is important for all IT teams to clearly define and understand the services they provide, particularly the end-to-end services delivered to the business itself.  Historically, defining end-to-end services has often fallen to the AppDev team who took an application-centric approach to the process. This led to a disconnect between AppDev and Infrastructure.  Ideally, this process is a collaborative effort between the two teams to clearly define the services, taking all aspects into consideration, including not only the applications, but also the infrastructure, the service level agreements for elements such as availability and performance and the relative importance of each service to the business operations.

While the process of defining IT services provides the basics of ITaaS, it is only the first step in truly transforming an IT organization. In order to deliver IT as a service, IT must provide the business with metrics that illustrate the benefits provided, particularly the financial value through increased productivity at a lower cost. To meet that goal the AppDev and Infrastructure teams need to collaborate on many different levels to realize these efficiencies.  Streamlining and effectively managing the allocation and deployment process is the first step to lowering the cost of IT.

Typically, AppDev teams of the past chose their solution to the business need with little thought to maximizing the efficiencies of the supporting infrastructure. Additionally, the Infrastructure team provided the environment with little understanding of the application architecture.  Leveraging the efficiencies of a virtualized environment can certainly provide a more agile environment, but only through a collaborative effort can IT truly provide the most effective solution.  AppDev and Infrastructure need to consider all aspects of delivering the solution. This includes availability, security, performance and scalability and reporting requirements. They must also understand and agree upon the application’s importance to the business. This will determine the disaster recovery strategy and define the support levels provided by both teams. Once all these factors are determined and defined, only then can the IT teams develop the most effective solution by aligning the application architecture with the most efficient infrastructure.  This effort will help to lay the groundwork for standardizing the integrated AppDev and Infrastructure processes and delivering measurable metrics that illustrate the success of the transformation to ITaaS.  Additionally, the standardization work can be leveraged to help implement Platform as a Service (PaaS), bringing even greater efficiencies to a virtualized environment.

Collaboration across the entire IT organization is not a new and trendy concept. Several models have emerged as best practice pathways to building and maintaining agile IT teams.  DevOps, for example, addresses the need for IT to provide rapid deployment of systems by breaking down the traditional barriers between IT teams. The “Dev” in DevOps does not simply refer to the AppDev teams, but includes all IT resources such as network engineers, sys admins, security teams and DBA’s. They are all part of the development lifecycle and have a role in the development of the most effective solutions to meet the needs of the business.  Through DevOps, IT organizations become a valued service provider and not a bottleneck to providing business solutions.

ITaaS requires organizations to rethink how they provide solutions to the business. Collaboration between AppDev and Infrastructure is central to successfully transforming to ITaaS. Traditional silos need to be broken down, blurring the lines between internal IT teams.  This may require an internal reorganizational effort to facilitate a more collaborative environment, but even without changes to organizational structure, working together towards a common, outcome-focused objective, is the key.  While managing this entire endeavor may seem a bit overwhelming, changes in the market, competition and technology are requiring most IT organizations to re-evaluate how they can keep up with the demands of today’s business environment.


Mark Sterner brings over 14 years of experience in IT Service Management. He has worked in both the process development and ITIL implementation areas for large IT organizations. Mark is currently a Transformation Consultant at VMware, Inc.