Welcome!

@DevOpsSummit Authors: Pat Romanski, Zakia Bouachraoui, Liz McMillan, Elizabeth White, Yeshim Deniz

Related Topics: @DevOpsSummit, Containers Expo Blog, @CloudExpo

@DevOpsSummit: Article

Choosing a #Serverless Architecture | @DevOpsSummit #DevOps #AI #Docker

In the future, some applications will be entirely serverless, especially if the price point is better than cloud-based instances

What to Look for When Choosing a Serverless Architecture
By Sunil Mavadia

Information Technology has advanced in different areas at different speeds. This has always been true, as people found workable solutions to the problems that faced them today, most often before there was a market for those solutions. While things like virtualization and eventually cloud computing grew slowly, programming languages sat at the same point for around a decade before the current round of new languages and approaches—Python, Ruby, Node, Swift—came about. These things seem unrelated, but there is a union of the two sets of changes that we are about to see blossom.

That union is serverless computing. The joining of easily deployable instances–ultimately in the form of containers–with the ubiquity of REST-based APIs and the new programming languages that made REST-based APIs an easy and viable option. These technologies combined have created a new and different form of computing. While much of it is familiar (we know how to do REST, and we know how to do microservices), some of it is not.

Learning from Node.js
My very first Node.js program was probably not a lot different from most people’s. I set up listening on a port and path, wrote some code to execute-and-exit, and then used a browser to hit the full URI. Once it did what I wanted it to do, of course I started playing with ways to take advantage of Node’s parallelism and other features that the language brought new or made easier to use.

That first app was not a REST API, it was a simple HTML response to a request. A dynamic web page that changed as I required. But combined with REST, Node becomes an endpoint. And still, it executes when a call comes in, and except for the part of the infrastructure listening to the port, it exits.

The Infrastructure Wall
But in order to get a simple Node application (or Python/Django, or Java/Spring, or RoR, or…) to run, there is network configuration, firewall configuration, OS configuration and hardening, storage configuration, if you’re using a Web App Firewall (you should be for web apps), then WAF configuration… DevOps makes all of this easier, for certain. But what if you didn’t need to do any of this at all?

A Serverless Architecture
That is precisely what a growing list of companies are proposing. What, they posit, if a developer could write code, deploy it, and have it there when needed, not doing anything when not needed, and be as scalable as required? What if the configuration of things like WAF was automated, and the code could be limited for accessibility to just the right subset of people/machines? What if deployment really was as simple as uploading a zip file, or writing code in an editor and hitting “deploy”? And finally, what if things like database and storage access came pre-configured so you could just include them?

The appeal for developers is obvious. To be able to write code and deploy it without the previously necessary (whether physical, virtual, or cloud) operations procedures is many a developer’s dream. But there are some real-world use cases that spring to mind also. The first is the bottleneck functionality during peak periods. Let us assume you have an online order system and that it suits your organization perfectly. But during peak sales periods (Black Friday, for example), address validation takes too long and constantly bogs the system down.

What if you could spin address validation out to a serverless function that would take an address and return whether it was valid or not. And the function could scale at a rate that allowed for practically unlimited scalability? (You do still have to worry about network bandwidth–sorry.) Suddenly, your bottleneck is less of a problem, and you’re only paying for the time that your validation function is actually using. Meaning the more deliveries you’re making, the more you pay, but when you’re not making a lot of deliveries, you’re not paying a lot.  You’re only paying for what you’re using.

What if all of this could be done on your site or in the cloud, and for a price that was affordable? The products out there today (including Microsoft Functions, AWS Lambda, and nanoscale.io) offer all the above.

