From the course: Building Your First DevSecOps Pipeline in AWS

Introduction to a software factory

In this video, we'll be discussing the concept of a software factory, particularly focusing on its implementation using DevSecOps principles in AWS. Let's get started. VMware describes a software factory as an organized approach to software development that provides software design and development teams a repeatable, well-defined path to create and update software. The key to a successful factory is finding ways to be repeatable. It has to be seamless to allow quick releases. Now let's dig into what makes up a software factory. A software factory is essentially a set of tools and practices used to deliver software. It includes development and deployment tools and empowers DevOps teams with self-service capabilities. This structured approach helps maintain consistency and efficiency across projects. Many times the tools are hosted in the cloud. That helps with speed and simplicity of maintenance, which is why we focus on building a software factory and pipeline in the cloud in this course. Here we see a variety of DevOps tool sets commonly used in a software factory. These tools range from integrated development environments like VS Code, Visual Studio, and IntelliJ to CI/CD tools like Jenkins and CircleCI. We also have testing and security tools such as SonarQube and Burp, and collaboration tools like Slack and Teams. While these tools are essential, using too many can lead to increased workload and complexity. It's important to see what works for your DevOps team. If you try and force tools that do not work just to check a box, the DevOps teams will struggle. And too many tools can lead to too much work. To make DevOps work well, efficiency is extremely important. This is an example of the scaled agile framework that shows a software factory. You can see that many parts are involved, from testing, through release management and infrastructure automation. It truly can include the pieces and parts to build software from the ground up. When you start building a software factory, you should be aware of the goals that you are trying to achieve. The first goal is quicker startup times for projects. You want to be able to start new projects and get them off and running quicker. If you already have the software factory built, it saves time because you don't have to decide tool sets, you don't have to set up an entirely new pipeline. You have all of these things already to go. In addition, you have standard tools and practices already set up. You don't have to go back through finding a whole new tool set that you need for the CI/CD process. One of the biggest problems we're having in security and development in general is that we have too many tools and we pay too much money for our tools. By using a standard set of tools, we can reduce this debt. A pipeline will allow us to save money if we increase speed and agility. Faster equals cheaper. So when building your tool set for the software factory, make sure that you pay attention to tool efficiency.

Contents