Post by account_disabled on Sept 14, 2023 10:10:56 GMT
However, dividing an application into multiple pieces can increase complexity. “Every time you distill from object-to-object collaboration to system-to-system collaboration, you’re opening yourself up to a headache with a lot of responsibilities and failure states,” Hanson points out.
He went on to say that while Phone Number List traditional monolithic applications have become “objects of ridicule” in today’s technology culture, we need a culture that “embraces monoliths with pride,” adding.
Monoliths are about reducing unnecessary conceptual models as much as possible and eliminating useless abstractions.” It is an integrated system that eliminates as much as possible. “It is a strong symbol of opposition to the decentralization of the system, which prevents people from doing what needs to be done,” he added.
Battery Ventures, and AWS, had a different opinion. Cockroft claimed the Prime Video team used terminology that was factually inaccurate. We're not going back to a monolith, we're just refactoring the initial implementation, which is best practice.
“The Prime Video team took a serverless first approach,” Cockroft said. In this approach, your first attempt at building something is a combination of step functions and lambda calls. When figuring out how to build something, creating a prototype over a few days or weeks is a good approach. They then tried to scale to handle the high traffic and found that some of the step function's state transitions were too frequent and calls between the AWS Lambda function and S3 were excessive. They were able to reuse much of the code and combine it into one long-running microservice that scales horizontally through ECS and is called through lambda functions. The problem is that this refactoring was described as a transition from microservices to monolith. “This is clearly a microservices refactoring step, and one that I recommend.”
Cockroft said microservices have been somewhat overhyped, and there has been backlash as many companies realize that “the complexity of Kubernetes comes with a cost and is unnecessary unless you run it at scale with large teams in the first place.” acknowledged the point.
He continued, “I do not support the method of using only serverless. If you need sustained high traffic, low latency, and high efficiency, the recommended approach is to reimplement your rapid prototype as an autoscaling container that runs continuously as part of a larger serverless event-driven architecture. “That’s exactly what the Prime Video team did.”
6 Lessons IT Professionals Should Remember
Here are some important lessons corporate IT leaders can learn from the Amazon Prime Video story:
1. The key is not technology
“Start with the goal, not the technology,” said Pavel Dispot, senior product marketing manager at Akamai. “Start with what you want to achieve and build the system based on the requirements presented there.”
Funnel-Labs.io CEO Vijay Nayar also said, “Asking a microservice or monolithic system as the right or wrong answer before even hearing what the problem is is like shooting first and then asking the question. “It leads to reckless and bad decision-making,” he pointed out.
2. Analyze the trade-offs
Microservices provide flexibility and enable independent development, deployment, and scalability of individual services. However, it also comes with complexities such as the need for service discovery, communication between services, and distributed system management. If you choose serverless, you gain the advantage of quick deployment because the service provider operates the underlying infrastructure on which the application is built according to demand.
3. Get the first design right
The underlying infrastructure on which the application runs must be in place from the beginning. Otherwise, you will face scaling issues as you move from prototype to production.
“If you design your architecture poorly, it won’t work and will be expensive and complicated,” says David Gatti, AWS expert and CTO of travel app developer Enables. It is not a good idea to work by passing data from Lambda to Lambda. “We need to do all the processing in one Lambda,” he said, referring to the Amazon Prime Video team. “We made the wrong decision based on the workload we needed, but now we’re doing it right. “This case doesn’t mean that all serverless is bad.”
4. Simplify language and dependencies
“One of the bad side effects of the microservice madness is the tendency to embrace countless programming languages, frameworks, and ecosystems,” Hanson said, recommending that there should be no more than two languages. One of the two languages is a productivity-focused language that is used most of the time, and the other is a high-performance language that is used to handle problem domains.
Nayar said, “If you split a service into 100 small services, but you don’t know where the problem originates and deployment becomes extremely difficult due to the web-like dependencies between services, you can split the service without worrying about clarifying the purpose and logic of each service. “It’s because it was divided,” he pointed out.
5. Target specific use cases
According to Cockroft, intermittent, small enterprise workloads are suitable for a serverless approach using Amazon Step Functions and Lambda.
“Effective microservices often target narrow, isolated, typically performance-critical parts of the system,” Hanson added.
Dispot noted that although the serverless approach offers flexibility, communication requirements between microservices and with backend databases can cause delays.
6. Consider the cost
Serverless computing providers charge by the time the code runs, so applications with long-running processes may not be cost-effective in a serverless environment.
The lesson that you can be hit by storage costs if you are not careful can also be learned from the example of the Amazon Prime team. AWS storage costs are tier-based, with Tier 1 high-speed access being more expensive than other, slower tiers. Additionally, you are billed for every data request and data transfer, so applications that request too many requests can quickly add up.
He went on to say that while Phone Number List traditional monolithic applications have become “objects of ridicule” in today’s technology culture, we need a culture that “embraces monoliths with pride,” adding.
Monoliths are about reducing unnecessary conceptual models as much as possible and eliminating useless abstractions.” It is an integrated system that eliminates as much as possible. “It is a strong symbol of opposition to the decentralization of the system, which prevents people from doing what needs to be done,” he added.
Battery Ventures, and AWS, had a different opinion. Cockroft claimed the Prime Video team used terminology that was factually inaccurate. We're not going back to a monolith, we're just refactoring the initial implementation, which is best practice.
“The Prime Video team took a serverless first approach,” Cockroft said. In this approach, your first attempt at building something is a combination of step functions and lambda calls. When figuring out how to build something, creating a prototype over a few days or weeks is a good approach. They then tried to scale to handle the high traffic and found that some of the step function's state transitions were too frequent and calls between the AWS Lambda function and S3 were excessive. They were able to reuse much of the code and combine it into one long-running microservice that scales horizontally through ECS and is called through lambda functions. The problem is that this refactoring was described as a transition from microservices to monolith. “This is clearly a microservices refactoring step, and one that I recommend.”
Cockroft said microservices have been somewhat overhyped, and there has been backlash as many companies realize that “the complexity of Kubernetes comes with a cost and is unnecessary unless you run it at scale with large teams in the first place.” acknowledged the point.
He continued, “I do not support the method of using only serverless. If you need sustained high traffic, low latency, and high efficiency, the recommended approach is to reimplement your rapid prototype as an autoscaling container that runs continuously as part of a larger serverless event-driven architecture. “That’s exactly what the Prime Video team did.”
6 Lessons IT Professionals Should Remember
Here are some important lessons corporate IT leaders can learn from the Amazon Prime Video story:
1. The key is not technology
“Start with the goal, not the technology,” said Pavel Dispot, senior product marketing manager at Akamai. “Start with what you want to achieve and build the system based on the requirements presented there.”
Funnel-Labs.io CEO Vijay Nayar also said, “Asking a microservice or monolithic system as the right or wrong answer before even hearing what the problem is is like shooting first and then asking the question. “It leads to reckless and bad decision-making,” he pointed out.
2. Analyze the trade-offs
Microservices provide flexibility and enable independent development, deployment, and scalability of individual services. However, it also comes with complexities such as the need for service discovery, communication between services, and distributed system management. If you choose serverless, you gain the advantage of quick deployment because the service provider operates the underlying infrastructure on which the application is built according to demand.
3. Get the first design right
The underlying infrastructure on which the application runs must be in place from the beginning. Otherwise, you will face scaling issues as you move from prototype to production.
“If you design your architecture poorly, it won’t work and will be expensive and complicated,” says David Gatti, AWS expert and CTO of travel app developer Enables. It is not a good idea to work by passing data from Lambda to Lambda. “We need to do all the processing in one Lambda,” he said, referring to the Amazon Prime Video team. “We made the wrong decision based on the workload we needed, but now we’re doing it right. “This case doesn’t mean that all serverless is bad.”
4. Simplify language and dependencies
“One of the bad side effects of the microservice madness is the tendency to embrace countless programming languages, frameworks, and ecosystems,” Hanson said, recommending that there should be no more than two languages. One of the two languages is a productivity-focused language that is used most of the time, and the other is a high-performance language that is used to handle problem domains.
Nayar said, “If you split a service into 100 small services, but you don’t know where the problem originates and deployment becomes extremely difficult due to the web-like dependencies between services, you can split the service without worrying about clarifying the purpose and logic of each service. “It’s because it was divided,” he pointed out.
5. Target specific use cases
According to Cockroft, intermittent, small enterprise workloads are suitable for a serverless approach using Amazon Step Functions and Lambda.
“Effective microservices often target narrow, isolated, typically performance-critical parts of the system,” Hanson added.
Dispot noted that although the serverless approach offers flexibility, communication requirements between microservices and with backend databases can cause delays.
6. Consider the cost
Serverless computing providers charge by the time the code runs, so applications with long-running processes may not be cost-effective in a serverless environment.
The lesson that you can be hit by storage costs if you are not careful can also be learned from the example of the Amazon Prime team. AWS storage costs are tier-based, with Tier 1 high-speed access being more expensive than other, slower tiers. Additionally, you are billed for every data request and data transfer, so applications that request too many requests can quickly add up.