By Fazal Mohammed, Director of Cloud-Native Software Solutions
The software design paradigm of breaking apart monolithic applications into small, modular pieces has mobilized the government sector much like it did the commercial world. Microservices architectures are enabling government agencies to incrementally and continuously develop and deploy applications, resulting in agility and efficiency.
Application modernization services and solutions like SAIC’s transform legacy apps to cloud-enabled microservices apps. Moreover, they set up agencies for agile, DevSecOps, and cloud-native development.
The government has embraced container technologies such as Kubernetes to package and deploy microservices apps on cloud platforms as loosely connected collections of autonomous functions, but serverless microservices apps are starting to catch on. Serverless computing is seen as the next, natural progression for modern app design, taking the speed, scale, and cost benefits of microservices architectures to even greater levels.
Just like containerized microservices do, serverless architectures use managed services and automation tools from cloud platforms such as AWS and Microsoft Azure for app deployment. But, where containerized app deployment requires custom tuning and management of resource requirements and scaling, serverless design completely hands over packaging, configuration, and infrastructure capacity handling to cloud service providers (CSPs).
Serverless computing services like AWS Lambda dynamically assign and provision the exact amount of compute and storage resources needed to run an app based on demand. If five people are using the app, resources are precisely matched for those five users, and ditto 5,000 or 1 million users. When no one uses the app, it stops running and scales to zero.
In IT industry terms, serverless architectures abstract away the infrastructure layer from software development and operations. This fits nicely with microservices, incremental delivery approaches, and app acceleration efforts. No longer burdened with figuring out infrastructure provisioning and scaling requirements, app developers can focus purely on the business logic and microservice code.
The process of deploying code for an individual app function into production is simplified, automatically handled by the CSP, and immediate. Agencies can rapidly and continuously build and improve apps one microservice function at a time, in a LEGO-like manner, and expect to see a few services up and running within several weeks. Serverless architectures also mean that a government agency divests its cloud infrastructure back to the CSP and consumes resources only on demand triggered by app users. In other architectures, agencies are paying for infrastructure even when no one is using the apps.
MORE FROM FAZAL MOHAMMED: Cloud-Native Development Brings App Agility
The dynamic and elastic nature of serverless computing is the primary distinction of why it has the highest utilization and greatest cost efficiencies. The other, obvious cost-saving aspect is agencies no longer have to buy, administer, and maintain their own servers and infrastructure resources. These factors make serverless especially compelling to agencies with small or limited IT budgets.
Is serverless technology the silver bullet solution for government agencies? No. Department of Defense agencies will hesitate to put their code and sensitive workloads in global-scale serverless environments on public cloud platforms and not be able to know or control how they’re hosted and handled.
Enterprises with science, analytics, and high performance computing apps that churn through databases could experience resource limits and latency in serverless environments and are better suited to traditional cloud architectures, private clouds, and data centers.
But for apps with relatively simple functions that experience intermittent workloads and demand bursts, serverless architectures can be a major step forward. For example, SAIC helped a federal agency re-architect and deploy a letter-generation app to run on AWS Lambda, which scaled resources for it elastically. The app consumed no resources when it sat idle, resulting in a tenfold reduction of operating costs for the customer.
This is why descriptions like event-driven computing, pay-as-you-go computing, and function-as-a-service have been applied to serverless. This type of software architecture might not fit every government application, but it should be a significant tool in agencies’ IT modernization toolboxes.
About the author: Fazal Mohammed has more than two decades of software and application development experience. His areas of expertise include cloud native application development, agile and SAFe, DevSecOps, and mobile. He has professional certifications with respect to AWS, Azure, Splunk, DevOps, PMI Agile, and SAFe. Fazal is an SAIC Fellow, helping the company steer the technology landscape, and has been involved in numerous company R&D projects. He earned his bachelor of science in electrical engineering from Madras University and master's degree in information systems from Virginia Tech. Connect with Fazal on LinkedIn.