{"id":2233,"date":"2018-08-10T01:54:50","date_gmt":"2018-08-10T01:54:50","guid":{"rendered":"https:\/\/davidpapkin.net\/?p=2233"},"modified":"2018-08-10T01:54:50","modified_gmt":"2018-08-10T01:54:50","slug":"kubernetes-on-aws-azure-gcp-david-papkin","status":"publish","type":"post","link":"https:\/\/davidpapkin.com\/?p=2233","title":{"rendered":"Kubernetes on AWS\/Azure\/GCP by David Papkin"},"content":{"rendered":"<div id=\"ember8178\" class=\"feed-shared-update__description feed-shared-inline-show-more-text feed-shared-inline-show-more-text--expanded ember-view\">\n<div id=\"ember8179\" class=\"feed-shared-update-v2__commentary feed-shared-text ember-view\" dir=\"ltr\">\n<div id=\"ember8180\" class=\"feed-shared-text__text-view feed-shared-text-view white-space-pre-wrap break-words ember-view\"><span aria-hidden=\"false\"><span id=\"ember8183\" class=\"ember-view\">This David Papkin post compares Kubernetes on AWS vs Azure vs GCP<\/span><\/span><\/div>\n<div><\/div>\n<div class=\"feed-shared-text__text-view feed-shared-text-view white-space-pre-wrap break-words ember-view\"><span aria-hidden=\"false\"><span id=\"ember8183\" class=\"ember-view\">With modern web services, users expect applications to be available 24\/7, and developers expect to deploy new versions of those applications several times a day. Containerization helps package software to serve these goals, enabling applications to be released and updated in an easy and fast way without downtime. Kubernetes helps you make sure those containerized applications run where and when you want, and helps them find the resources and tools they need to work\u00a0<\/span><\/span><\/div>\n<\/div>\n<div><a href=\"https:\/\/www.sumologic.com\/blog\/cloud\/kubernetes-aws-azure-gcp\/\">Comparing Kubernetes Services on AWS vs. Azure vs. GCP<\/a><\/div>\n<div>\n<h2>Why Kubernetes?<\/h2>\n<p><a class=\"fancybox image\" href=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/Kubernetes-Logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-21483 size-medium\" src=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/Kubernetes-Logo-300x300.png\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" srcset=\"https:\/\/www.sumologic.com\/wp-content\/uploads\/Kubernetes-Logo-300x300.png 300w, https:\/\/www.sumologic.com\/wp-content\/uploads\/Kubernetes-Logo-150x150.png 150w, https:\/\/www.sumologic.com\/wp-content\/uploads\/Kubernetes-Logo-250x250.png 250w, https:\/\/www.sumologic.com\/wp-content\/uploads\/Kubernetes-Logo.png 512w\" alt=\"\" width=\"300\" height=\"300\" \/><\/a>Containers are portable assets that let you design and deploy with little overhead from your development team. They take your monolithic code base and turn it into several lightweight modules that you can more easily manage and interconnect without worry of one small module taking out your entire application. This gives you more granular control of your code, but it also means that you have several moving parts as part of your platform.<\/p>\n<p>The problem with so many moving parts is that it\u2019s difficult to keep track of \u00a0them. If you have one container that connects to another, you must remember to update each one to ensure stability across your platform. Multiply that by dozens of containers and you now have a code management problem.<\/p>\n<p>Kubernetes solves much of the overhead for deploying containers. If you\u2019ve ever been in an enterprise environment, you know that deployment days can take all day between compiling code, testing it, and then ensuring all services are updated. Several automation tools have sprung up over the years to help develop a better way to deploy, but these tools are mainly for monolithic code bases. Orchestration and automation solve many of the problems experienced from manual methods \u2014 you don\u2019t forget files, you update across all servers, and changes can be rolled back.<\/p>\n<p>Another difference between Kubernetes and other deployment options is that container deployments are continuous. There is no wait for compiling and then deploying binaries one-by-one. Instead, Kubernetes is always pushing new changes to your containers and deploying in the background. It\u2019s a way to rapidly deploy code without stopping productivity at certain times of the month. If you have a service that consistently needs changes, then Kubernetes and containers can handle the workload with little interference from your developers.<\/p>\n<p>Bottom line, Kubernetes, and containers in general, are a natural fit for cloud environments because containers are much more portable and lightweight \u2013 and containers can run in most cloud and on-premise environments. In particular, Containers are a way to achieve a multi-cloud strategy, because they can be run across both on premise and the major cloud providers. This cross-compatibility makes containers an attractive option for reducing the risk of adopting microservices in the cloud.<\/p>\n<h2><b>Pros and Cons of Amazon Web Services (AWS)<\/b><\/h2>\n<p>Out of the three top services (AWS, Azure, GCP), AWS is the cloud-based hosting market share leader and so we\u2019ll look at it first. It has three container environments: ECS, EKS, and Fargate. ECS is the best option if you have little experience with containers and already work with AWS to host your services. It\u2019s the \u201ccontainer light\u201d of the three options. Deploying to ECS has been called \u201ccontainers-as-a-service,\u201d and it\u2019s considered a good starting point for anyone that wants to determine if they are right for the organization. \u00a0You don\u2019t need to install anything with ECS. You simply let the service automate your deployments directly in the cloud using Amazon\u2019s\u00a0<a href=\"https:\/\/aws.amazon.com\/cloudformation\/\">AWS CloudFormation<\/a>.<\/p>\n<div id=\"attachment_21231\" class=\"wp-caption aligncenter\">\n<p><a class=\"fancybox image\" href=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/AWS_EC2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-21231 size-full\" src=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/AWS_EC2.png\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" srcset=\"https:\/\/www.sumologic.com\/wp-content\/uploads\/AWS_EC2.png 974w, https:\/\/www.sumologic.com\/wp-content\/uploads\/AWS_EC2-300x249.png 300w\" alt=\"\" width=\"974\" height=\"810\" \/><\/a><\/p>\n<p class=\"wp-caption-text\">Source:\u00a0<a class=\"fancybox image\" href=\"https:\/\/d1.awsstatic.com\/tmt\/tmt_launch-windows-vm\/launch-windows-vm-0.56ac379d144e677fcc0ddd6742c55564c33af7f2.png\">Amazon<\/a><\/p>\n<\/div>\n<p>For a much more full Kubernetes and container experience, you can opt for Amazon EKS. If you\u2019re already hosting Kubernetes locally, EKS is simply moving your existing environment to the cloud. EKS is definitely well positioned to become the most popular way to manage containers.\u00a0<a href=\"https:\/\/medium.com\/containers-on-aws\/choosing-your-container-environment-on-aws-with-ecs-eks-and-fargate-cfbe416ab1a\">Sixty-three percent of container users<\/a>\u00a0surveyed by Kubernetes are using AWS already.<\/p>\n<p>AWS Fargate is the new kid on the block. It\u2019s the latest release from Amazon for container users. It\u2019s a way for developers with no experience in underlying infrastructure to work with them. Fargate lets you deploy containers without managing servers or clusters. AWS has confirmed that Fargate will work with AWS EKS as well, so there will be a few options and combinations based on individual needs.<\/p>\n<p>Hosted Kubernetes with AWS is what makes it attractive to developers that are just learning the entire containership environment. If you need to experiment with containers and aren\u2019t sure if they fit into your development environment, using AWS and their Kubernetes service is a good starting point. The downside is that EKS is considered difficult to set up and requires some technical background with containers, but it\u2019s also a fully scalable and customizable solution that puts the business in control of Kubernetes and the way it works with local development.<\/p>\n<h2><b>Pros and Cons of Azure<\/b><\/h2>\n<div id=\"attachment_21232\" class=\"wp-caption aligncenter\">\n<p><a class=\"fancybox image\" href=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/Microsoft-Azure.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-21232 size-full\" src=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/Microsoft-Azure.png\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" srcset=\"https:\/\/www.sumologic.com\/wp-content\/uploads\/Microsoft-Azure.png 974w, https:\/\/www.sumologic.com\/wp-content\/uploads\/Microsoft-Azure-300x76.png 300w\" alt=\"\" width=\"974\" height=\"247\" \/><\/a><\/p>\n<p class=\"wp-caption-text\">Microsoft Azure Container Service<\/p>\n<\/div>\n<p>If you primarily work in a Windows environment, deploying in Azure seems like the natural solution. Azure (its container services is named AKS or Azure Container Service) is reported as slightly slower during deployments, but it\u2019s still an improvement from older traditions of manually moving .NET code from staging or development to a production environment. It\u2019s the newest container service in the cloud market only available since 2015, so Microsoft still continues to improve its service.<\/p>\n<p>Even though using Azure sounds like it would naturally just be for Windows instances, Azure actually supports Linux images, which means that you can deploy Linux containers on Azure as long as you have the operating system installed from the Azure dashboard. This means that you aren\u2019t limited to just Windows, but you do have limitations with hybrid containers. Where AWS will support hybrid deployments, Azure limits you to either Linux or Windows.<\/p>\n<p>In October 2017, Azure released its AKS (Azure Container Service), which is similar to AWS EKS. AKS will deploy seamlessly on an Azure hosted VM, but the biggest advantage is that AKS is free. You only pay for the VM resources that you use in Azure.<\/p>\n<p>The downside to Azure is that, while the AKS service actually predates AWS EKS, Kubernetes adoption is much higher on AWS and GCP, and Azure is usually behind both AWS and Google Kubernetes Engine (GKE) when the latest versions come out. However, if you already have Azure and want to tinker with the idea of containership, Azure makes it easy to deploy and gives you detailed analytics that you can use to determine if it\u2019s the right platform for you. It should be noted, though, that Azure also has a competitive service to AWS ECS called\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/service-fabric\/service-fabric-overview\">Service Fabric<\/a>,\u00a0which is worth taking a look at as well.<\/p>\n<h2><b>Pros and Cons of Google Cloud Platform (GCP)<br \/>\n<\/b><\/h2>\n<div id=\"attachment_21233\" class=\"wp-caption aligncenter\">\n<p><a class=\"fancybox image\" href=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/GCP-Kubrnetes-Clusters.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-21233 size-full\" src=\"http:\/\/www.sumologic.com\/wp-content\/uploads\/GCP-Kubrnetes-Clusters.png\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" srcset=\"https:\/\/www.sumologic.com\/wp-content\/uploads\/GCP-Kubrnetes-Clusters.png 974w, https:\/\/www.sumologic.com\/wp-content\/uploads\/GCP-Kubrnetes-Clusters-300x98.png 300w\" alt=\"\" width=\"974\" height=\"318\" \/><\/a><\/p>\n<p class=\"wp-caption-text\">GCP Kubernetes Clusters<\/p>\n<\/div>\n<p>Google is the original creator for Kubernetes standards, so working with this platform puts you ahead of the game in almost every aspect. Any new versions and deployments are immediately available to you while other platforms must catch up. Google excels in offering big data, machine learning and artificial intelligence (AI) technologies, so if this is what you\u2019re into then GCP is the service to work with.<\/p>\n<p>The main issue with GCP is that it\u2019s not the most popular for IaaS. It doesn\u2019t have the small business cloud offerings that AWS and Azure offer, so its platform as a whole is not attractive to corporations that want to integrate the cloud into its internal network. There is no integration of Active Directory like Azure or IAM with AWS.<\/p>\n<p>Google is pushing its platform as a better way to handle DevOps. DevOps departments are a hybrid of operations people and developers. The developers spend their time finding better ways to handle operations management, and this is where GCP and Kubernetes can help. If you\u2019re looking for a better way to automate deployments within a DevOps team, GCP has its advantages.<\/p>\n<h3><\/h3>\n<table>\n<tbody>\n<tr>\n<td><strong>Service<\/strong><\/td>\n<td><strong>Pros<\/strong><\/td>\n<td><strong>Cons<\/strong><\/td>\n<\/tr>\n<tr>\n<td><b>AWS<\/b><\/td>\n<td>Security, reliability and scalability<\/td>\n<td>Potentially more expensive than other options<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Options for lightweight services to experience Kubernetes and containers before you move your local environment to the cloud<\/td>\n<td>Difficult to use for new developers unfamiliar with container services and Kubernetes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Fargate gives developers a way to deploy containers with no understanding of server infrastructure<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><b>Azure<\/b><\/td>\n<td>More intuitive for Windows developers<\/td>\n<td>Slower during deployments<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Supports Windows and Linux containers<\/td>\n<td>Does not support hybrid containers<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>AKS is free. You only pay for VM resources.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><b>GCP<\/b><\/td>\n<td>Original creator of Kubernetes, so introduction of new features is faster<\/td>\n<td>Doesn\u2019t integrate with IaaS cloud requirements<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Perfect for developers that want to work with AI and big data<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Works well with DevOps teams<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/www.sumologic.com\/blog\/cloud\/kubernetes-aws-azure-gcp\/\">Click here to see the costing in the original article in its entirety<\/a>\u00a0by <a href=\"https:\/\/www.sumologic.com\/blog\/author\/jmarsh\/\">Jennifer Marsh<\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"feed-shared-article--with-large-image\">This concludes this David Papkin post on <a href=\"https:\/\/davidpapkin.net\/microsoft-shrinks-nano-focus-containers-david-papkin\/\">Kubernetes<\/a>.<\/div>\n<div>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/davidpapkin.org\/\">http:\/\/davidpapkin.org\/<\/a><\/p>\n<p><strong>David Papkin favorite movies<\/strong><\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/GoodFellas\">Robert Deniro in GoodFellas<\/a><\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Singapore_(1947_film)\">Ava Gardner in Singapore (Flim Noir)<\/a><\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/China_Seas_(film)\">Clarke Gable in China Seas<\/a><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>This David Papkin post compares Kubernetes on AWS vs Azure vs GCP With modern web services, users expect applications to be available 24\/7, and developers expect to deploy new versions of those applications several times a day. Containerization helps package&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,24,3,4,6,8,15],"tags":[39,42,48,56,70,71,85,88,108,146],"class_list":["post-2233","post","type-post","status-publish","format-standard","hentry","category-aws","category-azure","category-computers","category-david-papkin","category-gcp","category-microsoft","category-singapore","tag-amazon","tag-aws","tag-azure","tag-clarkegable","tag-davidpapkin","tag-deniro","tag-gcp","tag-google","tag-microsoft","tag-singapore"],"_links":{"self":[{"href":"https:\/\/davidpapkin.com\/index.php?rest_route=\/wp\/v2\/posts\/2233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davidpapkin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davidpapkin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davidpapkin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davidpapkin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2233"}],"version-history":[{"count":0,"href":"https:\/\/davidpapkin.com\/index.php?rest_route=\/wp\/v2\/posts\/2233\/revisions"}],"wp:attachment":[{"href":"https:\/\/davidpapkin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davidpapkin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davidpapkin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}