Moving to the Cloud... (probably 1 of many)
Cloud computing is now everywhere and as a developer for sometime I have been interested in learning the technologies and best practises utilised by applications hosted on cloud platforms. I now find myself at a organisation migrating its applications to the cloud, so I have the opportunity to gain some real-world experience developing for this eco-system.
I am not going to go into the various offerings or types of cloud. I want to cover the tools and applications available on the internet that I have started using, and share some of the code that I have developed that provide solutions to the constraints of applications running in the cloud.
Tools and Applications
Any development effort requires a number of tools for: source control; documentation; design; continuous integration and deployment. Added to these, as the applications are to be hosted in the cloud, platforms for cloud hosting and containerisation are also required. Listed below are the internet applications I have signed up to that provide the functionality to cover these requirements.
GitHub offers the distributed version control and source code management functionality of Git, plus its additional features. GitHub offers its basic services free of charge and is commonly used for open source projects.
Read the Docks
Read the Docks is an open sourced free software documentation hosting platform. With GitHub integration, Markdown documents stored in GitHub can be built into an online help and documentation system.
Diagrams.net is an open source technology stack for building diagramming applications, and the world’s most widely used browser-based end-user diagramming software. Again with GitHub integration, diagrams can be stored in GitHub and edited in the application.
SonarCloud is open source software for continuous code quality and security for opensource projects. Integrates with Azure DevOps to become part of the continuous integration toolchain.
DockerHub is a service provided by Docker for finding and sharing container images. It is the world’s largest repository of container images with an array of content sources including container community developers, open source projects and independent software vendors.
Azure is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) and supports many different programming languages, tools, and frameworks, including both Microsoft-specific and third-party software and systems
Azure Devops cloud service for software development, code quality analysis, unit testing and provides continuous delivery. Integration with GitHub for source code management and Microsoft Azure as a target platform for releases.
All the applications above are free, or can be used for free if a little care is taken with how they are used. Along with Visual Studio Community edition and Visual Studio Code it is possible to have a rich development environment for little or no cost.
I hope you enjoy this post.