search menu icon-carat-right cmu-wordmark

Archive: 2015

Monitoring in the DevOps Pipeline

Monitoring in the DevOps Pipeline

• DevOps Blog
Tim Palko

By Tim PalkoSenior Member of the Technical StaffCERT Cyber Security Solutions Directorate In the realm of DevOps, automation often takes the spotlight, but nothing is more ubiquitous than the monitoring. There is value to increased awareness during each stage of the delivery pipeline. However, perhaps more than any other aspect of DevOps, the act of monitoring raises the question, "Yes, but what do we monitor?" There are numerous aspects of a project you may want...

Read More
Integrating Your Development and Application Security Pipelines Through DevOps

Integrating Your Development and Application Security Pipelines Through DevOps

• DevOps Blog
Aaron Volkmann

By Aaron Volkmann Senior Research Engineer CERT Division The DevOps philosophy prescribes an increase in communication and collaboration between software development and operations teams to realize better outcomes in software development and delivery endeavors. In addition to bringing development and operations closer together, information security teams should be similarly integrated into DevOps-practicing teams. An automated way of performing complete software security assessments during continuous integration (CI) and continuous delivery (CD) does not exist yet, but...

Read More
Developing with Otto: A First Look

Developing with Otto: A First Look

• DevOps Blog
Aaron Volkmann

By Aaron Volkmann Senior Research Engineer CERT Division You will be hard pressed to find a DevOps software development shop that doesn't employ Vagrant to provision their local software development environments during their development phase. In this blog post, I introduce a tool called Otto, by Hashicorp, the makers of Vagrant....

Read More
Applying DevOps Principles in Incident Response

Applying DevOps Principles in Incident Response

• DevOps Blog
Todd Waits

By Todd WaitsProject Lead CERT Division DevOps principles focus on helping teams and organizations deliver business value as quickly and consistently as possible. While the principles advocate for improving the coordination between development and operational teams, they can be adapted for any number of domains. The key components of DevOps we want to emulate across other domains are: collaboration between project team roles infrastructure as code automation of tasks, processes, and workflows monitoring of applications...

Read More
 A DevOps a Day Keeps the Auditors Away (and Helps Organizations Stay in Compliance with Federal Regulations such as Sarbanes-Oxley)

A DevOps a Day Keeps the Auditors Away (and Helps Organizations Stay in Compliance with Federal Regulations such as Sarbanes-Oxley)

• DevOps Blog
Aaron Volkmann

Aaron VolkmannSenior Research EngineerCERT DivisionIn response to several corporate scandals, such as Enron, Worldcom, and Tyco, in the early 2000s congress enacted the Sarbanes-Oxley (SOX) act. The SOX act requires publicly traded companies to maintain a series of internal controls to assure their financial information is being reported properly to investors. In an IT organization, one of the main tenets of SOX compliance is making sure no single employee can unilaterally deploy a software code...

Read More
DevOps for Contractors

DevOps for Contractors

• DevOps Blog
Tim Palko

The challenges of DevOps--a cultural change, learning new technologies, and making a big-picture impact for a software project team--are possibly even more challenging in contract work. In this blog post, I'll expand on some of my past experiences as a contract software developer and discuss, in retrospect, how DevOps could have worked in different scenarios....

Read More
Three Challenges to Documentation for DevOps Teams

Three Challenges to Documentation for DevOps Teams

• DevOps Blog
Todd Waits

Formal documentation (such as source code documentation, system requirements and design documentation, or documentation for various user types) is often completely ignored by development teams; applying DevOps processes and philosophies to documentation can help alleviate this problem. Software documentation tends to fall into several categories: code, requirement, design, system, and user documentation. One reason documentation is often ignored is that standard documentation tools and processes create an obstacle for development teams since the tools and...

Read More
Devops Q&A: Frequently Asked Questions

Devops Q&A: Frequently Asked Questions

• DevOps Blog
Joe Yankel

Since beginning our DevOps blog in November, and participating in webinars and conferences, we have received many questions that span the various facets of DevOps, including change management, security, and methodologies. This post will address some of the most frequently asked questions....

Read More
Fabric, Ansible, Docker, and Chaos Monkey: The DevOps Mid-Year Review

Fabric, Ansible, Docker, and Chaos Monkey: The DevOps Mid-Year Review

• DevOps Blog
Hasan Yasar