It’s Not All Rainbows
But there is always a catch. Things you want to watch for when choosing a serverless architecture vendor are:

  1. Tool support. Support for your development tools, particularly your CI/CD/ARA tools, is critical. It does you far less good if you can’t integrate serverless into your existing Dev environment and your pipeline for that matter.
  2. Charges and fees. Never forget that these are businesses same as you. Their goal is to make money. Yours should be to make sure you understand how much of that money they make is coming out of your budget. All things on-demand have a bit of fudge factor because they depend on the vagaries of usage by an unpredictable customer base. But understand what your organization will be charged for and what rights to change those charges the vendor reserves.
  3. Security functionality. Divorcing a chunk of code from the core of the application and putting it out in the cloud can mean a hefty investment in securing just that one bit of code. Make certain your vendor of choice either offers help in this area or allows you to keep the code behind your firewall and WAF.
  4. Your overall architecture. While our example above is a good illustration of “low hanging fruit,” more complex cases can run into problems of data access, data security, cost concerns, and even uptime concerns. Make certain your team has taken a good look at what to make serverless and that it will be well served by this method of computing.

Building the Right Application
In the future, some applications will be entirely serverless, particularly if the price point works out to be better than cloud based instances. But even if it doesn’t, there will be cases where the lack of infrastructure configuration is worth the cost. Meanwhile, look to serverless as a solution to bottlenecks that are caused by individual functions, and see if they can increase your applications’ capacity without increasing your infrastructure budget by more than is necessary. In the end it’s about the right selection of services to achieve the goals, and serverless offers another tool in the IT pack to solve problems.

The post What to Look for When Choosing a Serverless Architecture appeared first on XebiaLabs.

More Stories By XebiaLabs Blog

XebiaLabs is the technology leader for automation software for DevOps and Continuous Delivery. It focuses on helping companies accelerate the delivery of new software in the most efficient manner. Its products are simple to use, quick to implement, and provide robust enterprise technology.

@DevOpsSummit Stories
DXWorldEXPO LLC announced today that Nutanix has been named "Platinum Sponsor" of CloudEXPO | DevOpsSUMMIT | DXWorldEXPO New York, which will take place November 12-13, 2018 in New York City. Nutanix makes infrastructure invisible, elevating IT to focus on the applications and services that power their business. The Nutanix Enterprise Cloud Platform blends web-scale engineering and consumer-grade design to natively converge server, storage, virtualization and networking into a resilient, software-defined solution with rich machine intelligence.
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. “Fly two mistakes high” is an old adage in the radio control airplane hobby. It means, fly high enough so that if you make a mistake, you can continue flying with room to still make mistakes. In his session at 18th Cloud Expo, Lee Atchison, Principal Cloud Architect and Advocate at New Relic, will discuss how this same philosophy can be applied to highly scaled applications, and can dramatically increase your resilience to failure.
"DevOps is set to be one of the most profound disruptions to hit IT in decades," said Andi Mann. "It is a natural extension of cloud computing, and I have seen both firsthand and in independent research the fantastic results DevOps delivers. So I am excited to help the great team at @DevOpsSUMMIT and CloudEXPO tell the world how they can leverage this emerging disruptive trend."
Digital transformation is about embracing digital technologies into a company's culture to better connect with its customers, automate processes, create better tools, enter new markets, etc. Such a transformation requires continuous orchestration across teams and an environment based on open collaboration and daily experiments. In his session at 21st Cloud Expo, Alex Casalboni, Technical (Cloud) Evangelist at Cloud Academy, explored and discussed the most urgent unsolved challenges to achieve full cloud literacy in the enterprise world.
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO Silicon Valley 2019 will cover all of these tools, with the most comprehensive program and with 222 rockstar speakers throughout our industry presenting 22 Keynotes and General Sessions, 250 Breakout Sessions along 10 Tracks, as well as our signature Power Panels. Our Expo Floor will bring together the leading global 200 companies throughout the world of Cloud Computing, DevOps, IoT, Smart Cities, FinTech, Digital Transformation, and all they entail. As your enterprise creates a vision and strategy that enables you to create your own unique, long-term success, learning about all the technologies involved is essential. Companies today not only form multi-cloud and hybrid cloud architectures, but create them with built-in cognitive capabilities.