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.
Guaranteed software project success with a free 30-minute strategy session!
1. Start the project
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:
- Approve the project. With your stakeholders, you should decide if your company really needs the cloud app. Hence, you will be ready for more active cooperation with the vendor and will get a more tailored solution as a result.
- Get cost estimations from the vendor. To realize the scope, you want to find out the total cost of ownership – TCO. Estimations include various aspects such as salaries, payments to cloud providers, etc.
- Plan development and testing. With a proper and detailed plan, it’ll be much simpler to move through the project. Aforehand, you will know key stages, KPIs, timelines, and the expected outcomes.
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.
2. Analyze business requirements
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:
- Analyze current problems and solutions. Analysts can spot major gaps and weak links of your organization. Knowing them, you can choose the best solutions.
- Approve requirements with your partners. This point ensures that all participants in the development process are on the same page.
- Check the project plan designed by the vendor. You definitely want to know how the development will go. For this, study the plan and give your feedback.
- Refine cost estimations based on new ideas. Preliminary estimations may change at this stage. Updated info is vital for analysis.
- Reveal the expected results and KPIs. These wishes will act as main beacons for developers. And you will get exactly what you need.
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.
3. Analyze the architecture and features
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.
- Architecture. Classic solutions come as monoliths – single binary files. This approach is convenient but may be too rigid. Also, service-oriented (SOA) and microservice structures exist. They divide into functional modules that connect to each other but exist independently, making the product more flexible.
- Service model. Remember the types of cloud applications we discussed above? Models should match them. There are SaaS or on-demand software tools, PaaS aka platforms, IaaS – computing infrastructure. You can also find desktops (DaaS), banks (BaaS), storages (STaaS), and even disaster recovery (DRaaS) services.
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.
4. Design your cloud application
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:
- Database. It’s a place where you will keep your data. The vendor may offer relational or file-oriented storage, depending on your requirements.
- Message queuing system. This one is a protocol that connects apps asynchronously via API. As a result, senders and receivers don’t interfere with each other.
- Content delivery network. Known as CDN, this tool helps to deliver content to users quickly. Generally, it selects the closest cloud server to each user’s location.
- Container tools. To deploy the solution faster, leverage virtualization systems. We prefer Docker. It uses containers that consume fewer resources than VMs.
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.
5. Bring the design to life
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.
6. Test regularly to reach top quality
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:
- Acceptance – tests the software compliance with business requirements.
- Disaster recovery – tests how the app reacts to disasters and how it recovers.
- Interoperability – tests how different modules work together or with other apps.
- Performance – tests how the system’s speed, stability, and responsiveness.
- Scalability – tests the ability to scale up or down depending on the requests.
- Security – tests the protection of the app from various cybersecurity threats.
- System verification – tests if the app fulfills its main purpose.
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.
7. Run user acceptance testing and training
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.
8. Launch the app
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:
- Amazon. Amazon Web Services or AWS provide numerous products, one of the most extensive networks of data centers, powerful capabilities for all industries. Still, Amazon focuses on public clouds exclusively and has complicated pricing.
- Google. Due to the late start, Google has a lower market share than Amazon and Microsoft. But Google Cloud offers amazing tech expertise in AI, ML, deep learning, Big Data, and advanced analytics. This advantage can be a game-changer.
- Microsoft. The platform called Azure is the main competitor of AWS. Microsoft is the best choice for existing Windows customers and companies that opt for hybrid clouds. The main drawback is its less professional support and training.
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.
9. Finish the project
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.
Creating cloud applications with DICEUS
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.
Guaranteed software project success with a free 30-minute strategy session!