{"id":6992,"date":"2021-06-11T11:33:18","date_gmt":"2021-06-11T04:33:18","guid":{"rendered":"http:\/\/gcloudvn.wam.vn\/devops-tren-google-cloud-cong-cu-de-tang-toc-do-phat-trien-phan-mem\/"},"modified":"2023-04-03T16:00:12","modified_gmt":"2023-04-03T09:00:12","slug":"devops-tren-google-cloud-cong-cu-de-tang-toc-do-phat-trien-phan-mem","status":"publish","type":"post","link":"https:\/\/gcloudvn.com\/en\/kienthuc\/devops-tren-google-cloud-cong-cu-de-tang-toc-do-phat-trien-phan-mem\/","title":{"rendered":"DevOps on Google Cloud: a tool to speed up software development"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">At ForgeRock, they used and approached Kubernetes early on, seeing it as a strategic platform. Running on Kubernetes allows ForgeRock to push multicloud support across <\/span><a href=\"https:\/\/gcloudvn.com\/en\/google-kubernetes-engine-gke\/\"><span style=\"font-weight: 400;\">Google Kubernetes Engine<\/span><\/a><span style=\"font-weight: 400;\"> (GKE), Amazon (EKS) and Azure (AKS). So no matter which cloud their customers are running on, ForgeRock can seamlessly integrate its products into the customer&#039;s environment.\u00a0<\/span><\/p>\n<figure id=\"attachment_14423\" aria-describedby=\"caption-attachment-14423\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-14423 size-large\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2019\/07\/BlogHeader_Kubernetes_A.max-2200x2200-1024x427.jpg\" alt=\"Helps developers work productively in IDEs\" width=\"1024\" height=\"427\" \/><figcaption id=\"caption-attachment-14423\" class=\"wp-caption-text\">Helps developers work productively in IDEs<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Making it easier for ForgeRock developers and operators to build, deploy and manage applications is critical to our ability to continuously deliver high-quality solutions to customers. ForgeRock is always looking for tools to improve productivity and keep developers focused on writing code instead of configuration. Google Cloud&#039;s DevOps toolkit has streamlined three specific practices to help their developers work efficiently.<\/span><\/p>\n<p><strong>&gt; Reference:\u00a0<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/devops-va-giai-phap-bao-mat-dot-pha-voi-gke-autopilot\/\">Devops and Breakthrough Security Solutions with GKE Autopilot<\/a><\/li>\n<\/ul>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/devops-tren-google-cloud-cong-cu-de-tang-toc-do-phat-trien-phan-mem\/#1_Giup_nha_phat_trien_lam_viec_hieu_qua_trong_IDEs\" >1. Help Developers Be Efficient in IDEs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/devops-tren-google-cloud-cong-cu-de-tang-toc-do-phat-trien-phan-mem\/#2_Thuc_day_tu_dong_hoa_end-to-end\" >2. Drive end-to-end automation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/devops-tren-google-cloud-cong-cu-de-tang-toc-do-phat-trien-phan-mem\/#3_Thuc_day_mo_hinh_va_thuc_hanh_multicloud\" >3. Promote multicloud model and practice<\/a><\/li><\/ul><\/nav><\/div>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"1_Giup_nha_phat_trien_lam_viec_hieu_qua_trong_IDEs\"><\/span><strong>1. Help Developers Be Efficient in IDEs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Developer productivity is core to the success of any organization, including ForgeRock. Since developers spend most of their time in the IDE of their choice, ForgeRock&#039;s goal is to make it easier for developers to write Kubernetes applications in the IDE they know and love. <\/span><span style=\"font-weight: 400;\">Cloud Code (<a href=\"https:\/\/cloud.google.com\/code\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/code<\/a>)<\/span><span style=\"font-weight: 400;\"> help them do exactly that: it makes building, deploying, scaling, and managing Kubernetes infrastructure and applications easy.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">In particular, working with the Kubernetes YAML syntax and schema takes time and a lot of trial and error to master. Ask for a favor <\/span><span style=\"font-weight: 400;\">supports YAML generation (<a href=\"https:\/\/cloud.google.com\/code\/docs\/vscode\/yaml-editing\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/code\/docs\/vscode\/yaml-editing<\/a>)<\/span><span style=\"font-weight: 400;\"> in Cloud Code, the Developer team can easily avoid the complicated and time consuming work of writing YAML files at ForgeRock. With YAML authoring support, developers save time on every error. Cloud Code&#039;s inline snippets, completion, and schema validation, aka &quot;linting,&quot; further streamline working with YAML files.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">The benefits of CloudCode also extend to in-house development. Local iteration on Kubernetes applications often requires many manual steps, including building <\/span><span style=\"font-weight: 400;\">container images<\/span><span style=\"font-weight: 400;\">, update the Kubernetes manifest and redeploy the applications. Doing these steps over and over can be a chore. Cloud Code <\/span><a href=\"https:\/\/cloud.google.com\/code\/docs\/intellij\/deploying-a-k8-app\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">supports Skaffold under the<\/span><span style=\"font-weight: 400;\"> hood,<\/span><\/a><span style=\"font-weight: 400;\"> track changes as they arrive and automatically rebuild and re-register \u2014 reducing repetitive development tasks.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Finally, developing for Kubernetes often involves switching between IDEs, documentation, templates, etc. Cloud Code mitigates this context switching with Kubernetes <\/span><a href=\"https:\/\/github.com\/GoogleCloudPlatform\/cloud-code-samples\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">code sample<\/span><\/a><span style=\"font-weight: 400;\">. With templates, Google Cloud can get new developers up and running quickly. They spend less time learning about configuration and application management \u2014 and more time writing and developing code.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"2_Thuc_day_tu_dong_hoa_end-to-end\"><\/span><strong>2. Drive end-to-end automation<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">To further improve developer productivity, Google has focused on end-to-end automation: from writing code in the IDE to automatically triggering CI\/CD pipelines and running code in production. . Especially, <\/span><span style=\"font-weight: 400;\">Tekton (<a href=\"https:\/\/cloud.google.com\/tekton\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/tekton<\/a>)<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">Cloud Build (<a href=\"https:\/\/cloud.google.com\/cloud-build\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/cloud-build<\/a>)<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">Container Registry (<a href=\"https:\/\/cloud.google.com\/container-registry\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/container-registry<\/a>)<\/span><span style=\"font-weight: 400;\"> and GKE are critical to Forgerock as Google Cloud streamlines code flow, feedback, and remediation through build and deploy processes. The process looks like this:<\/span><\/p>\n<figure id=\"attachment_19214\" aria-describedby=\"caption-attachment-19214\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19214 size-large\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2021\/06\/News-3-1024x541.png\" alt=\"Drive end-to-end automation\" width=\"1024\" height=\"541\" \/><figcaption id=\"caption-attachment-19214\" class=\"wp-caption-text\">Drive end-to-end automation<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">ForgeRock started by developing the Kubernetes manifest and dockerfiles using CloudCode. Then they use <\/span><span style=\"font-weight: 400;\">Skaffold<\/span><span style=\"font-weight: 400;\"> (<a href=\"https:\/\/cloud.google.com\/blog\/products\/application-development\/kubernetes-development-simplified-skaffold-is-now-ga\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/blog\/products\/application-development\/kubernetes-development-simplified-skaffold-is-now-ga<\/a>) to build <\/span><span style=\"font-weight: 400;\">\u00a0containers <\/span><span style=\"font-weight: 400;\">locally, while CloudBuild helps with continuous integration (CI). <\/span><a href=\"https:\/\/github.com\/marketplace\/google-cloud-build\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">CloudBuild GitHub app<\/span><\/a><span style=\"font-weight: 400;\"> allows us to automate builds and tests as part of our GitHub workflow. Cloud Build is different from other continuous integration tools because it is completely serverless. It scales up and down in response to load, with no need for Google Cloud to pre-provision servers or pay upfront for more storage. They pay for the exact resources used.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Once the image is created by Cloud Build, it will be stored, managed and secured within Google <\/span><span style=\"font-weight: 400;\">Container Registry (<a href=\"https:\/\/cloud.google.com\/container-registry\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/container-registry<\/a>)<\/span><span style=\"font-weight: 400;\">. Just like Cloud Build, Container Registry is serverless, so ForgeRock only pays for what they use. In addition, since the Container Registry comes with automatic vulnerability scanning, every time they upload a new image to the Container Registry, it can also be scanned for vulnerabilities.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Next, a Tekton pipeline is activated, deploying docker images stored in the Container Registry and Kubernetes to a running GKE cluster. Along with Cloud Build, Tekton is an important part of the CI\/CD process at ForgeRock. Most importantly, because Tekton comes with standardized Kubernetes native prototypes, they can create continuous delivery processes very quickly.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">After deployment, Tekton activates a functional test suite to ensure that the deployed ForgeRock applications work as expected. Test results are posted to the team&#039;s Slack channel so all developers have instant access and insight into each cluster. From there, ForgeRock can provide customers with their finished product requirements.<\/span><\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignnone size-large wp-image-19218\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2021\/06\/News-4-1024x446.jpg\" alt=\"DevOps on Google Cloud: a tool to speed up software development\" \/><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"3_Thuc_day_mo_hinh_va_thuc_hanh_multicloud\"><\/span><strong>3. Promote multicloud model and practice<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">The industry has seen a shift towards <\/span><a href=\"https:\/\/cloud.google.com\/multicloud\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">multicloud.<\/span><\/a><span style=\"font-weight: 400;\">Organizations have adopted Multi Cloud strategies to reduce vendor lock-in, leverage best-in-class solutions, improve cost effectiveness, and increase flexibility through choice.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">ForgeRock are big advocates of the Multi Cloud feature. Part of that comes from the fact that their identity and access management product works on <a href=\"https:\/\/gcloudvn.com\/en\/google-cloud-platform\/\">Google Cloud Platform<\/a>, AWS and Azure. Developing products using open source technologies like Kubernetes has been particularly helpful in promoting this interoperability.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Tekton is another important project that has enabled ForgeRock to prevent vendor lock-in. Thanks to Tekton, their continuous delivery pipelines are deployable on any Kubernetes cluster. Most importantly, since Tekton pipelines run on top of Kubernetes, these pipelines can be decoupled from runtime. Like Tekton and Kubernetes, both Cloud Build and Container Registry are based on open technology. <\/span><a href=\"https:\/\/github.com\/GoogleCloudPlatform\/cloud-builders-community\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">Community-contributed builders<\/span><\/a><span style=\"font-weight: 400;\">\u00a0and <\/span><a href=\"https:\/\/github.com\/GoogleCloudPlatform\/cloud-builders\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">official builder images<\/span><\/a><span style=\"font-weight: 400;\"> allowing them to connect to a variety of tools as part of the build process. And finally, with support for open technologies like <\/span><span style=\"font-weight: 400;\">Google Cloud buildpacks (<a href=\"https:\/\/cloud.google.com\/blog\/products\/containers-kubernetes\/google-cloud-now-supports-buildpacks\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/cloud.google.com\/blog\/products\/containers-kubernetes\/google-cloud-now-supports-buildpacks<\/a>)<\/span><span style=\"font-weight: 400;\"> in Cloud Build, they can <\/span><span style=\"font-weight: 400;\">\u00a0build containers<\/span><span style=\"font-weight: 400;\"> without the need for Docker.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Making it easier for developers and operators to build, deploy, and manage applications is critical to the success of any organization. Driving developer productivity in the IDE, leveraging end-to-end automation, and supporting multi-cloud patterns and practices are just some of the ways ForgeRock is trying to achieve it. To learn more about ForgeRock and deploy the ForgeRock Identity Platform to your Kubernetes cluster, check out the ForgeRock open source code \u2013 <\/span><span style=\"font-weight: 400;\">ForgeOps<\/span><span style=\"font-weight: 400;\"> repository on GitHub.<\/span><\/p>\n<p style=\"text-align: right;\"><strong>Source: <a href=\"https:\/\/gcloudvn.com\/en\/\">gcloudvn.com<\/a><\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>At ForgeRock, they used and approached Kubernetes early on, seeing it as a strategic platform. Running on Kubernetes allows ForgeRock to leverage multicloud support on Google Kubernetes Engine (GKE), Amazon (EKS) and Azure (AKS).\u2026<\/p>","protected":false},"author":1,"featured_media":6993,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kienthuc","entry","has-media"],"_links":{"self":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts\/6992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/comments?post=6992"}],"version-history":[{"count":0,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts\/6992\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media\/6993"}],"wp:attachment":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media?parent=6992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/categories?post=6992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/tags?post=6992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}