Skip to main content

You are here

Software Development

Effective DevOps

The last time I was fooled by a title was when I read the book Pro Docker by Apress. Now O’Reilly Media joins that coveted list with their book Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale. This book should be titled, “Effective Management in a diverse work environment”. This book is aimed for managers rather than the regular day-to-day engineers. While normally, I would consider this to be a very important topic, however some of the approaches that the authors show cased their concepts was to me somewhat of a let down. Unlike the steaming pile of shit that was Pro Docker, this book does have some good content. Like describing some of the patterns that lead to good team collaboration, and overall excellent examples of accomplishing good leadership.

My major problem with this book. Is the forced diversity, as solution for an effective team. Alluding if being part of the same certain ethnic group, race, or sex causes the same thoughts of ideas in the workplace, therefore diversity is needed. The major problem with this train of thought is that itself is very judgemental to begin with! This ideology definitely manifests in the authors writing.

Lastly, perhaps maybe because I wasn’t the target audience for this book, but I felt this book dragged a lot. The authors are clearly very knowledgeable in this topic, however while this book does have some excellent content, at certain times it felt to me that there was way too much filler content, to an otherwise good examples.

Rating: 2/5

Effective DevOps

Chapter 1: The Big Picture
Chapter 2: What is DevOps
Chapter 3: A History of DevOps
Chapter 4: Foundational Terminology
Chapter 5: DevOps Misconceptions and Anti-Patters
Chapter 6: The Four Pillars of Effective DevOps
Chapter 7: Collaboration: Individuals Working Together
Chapter 8: Collaboration Misconceptions
Chapter 9: Affinity: From Individuals to Teams
Chapter 10: Affinity: Misconceptions and Troubleshooting
Chapter 11: Tools: Ecosystem Overview
Chapter 12: Tools: Accelerators of Culture
Chapter 13: Tools: Misconceptions and Troubleshooting
Chapter 14: Scaling: Inflicting Points
Chapter 15: Scaling: Misconceptions and Troubleshooting
Chapter 16: Building Bridges with the Four Pillars of Effective DevOps
Chapter 17: Bridging DevOps Cultures: Learning from Our Stories
Chapter 18: Bridging DevOps Cultures: Fostering Human Connections
Chapter 19: Conclusion


Book Category: 

Jenkins 2: Up and Running

Jenkins 2: Up and Running, Evolve Your Deployment Pipeline for Next Generation Automation is a book that in my humble opinion every new or current DevOps engineer needs to read. Even if you’re not using Jenkins as your Continuous Integration/ Delivery tool, this book does an excellent job describing you the high-level concepts with working practical examples.