In late 2014, the SEI blog introduced a biweekly series of blog posts offering guidelines, practical advice, and tutorials for organizations seeking to adopt DevOps. These posts are aimed at the ever-increasing number of organizations adopting DevOps (up 26 percent since 2011). According to recent research, those organizations ship code 30 times faster. Despite the obvious benefits of DevOps, many organizations hesitate to embrace DevOps, which requires a shifting mindset and cultural and technical requirements...

Read More
Container Security in DevOps

Container Security in DevOps

• DevOps Blog
Chris Taschner

Container-based virtualization platforms provide a means to run multiple applications in separate instances. Container technologies can provide significant benefits to DevOps, including increased scalability, resource efficiency, and resiliency. Unless containers are decoupled from the host system, however, there will be the potential for security problems. Until that decoupling happens, this blog posting describes why administrators should keep a close eye on the privilege levels given to applications running within the containers and to users accessing...

Read More
The Benefits of High Frequency Testing

The Benefits of High Frequency Testing

• DevOps Blog
Todd Waits

At a recent workshop we hosted, a participant asked why the release frequency was so high in a DevOps environment. When working with significant legacy applications, release may be a once-in-a-year type event, and the prospect of releasing more frequently sends the engineering teams running for the hills. More frequent releases are made possible by properly implementing risk mitigation processes, including automated testing and deployment. With these processes in place, all stakeholders can be confident...

Read More
The Missing Metrics of DevOps

The Missing Metrics of DevOps

• DevOps Blog
Tim Palko

This post is the latest installment in a series aimed at helping organizations adopt DevOps.Some say that DevOps is a method; others say it is a movement, a philosophy, or even a strategy. There are many ways to define DevOps, but everybody agrees on its basic goal: to bring together development and operations to reduce risk, liability, and time-to-market, while increasing operational awareness. Long before DevOps was a word, though, its growth could be tracked...

Read More
DevOps in Government: Where To Start?

DevOps in Government: Where To Start?

• DevOps Blog
Hasan Yasar

The federal government continues to search for better ways to leverage the latest technology trends and increase efficiency of developing and acquiring new products or obtaining services under constrained budgets. DevOps is gaining more traction in many federal organizations, such as U.S. Citizenship and Immigration Services (USCIS), the Environmental Protection Agency (EPA), and the General Services Administration (GSA). These and other government agencies face challenges, however, when implementing DevOps with Agile methods and employing DevOps...

Read More
DevOps Case Study: Netflix and the Chaos Monkey

DevOps Case Study: Netflix and the Chaos Monkey

• DevOps Blog
C. Aaron Cois

DevOps can be succinctly defined as a mindset of molding your process and organizational structures to promote business value software quality attributes most important to your organization continuous improvement As I have discussed in previous posts on DevOps at Amazon and software quality in DevOps, while DevOps is often approached through practices such as Agile development, automation, and continuous delivery, the spirit of DevOps can be applied in many ways. In this blog post, I...

Read More
DevOps Technologies: Gauntlt

DevOps Technologies: Gauntlt

• DevOps Blog
Chris Taschner

This post is the latest installment in a series aimed at helping organizations adopt DevOps. Tools used in DevOps environments such as continuous integration and continuous deployment speed up the process of pushing code to production. Often this means continuous deployment cycles that could result in multiple deployments per day. Traditional security testing, which often requires manually running multiple tests in different tools, does not keep pace with this rapid schedule. This blog post introduces...

Read More
Continuous Integration in DevOps

Continuous Integration in DevOps

• DevOps Blog
C. Aaron Cois

When Agile software development models were first envisioned, a core tenet was to iterate more quickly on software changes and determine the correct path via exploration--essentially, striving to "fail fast" and iterate to correctness as a fundamental project goal. The reason for this process was a belief that developers lacked the necessary information to correctly define long-term project requirements at the onset of a project, due to an inadequate understanding of the customer and an...

Read More
Build DevOps Tough!

Build DevOps Tough!

• DevOps Blog
Chris Taschner

"Software security" often evokes negative feelings among software developers since this term is associated with additional programming effort and uncertainty. To secure software, developers must follow a lot of guidelines that, while intended to satisfy some regulation or other, can be very restricting and hard to understand. As a result a lot of fear, uncertainty, and doubt can surround software security. This blog posting describes how the Rugged Software movement attempts to combat the toxic...

