A microservice is a service that can be deployed independently, often in support of just a single step in a business process or the entirety of one simple business process.
Microservices have been around for a lot longer than serverless architecture. Although microservices are not unique to serverless architecture, they are a critical building block of it and they have very specific characteristics. Microservices need to be very small, lightweight single-purpose services. Let’s quickly look at how microservices fit into the overall serverless architecture.
Microservices can be deployed as cloud functions, also known as function-as-a-service, which are stateless atomic functions that scale. A cloud function is a single function implementing a piece of business logic, and that function is invoked “on-demand” in the cloud by the client application or some event. A cloud function is not necessarily required to meet the definition of a microservice by the cloud service provider, but it is generally recommended that, within a properly architected serverless application, cloud functions are built as microservices.
Cloud functions are often tied into other cloud services that implement some kind of backend application need. Some types of cloud services include cloud data store, user management and integration with external data sources.
Cloud functions are typically triggered by events. For example, a cloud function can be triggered via an HTTP request (i.e. the application specifically calls the function) or via an event, such as triggering a function when data is being inserted into a data store or at specific intervals as a scheduled task.
The benefit of using microservices in a serverless architecture is that their single purpose and limited scope make them easier to deploy, maintain and reuse. The benefit of a serverless architecture to microservices is that it removes any need to manage and scale the infrastructure, allowing the developer to focus on the code rather than the specifics of where it will be deployed or how it will be accessed.
The rationale for microservices comes down to agility. As a company deploys applications that must support multi-channel experiences, the need to implement an architecture that can provide support across these channels without requiring rewrites or duplication of effort becomes much more acute. The finite nature of microservices enables their easy reuse across a variety of applications with support across channels, and a serverless architecture means that they can be accessed easily from any application—whether it be mobile, chat, web, etc.
Supporting multichannel experiences also tends to mean that aspects of the application code need to be updated and deployed more frequently. A typical monolithic app would require months of planning, development, testing and deployment. But companies supporting multi-channel experiences generally require continuous deployments—sometimes on a daily basis.
Monolithic software wasn’t designed to do be updated that frequently. Microservices supported by a serverless architecture allow for this type of flexibility. Each microservice is typically designed to be developed, tested and deployed independently, often in support of just a single step in a business process.
With a microservice, changes in a process or bug fixes for a particular service, can be deployed independent of the overall services or infrastructure.
Progress helps developers focus on innovation, not infrastructure. Progress Kinvey is a high productivity platform that includes a fully-managed serverless backend offering enterprise integrations, legacy system mobilization, as well as complete app backends for developers creating new mobile apps and experiences. As a result, companies can focus on the specific code that matters to users.
Progress helps mobilize enterprise data with low-code and no-code integrations that deliver secure, sub-second data delivery from any enterprise or SaaS system. The built-in security and compliance that Progress Kinvey includes means that end-to-end security, compliance, and end-user support insights are built into the platform. With the inclusion of more than 20 cloud-native services and hundreds of solutions and app templates, developers have less code to write, test and maintain. Kinvey’s built-in operational intelligence handles end-user support, compliance reporting, and usage analytics. Together, this can drive a huge impact on enterprise-class app development.
To learn how Kinvey can help you take advantage of microservices to build better apps faster, sign up for a free forever developer version today.
Brian has been a developer for over 20 years. Currently he works on developer content at Progress. He is a frequent speaker and author, serving as co-editor of the Mobile Dev Weekly newsletter and book author for O’Reilly. You can follow Brian via @remotesynth on Twitter.
Subscribe to get all the news, info and tutorials you need to build better business apps and sites
Copyright © 2019 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.