
Introducing DevOps for Developers
Learning Paths:
Topics:
Table of Contents
Introduction
Introduction
Erik Reinert introduces the course by providing social media links and some professional background. A student's question regarding if Erik would recommend DevOps for someone entering the tech field and a discussion regarding beneficial experience for a career in DevOps are also covered in this segment.What Exists Today
Erik briefly discusses the course structure and what currently exists for definitions, culture challenges, communication, and suboptimal solutions regarding DevOps.What is DevOps
Erik discusses the goals of DevOps, how it approaches realizing them through technology and communication, and what DevOps is not. Student questions regarding handling companies differing opinions of DevOps and the difference between companies putting their spin on DevOps and defining your DevOps are also covered in this segment.Three W's of Strategy
Erik demonstrates identifying the why, what, and who of a problem. Identifying these helps provide the end goal and a clear understanding of the strategy to achieve that goal.Setting Dev Standards
Erik discusses DevOps standards: guidelines or best practices that typically cover communication, collaboration, and automation. Examples of automation, planning, quality, and communication standards are provided in this segment.
Technical Design Documents
Technical Design Documents
Erik demonstrates the benefits of technical design documents, including guiding software system development and communicating technical aspects to stakeholders and developers. Suggestions for how to approach your first technical design document are also provided in this segment.Writing a Technical Design Document
Erik walks through an example technical design document and provides recommendations for how to provide clear and concise information.Problem: Fragmented Documentation
Erik walks through creating a problem statement and identifying currently used communication methods for a student provided technical design document prompt.Preferred Communication Methods
Erik walks through deciding which communication methods are preferred and condenses where information is located. Documenting culture standards to assist with organization is also covered in this segment.Pain Points
Erik discusses addressing possible pain-points of a technical design document's suggested changes.Proposed Solutions
Erik demonstrates providing proposed solutions in a technical design document. Steps to take after the first draft of the document is finished are also discussed in this segment.
Managing Infrastructure with Pulumi
Infrastructure Standardization
Erik discusses identifying the problems of and creating technical design documents regarding standardizing infrastructure and CI/CD. A technical design document is created for standardizing infrastructure in the segment.Service Directory
Erik demonstrates utilizing the previously created technical design document to build a service directory to manage and update resources. A brief walk through of setup instructions and a brief overview of Pulumi are also covered in this segment.Pulumi Setup
Erik walks through setting up a new Pulumi project including, defining and accessing stack instances, and deploying the stack. A demonstration of the files generated by Pulumi is also covered in this segment.Storing Static Resources
Erik demonstrates creating Components by extending Pulumi's ComponentResource class to create a new class component. A discussion regarding the results of Pulumi initially bridging Terraform providers to Pulumi is also covered in this segment.Standardizing & Automating Buckets
Erik discusses standardizing and automating buckets by creating an interface for standard bucket arguments and access restrictions. A demonstration of Pulumi options is also covered in this segment.Generating Buckets with Pulumi
Erik walks through how to generate buckets by creating a DevOps bucket resource. Properly scoping the bucket ensures isolation of resources.Automating Buckets at Scale
Erik demonstrates expanding bucket automation for large scale applications.Frontend Source Code Buckets
Erik walks through creating and standardizing a frontend service to be utilized by the standardized buckets. Creating new buckets that utilize the frontend service is also covered in this segment.Enable Static Website Hosting
Erik demonstrates how to enable static website hosting for aws buckets. A demonstration of how the resources look in aws is also provided in this segment.Managing Container Repositories
Erik demonstrates organizing and managing container repositories and creating a backend that supports the previously created frontend service.Pulumi Q&A
Erik answers student questions regarding leveraging Pulumi for CI/CD pipelines, if lock state is available, and if documentation can be generated.
Managing CI/CD
Service Templates
Erik walks through writing a technical design document regarding creating a CLI tool that contains service templates. A visual demonstration using a lucid chart is also covered in this segment.Build Process Automation
Erik live codes a CLI tool that can read a build.json file, define service names, and service types to help automate the build process.Generating a Dockerfile
Erik demonstrates implementing a dockerfile containing ENV variables for service names and service types. Updating the build.json to allow for more overrides in the dockerfile is also covered in this segment.Rendering Templates in a Dockerfile
Erik demonstrates implementing the ability for the CLI tool to read template files to generate the new dockerfile.Writing the Dockerfile
Erik briefly discusses configuring the CLI tool to operate remotely, hard coding the build path, and demonstrates writing the dockerfile. Running pre and post install commands are also covered in this segment.Writing the CircleCI Config
Erik walks through writing and configuring a circleci.yml file to further automate building and testing.