Five AWS tips and tricks to advance cloud app development
Developers in 2017 continued to embrace Lambda and containers, as AWS added more support and services. Review SearchAWS' top development advice from last year to prepare for 2018.
Amazon didn't sleep on its public cloud market lead in 2017; it expanded its portfolio significantly to appeal to new and existing customers alike. And AWS users need to stay on top of these additions and understand how to implement them.
SearchAWS collected our top AWS tips and tricks from 2017, many of which were developer-focused and involved Lambda and container services. Here's a rundown of some of our most-read expert advice from last year.
1. Turn to AWS Batch for large, complex workloads
While AWS Lambda remains the go-to for many serverless workloads in an enterprise cloud, it's not always the ideal option. AWS Batch supplants Lambda for larger, more complex workloads that use high amounts of Amazon Elastic Compute Cloud (EC2) instances. Batch uses a configuration similar to Auto Scaling to handle larger workloads.
AWS Batch is split into three components: compute environments, queues and job definitions. Those three components let a developer specify and simplify workload deployment, as well as optimize compute capacity. Batch isn't a great fit, however, for workloads that include user requests, tasks that run but never complete and tasks that can complete quickly; developers should keep Lambda and Elastic Container Service (ECS) in mind for these workloads.
2. Carefully choose a container orchestration tool
Containers were the focus of several of our top AWS tips of 2017, as they enable IT teams to standardize components in distributed systems. AWS, Microsoft and Google all offer orchestration tools to manage and schedule containers, so users must carefully select one of those options based on their needs. Weigh the pros and cons of Amazon ECS, Google Container Engine and Microsoft Azure Container Service (AKS) to make the right choice.
ECS fits workloads that run completely on AWS, and it integrates with a host of other native AWS tools. Google's container service works primarily as a Kubernetes orchestration engine and takes advantage of the open source Cloud Native Computing Foundation for support. AKS offers several orchestration options and can work across public and private clouds. Clearly, your primary infrastructure provider will play a major role in your choice of a container orchestration tool, but take other factors, such as scalability and monitoring options, into account before you make a decision.
3. Automate software releases with AWS CodeBuild
After its reveal at re:Invent 2016, AWS CodeBuild garnered interest from DevOps shops that wanted a better way to automate software releases. Last year, as interest in the service grew, CodeBuild and its automation features were the focus of one of our more popular AWS tips.
CodeBuild enables developers to gather source code from an application, run tests on the system and see Docker container images and software artifacts in return. With the service, development teams don't need to scale, patch or maintain build servers. They can also add a build stage that automatically sends source code to CodeBuild during their deployment pipelines. Developers can also build container images with the service and then push the image to Amazon EC2 Container Registry.
4. Use C# to build AWS Lambda functions
When AWS Lambda added support for the C# programming language, developers took advantage with a push for more serverless application builds.
Developers can use .NET Core to publish C# code into Lambda to build functions and serverless apps. The support also opened the door for further integration with other Amazon services, such as Simple Storage Service and DynamoDB. Developers can also create APIs for serverless applications through the Amazon API Gateway when they run C# scripts on Lambda.
One of our many dev-focused AWS tips from 2017, this article walked through how to use two native project templates, both of which involve the toolkit for Visual Studio, to build and deploy multi-platform serverless applications using C#.
5. Incorporate Lambda into an IoT deployment
As the internet of things (IoT) continues to grow in popularity, more developers will use an AWS Lambda programming model to create and test new IoT applications. And other AWS IoT-focused tools only sweeten the pot for enterprise developers.
AWS Greengrass and the AWS IoT Button enable Lambda to further IoT development in the enterprise and at the edge. In addition, developers can use IoT Rule Actions to tie Lambda to IoT applications with synchronized communication between devices and cloud resources. Lambda functions can sit between connected devices and a database service, such as DynamoDB, for two-way communication in IoT projects.