Practical DevOps
Subtitle: harness the power of DevOps to boost your skill set and make your IT organization perform better
By: Joakim Verona
Series: Community experience distilled; Community experience distilled
Publisher: Packt Publishing Ltd.
Published: 2016
Place of publication: Birmingham, UK
Language: eng
Number of pages: 217
ISBN-13: 9781785886522; 9781785882876
Subjects: Computer software; Development; COMPUTERS / Software Development & Engineering / General
Other titles: Harness the power of DevOps to boost your skill set and make your IT organization perform better
Notes: Includes index.
Table of contents: title: Cover ; Copyright; Credits; About the Author; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Introduction to 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 Continuous Delivery; title: 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; title: Wrapping up; title: a complete exampleIdentifying bottlenecks; Summary; Chapter 3: How DevOps Affects Architecture ; Introducing software architecture; The monolithic scenario; 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; title: Conway's Law; title: How to keep service interfaces forward compatibleMicroservices and the data tier; DevOps, architecture, and resilience; Summary; 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; title: Docker intermissionGerrit; Installing the git-review package; The value of history revisionism; The pull request model; GitLab; Summary; 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; title: Build phasesAlternative build servers; Collating quality measures; About build status visualization; Taking build errors seriously; Robustness; Summary; Chapter 6: Testing the Code ; Manual testing; Pros and cons with test automation; Unit testing; JUnit 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