The focal point of this book are Pipelines. I was familiar with Jenkins Pipelines prior to reading this book, however its original and current Groovy scripted configuration was somewhat intimidation to me. Although I’ve used Groovy on my Freestyle Jenkins jobs (see, I’ve stayed away from using Jenkins Pipelines up until now. Even if you’re new to Groovy (which I am), this book explains Pipeline Groovy scripted configurations, and its more easier to understand counterpart of declarative Pipeline configurations in a very simple and comprehensive manner. It even goes as far was to showcasing how would you reconfigure your existing Freestyle job, into a Pipeline configuration, all while keeping the same features and enjoying the added benefits that a build has using a Pipeline configuration.

This is an advance book, it doesn’t have an installation chapter which most tech books love to include (and I tend to see them as pointless). Also, this book assumes you already know to implement a basic application delivery process. To get the most of off this book, it helps if you already have some sort of working deployment job set in place. This book will go into showcasing techniques on having a much more powerful and reliable integration and deployment setup.

Jenkins 2: Up and Running

Rating: 3/5

Chapter 1: Introduction to Jenkins 2
Chapter 2: The Foundations
Chapter 3: Pipeline Execution Flow
Chapter 4: Notifications and Reports
Chapter 5: Access and Security
Chapter 6: Extending Your Pipeline
Chapter 7: Declarative Pipelines
Chapter 8: Understanding Project Types
Chapter 9: The Blue Ocean Interface
Chapter 10: Conversions
Chapter 11: Integration with the OS
Chapter 12: Integrating Analysis Tools
Chapter 13: Integrating Artifact Management
Chapter 14: Integrating Containers
Chapter 15: Other Interfaces
Chapter 16: Troubleshooting


Book Category: 

Jenkins Continuous Integration Cookbook

This is a really technical advance book, that already assumes you have some basic knowledge of servers, software testing, and more importantly continuous integration and deployment. Don’t expect this book to hold your hand while reading through it. This book will take you from using Jenkins from a very simple standard application deployment build environment, to an extremely elaborate and powerful tool that can follow the all mighty (sarcasm) agile methodology in your development environment.

I think this is a good book to read after The Definitive Guide to Jenkins since it covers mostly the same concepts on top of additional (more advance) example scenarios. For example some that I implemented in my very own Jenkins build server; were customized css pages/themes, captcha forms, and extending Jenkins itself using Groovy. Also security wise, this book goes into far more detail on how to lock down and secure your Jenkins installation. Hell, it even provided examples on testing whether the Jenkins server is XSS vulnerable!

Just like The Definitive Guide to Jenkins, the overwhelming majority of the examples are related to deploying Java specific applications, and just like that book I found myself skipping through a lot of the examples described. This book also covers for more advance Jenkins uses cases like LDAP integration, and enabling SSO.

I was shocked to learn, how new the Pipelines feature is. This book was published in 2015, and while I know it may take some significant amount of time to publish a book; so it maybe possible a bulk of this book may be written in 2014. This book does not describe examples of using Pipelines in a Jenkins build project. It's amazing that something so extremely useful, is relatively new. Thus said, I would definitely recommend this book to those seeking to extend their Jenkins working knowledge.

Rating: 3/5
Jenkins Continuous Integration Cookbook

Chapter 1: Maintenance Jenkins
Chapter 2: Enhancing Security
Chapter 3: Building Software
Chapter 4: Communication Through Jenkins
Chapter 5: Using Metrics to Improve Quality
Chapter 6: Testing Remotely


Book Category: 

The Definitive Guide to Jenkins

Unlike the book Integrating PHP Projects with Jenkins, The Definitive Guide to Jenkins is a really good source for anyone wanting to learn Jenkins more in depth. This book describes practically almost all of the functionally that you need to know in order to start implementing rock solid Continuous Integration and Continuous Delivery solutions in whatever environment you are working in. You’ll learn how to install, configure, and secure your Jenkins itself, and more importantly how to create simple freestyle project builds to more complex pipeline project builds. The only thing Integrating PHP Projects with Jenkins and this book have in common is that both books mention a lot of useful code coverage, analysis, build automation, unit/stress testing tools, etc.

One of the few drawbacks of this book (though it’s understandably given the history of the Jenkins project) is that it’s very Java focused. The working example that is companioned with this book is a working Java application. At first I tried to follow along using the example Java application, but then I just skipped over the Java specific stuff and instead I applied the major concepts to my own custom Jenkins projects and builds that I have for my web applications.

Although this book was published over six years ago, most of the generic Jenkins content still applies. The book does cover running Jenkins in your own environment as well as using and running Jenkins in a cloud environment. One thing that I was surprised was not seeing any information regarding running Jenkins in a high availability configuration; it only covered basic master/slave configurations.

Continuous Integration and Continuous Delivery is somewhat of a fairly advanced topic, thus so is this book. I think you need to have a basic to firm understanding of servers, application deployment, and a little programming knowledge to fully get the most out of this book. Thus said, we’re in July 2017 and if you’re one of those that still deploys application changes manually via FTP/SSH, then this is the book for you to start using a much better deployment strategy no matter of what application you’re working on.

Rating: 3/5
The Definitive Guide to Jenkins

Chapter 1: Introducing Jenkins
Chapter 2: Your First Steps with Jenkins
Chapter 3: Installing Jenkins
Chapter 4: Configuring Your Jenkins Server
Chapter 5: Setting Up Your Build Jobs
Chapter 6: Automated Testing
Chapter 7: Securing Jenkins
Chapter 9: Code Quality
Chapter 10: Advanced Builds
Chapter 11: Distributed Builds
Chapter 12: Automated Deployment and Continuous Delivery


Book Category: 

Pro Vagrant

This book can practically turn anyone from a total Vagrant noob to an advance user, no matter if you're a developer or a sysadmin. More importantly, this book will help you to easily integrate Vagrant to your current development environment. The Vagrant documentation is really good and comprehensive. On the other hand, this book basically holds your hand through the entire process of learning Vagrant, which it's not a bad thing if you ask me. Depending on your environment, the Vagrant workflow might be fairly complex. This book does a wonderful job explaining Vagrant's workflow using basic PHP, Ruby, JavaScript, and Python working application examples.

I really liked the chapters on custom box creation and versioning from scratch. If you're either a sysadmin or a developer and unless you live under a rock, by now you heard of the term “DevOps”. As Vagrant itself being a DevOps tool, this book brilliantly distinguishes what aspects of Vagrant are handled by the sysadmin and what aspects a developer only needs to care about. From creating a box from scratch and versioning it, provisioning, distribution, to using git to integrate a working and distributable vagrant environment. I was however disappointed to see that this book did not described distributing versioned boxes using your own http server.

Like the book Vagrant: Up and Running, the virtualization platform used throughout the book is VirtualBox.

I honestly believe Apress should've labelled this book as a “Beginning” title and not “Pro”. Extending Vagrant is not even touched on this book, which I think it's the main reason why it should be called “Beginning Vagrant” instead. As a plugin developer myself, I would love to see an entire book dedicated to extending Vagrant. While the Vagrant documentation is great, it would be awesome and helpful to read of developing practical vagrant plugins from scratch. In the past, their been instances were I had to read through the Vagrant source (RTFS) for action hooks that weren't even documented. Luckily, now they actually have documentation for them! However other areas such as the Vagrant middleware API, the existing documentation as of this writing is a lot to be desired. I would buy a Pro Vagrant development book in a heart beat.

In terms of deciding which Vagrant book to recommend, I honestly can't say which book is better Vagrant: Up and Running or Pro Vagrant. Both are great and well worth reading.

Chapter 1: Getting Started with Vagrant
Chapter 2: Four Web Frameworks in Four Minutes
Chapter 3: The States of VM
Chapter 4: Default Configuration and Security Settings of the Guest VM
Chapter 5: Your First Box
Chapter 6: Provisioning
Chapter 7: Creating Boxes from Scratch
Chapter 8: Configuring virtual machines
Chapter 9: One true workflow
Chapter 10: Going Pro


Pro Vagrant


Book Category: 

Vagrant: Up and Running

Vagrant is an awesome piece of software. This fantastic application has changed the way most companies do development. Vagrant: Up and Running, is an introductory book that extends the official Vagrant document in a short well structure approach. Practically all of the topics covered in the book are covered in the official Vagrant documentation. However, this book is aimed for people completely new Vagrant and are unaware of the idiosyncrasy of what it takes to configure a server. The book's examples are using VirtualBox as the visualization platform, and Linux as the VM guest. So in addition of learning Vagrant, you'll also be learning some of the really cool in features of VirtualBox and see how wonderfully Vagrant abstracts this by using it's Vagrantfile guest configuration.

The book is divided into seven chapters. The first two chapters are basic introductions to Vagrant. Their is also a chapter dedicated to provisioning a guest using Chef and Puppet. The provisioning chapter does not go into the details of Chef or Puppet, but the example Chef recipes and Puppet manifest described on the book are really simple and straight forward. They are well described, and should be able to easily understand the Vagrant provisioning process no matter what provision tool you'll later end up using. My favorite chapter, and practically the reason anyone needs to buy this book, is the chapter on Plug-in development. I've been hacking on a Vagrant plugin these last few days, and personally feel the official documentation is lacking in this area, and this chapter is hands down the best documentation on Plug-in development.

The only con of this book, is not necessarily the book's fault but rather a result of Vagrant's constant fast pace development. The book was published on May 2013, and being at this point in time over two years old, it's diffidently aging fast. Some of the examples on the Extending Vagrant with Plug-ins chapter, using the lasted version of Vagrant at the time of this writing, spit out deprecate warnings.

Chapter 1: An Introduction to Vagrant
Chapter 2: Your First Vagrant Machine
Chapter 3: Provisioning Your Vagrant VM
Chapter 4: Networking in Vagrant
Chapter 5: Modeling Multimachine Clusters
Chapter 6: Boxes
Chapter 7: Extending Vagrant with Plug-Ins

Rating: 4/5

Vagrant: Up and Running.
Create and Manage Virtualized Development Environments


Book Category: 

Premium Drupal Themes by Adaptivethemes