There's a shift underway toward serverless cloud architectures. With the release of serverless compute technologies, such as AWS Lambda, developers are now building entirely serverless platforms at scale. In these new architectures, traditional back-end servers are replaced with cloud functions acting as discrete single-purpose services. By composing and combining these serverless cloud functions together in a loose orchestration, and adopting useful third-party services, you can build powerful yet easy to understand applications. Serverless architecture is about building rich, scalable, high-performing, and cost-effective systems without having to worry about traditional compute infrastructure, having more time to focus on code, and moving quickly.
Serverless Architectures on AWS teaches you how to build, secure and manage serverless architectures that can power the most demanding web and mobile apps. You'll get going quickly with this book's ready-made and real-world examples, code snippets, diagrams, and descriptions of architectures that can be readily applied. This book describes a traditional application and its back end concerns and then shows how to solve these same problems with a serverless approach. You'll begin with a high-level overview of what serverless is all about, start creating your own media transcoding system, and learn more about AWS. Next, you'll go in depth and learn about Lambda, API Gateway and other important serverless technologies. This section will teach you how to compose Lambda functions and discuss important considerations when it comes to building serverless systems. The third part of the book focuses on more advanced topics as your architecture grows. By the end, you'll be able to reason about serverless systems and be able to compose your own systems by applying these ideas and examples.
This book takes you back to the days when authors used to write books to express and share the perfection, joy, achievement and excitement of doing something beautiful. You learn both the semantics and the syntax. You learn to see things and develop the reasoning behind what is right, and why it is so. And you learn it by walking the path.
This book simply puts back the joy of reading a technical book.
Leaves out all of the hard parts around security, monitoring, long-term maintenance, zero-downtime refactoring, etc. all while building a trivial app. The use of some random non-AWS services for core functionality like Auth0 instead of Cognito is particularly grating and disappointing.
As cloud providers like AWS are moving forward extremely fast it is also extremely difficult to find any up to date information/reading material other than the online docs. This book clearly shows that it is possible to come up with a decent work on such a fast moving topic. I mainly used the book as a refresher for earlier knowledge and to broaden my knowledge on the topic and the book served both purposes very well. I must however admit that I choose not to go through the entire use-case of the book, I understand why the other did it, but if you focus is mainly on certain topics then more standalone example would be more worthwhile.
I think there should be some more concrete examples where you could gain some practices
I also don’t agree on “misusing DynamoDB” for a cron like service. This only adds complexity especially in the long run. The idea with serverless in my opinion is to simplify usage. So using services for something they are not designed for is the wrong way to go
The comparison with terraform to other tools is flawed. Terraform have had modules for a long time which can be used just as you can use constructs with cdk. Also the praised rollback function cloudformation has is not always working (especially if you ci/cd role doesn’t have the right permissions). I have multiple times seen cloudformation stacks come in a state where the only solution is to delete the stack which I think is unfit for production
Yes terraform doesn’t rollback (it is declarative) so the rollback is to rollback your code and apply again. So I think the comparison is unfair
Also I wouldn’t myself deploy infrastructure and application with the same pipeline/tool as the lifecycles of infrastructure and application is often not the same(so I would not deploy update to lambda code with the infrastructure pipeline)
I am working with serverless on AWS since a year ago and I have two certifications (architect associate and developer associate).
I learned a few things from this book, particularly about Auth0 as an alternative to Cognito, Firebase and some good practices regarding architecture at a high level. The rest is in line with what I've already been doing, I would have probably learned it faster if I had read this book before, so I recommended it to serverless beginners and also to more advanced developers.
There is some useful information in the book, such as real-world serverless use cases overview (though a bit artifical and not in scale enough) and some introductory concepts. Apart from that, the book is slightly too optimistic about serverless, missing important FaaS challenges. I would like to see more technical FaaS definition.
One of the best technical books that I've read recently. With clear explanation and well laid out hands-on example, the author has managed to present the topic and the AWS ecosystem in such a way to suit all types of readers.
Really good book, but I would only advise it to beginners. The architecture part is a bit intermediate and quite interesting, that's true, but overall its a hands on practice on how to build an fairly simple architecture
This entire review has been hidden because of spoilers.
Great explanations and examples. I'd like if it had C# examples as well. Some things are a little bit changed since the book was written, but it's still very useful.
One star less because it should have been triple the length it has right now. I’m hunting for content on this topic but this book seems to be the only one out there.
Este es uno de los libros técnicos más interesantes que he leído en los últimos años, tal vez porque presenta una perspectiva que nunca había analizado y con la que no estoy familiarizado. Me gustó mucho además la forma en la que tratan los problemas, en la que se enfocan en el fondo de los asuntos y no solamente en las herramientas, además de que analizan los problemas que presentan desde diferentes puntos de vista y desde diferentes soluciones, dejando claro que siempre hay intercambios de valor entre los diferentes diseños.
Lo consideraría más un libro de arquitectura en general, enfocada en arquitecturas de microservicios. El punto acerca de AWS es que describe los servicios que cumplen con los requerimientos funcionales y no funcionales y, mejor aún, te ayuda a entender más profundamente por qué un servicio es mejor que otro para diferentes casos de uso.
También tiene una guía de optimización de Lambda y sobre prácticas emergentes en este tipo de arquitecturas, que considero muy útiles para empezar.
Finalmente, tiene un análisis de los diferentes frameworks para poder realizar de mejor manera estas implementaciones, que considero muy muy útil para evaluar cómo podemos empezar un proyecto.
Me quedo con varias cosas más allá de las herramientas acerca del libro:
- No es necesario seguir la ideas tradicionales sobre arquitectura de software siempre, mucho menos ahora que tenemos servicios completamente administrados (serverless) - Con este tipo de servicios podemos construir productos de manera más eficiente - Tenemos que buscar trabajar el mayor tiempo posible en las cosas que diferencian nuestro producto y contratar o comprar las no diferenciadas - Las arquitecturas de microservicios requieren maneras de pensar completamente nuevas - Para evaluar una arquitectura, tenemos que definir los requerimientos funcionales y no funcionales por adelantado para no sesgarnos por nuestra solución favorita al momento de evaluar - Para llegar a una solución efectiva conviene evaluar diferentes arquitecturas contra nuestra matriz de requerimientos previamente priorizada
Lo recomiendo mucho a todos los arquitectos y desarrolladores de software que quieren avanzar en su carrera.
Honestly very underwhelming. Mostly just a random stream of words. The definition of serverless is shifting throughout the book, the editing is poor, the examples mainly about architecture/microservices and IaC, and not really providing anything on the specific serverless aspects of it.
The only interesting part was the one on comparing different products for different kinds of performance requirements, and seeing how this might impact the non-functional performance of a product you are building. Other than that I barely remember what the book was even about...