Blog

BackBack to Blogs
DevOps

DevOps, HATEOAS & Gardening at Nebraska Code


Yesterday we talked a little about our experience at the Nebraska Code Conference May 17th-20th. There was so much to discuss that we decided to create a blog series sharing some the highlights. Today we wanted to talk about other hot topics: DevOps, HATEOS and REST, and Software Gardening.

DevOps
DevOps is a popular topic. As Donovan Brown from Microsoft says, "Why is #DevOps one of the hottest topics? It is because it hurts the most now.”

Richard Campbell from DotNetRocks gave his presentation on DevOps which largely followed The Three Ways principles.

At its core, the ultimate goal of DevOps is to deliver cleaner software more quickly by removing barriers between Operations and Development. By eliminating this boundary, the environment is able to foster trust and synergy. The largest barrier is overcoming the silos or sandbox mentality. For this to happen, we must realize that we are all responsible for the success of the software, and that success can only be measured over the entire lifecycle of the system.

The Three Ways encourage us to consider the entire system (Systems Thinking) by seeking to understand the flow of work, implement feedback loops to shorten the cycle between when an error occurs and when it can be addressed, and to promote and foster synergy by not being afraid to experiment. The Three Ways also provides consistency in how errors are addressed and handled.

Mr. Campbell recommended several books, but said if you only pick up one book, read The Phoenix Project. Gene Kim uses the fictional genre to explain the Three Ways and this creative and unexpected method of storytelling makes it an easy and fun read. One of our engineers has just finished the book and now his copy is floating around the office. The Phoenix Project get you thinking about what is work, work in progress (WIP), building trust between barriers, handling change management and improving from a chaotic IT/development environment. There is something for all levels of developers or leadership. Mr. Kim explains this further in his talk "Why Everyone Needs DevOps Now" at Spark 2013: The Electric Cloud Summit.

Mr. Campbell is a quote factory. Here are a few of our favorites:
"Software is free the same way a puppy is free."
"We're still not really a profession"
"Do painful things more frequently, so you can make it less painful…"

--Adrian Cockcroft, Architect, NetFlix
“Devs need 4 hours of uninterrupted work to get something done. Not interrupted, unless they might need that interruption”
"You understand that what you are doing is yanking the flower out of the dirt to look at the roots?"

--Richard Campbell to the Project Manager.
"DevOps doesn't come in a spray bottle"
"There is no cultural button"

REST and HATEOAS
We also watched a lesson by Billy Korando from Keyhole where he shared the lessons he’s learned from his use of Java's Spring Data REST tooling.

REST and HATEOAS  as created by Roy Fielding (a co-creator of the internet) in his dissertation uses HTTP to attempt to improve the server/client relationship. The main idea is that the server returns links that the client can follow. This should simplify the client logic and create self-describing APIs.

There are several levels of REST according to the Richardson Maturity Model and most of us who talk about using REST and Asp.Net API's are really just using HTTP as the transfer pipeline.

Level 0:
          HTTP Tunneling
Level 1:
          Resources return an ID
Level 2:
          HTTP Specs correct verb and status code
               Post is not idempotent
               HTTP is not enough because the client needs to understand the state
               HTTP only creates deployment dependencies
Level 3:
          Hypermedia tells us what the next step could be

Lee Brandt from Paige Labs showed how he was trying to use REST with a client in Angular. He started a library to help himself and others and created another demo. One highlight was the server could decide to return a deleted link if the user was authorized to delete, and the client would either show or hide the button based on if the link was there.

Even though the idea of REST has been around for 15+ years and the ideals are very compelling, we were surprised at the lack of tooling (outside of Spring Data) and the need for Lee to create a new library. With ASP.Net, we haven't seen anything similar to Spring. Paypal and Netflix have a HATEOAS, so there are some well-known usages of it. Overall, this looks like a good tool to have in the tool-belt, but the complexity would have to be justified. We hope to see more tooling to make this easier to approach in the future.

Software Gardening
"Software is organic rather than concrete - it is more like gardening" by Craig Bernston. Projects need soil (Agile project management), water (Software Craftsmanship) and light (professional development). It is easy to see how software projects are different than constructing a building. Read more from Craig's series in the DotNetCurry Magazine.

This was a fun session to take back to our weekly Lunch and Learn at Omnitech. We think Mr. Bernston has found a great analogy that helps us communicate about development with each other and our clients.