{"id":2028,"date":"2019-12-11T11:33:35","date_gmt":"2019-12-11T10:33:35","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/how-to-scale-your-devops-from-100-servers-to-1000\/"},"modified":"2021-12-23T14:12:41","modified_gmt":"2021-12-23T13:12:41","slug":"how-to-scale-your-devops-from-100-servers-to-1000","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/","title":{"rendered":"How to scale your DevOps from 100 servers to 1,000+"},"content":{"rendered":"<p><strong>Codemotion Amsterdam 2019<\/strong> had a huge variety of talks across more than a dozen tracks. One of the ones that stood out for me was this talk on <strong><span id=\"urn:enhancement-60365045\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/devops\">DevOps<\/span><\/strong>, given by <strong>Pat Hermens<\/strong> of Coolblue. <strong>Coolblue<\/strong> is one of the biggest online retailers in the <span id=\"urn:enhancement-ff766e69\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/netherlands\">Netherlands<\/span>. They generated revenues of \u20ac1.3bn in 2018. Since they were founded 20 years ago, they have seen exponential growth. This is reflected both in their revenues but also in their development <span id=\"urn:enhancement-e9ec2df7\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> which doubles in size every 18 months and currently employs 240 <span id=\"urn:enhancement-2212ce01\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span>.<\/p>\n<h2 id=\"bp715\">The challenge of scale<\/h2>\n<p>Many people might naively wonder: <strong>what is it with <span id=\"urn:enhancement-ea03a25d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scale<\/span><\/strong>? Why are 1,000 <span id=\"urn:enhancement-9ae44fbc\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/server_computing\">servers<\/span> so much harder to handle than 10 <span id=\"urn:enhancement-30a9e02d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/server_computing\">servers<\/span>? Pat shared a very pertinent quote from <strong><span id=\"urn:enhancement-a4ea90d3\" class=\"textannotation disambiguated wl-person\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/edsger_w-_dijkstra\">Edsger Dijkstra<\/span><\/strong>:<\/p>\n<blockquote>\n<p>\u201cApparently, we are too trained to disregard differences in <span id=\"urn:enhancement-ce620114\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scale<\/span>, to treat them as \u2018gradual differences that are not essential.\u2019 We tell ourselves that what we can do once, we can also do twice and by induction, we fool ourselves into believing that we can do it as many times as needed, but this is just not true!\u201d<\/p>\n<\/blockquote>\n<p>Some years back, Pat and a colleague gave a talk at a predecessor to <span id=\"urn:enhancement-76ca05b3\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/codemotion_2\">Codemotion<\/span>. This talk looked at the prerequisites in order to be able to <span id=\"urn:enhancement-6d8dce70\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scale<\/span> your development successfully. They called this the <strong>\u201cfaster to master\u201d checklist<\/strong>.<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/Cattura_7dec86f821944dbe39c3375c14e1b48d_800.PNG 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/Cattura_7dec86f821944dbe39c3375c14e1b48d_800.PNG 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/Cattura_7dec86f821944dbe39c3375c14e1b48d_800.PNG\" alt=\"\" \/><\/picture><\/figure>\n<p>But simply checking all these boxes is not enough to ensure you can <span id=\"urn:enhancement-89e3eba9\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scale<\/span>. You need to do a few other things.<\/p>\n<h2 id=\"8m0l1\">Four Stories of DevOps scaling<\/h2>\n<p>Pat shared four stories with us to illustrate the other <span id=\"urn:enhancement-76fef9ae\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/requirement\">requirements<\/span> to ensure successful <span id=\"urn:enhancement-c2f784e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scale<\/span>-up: <strong>responsibility<\/strong>, <strong>autonomy<\/strong>, <strong>ownership <\/strong>and <strong><span id=\"urn:enhancement-f18fd71d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/failure\">failure<\/span><\/strong>.<\/p>\n<h3 id=\"c9msd\">Responsibility<\/h3>\n<p>In the past, Coolblue used a hub and spoke model for <span id=\"urn:enhancement-40443a10\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deploying<\/span> code. The <span id=\"urn:enhancement-95fa4113\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/web_hosting_service\">Hosting<\/span> and <span id=\"urn:enhancement-9c6f325d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">Deployment<\/span> <span id=\"urn:enhancement-7fb07cb8\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> (effectively <span id=\"urn:enhancement-fc2220a7\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/devops\">DevOps<\/span>) sat in the centre with each development <span id=\"urn:enhancement-fa720432\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> going through them for any decisions\/knowledge about deployment. This model began to be a blocker since all requests had to go through the one <span id=\"urn:enhancement-537ef5bc\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span>. As a result, informal knowledge sharing began to happen.<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image1_b85e1a35ddb1a05627f8949c56620379_800.png 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image1_b85e1a35ddb1a05627f8949c56620379_800.png 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image1_b85e1a35ddb1a05627f8949c56620379_800.png\" alt=\"\" \/><\/picture><\/figure>\n<p>Andy in Team A might ask Eve in Team E how to <span id=\"urn:enhancement-4cceba81\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deploy<\/span> a new DB. The problem is that <strong>this informal knowledge sharing doesn\u2019t <span id=\"urn:enhancement-bcfc9a50\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scale<\/span> at all<\/strong>. The solution is to turn the Hosting and Deployment <span id=\"urn:enhancement-eb4f62eb\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> into a Centre of Knowledge. Then the <span id=\"urn:enhancement-5bf72bc\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deployment<\/span> <span id=\"urn:enhancement-c62386f7\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> becomes just another development <span id=\"urn:enhancement-9eb3e990\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span>. If you couple that with an automated process for deploying a new infrastructure, you end up giving responsibility to the <span id=\"urn:enhancement-bfe6129c\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> and empowering them.<\/p>\n<h3 id=\"btmgv\">Autonomy<\/h3>\n<p>Within bounds, autonomy is essential for <span id=\"urn:enhancement-4be6b7bb\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scaling<\/span>. All of Coolblue\u2019s systems are called Vanessa-X. Their modern systems such as Vanessa-de-Prix and Vanessa-Longstocking, are web <span id=\"urn:enhancement-66fe4a83\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span> using Serilog, Splunk and DataDog to enable real-time <span id=\"urn:enhancement-b29f48a6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/data\">data<\/span> logging, dashboards and audit trails in an easy-to-integrate fashion. However, the <span id=\"urn:enhancement-416774a6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/company\">company<\/span> is still heavily reliant on Vanessa-Optimus-Prime. This is the original system and is a monolithic <span id=\"urn:enhancement-8af86e6d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/desktop_computer\">desktop<\/span> <span id=\"urn:enhancement-7fc6e0b6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> based on Delphi (which shows how old it is!). The system runs on thousands of machines across the <span id=\"urn:enhancement-f3f32489\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/company\">company<\/span> and is still central to how the rest of the system works.<\/p>\n<p>An autonomous <span id=\"urn:enhancement-57a103d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> was given the challenge of working out how to add Vanessa-Optimus-Prime to the new <span id=\"urn:enhancement-d5c6dea2\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/data\">data<\/span> logging, dashboard and audit system. \u201cEasy\u201d they thought. Each <span id=\"urn:enhancement-1a1d3b27\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> has a collector <span id=\"urn:enhancement-ee6e6c9e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/class_computer_programming\">class<\/span>. We\u2019ll just use that to collect all the <span id=\"urn:enhancement-57800f64\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/data\">data<\/span> and send it to the logging system. Unfortunately, that kills performance so it doesn\u2019t <span id=\"urn:enhancement-aad2127e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scale<\/span>. Their next thought was to use <span id=\"urn:enhancement-c46a0eb3\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_datagram_protocol\">UDP<\/span> to send the logs to an agent on the network. This would act as an aggregator. But then <strong><span id=\"urn:enhancement-51601766\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/security\">security<\/span><\/strong> gently explained to them why this was not a good idea! (Basically, <span id=\"urn:enhancement-73e62736\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_datagram_protocol\">UDP<\/span> traffic can kill a network and becomes a <span id=\"urn:enhancement-716da4ca\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/security\">security<\/span> nightmare). Aha! they thought. Why not switch to using TCP? That way you have controlled traffic in the network. Sadly, they hadn\u2019t allowed for the sheer number of concurrent connections needed. The collector ran out of sockets and hung. In turn, this caused all the clients to hang as they waited for connections.<\/p>\n<p>Finally, the <span id=\"urn:enhancement-a7eb3b7c\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> stopped trying to come up with quick fixes and looked at what they could do from an infrastructure viewpoint. They came up with a solution based on the <strong><span id=\"urn:enhancement-51f3c8d9\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/amazon_web_services\">AWS<\/span> <span id=\"urn:enhancement-f457b111\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span> gateway<\/strong>. This was then connected to a <strong><span id=\"urn:enhancement-22374009\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/anonymous_function\">Lambda<\/span> Function<\/strong> to pre-process the <span id=\"urn:enhancement-3ac31b47\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/data\">data<\/span> which then was sent to <strong><span id=\"urn:enhancement-1cd746c1\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/amazon_elastic_compute_cloud\">Amazon CloudWatch<\/span><\/strong>. This solution worked well so they finally submitted it to <span id=\"urn:enhancement-bab84b28\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/devops\">DevOps<\/span> for approval. The only change <span id=\"urn:enhancement-ee7acae0\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/devops\">DevOps<\/span> made was to insert Kinesis webstreams. This makes sure the system can\u2019t become too expensive. Now the system is capable of handling about 5m log events per week.<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image2_d955dba1c905699186a5ece818cb99dc_800.png 1x, https:\/\/images.storychief.com\/account_16344\/image2_d955dba1c905699186a5ece818cb99dc_1600.png 2x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image2_d955dba1c905699186a5ece818cb99dc_800.png 1x, https:\/\/images.storychief.com\/account_16344\/image2_d955dba1c905699186a5ece818cb99dc_1600.png 2x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image2_d955dba1c905699186a5ece818cb99dc_800.png\" alt=\"\" \/><\/picture><\/figure>\n<p>Without the <strong>autonomy to try out multiple approaches<\/strong>, this problem would have taken much longer to solve.<\/p>\n<h3 id=\"28sfr\">Ownership<\/h3>\n<p>Ownership is sometimes scary. <strong>People feel exposed if they have to take ownership of important decisions<\/strong>. At Coolblue, the build environment is based on Team City. But who actually owns the environment? Well, actually <span id=\"urn:enhancement-6a48df79\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">teams<\/span> own their own unique build environment. The first thing that happens before any build is the <em>build.ps<\/em> <span id=\"urn:enhancement-c3ecc4f0\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scripting_language\">script<\/span> is called. Each <span id=\"urn:enhancement-74b0f074\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> can configure this <span id=\"urn:enhancement-d55312f1\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scripting_language\">script<\/span> as they choose. As a result, pretty much any build <span id=\"urn:enhancement-d10b327b\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_configuration\">configuration<\/span> is feasible. And no one else even need know what you are trying!<\/p>\n<h3 id=\"2shi3\">Failure<\/h3>\n<p>One of Pat\u2019s favourite books is \u201cFailing Forward\u201d, by John C. Maxwell. Core to Maxwell\u2019s view is that what matters is <strong>how <span id=\"urn:enhancement-da1bf605\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/failure\">failure<\/span> is accepted and what changes it triggers<\/strong>. Coolblue owns a fleet of delivery vehicles. Recently they added electric bicycles to the fleet. During the trial phase for the bicycles, everyone in the <span id=\"urn:enhancement-78fd5e5d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> suddenly received a Slack notification late one afternoon. One of the key aspects of Coolblue\u2019s infrastructure is the dashboard that monitors their services. If anything goes wrong, it sends out a Slack notification. On this occasion, the on-call <span id=\"urn:enhancement-d9b0e33\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> was able to quickly spot that two processed were hanging. They terminated and restarted these and within minutes all was happy again.<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image3_83d933739978161b1b19b4bf15916c76_800.png 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image3_83d933739978161b1b19b4bf15916c76_800.png 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/image3_83d933739978161b1b19b4bf15916c76_800.png\" alt=\"\" \/><\/picture><\/figure>\n<p>So, what has that to do with the delivery bikes, you might ask. Well, during this trial phase, the maximum size of package allowed was set to 50cc. One of the most popular lines Coolblue deliver is a particular coffee machine. That machine comes in a 49cc box. However, this week, the manufacturer had chosen to add a milk frother as a free gift. Suddenly the boxes were too big. As a result, when the bike courier came to load the packages for their delivery round, they wouldn\u2019t fit. In turn, that would put all bikes offline and the whole system would grind to a halt. Knowing this would be a problem, the <span id=\"urn:enhancement-51e4f359\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> had reduced the maximum allowed package slightly, thus triggering the system to reassign all the loads properly. However, it turned out that not every instance had been updated properly. Thus, later in the day, these instances hung and triggered the outage.<\/p>\n<p>After this event, the <span id=\"urn:enhancement-f52a7237\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> was <span id=\"urn:enhancement-3cc9bcfb\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/requirement\">required<\/span> to send an RFO (reason for outage). These RFOs are reviewed each month and any important lessons are learned and shared across all other <span id=\"urn:enhancement-439a4591\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">teams<\/span>. If there is a major <span id=\"urn:enhancement-9494ffa1\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/failure\">failure<\/span>, then a War Room is called, where everyone in the <span id=\"urn:enhancement-8557c12a\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/company\">company<\/span> is able to help review the issue. Fortunately, Pat said, there has been no need for any War Rooms for a long time.<\/p>\n<h2 id=\"5vkel\">Conclusions<\/h2>\n<p>Coolblue has been able to scale up pretty effectively. In part, this is down to embracing the \u201cfaster to master\u201d checklist. But it is also down to how their <span id=\"urn:enhancement-67743945\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/company\">company<\/span> culture embraces the four key concepts of responsibility, autonomy, ownership and <span id=\"urn:enhancement-5be60c53\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/failure\">failure<\/span>. Get these right, and <strong>scaling becomes much easier<\/strong>.<\/p>\n<p><!-- strchf script --><script>        if(window.strchfSettings === undefined) window.strchfSettings = {};    window.strchfSettings.stats = {url: \"https:\/\/codemotion.storychief.io\/how-to-scale-your-devops-from-100-servers-to-1-000?id=1521626169&type=2\",title: \"How to scale your DevOps from 100 servers to 1,000+\",id: \"66543c6c-96d5-4792-a44b-49339654b7a1\"};            (function(d, s, id) {      var js, sjs = d.getElementsByTagName(s)[0];      if (d.getElementById(id)) {window.strchf.update(); return;}      js = d.createElement(s); js.id = id;      js.src = \"https:\/\/d37oebn0w9ir6a.cloudfront.net\/scripts\/v0\/strchf.js\";      js.async = true;      sjs.parentNode.insertBefore(js, sjs);    }(document, 'script', 'storychief-jssdk'))    <\/script><!-- End strchf script --><\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Many companies face issues with scaling up. What works well at small scale seldom works well at large scale. At Codemotion Amsterdam 2019, Pat Hermens of Coolblue presented four stories that illustrate how the culture of your team can help ensure success.<\/p>\n","protected":false},"author":7,"featured_media":2029,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[3356],"tags":[77],"collections":[],"class_list":{"0":"post-2028","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-devops","8":"tag-codemotion-amsterdam","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to scale your DevOps from 100 servers to 1,000+ - Codemotion<\/title>\n<meta name=\"description\" content=\"Many companies face issues with scaling up. At Codemotion Amsterdam 2019, Pat Hermens presented four stories that illustrate how your team culture can help.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to scale your DevOps from 100 servers to 1,000+\" \/>\n<meta property=\"og:description\" content=\"Many companies face issues with scaling up. At Codemotion Amsterdam 2019, Pat Hermens presented four stories that illustrate how your team culture can help.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-11T10:33:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-23T13:12:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1013\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Toby Moncaster\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tobym76\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Toby Moncaster\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/\"},\"author\":{\"name\":\"Toby Moncaster\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8b9f025e7d76754fb3d4ffd428b0813b\"},\"headline\":\"How to scale your DevOps from 100 servers to 1,000+\",\"datePublished\":\"2019-12-11T10:33:35+00:00\",\"dateModified\":\"2021-12-23T13:12:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/\"},\"wordCount\":1270,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg\",\"keywords\":[\"Codemotion Amsterdam\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/\",\"name\":\"How to scale your DevOps from 100 servers to 1,000+ - Codemotion\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg\",\"datePublished\":\"2019-12-11T10:33:35+00:00\",\"dateModified\":\"2021-12-23T13:12:41+00:00\",\"description\":\"Many companies face issues with scaling up. At Codemotion Amsterdam 2019, Pat Hermens presented four stories that illustrate how your team culture can help.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg\",\"width\":1013,\"height\":675,\"caption\":\"How to scale your DevOps from 100 servers to 1,000+\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/backend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to scale your DevOps from 100 servers to 1,000+\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8b9f025e7d76754fb3d4ffd428b0813b\",\"name\":\"Toby Moncaster\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/126cc1a8360e8cfbfa77aefe9160c4cd916e20f2c3a849d91e1df00c48423ccc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/126cc1a8360e8cfbfa77aefe9160c4cd916e20f2c3a849d91e1df00c48423ccc?s=96&d=mm&r=g\",\"caption\":\"Toby Moncaster\"},\"description\":\"I am an experienced freelance writer. I specialise in making complex topics accessible to wider audiences. My interests include TCP\/IP, data protection and AI. I currently work with B2B startups across the world. I hold 5 patents, edited 3 RFCs and received a PhD in computer science from the University of Cambridge.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/tobymoncaster\/\",\"https:\/\/x.com\/tobym76\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/toby-moncaster\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to scale your DevOps from 100 servers to 1,000+ - Codemotion","description":"Many companies face issues with scaling up. At Codemotion Amsterdam 2019, Pat Hermens presented four stories that illustrate how your team culture can help.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/","og_locale":"en_US","og_type":"article","og_title":"How to scale your DevOps from 100 servers to 1,000+","og_description":"Many companies face issues with scaling up. At Codemotion Amsterdam 2019, Pat Hermens presented four stories that illustrate how your team culture can help.","og_url":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2019-12-11T10:33:35+00:00","article_modified_time":"2021-12-23T13:12:41+00:00","og_image":[{"width":1013,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg","type":"image\/jpeg"}],"author":"Toby Moncaster","twitter_card":"summary_large_image","twitter_creator":"@tobym76","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Toby Moncaster","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/"},"author":{"name":"Toby Moncaster","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8b9f025e7d76754fb3d4ffd428b0813b"},"headline":"How to scale your DevOps from 100 servers to 1,000+","datePublished":"2019-12-11T10:33:35+00:00","dateModified":"2021-12-23T13:12:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/"},"wordCount":1270,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg","keywords":["Codemotion Amsterdam"],"articleSection":["DevOps"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/","url":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/","name":"How to scale your DevOps from 100 servers to 1,000+ - Codemotion","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg","datePublished":"2019-12-11T10:33:35+00:00","dateModified":"2021-12-23T13:12:41+00:00","description":"Many companies face issues with scaling up. At Codemotion Amsterdam 2019, Pat Hermens presented four stories that illustrate how your team culture can help.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg","width":1013,"height":675,"caption":"How to scale your DevOps from 100 servers to 1,000+"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/how-to-scale-your-devops-from-100-servers-to-1000\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/backend\/"},{"@type":"ListItem","position":3,"name":"How to scale your DevOps from 100 servers to 1,000+"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8b9f025e7d76754fb3d4ffd428b0813b","name":"Toby Moncaster","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/126cc1a8360e8cfbfa77aefe9160c4cd916e20f2c3a849d91e1df00c48423ccc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/126cc1a8360e8cfbfa77aefe9160c4cd916e20f2c3a849d91e1df00c48423ccc?s=96&d=mm&r=g","caption":"Toby Moncaster"},"description":"I am an experienced freelance writer. I specialise in making complex topics accessible to wider audiences. My interests include TCP\/IP, data protection and AI. I currently work with B2B startups across the world. I hold 5 patents, edited 3 RFCs and received a PhD in computer science from the University of Cambridge.","sameAs":["https:\/\/www.linkedin.com\/in\/tobymoncaster\/","https:\/\/x.com\/tobym76"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/toby-moncaster\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-600x600.jpg","author_info":{"display_name":"Toby Moncaster","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/toby-moncaster\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg",1013,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-768x512.jpg",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg",1013,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg",1013,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg",1013,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000.jpg",100,67,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/20190402-Codemotion2019-hr-73-41_b41ac84fc606f6e77911ed9a4974edcb_2000-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Toby Moncaster","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/toby-moncaster\/"},"uagb_comment_info":0,"uagb_excerpt":"Many companies face issues with scaling up. What works well at small scale seldom works well at large scale. At Codemotion Amsterdam 2019, Pat Hermens of Coolblue presented four stories that illustrate how the culture of your team can help ensure success.","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=2028"}],"version-history":[{"count":1,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2028\/revisions"}],"predecessor-version":[{"id":2872,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2028\/revisions\/2872"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/2029"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=2028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=2028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=2028"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=2028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}