Creativa - Fotolia
Public clouds attract throngs of developers with easy access to a wide range of tools, but the sheer number of choices can be overwhelming.
AWS, Microsoft Azure and other major cloud providers have bolstered their cloud developer tools as each tries to stand out from the crowd. This included a move to cloud IDEs, DevOps tools and a range of other higher-level services intended to ease -- or expand -- what can be done with cloud app development.
Check out the following overviews of top expert advice on how developers should choose cloud platforms, as well as examples of how to pick between overlapping services on a particular cloud.
How to choose a cloud platform
It can be difficult to choose the right provider for your development needs. Most public clouds have a fairly similar list of tools -- but not all offerings are the same. Enterprises should look for tools that address these core areas:
- flexible and diverse configurations
- language support
- integrated pipelines
- freedom from lock-in
- predictable costs
Not every service will fully address these criteria, so weigh those factors into your decisions. Vendor lock-in, for example, is a common concern with cloud-native developer tools, but in some cases it can be worth the risk. You can apply these considerations to nearly every layer of the cloud.
Say you want to go serverless. AWS Lambda supports fewer languages than its competitors, but it also provides better performance in certain scenarios. Azure Functions has straightforward pricing, but it lacks some of the functionality found in Lambda. Check out the rest of DevOps analyst Chris Tozzi's article for other areas where these criteria can be applied, including containers, machine learning and integrated developer environments (IDEs).
Pick the right cloud IDE
Speaking of IDEs, these cloud developer tools are popular because they simplify the deployment process by having everything handled in one place.
However, selecting an IDE isn't about picking a cloud; it's about selecting the right tool to navigate the cloud you've already chosen. As such, it comes down to a native, managed service like AWS Cloud9, or self-hosted tools like Eclipse Che or Orion. With third-party options, developers will need to set up and install them, either locally or on a cloud VM.
Cloud IDEs work on virtually any device or workstation with a connected web browser. They also build and debug faster. However, they're less customizable and are susceptible to access and performance issues caused by network problems. Read the rest of this breakdown, also by Chris Tozzi, to compare some of the most popular cloud IDE options on the market and examine the pros and cons.
Review interface choices on Azure for cloud app development
Once you've settled on a platform, there are many other decisions that enterprises need to make about cloud developer tools. However, those choices aren't always about cloud native versus third-party tools. It's often about choosing between a series of overlapping native services.
For example, developers on Azure need to decide how to access and manage their cloud environment, which is done through an interface. There are web-based options, such as the Azure Portal, which is a GUI dashboard, or Azure Cloud Shell, a browser-based command-line interface for more advanced users. These options eliminate concerns about which OS or hardware resources are used -- all the developers need is a reliable internet connection.
There are also options for developers who want to stay more in line with the existing Microsoft ecosystem, accessible directly within their own terminal. Azure PowerShell has a set of cmdlets to manage resources via Azure Resource Manager. There's also Visual Studio as an IDE to integrate with Azure, and Visual Studio Code, an open source code editor that's more focused on usability and speed.
Check out the rest of freelance developer Zach Flower's piece for more details on these and other code editor options on Azure.
Pick a deployment model on AWS
Choosing cloud developer tools often comes down to how much you want to commit to a platform. Do you sprinkle in your preferred third-party tools, or go all in on cloud-native? Do you opt for something simple and quick, or the more complex option that provides greater flexibility?
Freelance consultant Alastair Cooke hits on this conundrum in his piece about how to choose between AWS CloudFormation, OpsWorks and Elastic Beanstalk for cloud app development. Each tool has its strengths:
- CloudFormation provides declarative templates to deploy simple apps.
- OpsWorks offers more control and integrates with Chef and Puppet.
- Elastic Beanstalk works well for web apps with limited dependencies.
Sometimes one tool isn't enough. Cooke breaks down how those three services can work together to solve developer problems.
Decide if low-code/no-code is a better fit
There are times when organizations must decide the type of developer they need before they select specific tools. The cloud has opened development to a broader range of users, including citizen developers.
Zack Flower delves into the pros and cons of these novice coders and the emergence of no-code/low-code platforms. These tools enable users to drag-and-drop application components and require little to no coding, which can save enterprises money and take pressure off IT. However, this trend also raises concerns about security and whether non-IT users have enough understanding to build and maintain apps of value.
There are other areas where enterprises need to consider their staff's capabilities first and tools second. For example, if you want to utilize cloud-based AI services, do you have the data scientists that can maximize the benefits of a service like Amazon SageMaker? Or, are you better served with one of the API-based machine learning tools that can be layered on to existing apps and readily used by most developers?