Back in 1997, Steve Jobs said: “I don’t need a hard disk in my computer if I can get to the server faster” and named non-connected devices “byzantine”. Ten years before the launch of AWS, Jobs predicted that clouds will be a new standard. Due to the recent coronavirus pandemic, the world relies on cloud-based application development even more heavily now. COVID-19 forced many businesses to go remote and, respectively, work with clouds.
We know that cloud software can be extremely useful. It cuts IT infrastructure costs, improves flexibility, supports dozens of interaction models between cloud providers, enterprises, developers, and users. It can help you to survive the crisis and even grow, attract new clients. Still, it’s vital to mind potential risks and pitfalls. Not all businesses require cloud migration, so you should know your goals and limitations.
DICEUS worked with 30 cloud projects, including insurance service RiskVille, wearable health tracker Verisense by Shimmer, and HR solutions for Teambase. In this guide, we will explain how to create a cloud application in collaboration with a software development team. The stages below are fully based on our experience.
Here, the work begins. To start making a cloud app, it’s a good idea to cooperate with a development company. A professional vendor that has designed many cloud solutions will mitigate project risks. As well, it will handle all the main development, testing, and deployment steps.
First and foremost, pay close attention to preliminary agreements. They set the basics of your future beneficial cooperation. We suggest focusing on the next aspects:
A statement of work or SoW will be the first result. This document specifies requirements, timelines, and deliverables. As for costs, they depend on the project’s scope, complexity, and features. But we know one fact for sure: a cloud solution is cheaper than its on-premises alternative in the majority of cases. Just look at the estimation by Gartner that shows how the TOC drops by 55% after migration to the cloud.
To get a comprehensive solution, you should know the needs of users and stakeholders. Any software should provide value, and this stage helps to define which solutions, strategies, and models can maximize the benefits. Without a proper business analysis, you risk not getting what you expected.
Asking how to develop a cloud application, always keep in mind the desired results. Three major types of cloud software include cloud computing tools that add processing power, cloud databases that store info, and cloud software apps. A good example is our BenefitNet system developed for Teambase as a cloud app for insurers and employees.
Thus, consider the next tasks at this stage:
The second official paper you will get is a business requirement document or BRD. It’s also known as SRS – a software requirements specification. This doc specifies the demanded features of a cloud-ready application from your point of view. SRS is the main guideline for developers. It dictates which features the vendor should deliver, how it should do it. In a nutshell, SRS can reduce further redesign tasks significantly.
If you still don’t know whether you need a cloud app or no, read our Enterprise Software vs SaaS guide.
During the functional analysis stage of cloud-based application development, the dev team creates a traceability matrix, tests requirements, and researches specifications. Still, solution architecture design is the most important part. You should conclude all the demanded features to identify the best solution basis.
At this moment, pay close attention to two things: architecture and service model. A correct choice of both options will increase the efficiency of your app. Otherwise, it may become non-viable, not meeting your requirements. If you’re confused, consult with the dev team – experts always know which approach will be the most suitable.
For instance, developing RiskVille, we agreed that it’ll be a combination of PaaS and IaaS approaches with SQL storage. And the decision was right. Our customer now has more freedom in data/application management but doesn’t have to worry about tech things.
Any cloud-ready application requires proper planning and designing. This phase is crucial because it helps you to move from ideas to real solutions. The development team focuses on high- and low-level design, as well as infrastructure requirements that are even more essential for cloud software.
To be precise, you’ll have to agree with the vendor on six core elements of the planned app. In the next sections, we describe top cloud providers and the most popular programming languages. Here, let’s focus on four other aspects:
For different clients, we choose various tools for cloud-based application development. It’s better to be more flexible to choose the most suitable software elements. For instance, we used NServiceBus as a queuing system for the FSA – Flexible Spending Account platform. The reason is that this product relies on SOA with decoupled applications. Alternatively, for Azure cases, we can use Azure Service Bus as it’s a more native tool.
Here’s a master hint: don’t be afraid to get more from cloud providers. Often, teams like Amazon or Microsoft deliver various extra features. They offer messaging systems, CDNs, databases, etc. It’s a viable idea to use them to keep things under one roof.
The title says it all. When you planned and designed all core parts, it’s time to create your cloud application. The development stage often divides into sprints during which teams work on specific features or modules. It also includes source code review and different types of tests in the controlled environment.
The question is: how to develop a cloud application using the best tech? There are dozens of popular frameworks and languages. We choose the most modern languages that suit client projects. TIOBE and PYPL are programming language ratings with some examples of popular modern technologies. For back-end development, these include .NET, Java, Python, Ruby on Rails. For front-end, there are React, Angular, VueJS. Don’t forget to choose exact languages based on app features and project requirements.
For already mentioned BenefitNet for Teambase, we selected .NET and Angular. These frameworks were the most relevant, considering the client’s wishes. Thanks to the correct selection of technologies, cooperation between insurers and brokers is continually growing, roughly by 25% each year since the release.
Look at how we develop cloud computing solutions to learn more about this stage.
Cloud-based application development requires proper testing. The thing is that clouds are more vulnerable to various failures and security threats. To avoid network shutdowns, data leaks, and software bugs, QA engineers run several sessions. They check how the software works under different conditions, including real-world cases.
As a rule, we run the next tests:
As well, at this stage, the vendor delivers initial training to your stakeholders who will use the cloud app. Additionally, we suggest preparing the production management controlled environments on your side. They will host extra tests during the next stage.
If the previous step is about general software tests, this one focuses on usage. At this moment, you will get the next portion of training that will help end-users to become more familiar with your software. After the performance and security testing, the vendor will update the cloud-ready application build, and prepare for live proving.
The second big part of this phase includes production management. In the related client-side controlled environment, you should conduct more tests: dry run, disaster recovery, and business continuity (DR/BCP), operational acceptance. As a result, the product will be ready for deployment and final checks. It’s the last moment to make the necessary changes if you have any.
The implementation provides for the live launch of the solution. Based on our experience, it’s essential to make live proving to check how the software works in the real environment. You can choose one of three cloud deployment types: public, private, or hybrid.
Public servers are available for everyone. It’s a universal option that suits different companies and goals, allows quick scaling.
Private clouds are reserved for the needs of one company. Choose them if you need total control over your IT infrastructure or have unique requirements.
Hybrid clouds combine the best features of both structures. Get them if you work with several verticals simultaneously, have to switch between both types.
Talking about vendors that offer cloud spaces to businesses, there are three famous names:
We often work with AWS and Azure environments. For wearable health tracker Verisense by Shimmer, our developers worked with the client’s R/Python algorithms on AWS Lambda. According to the requirements, we designed a customizable Amazon-based cloud platform.
That’s it. After deployment, all you need to do is to sign closure documents and get final reports. They will finalize the developer-customer cooperation. After the launch, you can run the fresh application in your real environment, tracking all the issues or errors. Based on this post-launch test, the vendor will be able to provide early life support with solutions for available problems.
As for us, this final stage is one of the most important collaboration parts. We provide the best early life support to make the migration period to your new tool as smooth as possible. For example, we always analyze error reports and fix bugs immediately. Users get our knowledge through training. If needed, we still can make the necessary improvements based on the measured results during this early life stage.
As you can see now, cloud-based application development isn’t rocket science. With the vast number of languages, tools, and cloud providers available now, businesses can easily get their own cloud solutions. We strongly suggest cooperating with a professional vendor that has successful cloud projects in different industries and regions. Thus, you will be able to get the most tailored, cost-effective, and powerful app.
At DICEUS, we know how to design a cloud-based SaaS application. We work with insurance providers, banks, and logistics teams. Each client has unique pains and demands, so we tailor cooperation to deliver the results on time, on budget, and on spec. Hence, if you need assistance with any stage of the cloud development process, feel free to contact us.
Сarefully sending your request to a manager