What is Serverless?
Who uses Serverless?
Here are some stack decisions, common use cases and reviews by companies and developers who chose Serverless in their tech stack.
We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.
To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas
To build #Webapps we decided to use Angular 2 with RxJS
#Devops - GitHub , Travis CI , Terraform , Docker , Serverless
As the basis of our new infrastructure, we formerly used CoreOS (and transitioned towards Fedora CoreOS as CoreOS was reaching its EOL) as a reliable solution for our docker-server-instances. We plan to deploy all our servers as individual docker containers to make use of the extensive possibilties offered in terms of isolation, resource-managemant (cgroups) and scalability.
The additional abstraction through containers allows us to adhere very closely to the "Cattle not Pets" best practice. Serverless was also an option that we considered, but as running Minecraft-Server requires quite unique resource profiles, that are usually not covered at most cloud providers, we settled with CoreOS for the time being and will reevaluate our options in the years to come.