View All Videos

Deployment management design patterns for DevOps

44

Alex Honor / 

If you are an application developer you are probably accustomed to drawing from established design patterns. A system of design pattern can play the role of a playbook offering solutions based on combining complimentary approaches. Awareness of design anti-patterns can also be helpful in avoiding future problems arising from typical pitfalls. Ideally, design patterns can be composed together to form new solutions. Patterns can also provide an effective vocabulary for architects, developers and administrators to discuss problems and weigh possible solutions.

It’s a topic I have discussed before, but what happens once the application code is completed and must run in integrated operational environments? For companies that run their business over the web, the act of deploying, configuring, and operating applications is arguably as important as writing the software itself. If an organization cannot efficiently and reliably deploy and operate the software, it won’t matter how good the application software is.

But where are the design patterns embodying best practices for managing software operations? Where is the catalog of design patterns for managing software deployments? What is needed is a set of design patterns for managing the operation of a software system in the large. Design patterns like these would be useful to those that automate any of these tasks and will facilitate those tools developers who have adopted the “infrastructure as code” philosophy.

So what are typical design problems in the world of software operation?

The challenges faced by software operations groups include:

  • Application deployments are complex: they are based on technologies from different vendors, are spread out over numerous machines in multiple environments, use different architectures, arranged in different topologies.
  • Management interfaces are inconsistent: every application component and supporting piece of infrastructure has a different way of being managed. This includes both how components are controlled and how they are configured.
  • Administrative management is hard to scale: As the layers of software components increase, so does the difficulty to coordinate actions across them. This is especially difficult when the same application can be setup to run in a minimal footprint while another can be designed to support massive load.
  • Infrastructure size differences: Software deployments must run in different sized environments. Infrastructure used for early integration testing is smaller than those supporting production. Infrastructure based on virtualization platforms also introduces the possibility of environments that can be re-scaled based on capacity needs.

Facing these challenges first hand, I have evolved a set of deployment management design patterns using a “divide and conquer” strategy. This strategy helps identify minimal domain-specific solutions (i.e., the patterns) and how to combine them in different contexts (i.e., using the patterns systematically). The set of design patterns also include anti-patterns. I call the system of design patterns “PAGODA”. The name is really not important but as an acronym it can mean:

  • PAtterns GOod-for Deployment Administration
  • PAckaGe-Oriented Deployment Administration
  • Patterns for Application and General Operation for Deployment Administrators
  • Patterns for Applications, Operations, and Deployment Administration

Pagoda as an acronym might be a bit of a stretch but the image of a pagoda just strikes me a as a picture of how the set of patterns can be combined to form a layered structure.

 

Here is a diagram of the set of design patterns arranged by how they interrelate.

 

The diagram style is inspired by a great reference book, Release It. You can see the anti patterns are colored red while the design patterns that mitigate them are in green.

Here is a brief description of each design pattern:

Pattern Description Mitigates Alternative names
Command Dispatcher A mechanism used to lookup and execute logically organized named procedures within a data context permitting environment abstraction within the implementations. Too Many Tools Command Framework
Lifecycle A formalized series of operational stages through which resources comprising application software systems must pass. Control Hairball Alternative names
Orchestrator Encapsulates a multi-step activity that spans a set of administrative steps and or other process workflows. Control Hairball, Too Many Cooks Process Workflow, Control Mediator,
Composable Service A set of independent deployments that can assembled together to support new patterns of integrated software systems. Monolithic Environment Composable Deployments
Adaptive Deployment Practice of using an environment-independent abstraction along with a set of template-based automation, that customizes software and configuration at deployment time. Control Hairball, Configuration Bird Nest, Unmet Integration Environment Adaption
Code-Data Split Practice of separating the executable files (the product) away from the environment-specific deployment files, such as configuration and data files that facilitates product upgrade and co-resident deployments. Service Monolith Software-Instance Split
Packaged Artifact A structured archive of files used for distributing any software release during the deployment process. Adhoc Release Alternative names

The anti-patterns might be more interesting since they represent practices that have definite disadvantages:

Anti-Pattern Description Mitigates Alternative names
Too Many Tools Each technology and process activity needs its own tool, resulting in a multitude of syntaxes and semantics that must each be understood by the operator, and makes automation across them difficult to achieve. Command Dispatcher Tool Mishmash, Heterogeneous interfaces
Too Many Cooks A common infrastructure must be maintained by various disciplines but each use their own tools to affect change increasing chances for conflicts and overall negative effects. Control Mediator Unmediated Action
Control Hairball A process that spans activities that occur across various tools and locations in the network, is implemented in a single piece of code for convenience but turns out to be very inflexible, opaque and hard to maintain and modify. Control Mediator, Adaptive Deployment, Workflow  
Configuration Bird Nest A network of circuitous indirections used to manage configuration and seem to intertwine like a labyrinth of straw in a bird nest. People often construct a bird nest in order to provide a consistent location for an external dependency. Environment Adaptation  
Service Monolith Complex integrated software systems end up being maintained as a single opaque mass with no-one understanding entirely how it was put together, or what elements it is comprised, and how they interact. Code-Data Split, Composable Service House Of Cards, Monolithic Environment
Adhoc Release The lack of standard practice and distribution mechanisms for releasing application changes. Packaged Artifact  

 

