{"id":1935,"date":"2019-09-06T05:03:22","date_gmt":"2019-09-06T05:03:22","guid":{"rendered":"http:\/\/kusuaks7\/?p=1540"},"modified":"2024-04-18T10:31:54","modified_gmt":"2024-04-18T10:31:54","slug":"design-for-devops-best-practices","status":"publish","type":"post","link":"https:\/\/www.experfy.com\/blog\/bigdata-cloud\/design-for-devops-best-practices\/","title":{"rendered":"Design for DevOps \u2013 Best Practices"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1935\" class=\"elementor elementor-1935\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-775594cc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-eae-slider=\"94218\" data-id=\"775594cc\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-70cbc23\" data-eae-slider=\"39962\" data-id=\"70cbc23\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-66497fc6 elementor-widget elementor-widget-text-editor\" data-id=\"66497fc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tWithout good design practices, a DevOps implementation has no hope of delivering on its promise of accelerating innovation with high quality and scale.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e021d24 elementor-widget elementor-widget-text-editor\" data-id=\"e021d24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tAnyone who has been a designer knows that\u00a0<strong>good design for DevOps is<\/strong><b>\u00a0easier said than done.<\/b>\u00a0My blog, \u201c<a href=\"https:\/\/devops.com\/2016\/08\/01\/7-pillars-of-devops-essential-foundations-for-enterprise-success\/\" target=\"_blank\" rel=\"noopener noreferrer\">7 Pillars of DevOps<\/a>,\u201d identified seven essential best practices areas that make up successful DevOps. One of the seven pillars is Design for DevOps. The blog explains that the pillars are not silos, but rather foundations that need to be kept in balance. It also\u00a0can be said that good design goes a long way to make up for shortcomings in the other pillars.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f88bed0 elementor-widget elementor-widget-text-editor\" data-id=\"f88bed0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThis is true for any number of designs, including designs for legacy, greenfield or brownfield products. It is true for platform projects, feature enhancements or repairs. It is true for enterprise three-tier applications or multilayer products. And it is true whether the developers are using Agile, Waterfall or ITIL processes.\n \t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d2d94ac elementor-widget elementor-widget-text-editor\" data-id=\"d2d94ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tIn every case, a designer faces tough challenges and is expected to balance conflicting goals. Designers are expected to rapidly drive down the work backlog, yet produce quality products that avoid costly rejections and rollbacks. In addition, there is pressure to increase the percentage of effort spent on creative content over corrective content and do so with limited time and resources. These conflicting goals constitute tall responsibilities. If not supported with best practices, the overall design experience is a cauldron of stress and fast route to burnout.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c71ae43 elementor-widget elementor-widget-text-editor\" data-id=\"c71ae43\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThe following best practices improve the design experience and products of design in a way that is streamlined for the DevOps pipeline:\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b25a731 elementor-widget elementor-widget-heading\" data-id=\"b25a731\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3>Designers must thoroughly understand customer use cases<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f549739 elementor-widget elementor-widget-text-editor\" data-id=\"f549739\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tUsability, reliability, scaling, availability, testability, and supportability are more important than individual features! Quality over quantity is recommended. Designs that anticipate actual customer usage are the most successful.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-461f90f elementor-widget elementor-widget-heading\" data-id=\"461f90f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3>The culture needs to support designers<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2ece019 elementor-widget elementor-widget-text-editor\" data-id=\"2ece019\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tLeaders must support the designers with motivation, mentoring and training. No designer can be expected to know everything. It\u2019s OK for designers to make some mistakes if lessons are learned and improvement quickly follows. Good DevOps practices including continuous monitoring and quick remediation are examples of practices which help minimize the impact of any mistakes.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81b56f3 elementor-widget elementor-widget-heading\" data-id=\"81b56f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3>Design coding practices are critical:<\/h3><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-485701c elementor-widget elementor-widget-text-editor\" data-id=\"485701c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n \t<li>Products are architected to support modular independent packaging, testing, and releases. In other words, the product itself is partitioned into modules with minimal dependencies between modules. In this way the modules can be built, tested and released without requiring the entire product to be built, tested and released all at once.<\/li>\n \t<li>Where possible, applications are architected as modular, immutable microservices ready for deployment in cloud infrastructures, in accordance with the tenets of 12-factor immutable non-monolithic apps, rather than monolithic mutable architectures.<\/li>\n \t<li>Software code changes are pre-checked using peer code reviews prior to commit to the integration\/trunk branch.<\/li>\n \t<li>Software changes are integrated in a private environment together with the most recent integration branch version and tested using functional testing prior to committing the software changes to the integration\/trunk branch.<\/li>\n \t<li>Developers commit their code changes regularly, at least once per day.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb2fb73 elementor-widget elementor-widget-heading\" data-id=\"bb2fb73\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3>Good DevOps design practices support QA:<\/h3>\n<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8022eff elementor-widget elementor-widget-text-editor\" data-id=\"8022eff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n \t<li>Understand the QA process.<\/li>\n \t<li>Software code changes are pre-checked with unit tests prior to commit to the integration\/trunk branch.<\/li>\n \t<li>Software source code changes are pre-checked with Static Analysis tools prior to commit to the integration branch. Static analysis tools are used to ensure the modified source code does not introduce critical software faults such as memory leaks, uninitialized variables, and array-boundary problems.<\/li>\n \t<li>Software code changes are pre-checked with dynamic analysis and regression tests prior to commit to the integration\/trunk branch to ensure the software performance has not degraded.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca421fe elementor-widget elementor-widget-heading\" data-id=\"ca421fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h3>Good DevOps design practices support Ops:<\/h3><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66e57c0 elementor-widget elementor-widget-text-editor\" data-id=\"66e57c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n \t<li>Understand delivery and deployment of pipeline processes.<\/li>\n \t<li>Software features are tagged with software switches (i.e. feature tags or toggles) during check-in to enable selective feature level testing, promotion, and reverts.<\/li>\n \t<li>Automated test cases are checked-in to the integration branch at the same time code changes are checked-in. Evidence that the tests passed are included with the check-in.<\/li>\n \t<li>Tests are conducted in a pre-flight test environment that is a close facsimile of the production environment.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-914fe83 elementor-widget elementor-widget-heading\" data-id=\"914fe83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><h3>Supporting tools are needed to realize Design for DevOps practices:<\/h3>\n<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c5b141d elementor-widget elementor-widget-text-editor\" data-id=\"c5b141d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n \t<li>Elastic infrastructures that can be easily orchestrated, created and released as needed to support designers tasks on-demand with minimal delay.<\/li>\n \t<li>Design, code management, monitoring, and test tools readily available and scalable with minimal delay.<\/li>\n \t<li>Monitoring tools that track application process performance and report the results to designers in easily consumable formats without delay.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c133a31 elementor-widget elementor-widget-heading\" data-id=\"c133a31\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2>Design for DevOps Summary<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1690257 elementor-widget elementor-widget-text-editor\" data-id=\"1690257\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tWhat do you think? Do you agree the above are important best practices for DevOps design? Are there others you recommend?\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-785391c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-eae-slider=\"46534\" data-id=\"785391c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c413b98\" data-eae-slider=\"270\" data-id=\"c413b98\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c99a81a elementor-widget elementor-widget-text-editor\" data-id=\"c99a81a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tWhile DevOps implemented with all seven pillars provides a strong foundation for long-term enterprise business improvements, it is important to understand\u00a0<b>DevOps is not an island<\/b>. Enterprises implementing DevOps should be aware that\u00a0<b>DevOps interoperates with other IT systems and practices.<\/b>\u00a0Enterprises are well-advised to choose tool-agnostic IT partners that can provide solutions that best suit the needs of each unique enterprise and can integrate and evolve DevOps together with all of their IT systems.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Without good design practices, a DevOps implementation has no hope of delivering on its promise of accelerating innovation with high quality and scale.Anyone who has been a designer knows that\u00a0good design for DevOps is\u00a0easier said than done.\u00a0My blog, \u201c7 Pillars of DevOps,\u201d identified seven essential best practices areas that make up successful DevOps. One of<\/p>\n","protected":false},"author":589,"featured_media":3862,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[187],"tags":[95],"ppma_author":[3287],"class_list":["post-1935","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bigdata-cloud","tag-big-data-amp-technology"],"authors":[{"term_id":3287,"user_id":589,"is_guest":0,"slug":"marc-hornbeek","display_name":"Marc Hornbeek","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Hornbeek","first_name":"Marc","job_title":"","description":"Marc Hornbeek, known as &ldquo;DevOps_the_Gray&rdquo; and industry events speaker, is a DevOps Consultant at &nbsp;Trace3. A seasoned DevOps consultant, adviser, educator, mentor, and author, he has&nbsp;performed assessments for over 60 organizations. Awarded IEEE Outstanding Engineer, 2016, Western USA, he is&nbsp;a&nbsp;Senior IEEE member&nbsp;for 42 years. He is the author of the &nbsp;Continuous Delivery Architect&nbsp;certificate course and&nbsp;DevOps Test Engineering&nbsp;certificate course for&nbsp;DevOpsInstitute.com and many publications."}],"_links":{"self":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/1935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/users\/589"}],"replies":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/comments?post=1935"}],"version-history":[{"count":0,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/1935\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media\/3862"}],"wp:attachment":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media?parent=1935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/categories?post=1935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/tags?post=1935"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=1935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}