Overview
Continuous delivery is a software engineering approach for producing and testing software in short cycles, ensuring that software can be released at any time. This Continuous Delivery workshop discusses technical practices, necessary tools and customized application of an enterprise Continuous Delivery program. During the workshop, participants will learn about workflow integration through hands-on labs, demonstrations, practical exercises, video tutorials and discussions. The workshop uses technologies and tools like C#, Java, TFS, Git, Jenkins, Maven, Chef and Puppet. The course provides participants with a roadmap for making their release process into a competitive advantage instead of a bottleneck for business goals.
What You'll Learn
- Define and demonstrate the value of continuous delivery
- Recognize the relationship between continuous integration and continuous delivery
- Set up, navigate and manage a continuous delivery environment
- Execute releases n test environments
- Identify the most effective tools for quick release and reliable maintenance
- Integrate continuous delivery methods & techniques into current workflow
- Decrease time to market and increase quality
- Reduce risks and costs with a continuous delivery approach
Curriculum
- Introduction to continuous delivery
- Where does continuous delivery fit in the DevOps landscape?
- How does continuous delivery work?
- What are the benefits of using continuous delivery?
- Anti-patterns
- Lab: Explore a sample CI configuration
- Explore CI settings in Team Services
- Explore gated check-in settings in Team Services
- Review the Agile development and the Agile manifesto
- Integrated development environments
- Source control and versioning
- Test-driven development
- Pair programming
- User stories
- Developer tasks
- Sprints
- Lab: Be Agile with Team Services
- Create a Team Services account
- Add user stories to Team Services project
- Add Developer task to user stories
- Test-driven development
- What is continuous integration?
- How continuous integration fits into the DevOps landscape
- How does continuous integration work?
- Continuous integration essentials
- Common continuous integration practices
- Benefits of continuous integration
- From continuous integration to continuous delivery
- Lab: Configure Team Services for Continuous Integration
- Configure check-in policy
- Configure Build trigger
- Configure inspections and test execution
- Version control
- Automated builds
- Automated testing
- Automated acceptance testing
- Package repository
- Managing dependencies
- Managing environments
- Configuring principles
- Lab: Configure aPackage Repository
- Configure a Package Repository using Team Services
- Invoke a build that deploys to the Package Repository
- What is deployment pipeline
- Committing code
- Gated acceptance testing
- Automating deployment
- Testing stages
- Implementing a deployment pipeline
- Build tools overview
- Deployment scripting
- Build scripting
- Automating tests
- Lab: Automating deployment
- Configure Build tools (MSBuild)
- Create Deployment script
- Deploy sample application
- Creating acceptance tests
- Automating acceptance tests
- Creating unit tests
- Automating unit tests
- Automating capacity testing
- Parallel testing
- Refactoring
- Lab: Automating test execution
- Automating unit tests
- Automating acceptance tests
- Releasing an application
- Deploying an application
- Continuous delivery
- Continuous deployment
- Virtual environments
- Rolling back a deployment
- Lab: Delivery vs. Deployment
- Deliver deployment packages to the package repository
- Deploy the current version from the package repository
- Deploy a previous version from the package repository
- Infrastructure management
- Communicating with the operations team
- Configuration management
- Infrastructure in the cloud
- Infrastructure maintenance
- Lab: Cloud services
- Configure the Azure virtual server
- Save virtual server image
- Managing components
- Managing dependencies
- Version control
- Version control options
- Mainline development
- Merging and branching
- Risk management
- Delivery lifecycle
- Common pitfalls
- Documentation is crucial
- Maintaining the configuration
Who should attend
The course is highly recommended for –
- Software developers
- Quality assurance professionals
- Software testers
- Product owners
- Infrastructure engineers
- Development team members
- Operations team members
- Project managers
Prerequisites
There are no mandatory prerequisites for this course, however, completing the Fundamentals of DevOps course prior to taking up this course would be beneficial.