Read More
DevOps Technologies: Fabric or Ansible

DevOps Technologies: Fabric or Ansible

• DevOps Blog
Tim Palko

The workflow of deploying code is almost as old as code itself. There are many use cases associated with the deployment process, including evaluating resource requirements, designing a production system, provisioning and configuring production servers, and pushing code to name a few. In this blog post I focus on a use case for configuring a remote server with the packages and software necessary to execute your code....

Read More
Addressing the Detrimental Effects of Context Switching with DevOps

Addressing the Detrimental Effects of Context Switching with DevOps

• DevOps Blog
Todd Waits

In a computing system, a context switch occurs when an operating system stores the state of an application thread before stopping the thread and restoring the state of a different (previously stopped) thread so its execution can resume. The overhead incurred by a context switch managing the process of storing and restoring state negatively impacts operating system and application performance. This blog post describes how DevOps ameliorates the negative impacts that "context switching" between projects...

Read More
Can't Buy Me DevOps

Can't Buy Me DevOps

• DevOps Blog
Aaron Volkmann

The DevOps movement is clearly taking the IT world by storm. Technical feats, such as continuous integration (CI), comprehensive automated testing, and continuous delivery (CD) that at one time could only be mastered by hip, trendy startups incapable of failure, are now being successfully performed by traditional enterprises who have a long history of IT operations and are still relying on legacy technologies (the former type of enterprises are known in the DevOps community as...

Read More
DevOps Networking Solutions

DevOps Networking Solutions

• DevOps Blog
Aaron Volkmann

When building and delivering software, DevOps practices, such as automated testing, continuous integration, and continuous delivery, allow organizations to move more quickly by speeding the delivery of quality software features, that increase business value. Infrastructure automation tools, such as Chef, Puppet, and Ansible, allow the application of these practices to compute nodes through server provisioning using software scripts. These scripts are first-class software artifacts that benefit from source code version control, automated testing, continuous integration,...

Read More
DevOps Case Study: Amazon AWS

DevOps Case Study: Amazon AWS

• DevOps Blog
C. Aaron Cois

Regular readers of this blog will recognize a recurring theme in this series: DevOps is fundamentally about reinforcing desired quality attributes through carefully constructed organizational process, communication, and workflow. When teaching software engineering to graduate students in Carnegie Mellon University's Heinz College, I often spend time discussing well known tech companies and their techniques for managing software engineering and sustainment. These discussions serve as valuable real-world examples for software engineering approaches and associated outcomes, and...

Read More
ChatOps in the DevOps Team

ChatOps in the DevOps Team

• DevOps Blog
Todd Waits

In the post What is DevOps?, we define one of the benefits of DevOps as "collaboration between project team roles." Conversations between team members and the platform on which communication occurs can have a profound impact on that collaboration. Poor or unused communication tools lead to miscommunication, redundant efforts, or faulty implementations. On the other hand, communication tools integrated with the development and operational infrastructures can speed up the delivery of business value to the...

Read More
Continuous Integration in DevOps

Continuous Integration in DevOps

• DevOps Blog
C. Aaron Cois

When Agile software development models were first envisioned, a core tenet was to iterate more quickly on software changes and determine the correct path via exploration--essentially, striving to "fail fast" and iterate to correctness as a fundamental project goal. The reason for this process was a belief that developers lacked the necessary information to correctly define long-term project requirements at the onset of a project, due to an inadequate understanding of the customer and an...

Read More
Development with Docker

Development with Docker

• DevOps Blog
Joe Yankel

In our last post, DevOps and Docker, I introduced Docker as a tool to develop and deploy software applications in a controlled, isolated, flexible, and highly portable infrastructure. In this post, I am going to show you how easy it is to get started with Docker. I will dive in and demonstrate how to use Docker containers in a common software development environment by launching a database container (MongoDB), a web service container (a Python...

Read More
DevOps and Docker

DevOps and Docker

• DevOps Blog
Joe Yankel

Docker is quite the buzz in the DevOps community these days, and for good reason. Docker containers provide the tools to develop and deploy software applications in a controlled, isolated, flexible, highly portable infrastructure. Docker offers substantial benefits to scalability, resource efficiency, and resiliency, as we'll demonstrate in this posting and upcoming postings in the DevOps blog....

Read More