Author: Jaymin Vyas

  • DevOps and Cloud: A Symbiotic Relationship

    DevOps and Cloud: A Symbiotic Relationship

    Most companies want to increase their competitiveness in today’s swiftly changing world, and so they cannot ignore digital transformation. DevOps and cloud computing have become two of the ways companies can achieve this needed transformation, though the relationship between the two is not easily reconciled—DevOps is about the process and process improvement, while  cloud computing is about technology and services. It’s important to understand how the cloud and DevOps work together to help businesses achieve their transformation goals.

    DevOps and Cloud

    Different organizations outline DevOps in different ways. This article does not debate which definition is correct, but rather presents them both to focus on the cloud’s benefit to DevOps. That said, DevOps definitions generally fall into two terms:

    1. In organizations it is defined as developer-friendly operations—IT operations are run separately yet in a way that is much more friendly to developers (e.g., self-service catalogs are provided to developers for stipulating infrastructure or providing technology-enabled pipelines for deploying new code).
    2. DevOps as a single consolidated team is habituated in organizations—developers take on operations responsibilities and vice versa.

    While cloud computing itself has several definitions, the most basic explanation of the cloud is a system that allows the provisioning of infrastructure (e.g., VMs or routers). Thus, it allows to being defined as code or templates, enabling the creation of repeatable processes that are not possible without cloud technologies.

    The aesthetics of cloud technologies and services become so easily amalgamated in DevOps vocabulary because they complement DevOps processes, regardless of how your organization defines them—or, regardless of which DevOps routes you travel to digital transformation with the cloud integration.

    Companies that focus on developers for operations often use cloud computing to speed developer productivity and efficiency. Cloud computing permits developers more control over their own components, resulting in smaller wait times. This application-specific architecture makes it easy for developers to own more components. By using cloud tools and services to automate the process of building, managing and provisioning through the code, service teams speed up the development process, eliminate possible human error and establish repeatability.

    Cloud computing also enables users to create self-service methods for provisioning infrastructure through AWS Service Catalog. Developers are able to quickly try new things, fail fast and just easily succeed in getting new products to market faster, without having to wait for IT operations to provision services for them.

    DevOps as a single term is really a mixture of these approaches, in which developers and operations work together using the cloud as a single common language. In this way, both the DevOps and cloud are able to work together, as everyone is learning new definitions and approaches at the same time. Developers and operations are equally cushy with the new language of the cloud, as developers often teach operations about the code aspect and operations can teach developers about infrastructure and security, developing a meeting point that leads to strong team dynamics.

    No matter the definition, the importance of cloud computing to DevOps can’t be accentuated enough. Cloud computing advances IT transformation, and with advanced tools and automation, it can enable companies to double down on their work to streamline and embed DevOps processes for greater efficiencies that are truly transformative.

    Inherently, as process improvement, DevOps also requires a culture change. Cloud computing can play a role here, as it can help codify and automate new processes. For example, if there is a new way in which developers should cluster the components they need to deliver a service—such as code, configuration, libraries and pipeline definitions—advanced automation tools can streamline the process and make it distinctly repeatable.

    The business case for DevOps combined with cloud technology for a successful IT transformation is fivefold:

    1. Bring products to market faster through faster access to development environments and streamlined developer processes.
    2. Automation and architecture as code reduce cloud complexity and even system maintenance.
    3. Add high security with automated, repeatable processes that serve to eliminate inaccurate error and, even more importantly, develop security controls from the very beginning.
    4. Reduce downtime through cloud-based continuous operations. Moreover, in the process of applying automation, developers can build stateless cloud application development, which increases availability and failover ability, in the process increasing business reliability and customer satisfaction.
    5. Increase scalability. One of the main reasons organizations look to cloud computing in the first place is its scalability, which allows organizations to increase capacity with the click of a button. When combined with DevOps, scalability becomes an integral part of applications as they are developed, while reducing the cost of infrastructure and increasing global reach.

    Get Past the Changes

    Together, DevOps and cloud computing are a powerhouse. While each offers greater effectiveness and business impact, together they are able to drive meaningful IT transformation that directly impacts business goals, regardless of the DevOps definition.

    At the same time, culture within the enterprise and among developers must change around the nuances of DevOps and its role in driving cloud development. Finally, IT companies must invest in these technologies and do so without an immediate goal—which, of course, drives corporate leaders and shareholders crazy.

    However, the alternative is doing nothing, which means certain failure. Competitors are likely to pull ahead in terms of time-to-market with solutions and application services. When you can hold up applications and processes in near real-time and do so within an elastic and efficient environment, the market will reward you for putting that effort. If you haven’t commenced on the process yet, it’s time to get started.

    — Jaymin Vyas

  • 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