Modern applications are service-based applications. Service and microservice based application development is the new norm, and application modernization often involves moving a monolith application to a service-based application.
The following is a list of curated articles, videos, and other content by Lee related to service and microservice based architectures in modern digital applications.
In the world of applications, services are standalone components that, when connected and working together, create an application that performs some business purpose. But services come in a wide variety of sizes, from tiny, super-specialized microservices up to services big and complete enough to form their own monolithic applications.
It’s an increasingly common scenario: As a company grows, it finds that it needs to move away from the monolithic software architecture that powered its initial success. The alternative? A microservices approach that provides more speed and flexibility.
That’s the story told by both our guests on the latest episode of The New Stack @ Scale Podcast: Tung Nguyen, vice-president of engineering at Bleacher Report, and our own Lee Atchison, principal cloud architect & advocate at New Relic.
Listen to it on New Relic’s Blog.
Last year I wrote an article on what serverless computing is all about. In that article, I described that while serverless computing doesn’t remove servers, it moves the management of servers to the cloud computing provider, away from your development and IT organization. It removes complexity from application management and enables easier and more significant scaling by sharing server resources across a larger set of consumers.
But last year, when you said ‘serverless computing’, you were almost exclusively referring to Function-as-a-Service (FaaS) technologies such as AWS Lambda, Microsoft Azure Functions, and Google Cloud Functions. While there are other serverless technologies – such as serverless data stores and databases – these functional computing services were usually what you meant when you were referring to ‘serverless computing’.
Software Engineering Daily Podcast. Listen to Jeff Meyerson talk to Lee Atchison about Lee’s new book, “Architecting for Scale”, by O’Reilly Media.
It’s simple, really — services call other services and they take actions based on the responses from those services. Sometimes, that action is a success, sometimes it’s a failure. But whether it is a success or a failure depends on if the interaction meets certain requirements. In particular, the response must be predictable, understandable and reasonable for the given situation. This is important so that the service reading the response can make appropriate decisions and not propagate garbage results. When a service gets a response it does not understand, it can take actions based on the garbage response and those actions can have dangerous side effects to your service and your application.