{"id":8073,"date":"2020-03-10T03:28:01","date_gmt":"2020-03-10T08:28:01","guid":{"rendered":"https:\/\/sterling.com\/?p=8073"},"modified":"2020-03-10T03:28:01","modified_gmt":"2020-03-10T08:28:01","slug":"cloud-native-development-on-prem-overview","status":"publish","type":"post","link":"https:\/\/sterling.com\/stargazer\/?p=8073","title":{"rendered":"Cloud Native Development On-Prem &#8211; Overview"},"content":{"rendered":"<p><span style=\"font-size: 12pt;\">Written By Billy Downing\u00a0<\/span><\/p>\n<p><span style=\"font-size: 12pt;\"><strong>What is a Cloud Native Application? <\/strong><\/span><\/p>\n<p><span style=\"font-size: 12pt;\">Cloud native application development is the method of breaking down workloads into business logic processes which can then be abstracted from infrastructure, observed with granularity, and deployed rapidly. This does not necessarily mean cloud native applications are required to run as thousands of microservices on a Kubernetes cluster, nor does it even require the applications to be containerized. However, these methods of software packaging and orchestration do facilitate workloads to become separated from their underlying infrastructure and ran anywhere so long as the agreed upon open standards are adhered to. Containerized applications being orchestrated through Kubernetes allows workloads to be quickly deployed in several environments including public clouds, private clouds, and hybrid architectures while affording control of the application environment to the developer (segregation through network policies and namespaces, load balancing through ingress and services, dynamic storage provisioning through class and persistent volume claims, etc). For a clear picture of Cloud Native check out the CNCF definition as well at <a href=\"https:\/\/github.com\/cncf\/toc\/blob\/master\/DEFINITION.md\">https:\/\/github.com\/cncf\/toc\/blob\/master\/DEFINITION.md<\/a><\/span><\/p>\n<p><span style=\"font-size: 12pt;\"><strong>What is the Cloud, and why should our applications live there?<\/strong><\/span><\/p>\n<p><span style=\"font-size: 12pt;\">\u00a0NIST Defines the five key attributes of a cloud as On-demand self-service, Broad network access, Resource pooling, Rapid elasticity, and Measured Service (<a href=\"https:\/\/csrc.nist.gov\/projects\/cloud-computing\">https:\/\/csrc.nist.gov\/projects\/cloud-computing<\/a>) These characteristics do not define location or tool sets, however do provide the functional requirements of what is necessary to deploy a cloud environment. In the situation of cloud native application development on-prem it becomes the responsibility of the operations team to deploy these attributes in an environment from the perspective of the developer. The developer must have the means for on-demand self-service in provisioning infrastructure to support and deploy their software, with the remaining attributes handled for them without intervention. This provides the benefit of focusing on the business logic of the application and less emphasis on the underlying infrastructure. However, in order for the support components to become sufficiently abstracted away a few things must happen:<\/span><\/p>\n<ul>\n<li><span style=\"font-size: 12pt;\">The infrastructure needs to be definable by software.<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">The instantiation of all components must be automated.<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">All components must be treated like cattle, not pets.<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Application packaging must have the means to include a description of the necessary environment.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: 12pt;\"><strong>With the stage set, how do we accomplish this on-prem?<\/strong><\/span><\/p>\n<p><span style=\"font-size: 12pt;\">While there are hundreds of tools to accomplish this (just take a look at the CNCF Landscape <a href=\"https:\/\/landscape.cncf.io\/\">https:\/\/landscape.cncf.io\/<\/a>) here are the list of tools and platforms we\u2019ll be going through to realize the on-prem cloud environment.<\/span><\/p>\n<ul>\n<li><span style=\"font-size: 12pt;\">Enterprise PKS for automated Kubernetes cluster provisioning and life cycle management<\/span>\n<ul>\n<li><span style=\"font-size: 12pt;\">Kubernetes for container orchestration<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Docker as the container run time<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-size: 12pt;\">ESXi\/vSphere for virtualized compute<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">NSX-T for virtualized networking<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">GitLab as a code repository &amp; GitLab CI for a defined pipeline to rapidly test and provision code<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Harbor for the image repository<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">vRealize Operations Manager, Network Insight, and LogInsight for observation<\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: 12pt;\">These tools will be tied together to provide an entire application pipeline as describe here:<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-8074\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/03\/Process-Flow-Billy-Downing-Overview.png\" alt=\"\" width=\"975\" height=\"533\" \/><br \/>\n<\/span><\/p>\n<h2><span style=\"font-size: 12pt;\">Process Flow<\/span><\/h2>\n<ul>\n<li><span style=\"font-size: 12pt;\">Developer makes changes, adds files, commits code, and git pushes to Dev branch hosted on local GitLab server<\/span>\n<ul>\n<li><span style=\"font-size: 12pt;\">GitLab kicks off GitLab CI and begins pipeline process using dedicated GitLab Runner<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-size: 12pt;\">Compile binaries, run code tests, verify grammar and syntax<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Create new docker images based on changed code<\/span>\n<ol>\n<li><span style=\"font-size: 12pt;\">New binaries and new static files built into image<\/span><\/li>\n<\/ol>\n<\/li>\n<li><span style=\"font-size: 12pt;\">Push newly built image to local Harbor Image Registry<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Create a test environment using Enterprise PKS to deploy and further test application<\/span>\n<ol>\n<li><span style=\"font-size: 12pt;\">Enterprise PKS will instantiate an entire cluster based on the same plan as production<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">This will coincide with all required objects being built in NSX-T<\/span><\/li>\n<\/ol>\n<\/li>\n<li><span style=\"font-size: 12pt;\">Once Enterprise PKS successfully created test-cluster, deploy k8\u2019s deployment manifest tagging all pods with scope: env tag: dev.<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">With the application up and running in a test-cluster, conduct further application testing<\/span>\n<ol>\n<li><span style=\"font-size: 12pt;\">In this case, a simple \u2018curl\u2019 to the LoadBalancer type service to ensure web services are responding is sufficient<\/span><\/li>\n<\/ol>\n<\/li>\n<li><span style=\"font-size: 12pt;\">If tests are passed, this portion of the pipeline is complete.<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Submit a merge request within GitLab to merge the tested dev branch into master<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Once merge request is approved, second pipeline kicks off to conduct a rolling upgrade of the prod-cluster to pull down the new version of the application containers.<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Once the new version of the application has been merged to master and deployed to the prod-cluster, the pipeline will continue to destroy all test-cluster artifacts to free-up any remaining resources<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Pipeline is complete, change has been successfully tested and deployed to production with minimal intervention<\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: 12pt;\">Overall, in subsequent posts we\u2019ll describe how the use of these individual tools and platforms together, on a per-product basis, provide an on-demand, elastic, and always available infrastructure to support the rapid development of applications in a private cloud using a real-world example digging deeper into each phase of this flow.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Written By Billy Downing\u00a0 What is a Cloud Native Application? Cloud native application development is the method of breaking down workloads into business logic processes which can then be abstracted [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":8075,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,14,16],"tags":[],"class_list":["post-8073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-cloud","category-managed-services"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cloud Native Development On-Prem - Overview - Sterling<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud Native Development On-Prem - Overview - Sterling\" \/>\n<meta property=\"og:description\" content=\"Written By Billy Downing\u00a0 What is a Cloud Native Application? Cloud native application development is the method of breaking down workloads into business logic processes which can then be abstracted [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sterling.com\/stargazer\/?p=8073\" \/>\n<meta property=\"og:site_name\" content=\"Sterling\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/SterlingComp\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-10T08:28:01+00:00\" \/>\n<meta name=\"author\" content=\"Sterling\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sterlingcomp\" \/>\n<meta name=\"twitter:site\" content=\"@sterlingcomp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sterling\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073#article\",\"isPartOf\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073\"},\"author\":{\"name\":\"Sterling\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d\"},\"headline\":\"Cloud Native Development On-Prem &#8211; Overview\",\"datePublished\":\"2020-03-10T08:28:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073\"},\"wordCount\":816,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#organization\"},\"image\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage\"},\"thumbnailUrl\":\"\",\"articleSection\":[\"Blog\",\"Cloud\",\"Managed Services\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073\",\"url\":\"https:\/\/sterling.com\/stargazer\/?p=8073\",\"name\":\"Cloud Native Development On-Prem - Overview - Sterling\",\"isPartOf\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2020-03-10T08:28:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sterling.com\/stargazer\/?p=8073\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8073#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sterling.com\/stargazer\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud Native Development On-Prem &#8211; Overview\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#website\",\"url\":\"https:\/\/sterling.com\/stargazer\/\",\"name\":\"Sterling\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sterling.com\/stargazer\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#organization\",\"name\":\"Sterling\",\"url\":\"https:\/\/sterling.com\/stargazer\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png\",\"contentUrl\":\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png\",\"width\":399,\"height\":145,\"caption\":\"Sterling\"},\"image\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/facebook.com\/SterlingComp\/\",\"https:\/\/x.com\/sterlingcomp\",\"https:\/\/www.instagram.com\/sterlingcomputers\/\",\"http:\/\/youtube.com\/@sterlingcomp\",\"https:\/\/www.linkedin.com\/company\/sterling-computers\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d\",\"name\":\"Sterling\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"caption\":\"Sterling\"},\"url\":\"https:\/\/sterling.com\/stargazer\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cloud Native Development On-Prem - Overview - Sterling","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Cloud Native Development On-Prem - Overview - Sterling","og_description":"Written By Billy Downing\u00a0 What is a Cloud Native Application? Cloud native application development is the method of breaking down workloads into business logic processes which can then be abstracted [&hellip;]","og_url":"https:\/\/sterling.com\/stargazer\/?p=8073","og_site_name":"Sterling","article_publisher":"http:\/\/facebook.com\/SterlingComp\/","article_published_time":"2020-03-10T08:28:01+00:00","author":"Sterling","twitter_card":"summary_large_image","twitter_creator":"@sterlingcomp","twitter_site":"@sterlingcomp","twitter_misc":{"Written by":"Sterling","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sterling.com\/stargazer\/?p=8073#article","isPartOf":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8073"},"author":{"name":"Sterling","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d"},"headline":"Cloud Native Development On-Prem &#8211; Overview","datePublished":"2020-03-10T08:28:01+00:00","mainEntityOfPage":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8073"},"wordCount":816,"commentCount":0,"publisher":{"@id":"https:\/\/sterling.com\/stargazer\/#organization"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage"},"thumbnailUrl":"","articleSection":["Blog","Cloud","Managed Services"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/sterling.com\/stargazer\/?p=8073","url":"https:\/\/sterling.com\/stargazer\/?p=8073","name":"Cloud Native Development On-Prem - Overview - Sterling","isPartOf":{"@id":"https:\/\/sterling.com\/stargazer\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage"},"thumbnailUrl":"","datePublished":"2020-03-10T08:28:01+00:00","breadcrumb":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8073#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sterling.com\/stargazer\/?p=8073"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sterling.com\/stargazer\/?p=8073#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/sterling.com\/stargazer\/?p=8073#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sterling.com\/stargazer\/"},{"@type":"ListItem","position":2,"name":"Cloud Native Development On-Prem &#8211; Overview"}]},{"@type":"WebSite","@id":"https:\/\/sterling.com\/stargazer\/#website","url":"https:\/\/sterling.com\/stargazer\/","name":"Sterling","description":"","publisher":{"@id":"https:\/\/sterling.com\/stargazer\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sterling.com\/stargazer\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sterling.com\/stargazer\/#organization","name":"Sterling","url":"https:\/\/sterling.com\/stargazer\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/","url":"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png","contentUrl":"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png","width":399,"height":145,"caption":"Sterling"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/SterlingComp\/","https:\/\/x.com\/sterlingcomp","https:\/\/www.instagram.com\/sterlingcomputers\/","http:\/\/youtube.com\/@sterlingcomp","https:\/\/www.linkedin.com\/company\/sterling-computers"]},{"@type":"Person","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d","name":"Sterling","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","caption":"Sterling"},"url":"https:\/\/sterling.com\/stargazer\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts\/8073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8073"}],"version-history":[{"count":0,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts\/8073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}