{"id":359,"date":"2014-07-02T03:06:37","date_gmt":"2014-07-02T03:06:37","guid":{"rendered":"http:\/\/blogs.nd.edu\/devops\/?p=359"},"modified":"2014-07-02T20:34:46","modified_gmt":"2014-07-02T20:34:46","slug":"a-good-day-for-devops-at-notre-dame","status":"publish","type":"post","link":"https:\/\/sites.nd.edu\/devops\/2014\/07\/02\/a-good-day-for-devops-at-notre-dame\/","title":{"rendered":"A Good Day for DevOps at Notre Dame"},"content":{"rendered":"<p>Last week, several new processes and technologies were asked\u00a0to sink or swim as the OIT and the Office of the Registrar brought\u00a0two new Ruby on Rails applications to production. \u00a0I&#8217;m pleased to announce that\u00a0due to a confluence of thorough planning, robust automatic deployment processes, and engaged collaboration across multiple OIT units, the apps are live and swimming, swimming, swimming.<\/p>\n<p><a href=\"http:\/\/blogs.nd.edu\/devops\/files\/2014\/07\/Screen-Shot-2014-07-01-at-11.42.45-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-387\" src=\"http:\/\/blogs.nd.edu\/devops\/files\/2014\/07\/Screen-Shot-2014-07-01-at-11.42.45-PM.png\" alt=\"Screen Shot 2014-07-01 at 11.42.45 PM\" width=\"372\" height=\"280\" srcset=\"https:\/\/sites.nd.edu\/devops\/files\/2014\/07\/Screen-Shot-2014-07-01-at-11.42.45-PM.png 372w, https:\/\/sites.nd.edu\/devops\/files\/2014\/07\/Screen-Shot-2014-07-01-at-11.42.45-PM-300x225.png 300w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><\/a><\/p>\n<p>What do we have now that we didn&#8217;t have before?<\/p>\n<ul>\n<li>two Rails apps in production<\/li>\n<li>a Banner API<strong style=\"font-style: normal\">\u00a0<\/strong>poised to serve as a key data integration point for\u00a0the future<\/li>\n<li><a href=\"https:\/\/blogs.nd.edu\/devops\/2014\/06\/27\/launchpad-a-rails-app-deployment-platform\/\">an automated app deployment tool<\/a><\/li>\n<li><a href=\"https:\/\/blogs.nd.edu\/devops\/2014\/06\/27\/rfc-workflow-for-launchpad\/\">a new workflow<\/a> that\u00a0empowers developers and speeds app deployment<\/li>\n<li>puppet manifests to create consistency between developer VMs and deployment environments (satisfying point 10 of the <a href=\"http:\/\/12factor.net\/\">Twelve-Factor App<\/a>)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>What else?<\/p>\n<ul>\n<li>the experience\u00a0to extend API services to other\u00a0data sources and consumers<\/li>\n<li>an architectural framework for future Rails app development<\/li>\n<li>a boatload of fresh Ruby on Rails knowledge<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Automation + Collaboration = Innovation. \u00a0Sound familiar? \u00a0These new practices and processes\u00a0are enhancing\u00a0our agility, velocity, and ability to deliver quality functionality to users.<\/p>\n<h3>Big Thanks<\/h3>\n<p>I have often observed that some of the most fulfilling times working in the OIT are on outage weekends. \u00a0Communication is quick and actions are decisive\u00a0as disparate OIT teams come\u00a0together, often in the same room, to bring new functionality to our campus constituents. That unity of purpose is the heart of DevOps, and I am pleased to say that I have seen it happen on a day-to-day basis recently. Let me highlight some of the people and teams who made\u00a0this week a success, and who are laying\u00a0the foundation for a bright future of ND application development.<\/p>\n<h4>Information Security<\/h4>\n<p><strong>Jason Williams<\/strong> and his team were attentive and helpful in defining best practices for handling database and API credentials &#8212; something that is a little different in the new technology stack. \u00a0Not only that, but when we needed Webinspect scans done or firewall rules put in place quickly, Jason&#8217;s team was ready to jump in and take action to help us go live.<\/p>\n<h4>Database Administration<\/h4>\n<p><strong>Fred Nwangana<\/strong>&#8216;s team was\u00a0involved from early on, helping shape how Rails applications would work in our environment. \u00a0Together we determined that this moment presents a great opportunity to decouple custom apps from the Banner database. \u00a0<strong>Vincent Melody<\/strong> in particular was a great help in provisioning database resources and helping drive\u00a0forward our process standardization.<\/p>\n<h4>Change Control<\/h4>\n<p><strong>Julie Stogsdill<\/strong> and <strong>Matt Pollard<\/strong>&#8216;s contributions have been tremendous. \u00a0I came to them with Launchpad and a pretty clear agenda of putting TEST environment deployments in developers&#8217; hands. \u00a0Rather than objecting to this idea, they helped me find <a href=\"http:\/\/blogs.nd.edu\/devops\/2014\/06\/27\/rfc-workflow-for-launchpad\/\">ways to integrate the process into our change control system<\/a>. \u00a0The new workflow is even more flexible than I had hoped, and has already allowed us to push important changes to production, via RFC, without a hint of dread that the process is too slow.<\/p>\n<h4>System Administration \/\u00a0Virtualization<\/h4>\n<p>I wrote\u00a0puppet manifests to provision our servers, but I would have gotten nowhere in our local infrastructure without help from <strong>Chris Fruewirth<\/strong>&#8216;s team. \u00a0<strong>Milind Saraph <\/strong>and\u00a0<strong>Joseph Franco<\/strong>, plus\u00a0<strong>John Pozivilko <\/strong>from the virtualization team,\u00a0were a great help in creating hosts in VMWare, assigning IPs, updating systems, and answering lots of questions when my limited sysadmin knowledge hit a wall. \u00a0Plus, we are all going to be working toward increasing\u00a0puppet infrastructure management in the future. \u00a0Good stuff ahead there!<\/p>\n<h3>Just the Beginning<\/h3>\n<p>People used to ask me how the new job was going. \u00a0There were so many things up in the air; how could I really give an answer? \u00a0So I&#8217;d say something like &#8220;ask me in six months.&#8221; \u00a0Well, now you can ask me any time, because the apps are live, the processes are working, and we are ready to take on new development challenges. There&#8217;s still more to tackle: expanding configuration management; exploring cloud infrastructure; implementing comprehensive\u00a0monitoring. \u00a0But for now, I want\u00a0to pause and say &#8220;thank you&#8221; to everyone who helped get us to this point. \u00a0Onward!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week, several new processes and technologies were asked\u00a0to sink or swim as the OIT and the Office of the Registrar brought\u00a0two new Ruby on Rails applications to production. \u00a0I&#8217;m pleased to announce that\u00a0due to a confluence of thorough planning, &hellip; <a href=\"https:\/\/sites.nd.edu\/devops\/2014\/07\/02\/a-good-day-for-devops-at-notre-dame\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1550,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-359","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/posts\/359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/users\/1550"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/comments?post=359"}],"version-history":[{"count":16,"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/posts\/359\/revisions"}],"predecessor-version":[{"id":391,"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/posts\/359\/revisions\/391"}],"wp:attachment":[{"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/media?parent=359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/categories?post=359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.nd.edu\/devops\/wp-json\/wp\/v2\/tags?post=359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}