Microservices / Service-oriented Architechture / Serverless function


#microservices #soa #Service-orientedArchitechture #ServerlessComputing

What is it?

  • Services that run snippets of back-end code for apps and websites without any overhead of managing servers. http://www.techrepublic.com/article/serverless-computing-the-smart-persons-guide/
  • that’s where you have to begin with serverless computing: Of course there will always be servers. Serverless computing merely adds another layer of abstraction atop cloud infrastructure, so developers no longer need to worry about servers, including virtual ones in the cloud. http://www.infoworld.com/article/3093508/cloud-computing/what-serverless-computing-really-means.html
  • Microservices are a more concrete and modern interpretation of service-oriented architectures (SOA) used to build distributed software systems. Microservices architectural style is a first realisation of SOA that has happened after the introduction of DevOps and this is becoming the standard for building continuously deployed systems. In a microservices architecture, services should be small and the protocols should be lightweight. The benefit of distributing different responsibilities of the system into different smaller services is that it enhances the cohesion and decreases the coupling. This makes it much easier to change and add functions and qualities to the system anytime. It also allows the architecture of an individual service to emerge through continuous refactoring, hence reduces the need for a big up-front design and allows for releasing the software early and continuously. https://en.wikipedia.org/wiki/Microservices

Why it matters?

It is way much cheaper than Cloud!

Today, there are several trends that are forcing application architectures to evolve. Users expect a rich, interactive and dynamic user experience on a wide variety of clients including mobile devices. Applications must be highly scalable, highly available and run on cloud environments. Organizations often want to frequently roll out updates, even multiple times a day. Consequently, it’s no longer adequate to develop simple, monolithic web applications that serve up HTML to desktop browsers.
This site describes a new, alternative architecture: microservices. Applications with a microservice architecture consist of a set of narrowly focused, independently deployable services. Read on to find out more about this approach and its associated trade-offs. http://microservices.io/

Pattern: Serverless deployment
You have applied the Microservices pattern and architected your system as a set of services. Each service is deployed as a set of service instances for throughput and availability. http://microservices.io/patterns/deployment/serverless-deployment.html

Who cares about microservices / serverless computing?

Microsoft! Amazon! Google! IBM!

Amazon has AWS Lambda:

AWS Cloud – Run code without thinking about servers. – Pay for only the compute time you consume.
AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume – there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service – all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app. https://aws.amazon.com/lambda/

Google has Google Could Function

CLOUD FUNCTIONS ALPHA – A serverless platform for building event-based microservices. Lightweight Event-based Microservices
Google Cloud Functions is a lightweight, event-based, asynchronous compute solution that allows you to create small, single-purpose functions that respond to cloud events without the need to manage a server or a runtime environment. Events from Google Cloud Storage and Google Cloud Pub/Sub can trigger Cloud Functions asynchronously, or you can use HTTP invocation for synchronous execution … and so on … https://cloud.google.com/functions/

Microsoft has Microsoft Azure Service Functions

Process events with serverless code
. Azure Functions is a serverless event driven experience that extends the existing Azure App Service platform. These nano-services can scale based on demand and you pay only for the resources you consume. … Pay only for what you use
Pay only for the time your code is running. You’ll be charged based on the number of resources Azure Functions needs, only for as long as it takes your code to execute. https://azure.microsoft.com/en-us/services/functions/

What’s next?

see this: http://www.techrepublic.com/videos/video-serverless-computing-in-less-than-two-minutes/
see who’s using microservices: http://microservices.io/articles/whoisusingmicroservices.html

see more resources:
https://developer.ibm.com/openwhisk/what-is-serverless-computing/
https://developer.ibm.com/openwhisk/
https://azure.microsoft.com/en-gb/documentation/articles/functions-overview/
https://cloud.google.com/functions/docs/
http://microservices.io/presentations/index.html
http://chrisrichardson.net/learnmicroservices.html
http://microservices.io/articles/deployment.html

Hope to see more information sharing in this particular areas.

Leave a comment