{"id":8776,"date":"2020-02-13T08:00:07","date_gmt":"2020-02-13T16:00:07","guid":{"rendered":"http:\/\/softwareengineeringdaily.com\/?p=8776"},"modified":"2020-02-13T23:34:10","modified_gmt":"2020-02-14T07:34:10","slug":"what-is-a-layer-2-cloud-provider","status":"publish","type":"post","link":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/","title":{"rendered":"What is a Layer 2 Cloud Provider?"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">The rise of \u201ccloud infrastructure\u201d has presented a dilemma for developers: what is the appropriate level of complexity for a cloud provider to handle? In the last decade, the options for cloud engineering services have expanded exponentially, leading to a vast array of product offerings. While the variety and complexity offered by cloud providers such as AWS presents advantages to developers with economies of scale and scope, these same factors may be unnecessary or burdensome to other firms that seek a more focused and streamlined experience.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Heroku is Layer 2 Cloud provider which provides a \u201cPlatform-as-a-Service.\u201d Heroku was founded in 2007 and has evolved alongside the large cloud providers such as AWS. While Heroku is in some ways a competitor to large cloud providers for clients who wish to deploy web applications, it also builds on AWS cloud infrastructure and acts as a \u201cmiddleman\u201d between the cloud provider and the user. Heroku\u2019s focus is on <\/span><a href=\"https:\/\/12factor.net\/\"><span style=\"font-weight: 400;\">12-Factor Web Apps<\/span><\/a><span style=\"font-weight: 400;\">, which is a set of guiding principles for building web applications that <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2019\/12\/04\/heroku-infrastructure-with-mark-turner\/\"><span style=\"font-weight: 400;\">Heroku engineer Mark Turner said <\/span><\/a><span style=\"font-weight: 400;\">\u201creally does define what describes an application suitable for Heroku.\u201d<\/span><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png\"><img fetchpriority=\"high\" decoding=\"async\" data-attachment-id=\"8834\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/heroku-logotype-horizontal-purple\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?fit=1440%2C608&amp;ssl=1\" data-orig-size=\"1440,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"heroku-logotype-horizontal-purple\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?fit=300%2C127&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?fit=1024%2C432&amp;ssl=1\" class=\"wp-image-8834  aligncenter\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?resize=519%2C219\" alt=\"\" width=\"519\" height=\"219\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?w=1440&amp;ssl=1 1440w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?resize=300%2C127&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?resize=1024%2C432&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/heroku-logotype-horizontal-purple.png?resize=768%2C324&amp;ssl=1 768w\" sizes=\"(max-width: 519px) 100vw, 519px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Given the scope and competitive power of cloud providers, Heroku\u2019s longevity and continued use indicate its users find lasting value that is worth the additional marginal costs. We have conducted several interviews with employees at Heroku in the past several years, and each has had a unique take on Heroku\u2019s value proposition, but a few major themes stood out.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">Full disclosure: Heroku is a sponsor of Software Engineering Daily.<\/span><\/i><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image11.jpg?ssl=1\"><img decoding=\"async\" data-attachment-id=\"8812\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image11-3\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image11.jpg?fit=522%2C256&amp;ssl=1\" data-orig-size=\"522,256\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image11\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image11.jpg?fit=300%2C147&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image11.jpg?fit=522%2C256&amp;ssl=1\" class=\"aligncenter wp-image-8812 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image11.jpg?resize=502%2C246&#038;ssl=1\" alt=\"\" width=\"502\" height=\"246\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image11.jpg?w=522&amp;ssl=1 522w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image11.jpg?resize=300%2C147&amp;ssl=1 300w\" sizes=\"(max-width: 502px) 100vw, 502px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">In the late 2000s, the rise of cloud computing service offerings such as Amazon\u2019s EC2 heralded a shift in how software was deployed and managed over the web. Formerly, so-called \u201cbare metal\u201d servers were built in on-premise data centers that would act as the host for a company\u2019s web software. Cloud providers such as Amazon Web Services offered \u201cvirtualization\u201d services, whereby server hardware was partitioned by a hypervisor into virtual machines, which could be allocated to client applications for hosting.<\/span><\/p>\n<p><a href=\"https:\/\/www.w3schools.in\/cloud-computing\/cloud-virtualization\/\"><img decoding=\"async\" data-attachment-id=\"8777\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image1-27\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?fit=1384%2C790&amp;ssl=1\" data-orig-size=\"1384,790\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image1\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?fit=300%2C171&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?fit=1024%2C585&amp;ssl=1\" class=\"aligncenter wp-image-8777 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?resize=504%2C288&#038;ssl=1\" alt=\"\" width=\"504\" height=\"288\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?w=1384&amp;ssl=1 1384w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?resize=300%2C171&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?resize=1024%2C585&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?resize=768%2C438&amp;ssl=1 768w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image1.png?resize=120%2C69&amp;ssl=1 120w\" sizes=\"(max-width: 504px) 100vw, 504px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Virtualization abstracted away the underlying hardware management; subsequently, cloud providers built infrastructure services to interact with and manage VMs. This gave rise to Infrastructure-as-a-Service offerings, which <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Infrastructure_as_a_service\"><span style=\"font-weight: 400;\">\u201cprovide high-level APIs<\/span><\/a><span style=\"font-weight: 400;\"> used to dereference various low-level details of underlying network infrastructure like physical computing resources, location, data partitioning, scaling, security, backup, etc.\u201d Cloud providers that focus on the management of hardware up through the IaaS level are called \u201cLayer 1 Cloud Providers.\u201d Layer 1 cloud providers require significant scale and scope to operate effectively due to the complex operational challenges of managing hardware and server operations at a granular level.<\/span><\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Cloud_computing#\/media\/File:Cloud_computing_layers.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8779\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image3-22\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image3.png?fit=348%2C322&amp;ssl=1\" data-orig-size=\"348,322\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image3\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image3.png?fit=300%2C278&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image3.png?fit=348%2C322&amp;ssl=1\" class=\"aligncenter wp-image-8779 size-full\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image3.png?resize=348%2C322&#038;ssl=1\" alt=\"\" width=\"348\" height=\"322\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image3.png?w=348&amp;ssl=1 348w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image3.png?resize=300%2C278&amp;ssl=1 300w\" sizes=\"(max-width: 348px) 100vw, 348px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Today, Amazon Web Services is the dominant Layer 1 cloud provider. AWS accounts for nearly <\/span><a href=\"https:\/\/www.ciodive.com\/news\/iaas-Azure-AWS-Google-Cloud-Alibaba\/559716\/\"><span style=\"font-weight: 400;\">half of the market for IaaS providers<\/span><\/a><span style=\"font-weight: 400;\">. The second-largest Layer 1 provider, Microsoft Azure, trails at a distant 15.5%. AWS currently offers<\/span><a href=\"https:\/\/www.techradar.com\/news\/aws#complete-list-of-amazon-web-services\"><span style=\"font-weight: 400;\"> 212 services <\/span><\/a><span style=\"font-weight: 400;\">on its platform, and offers an array of certification courses training developers and \u201csolutions architects\u201d on its various products.<\/span><\/p>\n<p><a href=\"https:\/\/start.jcolemorrison.com\/understanding-modern-cloud-architecture-on-aws-a-concepts-series\/\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8778\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image2-26\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?fit=1518%2C856&amp;ssl=1\" data-orig-size=\"1518,856\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image2\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?fit=300%2C169&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?fit=1024%2C577&amp;ssl=1\" class=\"aligncenter wp-image-8778 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?resize=509%2C287&#038;ssl=1\" alt=\"\" width=\"509\" height=\"287\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?w=1518&amp;ssl=1 1518w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?resize=1024%2C577&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?resize=768%2C433&amp;ssl=1 768w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?resize=120%2C69&amp;ssl=1 120w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2.png?resize=269%2C151&amp;ssl=1 269w\" sizes=\"(max-width: 509px) 100vw, 509px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Above is a diagram of a simple application architecture deployed with AWS services. As applications grow in scale, the number and complexity of the services used can increase dramatically. The advantages of precise configuration and complex architectures are significant for companies with large development and operations teams matched with broad and active customer bases. However, growth in the scope of services creates challenges of its own. As Mark Turner <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2019\/12\/04\/heroku-infrastructure-with-mark-turner\/\"><span style=\"font-weight: 400;\">put it<\/span><\/a><span style=\"font-weight: 400;\">:<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">\u201cEverything that companies like AWS offer as the wide disparate services that they provide means that you really get a giant kit of solutions to problems that you don&#8217;t even know you have sometimes.\u201d<\/span><\/p><\/blockquote>\n<p><a href=\"https:\/\/hackernoon.com\/is-devops-leaving-developers-behind-3a40e5dd99fc\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8780\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image4-20\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?fit=1528%2C912&amp;ssl=1\" data-orig-size=\"1528,912\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image4\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?fit=300%2C179&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?fit=1024%2C611&amp;ssl=1\" class=\"aligncenter wp-image-8780 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?resize=501%2C299&#038;ssl=1\" alt=\"\" width=\"501\" height=\"299\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?w=1528&amp;ssl=1 1528w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?resize=300%2C179&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?resize=1024%2C611&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4.png?resize=768%2C458&amp;ssl=1 768w\" sizes=\"(max-width: 501px) 100vw, 501px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Heroku is a platform-as-a-service (PaaS) provider that focuses on providing a streamlined developer experience for deploying and managing web applications on the cloud. Heroku is recognized as the <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2019\/12\/04\/heroku-infrastructure-with-mark-turner\/\"><span style=\"font-weight: 400;\">first and most prominent Layer 2 cloud provider<\/span><\/a><span style=\"font-weight: 400;\">, and currently has <\/span><a href=\"https:\/\/www.datanyze.com\/market-share\/paas\/heroku-market-share\"><span style=\"font-weight: 400;\">16,171 websites<\/span><\/a><span style=\"font-weight: 400;\"> deployed via its service. Heroku is built on top of AWS EC2 instances, and seeks to act as a layer of abstraction between users and underlying IaaS providers. <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2019\/05\/06\/cloud-database-workloads-with-jon-daniel\/\"><span style=\"font-weight: 400;\">Heroku infrastructure engineer Jon Daniel told us:<\/span><\/a><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">\u201cWe are essentially taking on the role of your operations team, we\u2019re doing a lot of preventative maintenance. We\u2019re doing a lot of just things that you would never think about behind-the-scenes, and that\u2019s sort of what we bake into our costs.\u201d<\/span><\/p><\/blockquote>\n<p><span style=\"font-weight: 400;\">Streamlining the developer experience does not translate to simplifying the underlying infrastructure; in fact, the task of adapting layer 1 technologies to a layer 2 interface is a difficult engineering task. Heroku manages several of the underlying infrastructural tasks that a firm may face when managing a web application. For example, <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2017\/02\/28\/heroku-autoscaling-with-andrew-gwozdziewycz\/\"><span style=\"font-weight: 400;\">Heroku manages application scaling,<\/span><\/a><span style=\"font-weight: 400;\"> provides access to autoscaling, and runs a metrics pipeline on Kafka and Cassandra to provide \u201chealth checks\u201d essential to an autoscaling process. <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2017\/08\/02\/platform-continuous-delivery-with-andy-appleton\/\"><span style=\"font-weight: 400;\">Heroku engineer Andy Appleton<\/span><\/a><span style=\"font-weight: 400;\"> noted that \u201cthe entire Heroku product is a developer product,\u201d and that the focus was on creating the best possible UX to add value on top of the Layer 1 AWS cloud framework. Heroku also offers several services such as managed <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2019\/05\/06\/cloud-database-workloads-with-jon-daniel\/\"><span style=\"font-weight: 400;\">Postgres databases<\/span><\/a><span style=\"font-weight: 400;\">, Redis, version control, and <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2017\/08\/02\/platform-continuous-delivery-with-andy-appleton\/\"><span style=\"font-weight: 400;\">continuous deployment<\/span><\/a><span style=\"font-weight: 400;\">. All of these services and more may be easily integrated with a minimum of time spent managing configuration. Mark Turner described some of the operational needs of Heroku customers:<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">\u201cWe might have customers that have workloads, where each single process uses 14 gigs of memory. At the same time, they might have something that where each process uses 2 megabytes and they want each of those things to schedule and boot up instantaneously. That&#8217;s the orchestration layer problems we deal with that makes it hard.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Then it&#8217;s the isolation and security boundaries between all of that stuff that also makes it hard, and auditing and patching and maintaining those boundaries is the hard part. Then you factor in layering on those workflows that power that Heroku experience, that those containers encapsulate down at the bottom of it; it all adds up into I think just a hard system to build.\u201d<\/span><\/p><\/blockquote>\n<p><a href=\"https:\/\/blog.heroku.com\/modern-web-app-architecture\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8781\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image5-15\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?fit=1370%2C672&amp;ssl=1\" data-orig-size=\"1370,672\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image5\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?fit=300%2C147&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?fit=1024%2C502&amp;ssl=1\" class=\"aligncenter wp-image-8781 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?resize=509%2C250&#038;ssl=1\" alt=\"\" width=\"509\" height=\"250\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?w=1370&amp;ssl=1 1370w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?resize=300%2C147&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?resize=1024%2C502&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?resize=768%2C377&amp;ssl=1 768w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5.png?resize=260%2C129&amp;ssl=1 260w\" sizes=\"(max-width: 509px) 100vw, 509px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">When a cloud platform expands, it can do so either \u201chorizontally\u201d or \u201cvertically.\u201d Horizontal scaling is the expansion of scope. For example, Amazon adding new available functions to its cloud platform represents scope expansion. The horizontal expansion allows a cloud provider to tackle new problems, or to solve old problems in more efficient ways. The adoption of Kubernetes for container orchestration represented horizontal expansion for Layer 1 cloud providers- including Google\u2019s GKE and AWS\u2019s EKS. Heroku has also undergone horizontal expansion, adding in services such as Kafka to its suite of products. <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2016\/10\/25\/managed-kafka-with-tom-crayford\/\"><span style=\"font-weight: 400;\">We spoke with Tom Crayford, an engineer at Heroku<\/span><\/a><span style=\"font-weight: 400;\">, at length about adapting Kafka to a managed, streamlined Heroku experience. Despite the scope expansion, Heroku makes efforts to focus its expanded offerings on products that work in mostly the same way in order to minimize the work necessary to add or switch services. From Jon Daniel, talking about Heroku\u2019s managed Postgres offerings:<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">\u201cThe nice thing about that is being able to have a fairly standard, almost single-tenant configuration set up on that instance, and the configuration changes themselves as to like what version of Postgres or what plan type is really based on mounting. So we know that everything is going to act very similarly from one to the other and there&#8217;s not a lot of one-off configuration happening in there.\u201d<\/span><\/p><\/blockquote>\n<p style=\"text-align: left;\"><a href=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2-1.png?ssl=1\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8807\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image2-28\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2-1.png?fit=600%2C420&amp;ssl=1\" data-orig-size=\"600,420\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image2\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2-1.png?fit=300%2C210&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2-1.png?fit=600%2C420&amp;ssl=1\" class=\"aligncenter wp-image-8807 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2-1.png?resize=500%2C350&#038;ssl=1\" alt=\"\" width=\"500\" height=\"350\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2-1.png?w=600&amp;ssl=1 600w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image2-1.png?resize=300%2C210&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">On the other hand, vertical expansion is \u201ccreep up the developer experience stack,\u201d which is when a cloud provider deepens its service offerings by creating new abstractions on top of the base layer. It\u2019s worth noting that the cloud itself, as we think about it in terms of modern software engineering, is a layer of abstraction on top of server hardware. From Mark Tuner:<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">\u201cWhere we expend our energy in leveling up the platform&#8217;s capabilities is really important. We pay a lot of attention to how we spend that energy. It&#8217;s really important for us to make calls that aren&#8217;t good for us, because there&#8217;s no way that Heroku is going to directly compete with AWS, or is there a GCP. That&#8217;s just not the game we play in. We&#8217;re just not that game.\u201d<\/span><\/p><\/blockquote>\n<p><a href=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?ssl=1\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8811\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image10-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?fit=1999%2C1269&amp;ssl=1\" data-orig-size=\"1999,1269\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image10\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?fit=300%2C190&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?fit=1024%2C650&amp;ssl=1\" class=\"aligncenter wp-image-8811 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?resize=504%2C320&#038;ssl=1\" alt=\"\" width=\"504\" height=\"320\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?w=1999&amp;ssl=1 1999w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?resize=300%2C190&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?resize=1024%2C650&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?resize=768%2C488&amp;ssl=1 768w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image10.jpg?resize=1536%2C975&amp;ssl=1 1536w\" sizes=\"(max-width: 504px) 100vw, 504px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Even a company as large as Amazon can only expand so much at a time, and thus it must face tradeoffs between horizontal and vertical expansion. In fact, Layer 1 cloud providers operate at somewhat of a disadvantage in terms of offering an opinionated developer experience, because they face competitive pressure to offer a product that can fit every need a client may face. If a large client demands Kubernetes, AWS must build a Kubernetes product. Layer 2 cloud providers like Heroku can afford to be more selective because the needs of their target clients tend to be more clearly defined. From Andy Appleton:<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">\u201c I think there\u2019s&#8230;80% of applications which have very similar requirements and kind of operate in the same way. A big goal is to serve those 80% kind of very closely so that&#8230; as close to being no operational burden on the team is possible. Then when you get customers who have much more specific requirements to try and build the Heroku platform in such a way that there\u2019s these escape hatches or ways to dropdown a level and let them do the thing that they want to do.\u201d<\/span><\/p><\/blockquote>\n<p><span style=\"font-weight: 400;\">While the big tech companies may find competitive value in the adoption of the newest, shiniest cloud technologies, the operational burden of extra complexity in a tech stack may be unnecessary for organizations without the need or resources to adopt a highly configured approach. <\/span><a href=\"https:\/\/sbecouncil.org\/about-us\/facts-and-data\/\"><span style=\"font-weight: 400;\">98.2% of firms<\/span><\/a><span style=\"font-weight: 400;\"> in the United States have fewer than 100 employees, and it can be safely assumed that most of those firms cannot devote all 100 employees to configuring load balancers. A comparison may be made to Spring Boot, a \u201cconvention over configuration\u201d web framework for Java, which has become the <\/span><a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2019\/java\/\"><span style=\"font-weight: 400;\">top web framework for Java developers<\/span><\/a><span style=\"font-weight: 400;\"> due, in a large part, to ease of use. As mentioned before, streamlining does not equal simplifying, and Heroku maintains a significant competitive moat due both to the technological challenge of wrangling cloud services and the business challenge of maintaining margins. Heroku charges a premium over what one would pay to use AWS alone, and maintaining the value of that margin is a primary business objective.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?ssl=1\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8808\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/image4-22\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?fit=1250%2C875&amp;ssl=1\" data-orig-size=\"1250,875\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image4\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?fit=300%2C210&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?fit=1024%2C717&amp;ssl=1\" class=\"aligncenter wp-image-8808 \" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?resize=502%2C351&#038;ssl=1\" alt=\"\" width=\"502\" height=\"351\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?resize=300%2C210&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?resize=1024%2C717&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image4-2.png?resize=768%2C538&amp;ssl=1 768w\" sizes=\"(max-width: 502px) 100vw, 502px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Despite the business and technological challenges of operating in the gap between clients and Layer 1 cloud providers, Heroku\u2019s products offer a sustainable value proposition to developers and tech companies who seek to reduce overhead, pass off complexity, and allocate resources most effectively towards their core business. As <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/2019\/05\/06\/cloud-database-workloads-with-jon-daniel\/\"><span style=\"font-weight: 400;\">Jon Daniel<\/span><\/a><span style=\"font-weight: 400;\"> put it:<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">\u201c&#8230;I don&#8217;t have to think about building a web framework. I can just focus on building an application that provides value to my business, and using Heroku is similar&#8230;.You just focus on building your apps.\u201d<\/span><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>The rise of \u201ccloud infrastructure\u201d has presented a dilemma for developers: what is the appropriate level of complexity for a cloud provider to handle? In the last decade, the options for cloud engineering services have expanded exponentially, leading to a vast array of product offerings. While the variety and complexity offered by cloud providers such<\/p>\n","protected":false},"author":53,"featured_media":8809,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[1363,83,2143],"tags":[1336,351,2636,911,2902,2992,3374,502,580],"class_list":["post-8776","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all-episodes","category-articles","category-exclusive-content","tag-andy-appleton","tag-aws","tag-cloud-infrastructure","tag-heroku","tag-jon-daniel","tag-layer-2-cloud-provider","tag-mark-turner","tag-postgres","tag-tom-crayford"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is a Layer 2 Cloud Provider? - Software Engineering Daily<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is a Layer 2 Cloud Provider? - Software Engineering Daily\" \/>\n<meta property=\"og:description\" content=\"The rise of \u201ccloud infrastructure\u201d has presented a dilemma for developers: what is the appropriate level of complexity for a cloud provider to handle? In the last decade, the options for cloud engineering services have expanded exponentially, leading to a vast array of product offerings. While the variety and complexity offered by cloud providers such\" \/>\n<meta property=\"og:url\" content=\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Engineering Daily\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-13T16:00:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-14T07:34:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Danny Seymour\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@software_daily\" \/>\n<meta name=\"twitter:site\" content=\"@software_daily\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Danny Seymour\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/\"},\"author\":{\"name\":\"Danny Seymour\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/618234cbe1ece5fb1942f58d2d279e62\"},\"headline\":\"What is a Layer 2 Cloud Provider?\",\"datePublished\":\"2020-02-13T16:00:07+00:00\",\"dateModified\":\"2020-02-14T07:34:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/\"},\"wordCount\":1811,\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1\",\"keywords\":[\"Andy Appleton\",\"AWS\",\"Cloud Infrastructure\",\"Heroku\",\"Jon Daniel\",\"layer 2 cloud provider\",\"Mark Turner\",\"Postgres\",\"Tom Crayford\"],\"articleSection\":[\"All Content\",\"Exclusive Articles\",\"Exclusive Content\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/\",\"url\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/\",\"name\":\"What is a Layer 2 Cloud Provider? - Software Engineering Daily\",\"isPartOf\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1\",\"datePublished\":\"2020-02-13T16:00:07+00:00\",\"dateModified\":\"2020-02-14T07:34:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1\",\"width\":600,\"height\":420},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/softwareengineeringdaily.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is a Layer 2 Cloud Provider?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"name\":\"Software Engineering Daily\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\",\"name\":\"Software Engineering Daily\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"width\":549,\"height\":169,\"caption\":\"Software Engineering Daily\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/software_daily\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/618234cbe1ece5fb1942f58d2d279e62\",\"name\":\"Danny Seymour\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4346abbfc4b4d898a9c6b21499ae87d8?s=96&d=retro&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4346abbfc4b4d898a9c6b21499ae87d8?s=96&d=retro&r=pg\",\"caption\":\"Danny Seymour\"},\"description\":\"Danny is a Santa Fe-based developer who works as a Junior Consultant at Rural Sourcing.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/daniel-seymournm\/\"],\"url\":\"https:\/\/softwareengineeringdaily.com\/author\/danny\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is a Layer 2 Cloud Provider? - Software Engineering Daily","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:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/","og_locale":"en_US","og_type":"article","og_title":"What is a Layer 2 Cloud Provider? - Software Engineering Daily","og_description":"The rise of \u201ccloud infrastructure\u201d has presented a dilemma for developers: what is the appropriate level of complexity for a cloud provider to handle? In the last decade, the options for cloud engineering services have expanded exponentially, leading to a vast array of product offerings. While the variety and complexity offered by cloud providers such","og_url":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/","og_site_name":"Software Engineering Daily","article_published_time":"2020-02-13T16:00:07+00:00","article_modified_time":"2020-02-14T07:34:10+00:00","og_image":[{"width":600,"height":420,"url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1","type":"image\/png"}],"author":"Danny Seymour","twitter_card":"summary_large_image","twitter_creator":"@software_daily","twitter_site":"@software_daily","twitter_misc":{"Written by":"Danny Seymour","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#article","isPartOf":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/"},"author":{"name":"Danny Seymour","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/618234cbe1ece5fb1942f58d2d279e62"},"headline":"What is a Layer 2 Cloud Provider?","datePublished":"2020-02-13T16:00:07+00:00","dateModified":"2020-02-14T07:34:10+00:00","mainEntityOfPage":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/"},"wordCount":1811,"publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1","keywords":["Andy Appleton","AWS","Cloud Infrastructure","Heroku","Jon Daniel","layer 2 cloud provider","Mark Turner","Postgres","Tom Crayford"],"articleSection":["All Content","Exclusive Articles","Exclusive Content"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/","url":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/","name":"What is a Layer 2 Cloud Provider? - Software Engineering Daily","isPartOf":{"@id":"https:\/\/softwareengineeringdaily.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1","datePublished":"2020-02-13T16:00:07+00:00","dateModified":"2020-02-14T07:34:10+00:00","breadcrumb":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#primaryimage","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1","width":600,"height":420},{"@type":"BreadcrumbList","@id":"https:\/\/softwareengineeringdaily.com\/2020\/02\/13\/what-is-a-layer-2-cloud-provider\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/softwareengineeringdaily.com\/"},{"@type":"ListItem","position":2,"name":"What is a Layer 2 Cloud Provider?"}]},{"@type":"WebSite","@id":"https:\/\/softwareengineeringdaily.com\/#website","url":"https:\/\/softwareengineeringdaily.com\/","name":"Software Engineering Daily","description":"","publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/softwareengineeringdaily.com\/#organization","name":"Software Engineering Daily","url":"https:\/\/softwareengineeringdaily.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","width":549,"height":169,"caption":"Software Engineering Daily"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/software_daily"]},{"@type":"Person","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/618234cbe1ece5fb1942f58d2d279e62","name":"Danny Seymour","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4346abbfc4b4d898a9c6b21499ae87d8?s=96&d=retro&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4346abbfc4b4d898a9c6b21499ae87d8?s=96&d=retro&r=pg","caption":"Danny Seymour"},"description":"Danny is a Santa Fe-based developer who works as a Junior Consultant at Rural Sourcing.","sameAs":["https:\/\/www.linkedin.com\/in\/daniel-seymournm\/"],"url":"https:\/\/softwareengineeringdaily.com\/author\/danny\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/02\/image5-2.png?fit=600%2C420&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p7GuoD-2hy","_links":{"self":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/8776"}],"collection":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/comments?post=8776"}],"version-history":[{"count":0,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/8776\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media\/8809"}],"wp:attachment":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media?parent=8776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/categories?post=8776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/tags?post=8776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}