{"id":963,"date":"2019-09-20T08:00:41","date_gmt":"2019-09-20T06:00:41","guid":{"rendered":"http:\/\/cmagazine.test\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/"},"modified":"2020-06-25T17:34:30","modified_gmt":"2020-06-25T15:34:30","slug":"from-0-to-kubernetes-using-net-core-angular-e-jenkins","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/","title":{"rendered":"From 0 to Kubernetes using .NET Core, Angular e Jenkins"},"content":{"rendered":"<p>During the <strong>Codemotion Rome 2019<\/strong>, the <strong>Facebook Developer Circle<\/strong> joined the tech conference to present a live coding meetup. The meetup was an opportunity to see a live coding experiment where three different speakers were involved.<\/p>\n<p>The speakers, with completely different skills, demonstrated how it\u2019s possible to combine their skills and create an application written in <b>Angular<\/b> that uses a <b>REST<\/b> service written in <b>ASP.NET Core<\/b> to then publish everything on a <b>Kubernetes<\/b> cluster using the techniques of Jenkins <b>DevOps<\/b>.<\/p>\n<p>Below we can see an image that represents the architectural scheme:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1167\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image1-1.png\" alt=\"\" width=\"671\" height=\"361\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image1-1.png 671w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image1-1-300x161.png 300w\" sizes=\"auto, (max-width: 671px) 100vw, 671px\" \/><\/center>The meetup started with an overview of the different technologies used:<\/p>\n<ul>\n<li>ASP.NET Core<\/li>\n<li>Angular<\/li>\n<li>Jenkins<\/li>\n<li>Azure Kubernetes Services<\/li>\n<\/ul>\n<p>To get an idea of \u200b\u200bthe main <span id=\"urn:batch-analysis-633a09de-1cb3-4c9c-bfe0-ada4d683c02c\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feature_machine_learning\">features<\/span>, below is a brief excerpt of what was presented during the session:<\/p>\n<h3>ASP.NET Core<\/h3>\n<p>This is the new version of the .NET framework completely rewritten, open source and cross platform. The new framework differs greatly from previous versions (not Core) as it was designed to be native cloud and to have high <span id=\"urn:batch-analysis-76843cba-3c1e-4cf9-bcec-c53a8cb282ff\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/performance\">performance<\/span>.<\/p>\n<h3>Angular<\/h3>\n<p>This is the reference framework for front-end applications, it was designed to provide an easy and fast tool to develop applications that run on any platform, including smartphones and tablets.<\/p>\n<p>It\u2019s <span id=\"urn:batch-analysis-77d772e8-b775-47e3-b185-a8860e96442a\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/open_source\">open source<\/span> and, unlike its competitor React, it is a real framework written in Typescript.<\/p>\n<h3>Jenkins<\/h3>\n<p>Jenkins is an open source continuous integration tool, written in <span id=\"urn:batch-analysis-bd2998c3-df1e-4141-a803-e98adb2852b8\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/java\">Java<\/span>. The <span id=\"urn:batch-analysis-765e4b77-7ef3-453d-bf7e-7b18f3b70277\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span> started as an alternative version of Hudson starting from the same <span id=\"urn:batch-analysis-011edc7a-4662-4eae-9640-48c52984d67a\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">source code<\/span> after a discussion with Oracle. It provides continuous integration services for software development.<\/p>\n<h3>Azure Kubernetes Sevices<\/h3>\n<p>This is one of the services on Azure that simplifies the management, distribution and operations of Kubernetes on the cloud.<\/p>\n<h2>Part 1: Back-End &#8211; REST API<\/h2>\n<p><strong>Luca Congiu<\/strong> (Community DotNetCode) started the session by introducing the main <span id=\"urn:batch-analysis-f4cfd092-f02b-4fe8-a130-82ebd046a9dd\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feature_machine_learning\">features<\/span> of an application written in .NET Core: <span id=\"urn:batch-analysis-a6038602-1510-47aa-afe8-e593456a29c4\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/open_source\">Open Source<\/span>, <span id=\"urn:batch-analysis-426b6578-14f8-44b2-9ea9-9f9bb4d6adbf\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cross-platform\">Cross Platform<\/span> and Cloud Ready.<\/p>\n<p>During the <span id=\"urn:batch-analysis-639f8113-070e-4971-bf2d-b08696e9a2b0\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/live_coding\">live coding<\/span>, Luca showed how to use <strong><span id=\"urn:enhancement-ca7cd91a\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_visual_studio\">Visual Studio<\/span> Community Edition<\/strong> to create minutes a fully-functional REST <span id=\"urn:enhancement-ee8a1526\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span> <span id=\"urn:batch-analysis-2e3d783e-092e-4b02-9147-ab048d30cb90\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/web_application\">Web application<\/span> in few minutes. Such application persists in a <span id=\"urn:batch-analysis-6ef227c9-36da-4fd2-a088-53c5ef4d66f4\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/table_database\">database<\/span> exploiting the potential of the Entity Framework Core. The sample data model used for the application was the classic one of a simple post of a hypothetical blog.<\/p>\n<p>The fields taken into consideration were:<\/p>\n<ul>\n<li><b>blogid<\/b>, a unique identifier of the Post<\/li>\n<li><b>Title<\/b> of the post<\/li>\n<li><b>Content<\/b>, in <span id=\"urn:batch-analysis-a3235bdb-7619-4395-9d7c-6b4358061de9\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/html\">html<\/span> format<\/li>\n<li><b>Date<\/b> of publication<\/li>\n<\/ul>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1169\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image3-2.png\" alt=\"\" width=\"578\" height=\"222\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image3-2.png 578w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image3-2-300x115.png 300w\" sizes=\"auto, (max-width: 578px) 100vw, 578px\" \/><\/center>In addition, the back-end <span id=\"urn:batch-analysis-3f3867a2-9204-42bc-8436-b1d10644a95f\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/web_api\">Web API<\/span> has been equipped with Open <span id=\"urn:enhancement-83a63476\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span> interfaces that allow online publication of the documentation of the available <span id=\"urn:enhancement-50fcee45\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span> endpoint.<\/p>\n<p>Below is the image of the documentation on the back-end portal:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1170\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image2-2-1024x387.png\" alt=\"\" width=\"1024\" height=\"387\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image2-2-1024x387.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image2-2-300x113.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image2-2-768x290.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image2-2.png 1325w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/center>Once support for the Open <span id=\"urn:enhancement-b95795b0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span> was over, Luca added the DockerFile to his <span id=\"urn:batch-analysis-1b725b7c-e9d7-409b-b9f4-698978fb66a6\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span> and published it on his GitHub repository which, through automatic integration with the Docker Hub, triggered the build and <span id=\"urn:enhancement-59e1ee4d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deploy<\/span> of the Docker image on the public registry on the Docker Hub.<\/p>\n<h2>Part 2: Front End &#8211; Angular Web APP<\/h2>\n<p>In the second part of the <span id=\"urn:batch-analysis-7302d847-d75a-46c6-a7d2-47130445b77f\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/live_coding\">live coding<\/span>, <strong>Francesco Malagisi<\/strong> (Community Angular <span id=\"urn:batch-analysis-9ae3f4c3-8d00-4296-a767-9cd90a8e121e\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/rome\">Rome<\/span>) created an Angular application starting from the Angular <span id=\"urn:enhancement-45b2b527\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">CLI<\/span> (<span id=\"urn:enhancement-a07b4abf\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">Command Line Interface<\/span>). Then he went on to create all the necessary components with the help of WebStorm.<\/p>\n<p>During the session, the page displaying the list of posts and the post insertion \/ modification form was realised step-by-step.<\/p>\n<p>Once the infrastructure was created, including all the elements to make up the front-end application, it was easy to connect the front-end application written in Angular with the <span id=\"urn:batch-analysis-1f2f7920-b5d0-442c-8965-268ab9749d21\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/web_api\">Web API<\/span> made available by the back-end because both use the protocol REST for data access.<\/p>\n<p>Below we can see the image of the page created:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1171\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image4-1-1024x416.png\" alt=\"\" width=\"1024\" height=\"416\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image4-1-1024x416.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image4-1-300x122.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image4-1-768x312.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/09\/image4-1.png 1128w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/center>As a last implementation, Francesco added support to Progressive Web Apps adding, again through the <span id=\"urn:enhancement-d6c6b477\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">CLI<\/span> (<span id=\"urn:enhancement-dcbe0764\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">Command Line Interface<\/span>), the manifest file and the service worker.<\/p>\n<p>Once PWA support was completed (Progressive Web APP), he added the DockerFile to his <span id=\"urn:batch-analysis-6a58261d-ae1f-4dcc-afdc-a39cb3f3b33c\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span> and published it on his GitHub repository which, through automatic integration with the Docker Hub, triggered the build and <span id=\"urn:enhancement-59e40831\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deploy<\/span> of the Docker image on the public registry on the Docker Hub.<\/p>\n<h2>Part 3: DEVOPS &#8211; Jenkins CI \/ CD<\/h2>\n<p>DevOps is a method of software development that focuses on communication, collaboration and integration between developers and <span id=\"urn:batch-analysis-b72cc05f-5951-438a-ac5d-4a73931e3a3f\" class=\"textannotation disambiguated wl-no-link wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/information_technology\">information technology<\/span> (IT) operations.<\/p>\n<p>This session was masterfully directed by <strong>Diego Lagos Morales<\/strong> (Community Code Garden). Diego started by introducing what the DevOps world is and the motivations that drive companies to use tools such as Jenkins for Continuous Integration and Continuous Deployment. Then he created an automated <span id=\"urn:enhancement-4bb6a4d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deployment<\/span> script on a GitHub repository that, once connected to the Jenkins instance installed on your PC, allows you to publish the back-end and front-end Docker images on a Kubernetes cluster previously created on Azure.<\/p>\n<p>The <span id=\"urn:enhancement-e8e2977\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deployment<\/span> script is also available on <a href=\"https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDevOps\/blob\/develop\/codemotion_aks.yaml\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitHub<\/a>.<\/p>\n<p>It is also possible to run a live test on the actual change of the Kubernetes POD <span id=\"urn:enhancement-c3b36835\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_configuration\">configuration<\/span> to the update of the yaml file present in the repository dedicated to the DevOps project (<a href=\"https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDevOps\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a>).<\/p>\n<p>After the test on any possible configurations, Diego, Francesco and Luca ended by demonstrating the potential of what was presented, and pointing out that everything was done live and in just 40 minutes!<\/p>\n<h2>Links to GitHub projects:<\/h2>\n<ul>\n<li>Back-end: <a href=\"https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDemoBackEnd\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDemoBackEnd<\/a><\/li>\n<li>Front-end: <a href=\"https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDemoFrontEnd\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDemoFrontEnd<\/a><\/li>\n<li>DevOps: <a href=\"https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDevOps\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">https:\/\/github.com\/devcrome\/CodemotionRome2019MeetupDevOps<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>During the Codemotion Rome 2019, the Facebook Developer Circle joined the tech conference to present a live coding meetup. The meetup was an opportunity to see a live coding experiment where three different speakers were involved. The speakers, with completely different skills, demonstrated how it\u2019s possible to combine their skills and create an application written&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\">Read more<\/a><\/p>\n","protected":false},"author":61,"featured_media":952,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[31],"tags":[4141,62,56],"collections":[],"class_list":{"0":"post-963","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-developer","8":"tag-angular","9":"tag-dot-net","10":"tag-kubernetes","11":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>From 0 to Kubernetes using .NET Core, Angular e Jenkins - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Creating an Angular application that uses a REST service written in ASP.NET Core to then publish everything on aKubernetes cluster using Jenkins DevOps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"From 0 to Kubernetes using .NET Core, Angular e Jenkins\" \/>\n<meta property=\"og:description\" content=\"Creating an Angular application that uses a REST service written in ASP.NET Core to then publish everything on aKubernetes cluster using Jenkins DevOps.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-20T06:00:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-25T15:34:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Luca Congiu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luca Congiu\" \/>\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:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\"},\"author\":{\"name\":\"Luca Congiu\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/a4b054bfd13e14103c2bf72c3cd1a80b\"},\"headline\":\"From 0 to Kubernetes using .NET Core, Angular e Jenkins\",\"datePublished\":\"2019-09-20T06:00:41+00:00\",\"dateModified\":\"2020-06-25T15:34:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\"},\"wordCount\":889,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg\",\"keywords\":[\"Angular\",\"Dot NET\",\"Kubernetes\"],\"articleSection\":[\"Web Developer\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\",\"name\":\"From 0 to Kubernetes using .NET Core, Angular e Jenkins - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg\",\"datePublished\":\"2019-09-20T06:00:41+00:00\",\"dateModified\":\"2020-06-25T15:34:30+00:00\",\"description\":\"Creating an Angular application that uses a REST service written in ASP.NET Core to then publish everything on aKubernetes cluster using Jenkins DevOps.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg\",\"width\":960,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Web Developer\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"From 0 to Kubernetes using .NET Core, Angular e Jenkins\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/a4b054bfd13e14103c2bf72c3cd1a80b\",\"name\":\"Luca Congiu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f354518fc8a7b6697e7640d8083dd8d59c29fb4d51d3996217893936947eda78?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f354518fc8a7b6697e7640d8083dd8d59c29fb4d51d3996217893936947eda78?s=96&d=mm&r=g\",\"caption\":\"Luca Congiu\"},\"description\":\"Senior Solution Developer Microsoft .Net, ASP.NET espert and DotNetCode community leader\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/luca-congiu\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"From 0 to Kubernetes using .NET Core, Angular e Jenkins - Codemotion Magazine","description":"Creating an Angular application that uses a REST service written in ASP.NET Core to then publish everything on aKubernetes cluster using Jenkins DevOps.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/","og_locale":"en_US","og_type":"article","og_title":"From 0 to Kubernetes using .NET Core, Angular e Jenkins","og_description":"Creating an Angular application that uses a REST service written in ASP.NET Core to then publish everything on aKubernetes cluster using Jenkins DevOps.","og_url":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2019-09-20T06:00:41+00:00","article_modified_time":"2020-06-25T15:34:30+00:00","og_image":[{"width":960,"height":640,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg","type":"image\/jpeg"}],"author":"Luca Congiu","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Luca Congiu","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/"},"author":{"name":"Luca Congiu","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/a4b054bfd13e14103c2bf72c3cd1a80b"},"headline":"From 0 to Kubernetes using .NET Core, Angular e Jenkins","datePublished":"2019-09-20T06:00:41+00:00","dateModified":"2020-06-25T15:34:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/"},"wordCount":889,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg","keywords":["Angular","Dot NET","Kubernetes"],"articleSection":["Web Developer"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/","url":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/","name":"From 0 to Kubernetes using .NET Core, Angular e Jenkins - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg","datePublished":"2019-09-20T06:00:41+00:00","dateModified":"2020-06-25T15:34:30+00:00","description":"Creating an Angular application that uses a REST service written in ASP.NET Core to then publish everything on aKubernetes cluster using Jenkins DevOps.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg","width":960,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/"},{"@type":"ListItem","position":3,"name":"Web Developer","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/"},{"@type":"ListItem","position":4,"name":"From 0 to Kubernetes using .NET Core, Angular e Jenkins"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/a4b054bfd13e14103c2bf72c3cd1a80b","name":"Luca Congiu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f354518fc8a7b6697e7640d8083dd8d59c29fb4d51d3996217893936947eda78?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f354518fc8a7b6697e7640d8083dd8d59c29fb4d51d3996217893936947eda78?s=96&d=mm&r=g","caption":"Luca Congiu"},"description":"Senior Solution Developer Microsoft .Net, ASP.NET espert and DotNetCode community leader","url":"https:\/\/www.codemotion.com\/magazine\/author\/luca-congiu\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-600x600.jpg","author_info":{"display_name":"Luca Congiu","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/luca-congiu\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg",960,640,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-768x512.jpg",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg",960,640,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg",960,640,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg",960,640,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720.jpg",100,67,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/10\/drone-4302861_960_720-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Luca Congiu","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/luca-congiu\/"},"uagb_comment_info":1,"uagb_excerpt":"During the Codemotion Rome 2019, the Facebook Developer Circle joined the tech conference to present a live coding meetup. The meetup was an opportunity to see a live coding experiment where three different speakers were involved. The speakers, with completely different skills, demonstrated how it\u2019s possible to combine their skills and create an application written&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/61"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=963"}],"version-history":[{"count":6,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/963\/revisions"}],"predecessor-version":[{"id":6079,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/963\/revisions\/6079"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/952"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=963"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}