Sunday, April 24, 2016

AWS Lambda Reading List

I'm hearing a lot about AWS Lambda these days and "serverless" architectures. By "serverless", I mean the concept, not the product (here). Basically, AWS Lambda is computing power without management. You provide your code, AWS Lambda runs it. You have minimal setup and no responsibility for maintaining servers on which to run that code.

As with all new technology fads, there's a lot of buzz and a flurry of unorganized content. My intent with this entry is to keep a current list of relevant Lambda articles and categorize them. Hopefully, this will streamline your research if you're looking at using AWS Lambda at your organization.

I intend to update this list as new material comes to my attention. If you see articles that are worthy of mention, please add a comment providing a link. I'll take a look.

Getting Started
These articles provide overview material describing what AWS Lambda is.

  • "It’s Amazon’s way of delivering a microservices framework far ahead of its competitors."
A Walk in the Cloud with AWS Lambda (Slideshare)
  • Provides detailed overview and possible use cases.


What are the Business Benefits?
These articles highlight business benefits provided by AWS Lambda

  • Somewhat biased as it's an Amazon executive describing how they use Lambda internally.
  • “No more glue code. No more servers. Just run your code.”

Flies in the Ointment
These articles highlight limitations and issues with AWS Lambda.


  • "Lambda is a building block, not a tool"
  • "Lambda is not well documented"
  • "Lambda is terrible at error handling"
  • Pay attention to the discussion below. There's some resistance to the error handling points.
Vendor Lock-in
Many fear becoming relient on AWS Lambda as AWS can raise prices with just a simple edit.  The following products propose solutions to mitigate that risk.


Case Studies
This section details use of AWS Lambda in practice.

  • Embedded case study for acloud.guru, a AWS education company.
  • Also has material on the strategic reasons to consider AWS Lambda
AWS Case Study: VidRoll (VidRoll Blog)


Implementation Issues
This section provides technical assistance for specific issues I''ve had implementing AWS Lambdas.

Running Python with Compiled Code on AWS Lambda (PerryGeo Blog)

  • Getting Python Lambdas up and running is a completely aggravating experience.  This blog helped me quite a lot.
  • In addition to Mathew's wise guidance, make sure you install/compile any binaries on an instance using the officially supported Lambda AMIs (listed here).  Note that you will likely need to install a compiler (e.g. yum install gcc)


Saturday, April 23, 2016

"Microservices for Java Architects" has been released!

Microservices for Java Architects is a companion for the Java EE Architect’s Handbook that details Microservices Architectures. This eBook will define microservices and provide an overview of costs and benefits. As with the handbook, I’ll go on to address architecture, design, and implementation concerns specific to microservices architecture.

Details

Given the published success stories from Netflix, Amazon, and many organizations; companies are increasingly adopting microservices architecture. For organizations that are heavily invested in Java technologies, writing microservices using Java is a natural progression. This book is your guide to designing and implementing microservices in Java.

As Java architects, it’s important to understand what microservices are, when to use them, and the value they provide. We need to understand the design and implementation considerations for using microservices so we can guide a development team through microservice development efforts. We also need to understand the various pitfalls of using microservices and the common implementation mistakes that can erode the benefits of adopting microservices.

While this book is a companion to the Java EE Architect’s Handbook, it is also separate and self-contained. As with the handbook, I'll guide architects through the entire development process, including how to effectively design service contracts. I cover in detail the coding patterns that are needed to make microservice libraries effective showing you examples along the way. I also provide guidance on how to refactor large, complex web applications into smaller and more manageable microservices, and how to make microservices easier to maintain and support.

What you’ll learn

  • What microservices architecture is and the advantages and disadvantages of using it.
  • How to refactor large applications into a microservice library.
  • How to design microservice contracts effectively.
  • Design patterns that make microservices efficient and maintainable.
  • Best practices and common mistakes for implementing microservices.
  • Guidance on how to manage microservice development teams.

Who this book is for

  • Java EE application and enterprise architects interested in using microservices to provide business value.
  • Java EE technical leads implementing microservices.
  • Java EE senior Java developers working on microservice teams.