Of course, this isn’t the absolute set of deployment management patterns. No doubt you might have discovered and developed your own. It is useful to identify and catalog them so they can be shared with others that will face scenarios already examined and resolved. Perhaps this set offered here will spurn a greater effort.

 

 

44 Responses

  1. Will says:

    First, great read :) This will prove tangibly useful in my future endeavors. With that said, scanning the table was a little bit difficult because of how the Pattern/Anti-Pattern column is vertically centered in each cell. I only say this because I know it’s something I’ll be referencing many times in the future and it kind of plays tricks on my eyes.

  2. Adrian Howchin says:

    Love the article, it’s a great idea. Any chance of fleshing it out with how you personally use the patterns in real life? (e.g. on a consulting job)

    • www.lincolnwebhosting.net says:

      Life-long career and doing work for one interviewer our general working life can be described as thing from past. With our current fast-paced overseas economy, careers not to mention industries certainly change not to mention come not to mention go instantaneous. http://www.lincolnwebhosting.net/

  3. Alex Honor says:

    I would like to expand on each of the patterns, perhaps place them each in their own document or post. Really needs links between them too.

    Use case examples is next on list !

    • www.vetwebdesign.net says:

      Suggest sad because if a relax off comes these are definitely the same individuals will find it difficult to launch his or her’s job browse quickly. It doesn’t be that process! Here are actually three “must do” livelihood success recreation. http://www.vetwebdesign.net/

  4. JC Martin says:

    I would suggest an approach similar to http://www.opensecurityarchitecture.org/cms/
    I have started something of that sort for configuration management which is related to to work you describe here. If there is some interest, maybe it’s worth the effort to start a similar repository for this domain. I know that a previous effort on openmanagement.org failed, so … I don’t know if there is much community interest in this domain.

    • www.software-uptodate.net says:

      Industry networking is furthermore important for the purpose of career victory. Keeping a network active are generally fun not to mention beneficial. Everyone has brought colleagues not to mention managers which happen to have left the corporate to advance to other companies. To continue being connected simply pickup the phone to suggest hello. http://www.software-uptodate.net/

  5. Alex Honor says:

    JC Martin, the http://www.opensecurityarchitecture.org/cms/ approach and site look great. I’ve decided to move the design pattern stuff to a new Google Code project called "devops-toolchain".
    It’s too bad the openmanagement.org effort failed. Not sure how much input I’ll get on the design pattern approach to documenting what is essentially advice and observations. It’s been valuable in my day to day work so there’s something there. Let me know if you are interested in contributing.

    • www.entertainmentheadlinenews.net says:

      Increasingly being happy will be desire of each and every person. People manage different moments where many gather towards celebrate his or her’s lives not to mention share his or her’s life experiences in relation to their friends. Aided by the plentiful instances of stressful experiences, http://www.entertainmentheadlinenews.net/

  6. Jp says:

    I wanted to thank you for this great read!!

    • www.eyecandyentertainment.net says:

      A lot of us will in no way allow his or her’s children towards toil hard throughout their higher coaching programs not to mention deny these products recognition. It’s going to wrong to accomplish this as some parent. The greattest thing you does is to set up for an outstanding graduation ceremony for a child. http://www.eyecandyentertainment.net/

  7. recorder says:

    Totally agree!!A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. Many patterns imply object-orientation or more generally mutable state

  8. Dan Erickson says:

    Your image links appear to be broken. Let me know if you get those fixed. Thanks.

  9. Part of the Balearic archipelago which also has the islands of Minorca and Ibiza among its components, yacht charter Mallorca is by far the largest and the most popular, because of its fine weather, the beaches and recently, the infrastructure.

  10. Just wanted to give a quick shout out and say that I genuinely enjoy reading your articles. This is one great result after checking through the net and meeting suggestions just like you’ve provided

  11. Most of the time I don’t make comments on websites, but I’d like to say that this article really forced me to do so. Really nice post

  12. This is quite wonderful post. The article affects a lot of urgent challenges of our society. We can not be indifferent to these challenges. Your post gives the light in which we can observe our real life. Very professional.

  13. This is my first opportunity to visit this website I found some interesting things and I will apply to the development of my blog.

  14. You’re in your first year of college, and already you can see how much it costs just to attend. There are so many things you have to pay for, such as tuition and books. Your wallet may be feeling the crunch, but you don’t have to worry. Here are a few tips for the college student who wants to save money. Unlock Her Legs

  15. Venus Factor says:

    Drink coffee while you lose weight. Studies have shown numerous health benefits afforded coffee drinkers. Some of those include decreased risk of diabetes, decreased blood lipids, and overall liver health. Next time you need a break from water, drink some black decaf coffee. In addition to the health benefits it will not negatively impact your weight loss efforts.

  16. Are you struggling to lose weight? Don’t worry, you are not alone. Most people have trouble with their weight at some time during their life. Developing a weight loss plan that is both effective and healthy can be difficult, as is sticking to it. Read this article for some helpful advice on losing weight and keeping up your motivation.

  17. Get to know your campus before classes begin. Time yourself to get a feel for how quickly you’ll have to walk to get from class to class. Mark your classes as well as other important locations, such as the library, on a map for easy reference until you learn them.

  18. Obesity is a continuous problem in our nation. Every single day, people die from obesity-related illnesses. If you are obese, now is the time to drop the weight to permanently change your life for the better. Below are a set of tips that will assist you in your weight loss goals.

  19. As was mentioned at the opening of this article, your stay at college can be one of the most amazing experiences of your life. In order to ensure that you get the most out of your time in college, apply all of the great tips and advice you’ve learned about in this article.

  20. You want to have everything under control as you embark upon your college days, and you want to cater to an experience that will bring many good things your way. While college can’t be perfect, you can do as much as possible to make your experience better. Keep reading to find out how!

  21. If possible, you should avoid scheduling classes one after the other. You are going to need breaks during the day. The best time for these breaks is after a class. This time will allow you to wind down, prepare for your next class or study if needed. Take these opportunities when you can. :)

  22. Getting to your weight goal may be a long process, but it does not have to be difficult one. Getting valuable information could be crucial as you make a weight loss plan. In the following article, the information you will provided with is going to make you see that losing weight does not have to be hard.

  23. jump manual says:

    Fitness generally refers to two different topics, nutrition and exercise. Both of these are essential aspects to having a healthy life and when you are able to improve them, you will begin to feel better about yourself and others will begin to respect you more. Fitness is not just about looking great, but more importantly, it is about feeling great. The following tips will help you with just that.

  24. Whether you are green fingered or black thumbed, adding a garden to your home can add value to your property, when it comes time to resell. Not only that, the hobby of gardening can be a relaxing stress-buster when required. Below are some ideas on how to turn your back yard into a little green piece of paradise.

  25. As you can see, losing weight is all about lifestyle shifts, not crash diets. This means that losing weight can actually be a pleasurable experience. Once you approach weight loss differently, the entire picture changes and the process becomes easier. Reading this article is your first step to building better lifestyle choices, so get out there and start living!

  26. This will help your dentist identify any issues before they become serious problems. Also, with regular cleanings, your mouth will be as healthy as possible.

  27. To improve the effectiveness of your stretches, adjust the amount of time you hold your stretches to account for your age. Why? As you age, your muscles lose pliability, so you need to spend more time stretching them. The recommended duration for people under 40 years old is 30 seconds, while people over 40 years old should hold stretches for twice as long.

  28. While looking and feeling one’s best is a top priority for women of all ages, it can be quite challenging to do so. Over-extending oneself on the job, in class, or at never-ending social engagements can really take a toll on your appearance. Fortunately, the beauty tips and tricks in this article will offer a wealth of insight that will allow for a more beautiful and balanced life.

  29. John Barban says:

    Anyone can lose weight if they are committed to doing so, but it’s made so much easier if you are aware of effective strategies on losing weight safely and for the long-term. There are many ways to lose weight, but it’s important to do so in a way that is easy for you to stick with. Here are some canny tips that we are sure will be invaluable to you.

  30. Kyle Leon says:

    If you are like most anyone, you have dreamed of having a stronger body with firm, lean muscle mass. Yet, achieving a toned and cut physique is a goal that eludes many. Keep reading into this article for a selection of suggestions that you can apply towards the body you want.

  31. Jenny Bolton says:

    For most women, looking their best is easily one of their topmost priorities before and after they leave the house. However, it can be very difficult to keep oneself looking bright and beautiful in the midst of a challenging work, school, and social schedule. Fortunately, these tips and tricks make it easier than ever to maintain their appearance.

  32. You’ll look back on your college days later on down the road and be happy with the decisions you have made for your future. Always keep your eyes on the prize and work hard until the day arrives when you finally have that diploma. cc

  33. If you can, try not to blow dry your hair too often and do not color your hair frequently. Both of these can cause your hair to dry out, damaging it in the process. If these products have already dried your hair out, you can use coconut oil twice a week to add moisture.

  34. Bobby Rio says:

    Going to college is an experience that will help you shape your personality and build a better future for yourself. It is important that you think about your decision carefully, compare different schools and programs and find a way to finance your education. Read this article to learn more about college.

  35. Diabetes can be very serious and devastating. In order to ensure that they live long and happy lives, it is critical for individuals diagnosed with the disease to educate themselves and learn the best ways to preserve their health. This article is packed with a variety of tips for living with diabetes.

  36. I found your this post while for information about blog-related research … It’s a good post .. keep posting and updating information.

Post a new comment