{"id":945,"date":"2018-12-24T20:47:47","date_gmt":"2018-12-24T20:47:47","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw93\/?p=945"},"modified":"2018-12-28T19:48:24","modified_gmt":"2018-12-28T19:48:24","slug":"devops-and-containers-on-prem-or-in-the-cloud","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw93\/index.php\/2018\/12\/24\/devops-and-containers-on-prem-or-in-the-cloud\/","title":{"rendered":"DevOps and Containers, On-Prem or in the Cloud"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/cdn.rancher.com\/wp-content\/uploads\/2017\/03\/14114412\/Cloud-or-On-Prem-2-300x170.jpg\" alt=\"\" \/>The cloud vs.<br \/>\non-premises debate is an old one. It goes back to the days when the<br \/>\ncloud was new and people were trying to decide whether to keep workloads<br \/>\nin on-premises datacenters or migrate to cloud hosts. But the Docker<br \/>\nrevolution has introduced a new dimension to the debate. As more and<br \/>\nmore organizations adopt containers, they are now asking themselves<br \/>\nwhether the best place to host containers is on-premises or in the<br \/>\ncloud. As you might imagine, there\u2019s no single answer that fits<br \/>\neveryone. In this post, we\u2019ll consider the pros and cons of both cloud<br \/>\nand on-premises container deployment and consider which factors can make<br \/>\none option or the other the right choice for your organization.<\/p>\n<h3>DevOps, Containers, and the Cloud<\/h3>\n<p>First, though, let\u2019s take a quick look at the basic relationship<br \/>\nbetween DevOps, containers, and the cloud. In many ways, the combination<br \/>\nof DevOps and containers can be seen as one way\u2014if not the native<br \/>\nway\u2014of doing IT in the cloud. After all, containers maximize<br \/>\nscalability and flexibility, which are key goals of the DevOps<br \/>\nmovement\u2014not to mention the primary reasons for many people in<br \/>\nmigrating to the cloud. Things like virtualization and continuous<br \/>\ndelivery seem to be perfectly suited to the cloud (or to a cloud-like<br \/>\nenvironment), and it is very possible that if DevOps had originated in<br \/>\nthe Agile world, it would have developed quite naturally out of the<br \/>\nprocess of adapting IT practices to the cloud.<\/p>\n<h3>DevOps and On-Premises<\/h3>\n<p>Does that mean, however, that containerization, DevOps, and continuous<br \/>\ndelivery are somehow unsuited or even alien to on-premises deployment?<br \/>\nNot really. On-premises deployment itself has changed; it now has many<br \/>\nof the characteristics of the cloud, including a high degree of<br \/>\nvirtualization, and relative independence from hardware constraints<br \/>\nthrough abstraction. Today\u2019s on-premises systems generally fit the<br \/>\ndefinition of \u201cprivate cloud,\u201d and they lend themselves well to the<br \/>\nkind of automated development and operations cycle that lies at the<br \/>\nheart of DevOps. In fact, many of the major players in the<br \/>\nDevOps\/container world, including AWS and Docker, provide strong support<br \/>\nfor on-premises deployment, and sophisticated container management tools<br \/>\nsuch as Rancher are designed to work seamlessly across the<br \/>\npublic\/private cloud boundary. It is no exaggeration to say that<br \/>\ncontainers are now as native to the on-premises world as they are to the<br \/>\ncloud.<\/p>\n<h3>Why On-premises?<\/h3>\n<p>Why would you want to deploy containers on-premises? Local Resources<br \/>\nPerhaps the most obvious reason is the need to directly access and use<br \/>\nhardware features, such as storage, or processor-specific operations.<br \/>\nIf, for example, you are using an array of graphics chips for<br \/>\nmatrix-intensive computation, you are likely to be tied to local<br \/>\nhardware. Containers, like virtual machines, always require some degree<br \/>\nof abstraction, but running containers on-premises reduces the number of<br \/>\nlayers of abstraction between the application and underlying metal to a<br \/>\nminimum. You can go from the container to the underlying OS\u2019s hardware<br \/>\naccess more or less directly\u2014something which is not practical with VMs<br \/>\non bare metal, or with containers in the public cloud. Local<br \/>\nMonitoring In a similar vein, you may also need containers to monitor,<br \/>\ncontrol, and manage local devices. This may be an important<br \/>\nconsideration in an industrial setting, or a research facility, for<br \/>\nexample. It is, of course, possible to perform monitoring and control<br \/>\nfunctions with more traditional types of software\u2014The combination of<br \/>\ncontainerization and continuous delivery, however, allows you to quickly<br \/>\nupdate and adapt software in response to changes in manufacturing<br \/>\nprocesses or research procedures. Local Control Over Security<br \/>\nSecurity may also be a major consideration when it comes to deploying<br \/>\ncontainers on-premises. Since containers access resources from the<br \/>\nunderlying OS, they have potential security vulnerabilities; in order to<br \/>\nmake containers secure, it is necessary to take positive steps to add<br \/>\nsecurity features to container systems. Most container-deployment<br \/>\nsystems have built-in security features. On-premises deployment,<br \/>\nhowever, may be a useful strategy for adding extra layers of security.<br \/>\nIn addition to the extra security that comes with controlling access to<br \/>\nphysical facilities, an on-premises container deployment may be able to<br \/>\nmake use of the built-in security features of the underlying hardware.<br \/>\nLegacy Infrastructure and Cloud Migration What if you\u2019re not in a<br \/>\nposition to abandon existing on-premises infrastructure? If a company<br \/>\nhas a considerable amount of money invested in hardware, or is simply<br \/>\nnot willing or able to migrate away from a large and complex set of<br \/>\ninterconnected legacy applications all at once, staying on-premises for<br \/>\nthe time being may be the most practical (or the most politically<br \/>\nprudent) short-to-medium-term choice. By introducing containers (and<br \/>\nDevOps practices) on-premises, you can lay out a relatively painless<br \/>\npath for gradual migration to the cloud. Test Locally, Deploy in the<br \/>\nCloud You may also want to develop and test containerized applications<br \/>\nlocally, then deploy in the cloud. On-premises development allows you to<br \/>\nclosely monitor the interaction between your software and the deployment<br \/>\nplatform, and observe its operation under controlled conditions. This<br \/>\ncan make it easier to isolate unanticipated post-deployment problems by<br \/>\ncomparing the application\u2019s behavior in the cloud with its behavior in<br \/>\na known, controlled environment. It also allows you to deploy and test<br \/>\ncontainer-based software in an environment where you can be confident<br \/>\nthat information about new features or capabilities will not be leaked<br \/>\nto your competitors.<\/p>\n<h3>Public\/Private Hybrid<\/h3>\n<p>Here\u2019s another point to consider when you\u2019re comparing cloud and<br \/>\non-premises container deployment: public and private cloud deployment<br \/>\nare not fundamentally incompatible, and in many ways, there is really no<br \/>\nsharp line between them. This is, of course, true for traditional,<br \/>\nmonolithic applications (which can, for example, also reside on private<br \/>\nservers while being accessible to remote users via a cloud-based<br \/>\ninterface), but with containers, the public\/private boundary can be made<br \/>\neven more fluid and indistinct when it is appropriate to do so. You can,<br \/>\nfor example, deploy an application largely by means of containers in the<br \/>\npublic cloud, with some functions running on on-premises containers.<br \/>\nThis gives you granular control over things such as security or<br \/>\nlocal-device access, while at the same time allowing you to take<br \/>\nadvantage of the flexibility, broad reach, and cost advantages of<br \/>\npublic-cloud deployment.<\/p>\n<h3>The Right Mix for Your Organization<\/h3>\n<p>Which type of deployment is better for your company? In general,<br \/>\nstartups and small-to-medium-size companies without a strong need to tie<br \/>\nin closely to hardware find it easy to move into (or start in) the<br \/>\ncloud. Larger (i.e. enterprise-scale) companies and those with a need to<br \/>\nmanage and control local hardware resources are more likely to prefer<br \/>\non-premises infrastructure. In the case of enterprises, on-premises<br \/>\ncontainer deployment may serve as a bridge to full public-cloud<br \/>\ndeployment, or hybrid private\/public deployment. The bottom line,<br \/>\nhowever, is that the answer to the public cloud vs. on-premises question<br \/>\nreally depends on the specific needs of your business. No two<br \/>\norganizations are alike, and no two software deployments are alike, but<br \/>\nwhatever your software\/IT goals are, and however you plan to achieve<br \/>\nthem, between on-premises and public-cloud deployment, there\u2019s more<br \/>\nthan enough flexibility to make that plan work.<\/p>\n<p><a href=\"https:\/\/rancher.com\/devops-containers-prem-cloud\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The cloud vs. on-premises debate is an old one. It goes back to the days when the cloud was new and people were trying to decide whether to keep workloads in on-premises datacenters or migrate to cloud hosts. But the Docker revolution has introduced a new dimension to the debate. As more and more organizations &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw93\/index.php\/2018\/12\/24\/devops-and-containers-on-prem-or-in-the-cloud\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;DevOps and Containers, On-Prem or in the Cloud&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-945","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/comments?post=945"}],"version-history":[{"count":1,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/945\/revisions"}],"predecessor-version":[{"id":987,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/945\/revisions\/987"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/media?parent=945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/categories?post=945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/tags?post=945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}