This morning, Werner Vogels, the CTO of Amazon Web Services, took to the stage for the third and final keynote speech at re:Invent. While there weren’t as many announcements as in yesterday’s keynote, Werner offered insights into the future of cloud architecture. Here are the highlights in case you couldn’t make the live stream.
If you’re just here for the new service and feature announcements, I’ll save those for the end to make them easier to find.
21st Century Architectures
Back in 2012, Werner described the “commandments” architecture in the 21st century – it should be controllable, resilient, adaptive, and data-driven. Of course, a lot has changed in five years. Amazon has released nearly 4,000 new services and features in that time, and while these principles aren’t necessarily wrong, or even outdated, the way AWS is building their services reflects shifting priorities in the problems we solve with technology.
These aren’t just a set of arbitrary rules. Amazon’s development is collaborative in very specific ways. For example, when they released DynamoDB, the initial version came with a relatively small feature set. As they planned to grow the service, they released features based on what customers wanted. And here’s where it gets interesting – they already suspected people would request secondary indices, for example, but they were surprised to learn that people wanted IAM level controls (this is something most of us now take for granted).
Technology is changing in ways we may never have imagined in the past. It’s being driven by data, but in order to be useful, data needs to be analyzed and processed. With AWS, everyone has access to the same tools used by industry leaders. IoT is also driving innovation – physical environments are becoming active as parts of a larger infrastructure. P3 instances and deep learning are a few other key aspects of the changing cloud landscape.
It’s obvious that technology is changing, and it’s relatively easy to look back five years ago and see what has changed. What’s difficult is to see why it has changed, but when we answer that question, we can start looking planning and predicting the future. Werner’s keynote was not explicitly about futurism, but here are a few realities that he and AWS have noted. And from these, we can draw all sorts of conclusions.
Voice service is the next big disruption
Interacting with data has traditionally been limited by the machines that store and process it. When we look at the state of technology today, the machines have improved significantly. So why are we still interacting with them in the same old ways? Several years ago, there was a big movement in the tech community to get smartphones to every person in every developing country. The idea was that technology could help people get out of poverty and create better situations for themselves, but it never panned out. Why was that? People in developing countries are not thinking about apps, they’re thinking about survival.
Voice service is the next major disruption because it’s a natural interface. The problem with the “smartphone revolution” isn’t that technology can’t help people – it’s just that a touchscreen doesn’t feel like a solution to problems that are often a matter of life and death. Think about the ways you interact with data. Some of us use terminals and command lines, and nearly everyone is familiar with graphical interfaces, web apps, and mobile screens. Now think about how you interact with people. You don’t tap a button on your friend’s forehead to ask him or her a question – you just ask. It sounds obvious, but the ways we currently use technology aren’t natural.
Speech is a natural form of communication, and we now have the technology to process it. Services like Polly, Lex, and a handful of others that Amazon already offers will make this transition easier. Look at the success of Alexa. People are already integrating voice services into their homes (and soon, their offices – more on that later). The Alexa skills library is growing at an enormous rate, and more and more devices are able to be activated by voices.
It’s a pretty simple idea when you think about it – removing the friction between user and service makes more people use the service. This enables us to build better services that people can and will actually use. The real revolution wasn’t smartphones – it’s voice.
Security is everyone’s job
When we start to think about architecture differently, a consequence is that security practices will change. It used to be that you may spend 3 months in a development cycle, then send your code to a security team for review. As innovation accelerates, this is no longer good enough. Security is everyone’s job now, and we all need to start thinking about it.
Take encryption for example. Just five years ago, many people wondered if HTTPS was too resource intensive to be practical. Now most browsers will display a warning on sites that don’t have it. Encryption is not only faster and more efficient now, it’s also dead simple. In many AWS services, it involves clicking one or two buttons – gone are the days of manually updating certs and copying keys to entire fleets of servers. To borrow a great phrase from Werner’s keynote, “Dance like no one is watching. Encrypt like everyone is.” There’s really no excuse not to encrypt your data.
Developers and solutions architects are central to this. Of course there are abstract security concepts that need to be considered on any platform. But AWS automates a great deal of it. Services like Trusted Advisor, Inspector, Macie, and the new GuardDuty handle quite a bit of the monitoring for you, and as machine learning continues to develop, these services will only get more useful. And with better tools at their disposal, these developers and solutions architects can focus more on their code.
Reliability is a business choice
We often talk about building highly available, fault tolerant architecture. I’ve written a few blog posts about these topics, and they all tie back to one effect on the end user – reliability. But reliability for its own sake just doesn’t make sense. When you’re building business systems, the goal is to strike a balance between cost effectiveness and reliable service.
Should you host your entire infrastructure on just a couple of EC2 instances? Of course not…that would be silly. But you also may not need 99.9999% availability for every service you run. Effective infrastructure does the job without being wasteful. There are plenty of automated tools you can use to figure out your needs. For example, you might create a CloudFormation template to make a copy of your production environment for testing, then scale it down under load until it breaks.
Microservices have become popular because they help with this problem. With a microservice, you can develop, deploy, and maintain different parts of your application independently. You can also run them all on different types of infrastructure depending on how they’ll be used. Cost optimization and infrastructure efficiency are huge topics, but thinking about reliability in terms of business needs is a great place to start.
The future is in the way AWS has built the cloud
This might seem a bit grandiose, but Werner has a point. Most AWS services are either fully managed, or managed to a very significant degree. The platform is complex, and there’s a great deal of user responsibility, but many of the services abstract away the grunt work of deploying instances. Many others are simple enough to plug into existing applications and start using in minutes. AWS is building a platform that lets us focus more and more on business logic.
This wasn’t in Werner’s keynote, but I’ll give a personal example. This morning, I experimented with the incredible new AWS Amplify library (it was announced about a week ago, not at re:Invent). I was able to use AWS Cognito to integrate a full-featured authentication system, including email signup verification and MFA, into a React application with less than 10 lines of code, in about 20 minutes. That time would have been drastically less if I had already created a user pool beforehand.
That’s just one illustration of how easy Amazon is making development, but it’s becoming more and more obvious that it’s central to the decisions they make. Sure, AWS is an infrastructure provider, and there’s a lot going on behind the scenes. But if there’s one big takeaway from Werner’s keynote this morning, is that AWS wants to make building things simpler. This can be seen across the platform, from explicitly “serverless” services like Lambda to managed databases like RDS and DynamoDB.
When we can focus our attention on building, the services we create will get dramatically better. With Amazon’s focus squarely on this goal, it’s incredibly exciting to imagine what new technology we’ll see created on AWS in the months and years to come.
New services and features
Yesterday’s keynote with Andy Jassy was arguably the most exciting day of the year for AWS users. Today was a little more subdued, but Werner did announce a few awesome products. I know some of you probably scrolled here specfically for the announcements, so I’ll get straight to it.
Alexa for Business
How many conference calls have you joined, only to be asked to enter a conference ID multiple times? How many times have you struggled with audio visual equipment in a conference room? Even basic tasks like calendar management and getting phone numbers from voicemails can be a struggle, and these are the problems Alexa for Business wants to solve.
Alexa for Business is a fully managed service for Alexa voice-controlled devices at work. Instead of entering conference IDs, Alexa will know what room you’re in, what line to call (and the ID), so you can instead just say, “Alexa, start the meeting.” At your desk, it can be used to query voicemails through RingCentral. It can manage meetings via Teem. These are just a few integrations, and there are plenty of others. As a business service, there’s also a user management feature, so you can control access to certain skills depending on who’s using the device. You can also create custom skills specifically for your business.
We talked a bit about the power of the voice interface, and Amazon is clearly doubling down on it. Check out all the details about Alexa for Business here.
Cloud9 is a cloud-based IDE that Amazon acquired last summer, and might already be familiar to many users. It’s been used as a development environment for many online technology courses, including Harvard’s incredibly popular CS50. The acquisition was an interesting move, and today, we got to see what Amazon has done with the platform.
A great IDE needs a great interface, and AWS Cloud9 retains all the features I enjoyed with the original service, while adding the familiar AWS look. It supports keybindings for other common editors, including Emacs, Vim, and Sublime Text, as well as multiple color themes and syntax highlighting to make your code easier to read. One of the killer features, however, is collaboration. You can invite other AWS users to join your project for pair programming sessions with a nice little chat box to help you work through bugs (it comes with a full debugger for solo projects as well).
AWS Cloud9 also lets you deploy your code straight from the interface – in the demo we saw today, a pizza ordering application was exported to Lambda in a matter of seconds. Like other services, it integrates with the rest of the AWS platform seamlessly, so you can use it as part of a larger pipeline with other services like CodeDeploy and CodeBuild. Check it out here.
Go and .NET support for Lambda
AWS Lambda users have been asking for Go language support for a long time…and it’s finally here. Go joins Python, NodeJS, C#, and Java for use in writing serverless functions to create microservices, perform one-off calculations, and a whole lot more. Also announced today was support for .NET Core 2.0. With Lambda’s popularity growing, expanding the platform to a wider range of developers just made sense.
A few other features were announced today as well, including a new 3GB memory size, concurrency controls, and API Gateway VPC support.
AWS Serverless Application Repository
Lambda, as we just discussed, continues to get more and more powerful, and the new Serverless Application Repository will be another great addition to the platform. Until now, Lambda came with prebuilt functions that provided a good starting point, but required additional setup to do anything useful. Today, that changes.
The Serverless Application Repository will be a place to discover a collection of apps built but others, and to share the functions you build yourself. Want to send a text message with Lambda? Someone has probably written a function for that. Want to order a pizza with the click of the button? Well…you might have to write that one yourself, but you can share it once you do!
Joking aside, the Serverless Application Repository will be a huge asset in furthering Amazon’s goal of making development easier. We all use third-party libraries from time to time, and innovation is about standing on the shoulders of giants. The Serverless Application Repository is currently in preview, but once it launches, it’s sure to be an amazing tool.
I said before that today’s keynote wasn’t about futurism, but in a way, it was. Werner Vogels laid out a very clear plan for AWS – make building easier – and the services he announced will be incredibly helpful in realizing that vision. At Linux Academy, we often talk about the power of technology to change the world, and how cloud education changes people’s lives. That’s something we strongly believe in. Over the past few days, we’ve seen some really cool new products and features that align very closely with that belief, and we’re so excited to see what the future holds – not just for AWS, but for our students.
It’s easy to get excited about the technical aspects of a new service, but today’s keynote highlighted something that’s just as important: what you’re actually using that service for. After all, computers are just tools. They might be really neat tools that are fun to talk (and sometimes argue) about. They might be complex and even frustrating at times. But they serve a purpose – to help us make things.
What do you want to make? Chances are, it’s now possible on AWS. Maybe it’s just sheer information overload from all the re:Invent excitement, but I am truly out of ideas on what else they could offer to make building any easier. The platform has gotten that good. But because of all the added complexity, training is now more important than ever. We can’t tell you what to make, but we can help you learn the skills to make it.
We’ve seen plenty of examples this week of people who have taken that learning journey and arrived at solutions that are changing the world. Whether you’re already a cloud professional or you’re just getting started with the AWS ecosystem, we’d love to help you build your skills and be part of that change as well.