{"componentChunkName":"component---src-templates-single-post-js","path":"/blogpost/are-serverless-functions-right-for-you/","webpackCompilationHash":"6e63b4b7c405467d418e","result":{"data":{"contentfulBlogPost":{"id":"0e45205c-ee22-5ac4-885d-1025a7e48ce5","title":"Are serverless functions right for you?","author":"Drew MacLean","date":"Oct 15th 2019","tags":["Serverless"],"slug":"are-serverless-functions-right-for-you","body":{"json":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"What is traditional server computing?","nodeType":"text"},{"data":{},"marks":[],"value":"In the long ago we had to either physically maintain servers on premises or rely on a provider to maintain our servers. This included both physical maintenance (replacing parts and connections) as well as software maintenance (performing upgrades and patching vulnerabilities). Luckily, this has changed a lot. There are many providers that will allow you to host servers in the cloud now. This greatly reduces the time it takes to provision new resources. However, this does still require developers to make assumptions about the usage ahead of time.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"What is serverless computing?","nodeType":"text"},{"data":{},"marks":[],"value":"Serverless computing allows developers to not need to worry about many of the headaches of traditional server computing. It eliminates the need to provision and maintain remote or onsite  servers. Instead it pushes all this to a cloud service that allows easy scaling and flexibility. All while providing quicker deployment and a low up-front cost. This allows developers to focus on development and removes some of the system maintenance requirements. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"Serverless use cases:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Rapid prototyping:\nServerless allows developers to quickly get started on projects because it doesn't require thinking about provisioning resources. Any project idea can immediately begin with writing code. Developers are able to try new ideas immediately with no downside. If the project becomes popular there is no need to go back and re-engineer because it's scalable by design.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Testable:\nServerless is very testable because it encourages developing small units of work that perform specific functions. Generally this allows functions to be tested in isolation which helps identify issues early before they become production problems.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Cost saving:\nMost platforms offer a free or cheap tier of services that allow projects to be tried before committing to spending money. This allows development without any of the traditional costs associated with hosting servers. ","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Fast:\nServeless is fast for users regardless of location. Because functions are stateless they are able to be replicated to edge nodes in many regions. This decreases latency if an app is available to a wide geographical audience.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Secure:Many serverless providers offer a host of services that can be integrated together to create a secure running environment. This allows users to be authenticated once and then have confidence that all the services will work seamlessly together.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\nWho is providing these services?There are several one stop shop options provided by the familiar key players:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"AWS by Amazon\nAzure by Microsoft\nCloud Functions by Google","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"All platforms provide similar services for their users such as being able to run code through their servers. In the last few years AWS has dominated the market but no matter which provider you choose you there isn’t much vendor lock in. Support is typically available for the most common languages such as JavaScript (Node), Java, Python, .NET core, Go, and Ruby. There’s no need to worry as switching from one provider to another because standard practices are used.\nAll three of these providers also have many more services ranging from data storage to machine learning that will be covered in future articles.\n\n","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"Conclusion:","nodeType":"text"},{"data":{},"marks":[],"value":"\nServerless computing is most useful when the individual tasks are able to be broken down into small pieces and completed quickly. Serverless architecture is the way of tomorrow. Gone are the days of having to care about the mundane minutiae of having to manage your own servers. Now developers with a great idea can spend their time building something rather than bogging themselves with the tasks of a system administrator and the savvy business man can cut costs on starting up his product but only paying what they use when their user base is small.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}},"image":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAMAAAAFH/x6AAAAjVBMVEX///+t5fpCxPMxv/J01Pbx+v6p5PoAsPAsvfJZy/WY3/j7/v5AxPMAsO8TtfFkz/Xt+f5izvUJs/AjuvHn9/1VyvQDse83wfOm4/lczPVy0/ax5/oHsvABsPDP8Pw5wvMnvPJt0vau5vqv5voGsvALs/BLx/QguvE0wPP1/P7j9v2y5/qw5vq+6/v7/v8j+GDYAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH5AEfDxMLiXpCagAAAGBJREFUCB19wdsSgWAYBdCN2Epb6EA55lzh/R/P1/SP4cZa+KPXH3hD/BrRjP1ggi+hpKmkCB+z+UKKk1TKlis4OU2B9YbkdofOnuaAkq0jOqczycv1RnOv4NTNw3m+YN5cqQaZnrGxmQAAAABJRU5ErkJggg==","aspectRatio":2.1512605042016806,"src":"//images.ctfassets.net/lixbo4eywy36/5DNwcXkOPZnzHYLDegOA2b/e615f0ed2b7003035791117901ec7f46/cloud-serverless-1280x595.png?w=700&q=50","srcSet":"//images.ctfassets.net/lixbo4eywy36/5DNwcXkOPZnzHYLDegOA2b/e615f0ed2b7003035791117901ec7f46/cloud-serverless-1280x595.png?w=175&h=81&q=50 175w,\n//images.ctfassets.net/lixbo4eywy36/5DNwcXkOPZnzHYLDegOA2b/e615f0ed2b7003035791117901ec7f46/cloud-serverless-1280x595.png?w=350&h=163&q=50 350w,\n//images.ctfassets.net/lixbo4eywy36/5DNwcXkOPZnzHYLDegOA2b/e615f0ed2b7003035791117901ec7f46/cloud-serverless-1280x595.png?w=700&h=325&q=50 700w,\n//images.ctfassets.net/lixbo4eywy36/5DNwcXkOPZnzHYLDegOA2b/e615f0ed2b7003035791117901ec7f46/cloud-serverless-1280x595.png?w=1050&h=488&q=50 1050w,\n//images.ctfassets.net/lixbo4eywy36/5DNwcXkOPZnzHYLDegOA2b/e615f0ed2b7003035791117901ec7f46/cloud-serverless-1280x595.png?w=1280&h=595&q=50 1280w","sizes":"(max-width: 700px) 100vw, 700px"}}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"are-serverless-functions-right-for-you","id":"0e45205c-ee22-5ac4-885d-1025a7e48ce5"}}}