No infrastructure is the new infrastructure: Moving to a serverless Azure apps deployment
When most think of a company’s technology infrastructure, they envision the physical components and hardware required to allow its employees to produce and be effective at it, either it be goods or services. A company’s infrastructure can either make or break its ability to productively function and allow its work force to push the needle forward as a whole. Those int eh technology realm can be all too familiar with the associate cost and time required to maintain such hardware deployments to keep things running smoothly and efficiently. Microsoft has introduced an emerging space that is designed to alleviate some of the heavy lifting companies have been shouldering by provided what it calls “Serverless Computing”.
What is Serverless computing?
Serverless computing is a concept based on the idea of allowing a provider to take care of the infrastructure components (scaling, provisioning, managing). What this really entails is “Function as a Service” – which a customer writes code that only handles the business logic and that is then utilized by a hosted cloud back end. This app hosting model allows for a company to quickly, and in most cases with minimal effort, scale to fit its needs. This type of hosting is event driven, meaning that code is executed and run only when triggered to do so. The company pays for only the resources needed to execute and run what is functioning at the time to execute and fulfill the request.
What are the benefits?
This type of application deployment has several advantages. At the top of that list is the cut to infrastructure hosting and maintenance costs, along with the speeding up the ability to deploy what is needed. This type of ability can give a company the advantage of being able to quickly adapt to meet demand with a high level of agility. For example, say that you have an application that is used to tabulate the number of orders received monthly, then uses that data to generate a map with the orders separated by region to allow pinpointed marketed to those areas. Something like this may only need to run once a month, but in that time, it will need to do many calculation and process a large amount of data. The rest of the month it may sit idle. With a traditional server architecture, you would have to maintain the hardware, the application, the updates and patches, and the databases as well. With a serverless, or “Function as a Service” strategy, this would all be taken care of by the provider and you would only pay for the time and resources need at that monthly moment to run and compile that code.
How can my company transition?
If you or your company is considering this path, there are a few things to consider prior to taking the dive into a serverless deployment. Ahead of any deep dive and transition, it is recommended to:
Identify the problems – What current problem are you facing and how will serverless address them? (cost? Legacy system replacement? Ease of service?)
Train your existing team – Get your staff ready for what is to come. Get them involved early on with training, encourage them to attend meeting and webinars in relation to this move. In most cases, how successful the implementation or transition is highly dependent on how prepared your development team is for the challenge.
Create a Proof of Concept – what is the intended outcome or result of your implementation? Use the proof of concept to test the waters and address any concerns or issues that may arise along the way
Optimize the solution to take advantage of the cloud – This can prove critical to the business. You want to do more than just translate your services to the cloud, you want to make sure they are optimized for it. (Think in terms of events, queues and caches)
Automate your Continuous Integration/Continuous Deployment pipeline – automate where you can and what you can. Odds are the code and apps you deploy will work across the business. Think about how these areas, services and code will interest and what can be automated into services.
Automate your testing – Testing is fundamental and unit testing will ensure that your business logic works. Test, test and test a little more, including end-to-end testing.
Your business as well as your work force could reap benefits of a serverless architecture throughout its workflow. Your new architecture will be an event driven one, so take advantage of the optimization potential you have at hand.