Accelerating DevOps: Reviewing DevOps Productivity With Cloud Development Environments
Explore the optimization of DevOps productivity through Cloud Development Environments, delving into implementation strategies, cost reduction techniques, and vital security practices in our webinar.
Learn From an Industry Expert
Dive into the cost-effective techniques of CDE implementation, security best practices, and productivity insights for tailored DevOps workflows.
Laurent Balmelli
Co-founder and CEO @Strong Network
Dr. Laurent Balmelli is co-founder and CEO of Strong Network. He sold his last cybersecurity start-up, Strong Codes to the US company Snapchat in 2016 and led cybersecurity efforts at Snap during a three-year earn out period from 2016 to 2020.
After earning his PhD from ETH in Switzerland in 2000, Laurent also worked 12 years at IBM Research Division and CTO office in New York and Tokyo before moving back to Switzerland.
Why Does It Matter?
This webinar explores the integration of DevSecOps practices in modern development, highlighting how this approach can alter traditional development processes.
Focusing on secure cloud development environments (CDEs), the session outlines their primary benefits, including improved productivity and enhanced security. Attendees will learn about the practical use of CDEs and gain insights applicable to current software development challenges.
The webinar aims to be a helpful guide, offering perspectives on utilizing CDEs effectively in the evolving landscape of business and technology.
What This Webinar Covers
CDE implementation strategies: exploring practical approaches for seamlessly integrating Cloud Development Environments into your DevOps workflows.
Cost reduction techniques: learn how CDEs contribute to substantial cost savings by optimizing infrastructure, reducing development cycle times, and enhancing resource utilization.
Security best practices: Discover essential security measures to ensure the integrity and complete confidentiality of your development processes within Cloud Development Environments.
Productivity Insights: gain actionable insights into boosting development team productivity through the effective use of CDEs, accelerating application planning, design, and documentation.
Watch how DevOps can be accelerated with Cloud Development Enviroments
Watch the webinar on YouTube to learn how to accelerate DevOps productivity with Cloud Development Environments.
Webinar Transcript:
Accelerating DevOps: Reviewing DevOps Productivity With Cloud Development Environments
[Laurent]:
Thank you for joining us. I'm currently in Japan, where it's quite late, but I'm excited to share our work. Awen and I have been deeply involved in researching a topic that's still evolving. We're actively investigating and pushing the boundaries in container-based development (note: Cloud Development Environments). Our work at Strong Network is pioneering in this area, and we aim to set new benchmarks in the field.
However, we're not just looking at the current state of affairs. Our goal is to elevate these practices by integrating Cloud Development Environments through platforms like ours. This approach, we believe, can bring additional improvements to the results we're discussing. It's a topic that's continuously developing, and we're committed to keeping you updated. We plan to present these webinars multiple times, adding new content and insights as our research progresses. So, you might find it valuable to attend another session in about a month to hear the latest updates on our work and discussions around DevOps and its origins.
What Is DevOps and Where are Its Origins?
Let's start with a brief introduction to DevOps and its origins. The concept of DevOps might seem unclear at first, including how it functions as a process structure and its historical background.
Interestingly, being in Japan is quite relevant to this discussion. The Agile Manifesto, formulated in 2001, predates but is closely related to DevOps. It ties back to Lean Manufacturing, a practice honed in Japan. Though I didn't include this in the chart, I've addressed it in my DevOps classes, including a guest lecture at EPFL.
Lean Manufacturing, known for its efficiency and continuous improvement, is the foundation upon which DevOps was built. A key concept here is 'Kaizen,' a Japanese term meaning improvement and optimization, which significantly influenced Agile methodologies.
While I won't delve into all the principles of Agile and DevOps here, one worth noting is the practice of making small, incremental changes to code and frequently releasing software. This approach emerged around 2008-2009, following the Agile Manifesto of 2001. It's also highlighted in 'The Phoenix Project,' a novel that offers insightful views into IT history.
The rise of DevOps around 2008-2009 coincided with the advent of cloud computing, which revolutionized how software is developed and delivered. Unlike the traditional method of software deployment, where programs were installed from CDs, cloud computing enabled online delivery. This shift allowed for more frequent updates without the hassle of physical distribution, leading to uninterrupted service for customers.
An interesting case is Flickr, a company that adopted these methodologies early on. Their approach offers perspective on the evolution of DevOps and its impact on software delivery.
The Typical Pain Points for Companies Migrating to a DevOps Process
Why are many companies today shifting to a DevOps process? The main reason is to move away from outdated legacy tools and processes. These companies, often with a long history of application delivery, are recognizing the need for a more modern approach. New companies typically start with DevOps methodologies for software creation, although there are exceptions. For instance, companies not focused on online software delivery might not adopt DevOps.
However, established companies with over 20 years of operation might not have originally adopted such processes. They often struggle with legacy tools and outdated methods. These older systems commonly use monolithic applications, which are large and interconnected. This makes it challenging to update one part without affecting the whole system.
Before DevOps, the prevalent methodology was the waterfall model, characterized by linear and sequential phases. Each phase had to be completed before moving on to the next, leading to fewer iterations and less flexibility in developing a full application.
More than just adopting new processes, embracing DevOps culture is about aligning business goals with technological capabilities. This means integrating technology seamlessly with business objectives, which I'll explain further.
What Are the Expected Benefits When Moving to an Agile Methodology or DevOps Process
The goal of moving technology closer to operations, and thus closer to business lines, is crucial in the modern digital landscape. This is important because delivering products online allows for detailed tracking of how customers interact with these products. Understanding customer behavior is key to optimizing business operations and developing products that better meet market needs.
This integration of business, technology, and operations is vital. It helps businesses gauge customer satisfaction and preferences. Expected benefits of this approach include:
Review of the Assumptions Made in the Forrester Benchmark Study
Today, I'll review a study that Awen and I contributed to. This intriguing research was conducted by Forrester on the OpenShift platform, now part of IBM.
The study, assessing the Total Economic Impact (TEI), focused on Red Hat services and their promotion of OpenShift, IBM's cloud platform. It primarily investigated the impact of container usage in software development. While based on OpenShift, the findings are applicable to other cloud platforms, showing a broad relevance.
The study examined five companies transitioning from traditional development processes to a DevOps approach. A 'composite company' model was used for analysis, representing an average of these companies. This model consisted of a company with 2,000 employees, 100 of whom are developers, managing 150 apps and creating around 50 new apps annually. This volume reflects the extensive application integration across various business lines
Conducted over three years, the study provided detailed insights into the application of DevOps practices. The focus was on companies with limited initial DevOps experience, making the results particularly relevant for similar businesses.
Key Findings are that:
Let’s Bring the Use of Containers Before the Build Stage
In this discussion, I'll explain how we utilize containers at an earlier stage in the development process, specifically during coding, rather than just during the build stage as noted in the Forrester studies. Our approach uses containers right from the coding phase, integrating them into the development environments.
We employ the platform we developed at our company, Strong Network'' This platform serves as a secure coding environment, which I will detail further shortly. By deploying containers as part of this online development environment, we can enhance the benefits identified in the Forrester study.
Key Advantages include:
What Containers Look Like When Used in the Local Console
For those new to the concept of containers in software development, here's a simplified explanation of how they are used both online and locally.
When using containers locally, developers typically perform manual tasks within their own machines. A container allows them to build and test software environments or applications they are developing. This process often involves direct interaction with a command-line interface.
Here's a basic workflow using a local container:
What Do Containers Look Like When Managed On a Platform
Contrasting with local container management, our platform offers a more streamlined approach. Here's how it works:
Benefits Around Application Planning, Design, and Documentation
In discussing the results from a recent study, the first area of focus is the benefit of containers in application planning, design, and documentation. The study investigates how the integration of containers can enhance these processes.
The contribution of Red Hat to this study highlights the importance of services and methodologies for a successful DevOps transformation. This involves a shift in traditional working methods, incorporating containers right from the early stages of development.
A pivotal aspect of this transformation is ensuring developers have easy access to containers. Typically, this access is provided through a registry offering default software stacks, which are crucial for local building and testing of applications.
One significant finding of the study is the reduction of time required for planning, documenting, and designing applications by over 80% when using containers, even locally. This efficiency is largely attributed to the simplified processes that containers offer, especially beneficial for Java developers.
The study also reveals a progressive increase in the development of new applications using containers. Starting from 10% in the first year, it grows to 30-35% by the second year, indicating a shift away from legacy applications towards more modern, container-based applications.
An updated version of the study, released in May 2022, further supports this shift. It documents the transition of 12 legacy applications over three years, underscoring the essential role of container accessibility in modern software development.
In conclusion, the first key result from the study is the vital role that easy access to containers plays in enhancing application planning, design, and documentation.
Increasing the Use of Containers Is an Asset Management Problem
Moving containers online significantly enhances the way they are accessed and managed, going beyond just accessing a Docker registry. With a platform like ours, managing containers online is a key improvement, offering a range of benefits that transform the standard approach.
Firstly, Cloud Development Environments allow for development environments that can be accessed anywhere. This flexibility is possible through a cloud Integrated Development Environment (IDE) or an SSH connection, enabling developers to work remotely. This approach aligns with the findings from the Forrester study, emphasizing the advantage of zero-installation setups.
Furthermore, our platform facilitates a collaborative environment. Similar to how multiple people can work on a single Google document, developers can share and work together within the same container. This shared access is particularly useful for code reviews, where multiple team members can contribute and assess the code simultaneously.
A crucial aspect of managing containers online is enhanced data control and security. Centralized quality management ensures that containers are free of vulnerabilities, not just when they are in the registry, but also during active use. This level of oversight isn't feasible with locally managed containers, as it lacks the ability to monitor real-time activities within the containers. Our approach offers a more secure and controlled environment, ensuring higher quality and safety in software development.
Reduced Initial Application Development, Testing and Deployment Costs
In our environment, version control is a fundamental feature, allowing for thorough scanning of vulnerabilities and timely updates of containers. This leads to adaptive security compliance, which is particularly beneficial when containers are used by temporary team members, such as freelancers. For instance, data prevention measures can be implemented to protect the data within these containers, an option not readily available with locally managed containers.
Moving on to the second key point from the study, it focuses on reducing costs in development, testing, and deployment phases. The study highlights the potential for significant cost savings and increased efficiency in these areas. It reveals that adopting this approach can lead to a substantial reduction in initial build costs, sometimes by more than 60%.
To provide context, the study notes that organizations typically spend an average of $262,000 on each application covering build, test, and deployment. This figure is derived from various factors, including the number of people involved in the project and the costs associated with a developer.
A notable finding is the reduced time required to develop and launch new features or functions, which can range from two to four weeks. This speed demonstrates greater agility compared to the more time-consuming processes associated with monolithic applications, where changes necessitate retesting the entire application. Such a comprehensive retest can significantly delay time-to-market and slow down the release of new features.
The study also reports a decrease in initial app development costs by 50 to 75 percent, with a 60 percent reduction noted in the first year, increasing to 70 percent by the third year as processes become more refined. This improvement is attributed to the growing experience and expertise of developers.
Overall, the study provides valuable insights into the efficiencies and cost savings achievable with this method, contrasting with the limitations of traditional, locally managed containers used from the build to deployment stages.
How Cloud Development Environments Impact the Day-To-Day Life of Developers
Bringing containers online significantly changes how developers interact with them in their daily work. This shift provides a stark contrast to the traditional method of using containers locally on a laptop. Typically, coding is done on a local machine, after which the container is built and the application is executed within it. However, with Cloud Development Environments, developers access their work environment through a cloud or local Integrated Development Environment (IDE). This process places them directly inside the container, eliminating the need for the initial steps of coding locally and then transferring to a container.
The transparency of working within Cloud Development Environments offers a significant advantage. Developers can build and test directly inside the container, streamlining the entire process. Even though developers might still need containers for testing, this can be efficiently managed through the cloud or local IDE. The concept of 'Docker in Docker' allows for recursive use of Docker, a popular tool for creating containers, even when working within one.
Another benefit of Cloud Development Environments is the independence from the device's operating system. Developers can access their working environment from any machine, be it at home or in the office, without the need to synchronize data or settings. This uniformity ensures that all team members use standard software stacks, enhancing consistency across the development process.
Our platform takes this a step further by providing secure, credential-less access to development resources. This system streamlines the authentication process, using a single private key within the workspace for all developer authentication across various resources. This approach not only boosts security for the company but also simplifies the workflow for developers.
Additionally, our platform facilitates sharing workspaces, enabling collaborative feedback and development. This feature has proven to enhance productivity and is a key component in how DevOps improves software development practices.
Benefits Around Application Upgrade, Maintenance and Management
The third key finding from the study is the significant benefits in the area of application upgrade, maintenance, and management. This aspect is critical in the software development lifecycle.
The study reveals that the costs associated with maintaining and updating applications were reduced by about 50 percent on average. This reduction is crucial and is largely attributed to the agility and advantages that come with using containers, particularly in the context of microservices. By structuring applications as a set of microservices, changes become more focused, less interdependent, and more agile, simplifying the process of updating applications.
In terms of lifecycle savings, the study shows up to a 70 percent reduction per year. This is calculated based on the observation that, on average, 25 percent of the original cost of application production, which amounts to about $65,000 from the initial $250,000, is spent on releasing new features, software patches, and fixing bugs and errors. The study notes a progressive reduction in these costs, starting from 25 percent in the first year to 60 percent by the third year.
This finding emphasizes the efficiency brought about by the use of containers in software development, particularly in terms of cost savings and enhanced agility in maintaining and upgrading applications.
The Maintenance and Upgrade of Applications is Also an External Affair
Reflecting on a result from our study, I recalled a conversation with one of our customers about outsourcing maintenance. They, like many other companies, often delegate the maintenance and updating of their applications to remote developers or teams. This approach is economically beneficial and is where the use of Cloud Development Environments shows its true value.
Cloud Development Environments are particularly advantageous for integrating remote teams into the development process. They provide seamless access to development resources and assets, making it easier to manage and update applications from afar. Our platform facilitates this by offering secure online access to development environments. This includes a proxy system that controls access to all resources, including the containers themselves.
An important feature we offer is Remote Browser Isolation (RBI), enhancing security and compliance. For example, teams can securely access GitHub and other third-party DevOps applications through a securely isolated browser, which in our case, is a secure version of Chrome. This security measure is straightforward to implement and effectively prevents data exfiltration, ensuring remote teams have zero direct access to sensitive resources.
Our platform's environment restricts access to resources, ensuring remote teams can only interact with what's provided in their workspace. This controlled access is crucial for maintaining security and compliance, particularly with standards like ISO 7001, which are essential for DevOps processes. We've implemented over 60 risk controls across our platform, offering immediate compliance and process maturity.
Additionally, our platform allows for real-time tracking of team efforts and metrics, offering insights into productivity and resource usage. This feature is invaluable for teams conducting quality assessments remotely, as it enables the sharing of applications and real-time feedback, enhancing aspects such as usability.
Infrastructure Utilization Efficiency Savings on Operations
The last result from the study that I want to discuss is particularly fascinating and arguably the most impactful so far. It revolves around the efficiency of infrastructure utilization in operations when using containers. The study found that using containers significantly improves infrastructure efficiency by reducing the need for as many virtual machines (VMs) per application.
The key takeaway here is the efficiency gained by deploying containers instead of relying solely on virtual machines. Containers allow for a more streamlined and efficient use of resources. Remarkably, the study reports that up to 78 percent of organizations experienced improvements in efficiency and resource utilization.
An interesting aspect of this is the comparison between traditional monolithic applications and new container-based applications. Typically, monolithic applications run on about eight virtual machines, whereas new applications developed with containers might only need four, representing a 52% increase in efficiency and usage.
This result emphasizes the operational benefits of integrating Cloud Development Environments into the software development process. By bringing containers into the earlier stages of coding, rather than just in the later stages of deployment, organizations can achieve significant improvements in efficiency and resource utilization.
Containers Lower the Cost of Infrastructure for Development as Well
This part of the discussion leads to a compelling point about reducing operational costs, particularly in the development phase, not just in production. A notable possibility here is replacing expensive laptops traditionally used by developers with more cost-effective and secure options like ChromeBooks or similar devices. This change can significantly reduce the corporate footprint.
One of the standout features of Cloud Development Environments is their ability to enhance the development infrastructure, extending beyond just the production stage. The aim is to lower the overall costs associated with physical hardware for developers, such as laptops, by leveraging cloud computing and storage solutions. This approach not only optimizes resource usage but also helps in controlling and governing cloud costs.
Our customers, including major corporations like Broadcom, are particularly interested in this cost management aspect. They appreciate the ability to scale resources up or down as needed, effectively paying only for what they use. This scalability is a key aspect of our cloud cluster.
What's interesting here is the broader implication of such a strategy. By shifting compute and storage fully to the cloud, companies can achieve a more sustainable model for their development infrastructure. This approach significantly reduces the need for a heavy hardware footprint, leading to more efficient and environmentally friendly operations.
In conclusion, this part of the presentation highlights how the adoption of Cloud Development Environments and cloud solutions can lead to substantial cost savings and sustainability in the software development process.
Adopting the Strong Network's Platform for DevSecOps
So adapting the virtual workspace infrastructure I mean so we provide environments to directly develop an environment directly from the code stage you can use containers directly from the code stage and this is something that the containers will be online so we access containers with a cloud IDE or your local IDE but it's this connection so it brings data remotely, this contains also the advances that are supposed to solution from code spaces GitHub or other providers that we provide we secure access to corporate data from this container.
So all these containers allow developers to get rid of all the credentials and we monitor all the access to all the company resources here. We also complete the security scope by also looking at what's happening with code and data in third-party applications like GitHub oh sorry GitHub, and all things we control so that the data one is in for the application with the secure browser I mean the remote browser isolation and so on.
It took a bit more time than I thought so we had a few minutes for questions there. I think I'll do better next time but I was quite excited by that topic so that's it. And Leila, I think it's your turn now.
---
All material in this text can be shared and cited with appropriate credits. For more information about our platform, please contact us at hello@strong.network