{"id":833,"date":"2014-10-24T01:37:31","date_gmt":"2014-10-24T05:37:31","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/acts\/?p=833"},"modified":"2019-02-26T16:32:47","modified_gmt":"2019-02-26T21:32:47","slug":"cloud-delivery-platform-thought-model","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/acts\/2014\/10\/24\/cloud-delivery-platform-thought-model\/","title":{"rendered":"Cloud Delivery Platform &#8212; Thought Model"},"content":{"rendered":"<p>I was asked to take a look at a thought model for a Cloud Delivery Platform. I\u2019m not going to post that graphic, because it wasn\u2019t ready for prime time. It was confused and I\u2019m not really sure what it was trying to show. So I created a bit of a diagram showing what I thought was important. (Just click on it, it doesn&#8217;t seem to fit right, and the next size down is too small to read.)<\/p>\n<p><a href=\"http:\/\/blogs.law.harvard.edu\/acts\/files\/2014\/10\/cloud_delivery_platform.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-834 size-large\" src=\"http:\/\/blogs.law.harvard.edu\/acts\/files\/2014\/10\/cloud_delivery_platform-1024x464.png\" alt=\"cloud_delivery_platform\" width=\"1024\" height=\"464\" srcset=\"https:\/\/archive.blogs.harvard.edu\/acts\/files\/2014\/10\/cloud_delivery_platform-1024x464.png 1024w, https:\/\/archive.blogs.harvard.edu\/acts\/files\/2014\/10\/cloud_delivery_platform-300x136.png 300w, https:\/\/archive.blogs.harvard.edu\/acts\/files\/2014\/10\/cloud_delivery_platform.png 1212w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Halfway through I realized I\u2019m not terribly good at making these things. I\u2019ll get better. But there\u2019s a few things I wanted to draw attention to in this graphic.<\/p>\n<h2>The Roles<\/h2>\n<p>This was the most important thing to me is to highlight the crossover of roles for each step. There are few steps in the process that should be perfomed by a single role. Devops is about communication.<\/p>\n<h2>Local Development<\/h2>\n<p>Coding, building, testing, packaging are all things that should be done at the same time. You don\u2019t code 1000 lines then build. You build with every small change. In the same way, you should have tests written with the small increments. And that gets extended to \u201cpackaging\u201d.<\/p>\n<h2>Packaging<\/h2>\n<p>I\u2019m probably missing a very important word in my vocabulary here, but I\u2019m going to go easy on myself, it\u2019s late. What I\u2019m meaning here is the process of setting up an image, or a deployable product. The configuration that will collect external dependencies and run tests when it gets to the deployed environment. This should all be done locally first. It should all be put into version control, separate from the application code. And this needs to be done in collaboration between the developer, who knows the application, and operations (or as they\u2019ve been renamed in my organization, \u201cDevops Engineers\u201d) those who know how to package things appropriately.<\/p>\n<h2>Local Concurrence vs Cloud Linearity<\/h2>\n<p>Why isn\u2019t spell check underlining \u201clinearity\u201d. That can\u2019t be real. As I mentioned before, the things done locally are all done at the same time (build, test, package). That\u2019s all just development. When it gets to the cloud, it\u2019s a done product. Nothing should be further developed there. Nothing should be getting reworked. Everything needs to come entirely from Version Control and no manual finagling. (obviously?) So the cloud portion is linear. Everything happens in order. If it fails at any point, it\u2019s sent back to local dev and fixed there.<br \/>\nMaybe this is all so obvious, it doesn\u2019t need to be said. Maybe I\u2019d feel better if it were just said anyway.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was asked to take a look at a thought model for a Cloud Delivery Platform. I\u2019m not going to post that graphic, because it wasn\u2019t ready for prime time. It was confused and I\u2019m not really sure what it was trying to show. So I created a bit of a diagram showing what I [&hellip;]<\/p>\n","protected":false},"author":4571,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[111266,1,63993],"tags":[13142,34459,48237,111280,63998,14625,63992,111237],"class_list":["post-833","post","type-post","status-publish","format-standard","hentry","category-continuous-integration-development","category-uncategorized","category-version-control","tag-cloud","tag-collaboration","tag-deployment","tag-devops","tag-functional-testing","tag-puppet","tag-unit-testing","tag-version-control-2"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts\/833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/users\/4571"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/comments?post=833"}],"version-history":[{"count":8,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts\/833\/revisions"}],"predecessor-version":[{"id":842,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts\/833\/revisions\/842"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/media?parent=833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/categories?post=833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/tags?post=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}