There is an interesting discussion going on around how Serverless is more of a rather than a binary choice. spectrum The move towards the Serverless-end of the spectrum builds upon a decades-old trend, which is why Serverless is here to stay. Source: CloudZero “It’s the abstraction, stupid” As much as the , abstractions are fundamental to the complex waters of software engineering. economy plays a key role in political developments The is what sparked the Serverless model in the Cloud. This is decades-old in our industry. need for abstraction It has happened with programming languages. We went from the lower-level ones — Assembly, C, Java — to the higher-level and JavaScript and Python. Also with paradigms, going from procedural to object-oriented and functional programming. increasingly popular Yes, several factors were behind these evolutionary courses, but very few would deny the fundamental role played by the need for abstraction. Think for a second: what would the web look like if every-single-developer had to understand and deal with memory allocation or parsing TCP/IP packages? Abstraction delivers speed, simplicity, reusability, and collaboration. They scale much better and enable building complex systems out of simple, battle-tested building blocks. They are at the heart of the exponential growth of the internet industry as we know it. Shortage of resources During World War II, chocolate became an expensive luxury in Europe. An Italian entrepreneur decided his fellow citizens deserved some affordable sweetness during such tough times and . invented Nutella A shortage of resources always leads to searching for alternatives and solutions. What shortage does the software industry face nowadays? CPU or memory? We have much higher and cheaper hardware capacity in an than in early space rockets! earphone Humans are in shortage. More precisely, brains that are able to write quality software code. And their time costs a lot of money. Tens — or hundreds — of thousands of dollars every year. For a single brain. That is one of the key factors behind the popularity of higher-level programming languages. They are and . It can be up to 3x faster to write a solution in Python than Java, for example . much faster to develop with save expensive brain time (I know, eyes will roll because of this statement — but you get the point here) This is also one of the key reasons behind the adoption of serverless: it makes developers more productive and speeds up time-to-market by abstracting away time-consuming infrastructure configuration and management. This is also one of the key reasons behind the adoption of serverless: it makes developers more productive and speeds up time-to-market by abstracting away time-consuming infrastructure configuration and management. The internet is a giant gluing machine Internet services are overwhelmingly just gluing tools. Look at Google. It glues data from scraped web pages, past search intents, click-through streams, etc, and compiles into a list of relevant URLs for each of our interests. That’s it. As lower-level languages are yielding space to their higher-level counterparts, server-based infrastructure is quickly being supplanted by serverless ones. It’s a no-brainer and non-stop trend. Serverless is just more suitable for building solutions in a giant gluing industry that is short of developer brain time. What about the spectrum? When it comes to technology, it is rarely a binary choice. Lower-level programming languages provide all values of being : a high degree of control over the hardware, super-fast processing speed, etc. closer to the metal But for workloads that are heavy at parsing data and networking. Python and JavaScript are great for data gluing, and their slower performance is usually not a problem. Until it is… CPU is rarely a performance factor Enters the spectrum: , for example, when we need the best of both worlds: abstraction, developer productivity, and performance. Python can be combined with C The same rationale applies to Cloud infrastructure. Serverless is becoming ubiquitous for web back-ends, just as JavaScript and Python. But it will be combined with solutions leaning towards server-based when necessary. Source: AWS re:Invent 2018: Accelerate Innovation & Maximize Business Value w/ Serverless Apps The future of cloud applications looks to be a predominantly serverless stack that relies on some components running on server-based solutions for particular needs. Serverless comes with its own and its challenges as well. Developers building cloud back-end systems should adapt and start mastering this new serverless mindset. way-of-doing-things