{"id":1456,"date":"2020-06-12T13:31:53","date_gmt":"2020-06-12T11:31:53","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=1456"},"modified":"2021-03-18T16:17:50","modified_gmt":"2021-03-18T15:17:50","slug":"serverless-architectures-our-easy-way-to-cost-optimization","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/serverless-architectures-our-easy-way-to-cost-optimization\/","title":{"rendered":"Serverless architectures: our easy way to cost optimization."},"content":{"rendered":"
We are in the middle of the serverless age<\/strong>, in a moment where the advantages of this approach become more and more evident.<\/span><\/p>\n One of the advantages that contributed the most to the rise of the serverless paradigm is certainly the promise of significant economic advantages<\/strong>.\u00a0<\/span><\/p>\n But are you really saving money? And: are you taking full advantage of the serverless paradigm?<\/span><\/p>\n Serverless is a native cloud architecture that enables you to shift more and more of your operational responsibilities to the cloud provider, in this case, AWS, increasing your agility<\/strong> and innovation<\/strong>. Serverless allows you to build and run applications and services without caring about servers<\/strong> and thus eliminating infrastructures management tasks such as servers or cluster provisioning, patching, operating system maintenance, and capacity provisioning. Serverless helps you run and scale your application while high availability<\/strong> is provided transparently by the services you use as building blocks.<\/span><\/p>\n While Designing the architecture of a serverless application, you need to think about different topics, including storage<\/strong>, database<\/strong>, computing<\/strong>, messaging<\/strong>, and many more.<\/span><\/p>\n AWS<\/strong> offers plenty of services you can use to make a valid serverless application. As you need to pick the right tool for each scope, the knowledge of serverless services is vital to make wise choices.<\/span><\/p>\n When thinking about serverless the first AWS service that comes to mind is for sure AWS Lambda, indeed the computing<\/strong> part of a serverless application is probably the most iconic and important one. <\/span>However, a serverless architecture is not composed only by lambdas, but also by different AWS managed services<\/strong> which in turn must be serverless.<\/span><\/p>\n Here is a brief and not exhaustive list of serverless and fully managed services for each tier of an application.<\/span><\/p>\n Of course, we have, <\/span>AWS Lambda<\/span><\/a> and <\/span>Lambda@Edge<\/span><\/a>, which are usually associated with serverless and attract the majority of frameworks and thirty parties solutions, but also<\/span><\/p>\n AWS Fargate<\/span><\/a>, that is a purpose-built serverless compute engine for containers.<\/span><\/p>\n Amazon Simple Storage Service<\/span><\/a> (Amazon S3) provides a secure, durable, highly-scalable object storage.<\/span><\/p>\n Amazon DynamoDB<\/span><\/a> is a fast and flexible NoSQL database service for all the applications that need consistent, single-digit millisecond latency at any scale.<\/span><\/p>\n Amazon Aurora Serverless<\/span><\/a> is an on-demand, auto-scaling configuration for <\/span>Amazon Aurora<\/span><\/a>. The database will automatically start-up, shut-down, and scale capacity up or down based on your application’s needs.<\/span><\/p>\n Amazon API Gateway<\/span><\/a> is a fully managed service and offers a comprehensive platform for API management with support for authorization, access control, monitoring, and API version management.<\/span><\/p>\n Amazon SNS<\/span><\/a> is a fully managed pub\/sub messaging service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.<\/span><\/p>\n Amazon SQS<\/span><\/a> is a fully managed message queuing service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.<\/span><\/p>\n AWS AppSync<\/span><\/a> simplifies application development by letting you create a flexible GraphQL API to securely access, manipulate, and combine data from one or more sources.\u00a0<\/span><\/p>\n AWS Step Functions<\/span><\/a> makes it easy to coordinate the components of distributed applications and microservices using visual workflows. Step Functions is a reliable way to coordinate components and step through the functions of your application.<\/span><\/p>\nWhat is serverless?<\/span><\/h2>\n
Not only Lambda<\/span><\/h2>\n
Compute<\/span><\/h2>\n
Storage<\/span><\/h2>\n
Database<\/span><\/h2>\n
API Proxy<\/span><\/h2>\n
Application integration<\/span><\/h2>\n
Orchestration<\/span><\/h2>\n
Analytics<\/span><\/h2>\n