Software design patterns are reusable bits of code or collections of algorithms that are used often when designing and building software. For cloud and cloud native architectures we have several design patterns as well. These are just architectural patterns that are reused when building an environment for an application to live in or be served from.
To illustrate this lets look at a popular design pattern for cloud native the Proxy design pattern.
Proxy Design Pattern
The proxy pattern provides a single url endpoint along with basic authentication and authorization across multiple end points. This pattern gives the Frontend or client developers a single URL and endpoint to manage for all data requests. It can also be extended to provide pass-through authentication via a token auth process like JWT that provides basic authentication to each microservice.
Essentially what this does, especially when use a gateway or proxy, is allows a number of services hosted inside a Kubernetes cluster or cloud native environment, to be accessed from one URL. Making life easier on the front end developer and requiring fewer URLs for your ops team to manage.
Another more recent patter that has emerged, that has less to do with microservices but is still small, is the microapp, or small app movement that focuses on one very specific business use case. These can sometimes be driven by one or two serverless functions that are very afforable to run (but do involve a server despite the name)
We have several more patterns that our included on the PDF document linked here. For the most part
if you are going to use Cloud Design or Cloud Native design pattern what really matters is scale and fit for your business or idea. In the end what you want is something that is well designed, will scale with you as you grow, and won't break the bank when you are just getting started.
Microservice Flex Patterns