2 options
Practical DevOps : implement devops in your organization by effectively building, deploying, testing, and monitoring code / Joakim Verona.
- Format:
- Book
- Author/Creator:
- Verona, Joakim, author.
- Language:
- English
- Subjects (All):
- Computer software--Development.
- Computer software.
- Physical Description:
- 1 online resource (242 pages)
- Edition:
- Second edition.
- Place of Publication:
- Birmingham ; Mumbai : Packt, 2018.
- Biography/History:
- verona joakim: Joakim Verona is a consultant who specializes in continuous delivery and DevOps. He has worked on all aspects of systems development since 1994. He has actively contributed as the lead implementer of complex multilayered systems, such as web, multimedia, and mixed software/hardware systems. His wide-ranging technical interests led him to the emerging field of DevOps in 2004, where he has stayed ever since.
- Summary:
- DevOps is a practical field that focuses on delivering business value as efficiently as possible. DevOps encompasses all code workflows from testing environments to production environments. It stresses cooperation between different roles, and how they can work together more closely, as the roots of the word imply--Development and Operations..
- Contents:
- Cover
- Title Page
- Copyright and Credits
- Packt Upsell
- Contributors
- Table of Contents
- Preface
- Chapter 1: Introducing DevOps and Continuous Delivery
- Introducing DevOps
- How fast is fast?
- The Agile wheel of wheels
- Beware the cargo cult Agile fallacy
- DevOps and ITIL
- Summary
- Chapter 2: A View from Orbit
- The DevOps process and CD - an overview
- The developers
- The Revision Control System
- The build server
- The artifact repository
- Package managers
- Test environments
- Staging/production
- Release management
- Scrum, Kanban, and the delivery pipeline
- Wrapping up - a complete example
- Identifying bottlenecks
- Chapter 3: How DevOps Affects Architecture
- Introducing software architecture
- The monolithic scenario
- The Twelve Factors
- Factor 1 - code base
- Factor 2 - dependencies
- Factor 3 - config
- Factor 4 - backing services
- Factor 5 - build, release, run
- Factor 6 - processes
- Factor 7 - port binding
- Factor 8 - concurrency
- Factor 9 - disposability
- Factor 10 - dev/prod parity
- Factor 11 - logs
- Factor 12 - admin processes
- Architecture rules of thumb
- The separation of concerns
- The principle of cohesion
- Coupling
- Back to the monolithic scenario
- A practical example
- Three-tier systems
- The presentation tier
- The logic tier
- The data tier
- Handling database migrations
- Rolling upgrades
- Hello world in Liquibase
- The changelog file
- The pom.xml file
- Manual installation
- Microservices
- Interlude - Conway's law
- How to keep service interfaces forward compatible
- Microservices and the data tier
- DevOps, architecture, and resilience
- Chapter 4: Everything is Code
- The need for source code control
- The history of source code management
- Roles and code
- Which source code management system?.
- A word about source code management system migrations
- Choosing a branching strategy
- Branching problem areas
- Artifact version naming
- Choosing a client
- Setting up a basic Git server
- Shared authentication
- Hosted Git servers
- Large binary files
- Trying out different Git server implementations
- Docker intermission
- Gerrit
- Installing the git-review package
- The value of history revisionism
- The pull request model
- GitLab
- Chapter 5: Building the Code
- Why do we build code?
- The many faces of build systems
- The Jenkins build server
- Managing build dependencies
- The final artifact
- Cheating with FPM
- Continuous Integration
- Continuous Delivery
- Jenkins plugins
- The host server
- Build slaves
- Software on the host
- Triggers
- Job chaining and build pipelines
- A look at the Jenkins filesystem layout
- Build servers and Infrastructure as Code
- Building by dependency order
- Build phases
- Alternative build servers
- Collating quality measures
- About build status visualization
- Taking build errors seriously
- Robustness
- Chapter 6: Testing the Code
- Manual testing
- Pros and cons with test automation
- Unit testing
- xUnit in general and JUnit in particular
- A JUnit example
- Mocking
- Test coverage
- Automated integration testing
- Docker in automated testing
- Arquillian
- Performance testing
- Automated acceptance testing
- Automated GUI testing
- Integrating Selenium tests in Jenkins
- JavaScript testing
- Testing backend integration points
- Test-driven development
- REPL-driven development
- A complete test automation scenario
- Manually testing our web application
- Running the automated test
- Finding a bug
- Test walkthrough
- Handling tricky dependencies with Docker
- Chapter 7: Deploying the Code.
- Why are there so many deployment systems?
- Configuring the base OS
- Describing clusters
- Delivering packages to a system
- Virtualization stacks
- Executing code on the client
- A note about the exercises
- The Puppet master and Puppet agents
- Ansible
- Deploying with Chef
- Deploying with SaltStack
- Salt versus Ansible versus Puppet execution models
- Vagrant
- Deploying with Docker
- Comparison tables
- Cloud solutions
- AWS
- Azure
- Chapter 8: Monitoring the Code
- Nagios
- Munin
- Ganglia
- Graphite
- Log handling
- Client-side logging libraries
- The ELK stack
- Chapter 9: Issue Tracking
- What are issue trackers used for?
- Some examples of workflows and issues
- What do we need from an issue tracker?
- Problems with issue tracker proliferation
- All the trackers
- Bugzilla
- Trac
- Redmine
- The GitLab issue tracker
- Jira
- Chapter 10: The Internet of Things and DevOps
- Introducing the IoT and DevOps
- The future of the IoT according to the market
- Machine-to-machine communication
- IoT deployment affects software architecture
- IoT deployment security
- Okay, but what about DevOps and the IoT again?
- A hands-on lab with an IoT device for DevOps
- Other Books You May Enjoy
- Index.
- Notes:
- Description based on print version record.
- ISBN:
- 9781788398619
- 1788398610
- OCLC:
- 1039688465
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.