LAS VEGAS -- Amazon Web Services is doing what it takes to make sure it's a great place to run applications based on Docker containers. But when it comes to the future of microservices and application development, it's all about Lambda.
At its fourth annual re:Invent conference here this week, Amazon Web Services (AWS) made several enhancements to its EC2 Container Service (ECS) and Lambda event-driven compute service.
One significant feature includes the EC2 Container Registry, a fully managed service from which users can store and launch images, and support for Availability Zones.
Flux7, an Amazon consulting partner in Austin, Texas, has had to set up complex in-house workarounds for companies in the healthcare and financial services industries in the absence of a private Docker registry, said Aater Suleman, CEO of Flux7.
"Backup, scalability and high availability are the tough parts," he said. "The first thing I'm going to do when I get back home is call all of those customers and tell them we'll switch them over -- it's a game changer for highly regulated industries."
ECS also gained support for Docker Compose, which allows developers to define all the containers or microservices that make up an application, and package it into a portable format. Finally, ECS can now be managed from the command line, meeting Docker users where they live.
Lambda, meanwhile, gained support for Amazon Virtual Private Cloud, long-running (up to five minute) Lambda functions, scheduled functions, a custom retry language -- and perhaps the most well-received news -- Python is now a supported language, on top of Java and Node.js.
"The lack of VPC support for Lambda was holding us back," said Kevin Felichko, CTO of PropertyRoom.com, an online auction company based in Frederick, Md. Without compatibility between Lambda and VPC, Lambda couldn't "see" certain assets inside PropertyRoom's VPCs.
"We couldn’t use Lambda the way we wanted to use it," Felichko said.
However, there's still a disconnect between Lambda and SQS, which would have been nice to see remediated, according to Felichko.
"It seems natural for those to be connected together," he said.
Smooth sailing for ECS
The latest enhancements will make enterprise customers even more comfortable with ECS, said Avi Cavale, CEO at Shippable Inc., which makes Docker Continuous Integration tools that run on top of AWS.
"A year ago, if we had wanted to migrate to ECS, we wouldn't have been able to. Today we can," Cavale said.
The company is about a quarter of the way done migrating the various microservices that make up its service into ECS, and expects to be done in the next couple of months.
And ECS is pleasantly mature, said Eric Holmes, an infrastructure engineer at Remind Inc., which sells an educational messaging service. The company recently re-architected its "monorail"-- a monolithic Ruby on Rails application -- to a collection of Docker microservices running on top of AWS ECS.
"We've been running all of Remind in ECS for four of five months now and it's been super stable," Holmes said, on top of other benefits such as a familiar environment, visibility down to the instance, and support for a 12-factor app model.
Destination: Serverless apps
Meanwhile, PropertyRoom's Felichko said he noticed that Docker wasn't quite as popular a topic at this year's conference as it had been at past re:Invents and AWS Summits.
"If you can put Lambda, S3 and API gateway together, you don't need containers," Felichko said. "I wonder if someday we'll look back on containers as just a fad."
Indeed, when it comes to net-new applications, AWS is making a strong pitch to developers to use Lambda, a key component of its serverless application vision.
"No server is easier to manage than no server," said Werner Vogels, AWS CTO during the keynote.
With Lambda, developers simply write a piece of code that gets uploaded to AWS. The code only runs when needed, in response to events such as changes in data, and AWS takes care of provisioning and de-provisioning the necessary back end.
"It's not that there are no servers running [the Lambda function], it's just that you don't have to worry about them," said Ajay Nair, an AWS senior technical product manager.
Lambda-based apps can also scale effortlessly.
"No matter how many events, there's always enough capacity ... with no explicit action on your part," Nair said.
Finally, with Lambda's subsecond billing, You only pay when your code is running and when it is called, he said. With pricing in the micro-cents per Gigabyte-second, and the first million requests per month free -- "it's easy to build a low cost application with Lambda at the core."
Easy Ten, a Moscow-based startup that offers a foreign language learning mobile app, corroborates this. The company recently re-architected its service into a microservices architecture based on Lambda, DynamoDB and Amazon Kinesis, and the resulting system is much easier to administer than its old traditional mobile web application.
"Our previous approach required multiple dedicated servers, and cost a sensible amount of money per month," said Vasily Sochinsky, Easy Ten co-founder and CTO. "We spent a lot of time trying to build quite simple prototypes ... and were limited in technologies we could use."
With this new serverless framework, the firm effectively avoids all server costs and admin costs, he maintained.
Business benefits aside, AWS's real challenge will be to convince developers to shift their thinking away from Docker and microservices, and adopt Lambda’s unique approach to building apps. For now, that means making it as easy as possible for developers to use it.
Lambda integrates with standard software development tools like Jenkins and Codeship, and uses standard AWS operational tools such as CloudWatch and CloudTrail.
"The goal is to provide familiarity with all the tools that you’re using today," AWS' Nair said.
The Lambda message seemed to resonate with attendees who liked the idea of writing whole Web applications without any servers.
The Lambda paradigm is going to be really important," said Donnie Berkholz, research director at 451 Research, an IT market research firm based in New York. "You just write a chunk of code, and there's a service that runs it for you."
"I think there will be a day when we laugh and say, ‘Remember when we used to need servers?'" Berkholz said.
If successful, Lambda could evolve in to the next generation of shadow IT -- an easy way for Linux or mobile developers that need to get their code up and running, but "don't know anything about building or maintaining a system."
Though Lambda appeals to developers and technologists for its ease of use, the big knock against it is that it’s too AWS-specific, and developers should proceed with caution, said Stan Klimoff, CTO at Tonomi, which makes an application management platform.
From a pure architectural perspective, "I believe that Lambda is how services should be built," Klimoff said. But with no equivalent service from, say, CloudFoundry or OpenStack, much less from another cloud provider "the biggest challenge is that it's really hard to transition out of it if I need to," he said.
Indeed, one of the fundamental tenets of microservices is "any infrastructure, any OS, any language, any hardware," said David Messina, Docker vice president of enterprise marketing. "The next generation of organizations will not tie themselves to a specific infrastructure."
Alex Barrett is editor in chief of Modern Infrastructure. Contact her at email@example.com. Senior news writer Beth Pariseau contributed to this report.
Should you use microservices with mobile?