The rise of DevOps has come with a rise in cloud-based development. This makes sense since cloud-based applications and tools offer scalability and availability that was previously unimaginable.
Cloud-based applications provide the tools that developers need and form the base of many modern consumer products. Whether you’re developing applications for your team or for customers, you need the right tools to create applications for the cloud.
Tools for App Development in the Cloud
Consider using the following tools to help make your cloud app development easier. The first three are offerings directly from cloud providers and the last two are cloud vendor agnostic.
Visual Studio is an Integrated Development Environment (IDE) created by Microsoft. It enables you to develop, debug, deploy and monitor cloud-based applications. Visual Studio is available via professional or enterprise subscriptions, and for free in a community edition.
You can use Visual Studio to develop for any platform. For Azure deployments, you can integrate most Azure services, including Monitor, Storage, CosmosDB, and Functions. Visual Studio integrates with GitHub for source control and import of open-source code.
Outside of standard IDE features, Visual Studio enables you to deploy to Azure directly from the IDE interface. It also has a feature for Snapshot debugging that you can use to identify and correct unhandled exceptions in production.
Google Cloud Code
Google Cloud Code enables you to write and debug cloud-native applications and deploy apps in Kubernetes. There is no cost to use Cloud Code but you are responsible for application deployments and file hosting costs. It is designed to fully integrate with Google Cloud Platform services but works with any Kubernetes Cluster.
Cloud Code provides IDE extensions, which support the deployment process from cluster creation to application deployment. It includes templates for Kubernetes resource files that you can use as a base for your applications. These templates enable deployment to local clusters or across cloud providers.
Currently, extensions are available for Visual Studio Code and IntelliJ IDEs. Cloud Code supports common languages and frameworks including Java, Go, Python, .NET Core, and Node.js.
AWS CodeStar enables you to develop, build and deploy applications to AWS resources. There is no cost for using CodeStar itself. However, you will pay for the resources you use, such as file storage in AWS EFS, EBS or S3, or running code through Lambda.
CodeStar includes pre-built templates for EC2, Lambda, and Elastic Beanstalk-based applications. The service includes a project management dashboard and integrated issue tracking via Atlassian JIRA. CodeStar integrates with many paid AWS services, like CodePipeline and CodeBuild. You can also integrate existing continuous delivery toolchains.
Codewind is a free, open-source project that provides extensions for IDEs. Codewind extensions include features for writing, debugging, and deploying cloud-native applications. A feature for automatic analysis of application performance is also included.
The project aims to ease the development of container applications by allowing developers to use their preferred IDEs. With Codewind, you can use pre-configured templates as a base for your applications. You can run applications developed with these templates in both local and Kubernetes deployed containers.
Codewind extensions integrate with Visual Studio Code, Eclipse and Eclipse Che, and more integrations are in progress.
Appsody is a free, open-source project for creating cloud-native, containerized applications. It is designed to provide a foundation for applications you plan to deploy on Kubernetes.
The Appsody project provides you with hubs that serve as central repositories for technology stacks. You can use hubs to search for, create, or modify stacks. After choosing which stacks to incorporate into your application, you can use them directly from a public repository. You can also choose to use stacks cloned to a private repository.
Appsody includes pre-configured stacks and templates for common runtimes and frameworks, including Rust, Python, Java, Swift and Node.js. Many available stacks include built-in cloud functionality like health checks, monitoring and OpenAPI access.
Choosing the right tools for developing in the cloud can be challenging. You have to carefully select your tools, based not only according to where your development occurs but on where your application will be deployed. Choosing vendor-agnostic tools can simplify both development and deployment but might make integration of services more difficult.
The tools covered here are only a small selection of what is available but they can help you get started. If you’d like to get a better idea of the full range of tools available to you, check out this diagram from the Cloud Native Computing Foundation.