Both approaches have their benefits but none of them fits all. The more probable occurrence of a serious disruption for your business, the shorter recovery time you should have in place. The point for serverless is to boost your infrastructure architecture. There are other benefits, especially for small and medium-sized companies. Let’s go through them all.
In general, there are two major ways to think about it: your on-premises solution (server room) and migration to the cloud. The goal of Infrastructure as Code (IaC) is the managing and provisioning of infrastructure through code instead of through manual processes. To be more accurate – they are not even servers but virtual machines.
Table of contents
- Server infrastructure definition
- Microsoft Azure and Cloudflare
- Server and serverless – what’s the difference?
- Server and serverless – pros and cons
- Efficient application infrastructure architecture with the cloud
- One cloud provider and an infrastructure architecture
- “Think about servers less”
Server infrastructure definition
If you decide you want to have physical servers in the company (for current and potential future products), you are not only buying physical hardware. That’s the very core of it, but the definition of server infrastructure is linked to data infrastructure architecture. There is no application without a business model and a way to handle the data. If you go with storing on a server, you have to add additional costs:
- hardware maintenance
- software updates
- hardware replacements (common cost: new hard drives)
- security (both for the server room and data)
…and other. It’s a lot, especially for small and medium companies. First big clouds, Microsoft’s Azure and Amazon Web Services proved to the world that everyone can sell big, even if they are small. By cutting costs and running business operations smoothly, all at the same time.
Building and maintaining your own infrastructure is complicated and costly. That’s why Code & Pepper decided to go with the serverless approach. What does it mean, exactly?
Microsoft Azure and Cloudflare
If you want detailed information about our mindset, read the text about our technology stack. For now, let’s just say that there is a long list of benefits from dropping the servers.
Like a database, in Amazon Web Services called DynamoDB. You can also set up Microsoft’s Azure Arc and have cloud services available locally, through aKubernetes cluster. Thanks to that, you can have a local substitute for, let’s say, a database, in your own, physical backyard. The difference is, you have to think about updates, etc. It’s a hybrid model, where you have a cloud’s solution as a local substitute.
If you want to go a step further, we have a solution from Cloudflare. Historically, the company acted as a content delivery network (CDN) provider. Because their clients wanted to run code within their infrastructure, Cloudflare decided to make a pivot and become a cloud provider. With the concept of regions and availability zones (datacenter groups, for example for the North-East U.S.), traditional providers are able to deliver a backup server in case of an emergency. Like a tornado, which periodically is a quite common occurrence in some parts of the world.
The problem with this infrastructure architecture is that you can’t have data centers too far away from each other, because databases have to replicate data. Time (measured in milliseconds) is a key factor , so every mile counts. That’s not very good for software infrastructure architecture, business operations, and finances as a whole. These regions are not typical for the U.S. alone, so challenges coming with the server or hybrid infrastructure are adequate for everybody. You can have a server in Australia, Germany, or Spain and face the same issues. Not necessarily tornados, an ordinary flood will do.
Server and serverless – what’s the difference?
With serverless, developers don’t have to think about hardware – limitations, demands, architecture. Acloud provider takes care of virtual machines and container management. Theyalso provide hardware allocating and take care of processes like multithreading, that are built into code, taking even more load from developers’ shoulders.
There are two aspects to this thread: containers and the serverless architecture itself.
You can deploy containers consistently across any environment. Containers don’t require to run an entire operating system like a full virtual machine (VM). Instead, they share access to the host machine’s operating system kernel. They can be deployed on physical servers, in cloud virtual machines, or specialized container instances.
There are some differences between containers and serverless; these impact application infrastructure architecture:
There are also some similarities. You can:
- deploy application code every time
- save yourself the overhead and complexity of virtual machines
- automate and scale workloads
- abstract applications from the underlying host environment
Server and serverless – pros and cons
Servers require configuration and maintenance. In serverless infrastructure architecture, some things are done almost effortlessly. It’s about a developer’s experience: you enter the console to create a project, download the command-line interface (CLI), execute commands, make necessary configurations with just a few options and you’re ready to go. You are able to develop features. Then, you execute a command and this feature magically appears. With function as a service (FaaS), software engineers don’t have to think about the whole context of the business logic, they can just write code. They can focus on a single thing that the code executes, focusing on a business logic is very important and handy.
Microsoft Azure has a cold start problem – if you want to execute a function, the cloud has to create a container, do setup, and then the function is ready to go. The whole process can take up to 10 seconds, which is considered a lifetime by developers. Amazon Web Services has a much lower cold start time – the company had launched its cloud services earlier and had more time to polish the solution.
This is a matter to think about – with serverless, you give up control over low-level features, but gain the speed of development. If your product demands total control over, let’s say, performance or security, then serverless is not for you. As a client, you should always think about the nature of the application, data infrastructure architecture, and infrastructure software that goes with it. Serverless infrastructure has multiple benefits, but at the same time, limits your role as the sole administrator of every part of the solution. Can you give up control to gain speed and flexibility? That’s the question.
The good news is that with every major update of serverless infrastructure, the level of tradeoff is shrinking. Technology is moving forward minimising the impact of a necessary compromise. The variety of applications that can be made by using serverless infrastructure, is growing.
If you need high-performance computing (HPC) and really, REALLY low response times, serverless would not be for you. In this case, and HPC is common in industrial design and Industry 4.0 on-site solutions, you will need on-premise infrastructure. Things like electronic-design automation force the physical availability of servers, preferably in one big server room. Total control – from devices, through file access, and beyond, is natural here. Serverless will not help you, since communication between devices and through software is absolutely minimal and beyond everything FinTech or other industries will ever truly need. There are multiple patents on high-scale low-time communications but the industrial design is a whole new level. Implementing that into FinTech would be overkill.
The last paragraph is important also because it highlights a potential demand from market regulators. Having total control over every aspect of your infrastructure means that your organization is solely responsible for data (for example) and everything in that regard. Serverless gives you scalability but takes away a portion of control to make you accelerate the business faster. Regulators won’t necessarily accept this approach.
Efficient application infrastructure architecture with the cloud
The big plus of the serverless is the experimentation culture. It’s especially important for startups who want to scale fast and adapt to market demands. With a serverless approach, you can test different variants for the application. Quickly make an MVP and see what works and what doesn’t. You can make mistakes while lowering your overall costs at the same time.
That doesn’t mean serverless is only good for startups and small projects. No, it’s great for anyone that wants to act faster, at lower costs, and have their applications and infrastructure optimized for everyday challenges, while taking care of time-to-market. Serverless benefits startups and organizations that want to make a quick pivot but the nature of the infrastructure lets you create large-scale products that simply perform and are far cry from a bull in a china shop.
Onelast thing – it’s much easier to experiment while going serverless and switch to on-premises solutions than the other way around.
One cloud provider and an infrastructure architecture
Going serverless demands that you depend on one provider. That means it’s hard to change a cloud provider while you’re hooked to one infrastructure. You can be cloud-agnostic or prefer a hybrid solution. With servers on-premises and cloud infrastructure as the component, you can, of course, have some diversity but it’s a matter of who you can trust and what you want to do.
At Code & Pepper, we specialise in working with AWS, because of the nature of their solutions. They have the biggest experience on the market, mature technology, and prices that drop, not rise. Being cloud-agnostic has some benefits but we opt for what’s proven.
“Think about servers less”
We find that amusing and well-written. The phrase is flying on the Internet and summarises what is important in the serverless approach. Just do what you have to do and don’t waste your time on mundane activities. They cost money and provide another source of headaches.
Serverless grants freedom. Cloud computing is a buzzword for a reason. Do you want to know more first-hand? Contact us and let’s talk!