Implement cloud services to increase scalability and decrease IT and development costs...
Hosting in the cloud offers many advantages, including infinite scalability, reduced IT costs, flexible pricing and a suite of SAAS and PAAS offerings.
However, in terms of software development, the cloud can be both a blessing and a curse. While services like AWS and Azure can help developers focus less on infrastructure and more on solving business problems, finding guidance on how to properly architect a cloud-based solution is a big challenge. Between the overwhelming mass of options, misleading marketing hype, and sparse documentation, often developers cannot figure out where to begin!
At Ronin, we've worked with Azure and AWS for some time. We've pushed through many of these challenges and formed an approach to building robust software for the cloud that avoids the dreaded development churn.
- Cloud-based platforms that autoscale runtime code and handle most of the overhead typically incurred by servers. Read more »
- An alternative to containerization.
- Examples are AWS Lamba, Azure Functions and Google Cloud Functions.
- Implementing cloud-based container services to run Docker instances in a scalable fashion.
- Full end-to-end monitoring of cloud-based solutions.
Cost & Performance Awareness
- Writing code that runs as quickly as possible to avoid high service costs.
Local Development Environment
- Setting up environments for developers where they can do much of their work not connected to the cloud.
- Frameworks and tools such as Visual Studio or Serverless Framework help with this.
- Writing code to automate the creation and deployment of cloud solutions and their dependencies to avoid manual overhead and mistakes.
Asynchronous Communication & Eventual Consistency
- An approach to handling communication between services without creating direct dependencies. Read more »
- Often involves queueing technologies such as AWS SQS or Azure Service Bus.
- Important for keeping service costs down and providing durablility with transactions.
- Ensuring, through automation, that cloud services have the tightest possible security by defining access privileges.
- Automating the creation of multiple environments to support testing and release plans.
Microservices and Web Applications
- Utilizing hosting and other cloud services to power Microservices and Web Applications.