Provisioning, managing and patching of servers is a time-consuming task that often required dedicated operations people. A non-trivial environment is hard to set up and operate effectively. Infrastructure is an important component of any IT system. The evolution of IT was from real servers to virtual machines to PasS (Platform as a service) and containers. Te goal of this evolution is decrease time for deployment an application in the new environment , decrease money for infrastructure and support and simplify the process. Over past few years, technologies such as a service (PaaS) and containers have appeared as potential solutions to the headache of inconsistence infrastructure environments, conflicts and server management overhead. PaaS is a form of cloud computing that provides a platform for users to run their software while hiding some of underlying infrastructure.
Over the past few years, technologies such as platform as a service (PaaS) and containers have appeared as potential solutions to the headache of inconsistent infrastructure environments, conflicts, and server management overheard. PaaS is a form of cloud computing that provides a platform for users to run their software while hiding some of the underlying infrastructure. To make effective use of PaaS, developers need to write software that targets the features and capabilities of the platform. Moving a legacy application designed to run on a standalone server to a PaaS service often leads to additional development effort because of the ephemeral nature of most PaaS implementations. Still, given a choice, many developers would understandably choose to use PaaS rather than more traditional, more manual solutions thanks to reduced maintenance and platform support requirements.
Containerization is a way of isolating an application with its own environment. It’s a lightweight alternative to full-blown virtualization. Containers are isolated and lightweight but they need to be deployed to a server—whether in a public or private cloud or onsite. They’re an excellent solution when dependencies are in play, but they have their own housekeeping challenges and complexities. They’re not as easy as being able to run code directly in the cloud.
Finally, we make our way to Lambda, which is a compute service from Amazon Web Services. Lambda can execute code in a massively parallelized way in response to events. Lambda takes your code and runs it without any need to provision servers, install software, deploy containers, or worry about low-level detail. AWS takes care of provisioning and management of their Elastic Compute Cloud (EC2) servers that run the actual code and provides a high-availability compute infrastructure—including capacity provisioning and automated scaling—that the developer doesn’t need to think about. The words serverless architectures refer to these new kinds of software architectures that don’t rely on direct access to a server to work. By taking Lambda and making use of various powerful single-purpose APIs and web services, developers can build loosely coupled, scalable, and efficient architectures quickly. Moving away from servers and infrastructure concerns, as well as allowing the developer to primarily focus on code, is the ultimate goal behind serverless.
AWS Serverless services
Lambda is a function as a service – serverless service where you can out your code and run it by demand.
Server’s architecture allows developer to focus on software design and code rather then infrastructure. Importance with server less, you have a potential to reduce some of complexity of the system by minimizing the number of layers and amount of code you need.
- No more servers
- Many users
- Low cost
- Less code
- Scalable and flexible
Serverless technologies and architecture can be used to build entire systems, create isolated components, or implement specific, granular tasks. The scope for use is large, and one of its advantages is that it may be used for large applications and small tasks alike.
Principles of server less architecture
- Use a computer service to execute code on demand.
- Write single-purpose stateless functions (micro services), using the most suitable code language.
- Design push-based, event-driven pipelines.
- Create thicker, more powerful front ends,
- Embrace third-party services.
Serverless architecture in the multi-tier application.
The multi-tier architecture provides good guidelines to follow to ensure decoupled and scalable application components that can be separately managed and maintained (often by distinct teams). Multi-tired apps python use a service-oriented approach (SOA) to using web services. Amazon API Gateway (a service for creating and managing APIs) and AWS Lambda (a service for running arbitrary code functions) can be used together to simplify the creation of robust multi-tier applications.
In a typical web application the server accepts HTTP requests from the front and and processes requests. Data may travel through numerous applications layers before being saved to a database. The backend, finally, generates a response (JSON format or XML or something else). Amazon API Gateway’s integration with AWS Lambda enables user defined code functions to be triggered directly via a user-defined request. Regardless of the request volume required, both the API Gateway and Lambda will scale automatically to support exactly the your application needs.In this case you can create a tier for your application that allows you to write the code that matters to your application and not focus on over aspects of implementing a multi-tiered architecture like architecture solutions for high availability, writing client SDK/API, server OS management, scaling, deployment, implementing a client authorization mechanism.