{"id":332794,"date":"2021-08-31T15:35:18","date_gmt":"2021-08-31T12:35:18","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/"},"modified":"2021-08-31T15:35:18","modified_gmt":"2021-08-31T12:35:18","slug":"7-ways-containers-let-you-ship-software-faster-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/","title":{"rendered":"#7 Ways Containers Let You Ship Software Faster \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2e9a5edc284\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" 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: #dd3333;color:#dd3333\" 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><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2e9a5edc284\" checked aria-label=\"Toggle\" \/><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:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#1_Fully_Portable_Environments\" >1. Fully Portable Environments<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#2_Microservices_and_Code_Reuse\" >2. Microservices and Code Reuse<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#3_Scalability\" >3. Scalability<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#4_Automated_Deployments\" >4. Automated Deployments<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#5_Keep_Everything_As_Code\" >5. Keep Everything As Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#6_Make_Your_App_Cloud-Native\" >6. Make Your App Cloud-Native<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#7_Narrowing_the_Dev-Ops_Divide\" >7. Narrowing the Dev-Ops Divide<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/7-ways-containers-let-you-ship-software-faster-cloudsavvy-it\/#Conclusion_Containers_Accelerate_Development\" >Conclusion: Containers Accelerate Development<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#7 Ways Containers Let You Ship Software Faster \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<figure style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage size-full wp-image-13999\" srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/7a9fa64f.jpg?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/7a9fa64f.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/7a9fa64f.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Colourful illustration of a laptop surrounded by disk drives and light beams\" width=\"1200\" height=\"675\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\"><span class=\"type:primaryImage imagecredit\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.shutterstock.com\/image-illustration\/online-statistics-data-analytics-digital-money-1911783457\">ZinetroN\/Shutterstock.com<\/a><\/span><\/figcaption><\/figure>\n<p>Containerized <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>lications accelerate the development workflow so you can ship code more quickly. Here\u2019s how adopting containers raises the pace and increases developer satisfaction.<\/p>\n<h2 id=\"fully-portable-environments\"><span class=\"ez-toc-section\" id=\"1_Fully_Portable_Environments\"><\/span>1. Fully Portable Environments<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The first and most obvious benefit of container-driven development is the ease with which you can transition code between environments. Once you\u2019ve built a Docker image for your app, anyone can run it using <code>docker run<\/code> in their terminal.<\/p>\n<p>This makes it easier to onboard new developers and keep code in sync between machines. It\u2019s a welcome farewell to the days of working through long setup documents to bring up a dev environment that falls over a few hours later.<\/p>\n<p>Docker virtually eliminates environmental dependencies. As long as you\u2019ve got a Docker host available, you\u2019ll be able to start your stack. This applies equally whether you\u2019re on your own laptop or you\u2019re bringing up services in a production cloud. You spend less time getting setup, applying changes, and managing infrastructure, giving you more opportunity to concentrate on development tasks.<\/p>\n<h2 id=\"microservices-and-code-reuse\"><span class=\"ez-toc-section\" id=\"2_Microservices_and_Code_Reuse\"><\/span>2. Microservices and Code Reuse<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Containers are self-contained, decoupled, and disposable. They\u2019re the foundation of microservice architectures, where individual components of your stack become self-sufficient services that interlink with each other through well-defined interfaces.<\/p>\n<p>You could have containers for your authentication gateway, user session provider, payment processor, and web API. Pulling these pieces apart helps avoid hard links between individual components which can create technical debt over time. Developers get an improved experience as each team has its own project it can build, test, and deploy, without running all the other aspects of the stack.<\/p>\n<p>In larger projects, it\u2019s common to find similar code implemented slightly differently in several areas of the codebase. Containerizing this into a dedicated microservice recognizes its integrative status in the system. Consuming code could then call the new service to perform required operations. Further components could hook into the service too, saving development time later in the project\u2019s life.<\/p>\n<h2 id=\"scalability\"><span class=\"ez-toc-section\" id=\"3_Scalability\"><\/span>3. Scalability<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>How many concurrent service instances do you need? Whether it\u2019s one, 50, or 500, using containers lets you scale on-the-fly without reprovisioning infrastructure or specially configuring your code.<\/p>\n<p>This goes hand-in-hand with microservice-driven approaches. Combining microservices with a container orchestrator like Kubernetes lets you dynamically scale individual parts of your stack. This gives you the flexibility to run extra API servers during periods of peak demand, or spin up additional payment handlers during an unexpected flood of orders.<\/p>\n<p>Scalability might sound like its part of the operation team\u2019s mantra but it still has a direct effect on development velocity. Services that you can scale in seconds by changing configuration files, and which discover each other automatically through a mesh, can be implemented without needing to touch any code. The mesh handles the intricacies of working out which containers to direct traffic to.<\/p>\n<p>As far as the codebase is concerned, it connects to <code>mysql-service<\/code> to store data, and <code>s<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/trip-and-travel\/\" data-internallinksmanager029f6b8e52c=\"10\" title=\"Trip &amp; Travel\" target=\"_blank\" rel=\"noopener\">trip<\/a>e-service<\/code> for payments. The DNS names actually get resolved to one of the possible service replicas each time a request is made but the code doesn\u2019t need to know this. Developers can hone in on functionality without worrying about architectural topologies.<\/p>\n<h2 id=\"automated-deployments\"><span class=\"ez-toc-section\" id=\"4_Automated_Deployments\"><\/span>4. Automated Deployments<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Containers have revolutionized deployment workflows by offering an improved approach to automated rollouts via CI\/CD pipelines. Once you\u2019ve packaged your app as a container image, you can capitalize on the portability advantage by launching your image onto any available Docker host.<\/p>\n<p>Automating deployments can have a transformative impact on engineering teams. Code releases become quick and easy, letting improvements and fixes reach customers much more rapidly than manually initiated release flows can provide.<\/p>\n<p>Deployments typically occur each time you merge code into your main branch. Developers can get straight back to coding instead of tagging releases and running build scripts on their machines.<\/p>\n<p>Although it\u2019s possible to automate deployments without containers, the fact that containers are fully self-sufficient and independent of their operating environment makes them the most suitable contender for hosting your workloads. If you need to rollback a release, simply revert to an older image tag.<\/p>\n<p>There are several ways to combine containers with CI\/CD pipelines to create a deployment system. It\u2019s common to deploy to an orchestrator like Kubernetes that can fetch your image, create multiple replicas, and handle the release\u2019s lifecycle. You could use Docker Swarm mode or even plain Docker Compose over SSH as simpler alternatives.<\/p>\n<h2 id=\"keep-everything-as-code\"><span class=\"ez-toc-section\" id=\"5_Keep_Everything_As_Code\"><\/span>5. Keep Everything As Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In the same vein as how containers facilitate automated deployments, they also enable Infrastructure as Code methodologies. The act of writing a <code>Dockerfile<\/code> creates a declarative representation of your app\u2019s build routine and dependencies.<\/p>\n<p>Adding a <code>docker-compose.yml<\/code> or a set of Kubernetes resource manifests lets you describe how to launch your stack into a ready-to-run state. These files not only facilitate automation but act as self-documenting information repositories for others to learn how the system works.<\/p>\n<p>Less time spent searching docs and running manual setup scripts tightens the development loop and helps keep everyone on the same page. Many developers welcome GitOps approaches where everything related to a project is stored as version-controlled text files. Docker\u2019s compatible with this methodology by default, keeping you within familiar development workflows when you\u2019re adjusting build steps and deployment routines.<\/p>\n<h2 id=\"make-your-app-cloud-native\"><span class=\"ez-toc-section\" id=\"6_Make_Your_App_Cloud-Native\"><\/span>6. Make Your App Cloud-Native<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Containers are an integral part of the cloud-native paradigm. This refers to maximizing your stack\u2019s ability to benefit from the opportunities offered by public cloud platforms.<\/p>\n<p>Effective adoption of a cloud-native mentality increases the velocity of the whole software development lifecycle. It creates a tighter loop by lowering the barriers between development stages. Cloud-native systems are usually automated, observable, and predictable, enabling inferences to be made about the system\u2019s state. This reduces the work developers must do to understand the cause of an issue and the re<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">media<\/a>tion that\u2019s required.<\/p>\n<p>Containers are so important to cloud-native because they possess these traits themselves. You define image builds as a set of programmatic steps, monitor running instances with centralized logging tools, and benefit from a highly predictable environment where all dependencies are clearly defined in a <code>Dockerfile<\/code>. At cloud-native scale, a container orchestrator can aggregate metrics and logs from multiple containers and distribute traffic across them, using unified interfaces to surface and supply information automatically.<\/p>\n<h2 id=\"narrowing-the-dev-ops-divide\"><span class=\"ez-toc-section\" id=\"7_Narrowing_the_Dev-Ops_Divide\"><\/span>7. Narrowing the Dev-Ops Divide<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Containers help to narrow the developer-operations divide, facilitating a unified DevOps workflow. This can have far-reaching impacts on your work as it advocates tight-knit collaboration, breaks down information silos, and formalizes the relationship between developers, traditionally seen as implementors, and operations teams, previously seen as managers.<\/p>\n<p>In practice the two roles have many overlaps and regularly feed into \u2013 or block \u2013 each other. A container-based development model means everyone can use the same set of tools, whether they\u2019re building the application or rolling it out to production. Less time is wasted \u201chanding off\u201d code for release \u2013 developers can simply build a new container image and push it into the shared repository.<\/p>\n<p>As containers are portable across systems, personal preferences can still be accommodated. Developers may want to use a Linux workstation while operations staff use Windows. Regardless of platform choice, both groups can install Docker, pull the application image, and get a new stack live.<\/p>\n<h2 id=\"conclusion-containers-accelerate-development\"><span class=\"ez-toc-section\" id=\"Conclusion_Containers_Accelerate_Development\"><\/span>Conclusion: Containers Accelerate Development<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Containers have become one of the most popular developer tools of the past decade. They solve several common pain points, including \u201cit works on my machine\u201d and the question of how to construct scalable architectures formed from microservices.<\/p>\n<p>Transitioning to a containerized development workflow can be time consuming, especially when you\u2019re working with legacy applications. It\u2019s best to think of the process as a long-term investment that will accelerate development velocity and create a more satisfying experience. Even if you don\u2019t see all the benefits straightaway, producing a working Docker image of your development environment will make it easier to bring your next new starter onboard.\n<\/p><\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/13998\/7-ways-containers-let-you-ship-software-faster\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#7 Ways Containers Let You Ship Software Faster \u2013 CloudSavvy IT&#8221; ZinetroN\/Shutterstock.com Containerized applications accelerate the development workflow so you can ship code more quickly. Here\u2019s how adopting containers raises the pace and increases developer satisfaction. 1. Fully Portable Environments The first and most obvious benefit of container-driven development is the ease with which you&#8230;<\/p>\n","protected":false},"author":1,"featured_media":332795,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/08\/7a9fa64f.jpg","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-332794","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/332794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=332794"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/332794\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/332795"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=332794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=332794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=332794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}