How is cloud development different from traditional software development? Explain.

Cloud Development

Cloud development and cloud-native development are the two terms often used interchangeably to describe the process of writing code on the device directly connected to the cloud environment. The code is transferred seamlessly to the cloud environment where it can be tested and improved upon by other developers. This makes the development process much more flexible and also allows for more flexible applications in the end.


Pros of Cloud Development

Cloud app development has advantages that have made it popular among software developers and customers.

Collaboration

The nature of native cloud application development allows you to facilitate DevOps by letting a number of developers, tools, and processes collaborate closely to get the desired outcome. This fosters a smoother transition from coding to transferring the ready code into the finished product. Basically, all of your code is stored in one place, which means that almost all of the collaborators can do their job simultaneously.


Easy to Support

When talking about on-premise software vs cloud software, we cannot omit the obvious fact – whenever you need updates to your traditional application, the whole thing goes offline for the period of time needed to implement the changes. More so, in case anything goes wrong within your system, the cloud offers automated backups to the previous version giving you time to figure out what went wrong and how to fix it. Supporting the cloud infrastructure is much easier, it allows more flexibility and lets you keep your infrastructure up at all times.


Storage Space

Cloud computing gives you much more storage space and computing power to get your app going faster and smoother. The cloud quickly analyzes and reflects all the user interactions with the app without delays. Of course, this requires a stable Internet connection, and thanks to the latest network interface switches, cards, and multi-Gbps circuits to the Internet exchange points, the connection is usually really smooth. This allows for faster access to data both for the users and within the data centers.


Greater Scale and Better Experience

The purpose of cloud-based software vs on-premise software is to expand its scale not being limited by physical storage. This allows you to expand the capabilities of your software almost indefinitely, add new features, and store large amounts of data while maintaining stable and continuous performance. This translates into a much better experience for your users.


Cons of Cloud Development

Cloud software development has a set of disadvantages despite its popularity.

Complicated Security

The cloud solutions are run by security policies that are split between the provider and the users. It does not mean that the users can access your sensitive data straight away but it surely puts your assets at risk as malicious attacks are always possible. Flaws in your security protocols can grant your users access to information that is not intended for their use, which is why you need to pay much more attention to protecting your sensitive data.


Pre-Made Configurations

You might have a problem with limited control over your cloud environment because of the choices made by the provider. The cloud configurations are set by the provider, and unfortunately, these configurations might not always meet your needs.


Traditional Development

Using the physical storage of data and developing your software within a closed environment has its advantages, so when comparing software developed using cloud vs installed software, it is about which one suits you and your organization. If your goal is to deliver services within the local server, this might just be the right approach for you. 


Pros of Traditional Development

Traditional software is being used for smaller networks that require more security. Of course, it is not always the case but it also offers a well-structured development process that is more comprehensive and robust than that offered by cloud services.


Clear Purpose

When you opt for traditional software development, you probably have a specific goal in mind, which is why this approach can be used to create an application that serves a precise purpose within a local environment. The software or application is located on a physical hard drive or a website server, so your clients will specifically access your application and use it to access data or services sorted out within the physical server.


It’s Sequential

When discussing the advantages of cloud computing vs software as a service in a traditional sense, we’ve mentioned that cloud development allows many participants to contribute to the development process. While this surely cuts the development timeline, it also can create quite a mess of a development process. Traditional development, in contrast, is more sequential and robust. It makes sticking to the development plan much easier, which makes managing the project much more comprehensive and convenient.


Optimization

The traditional projects may vary in size and complexity, which is why the vendors focus heavily on defining all the aspects of the project before they start working on it. This requires a great deal of attention and client’s involvement. With that, the project managers can truly put the customer’s interests at the forefront and let the client oversee the progress. The client is being informed of all the aspects of the development process, can give their feedback, and prioritize demands to make the whole process go according to the business needs. In case you, as the client, have a really specific set of requirements, traditional software development might be a preferable option for you.


Security

Each project has some risks in it, but with the inherent stability and security of the traditional development methodologies, most of the risks can be mitigated. With this approach, your data cannot be accessed and compromised without directly accessing the devices on which the data is stored, so it is less likely to fall victim to hackers.


Cons of Traditional Development

If your goal is to deliver a solution to a large number of users and you are going to have to support and update that solution over a long period of time, making your customers download and install those updates on a regular basis might be a rather tiresome experience for them. It also means that different users might use different versions of the software as some would not install updates and run with the older versions.


Slower Development Process

Even if you are pretty precise with your requirements, you are going to see that in comparing the speed of cloud computing vs software development, the latter would offer a much slower software development speed. Of course, if you have the time, it surely is a viable option but cloud computing offers greater speed.


Lack of Innovation

Well, yes, let’s admit it, the traditional software development model leaves little to no room for innovation. It’s been done over and over, and you cannot really reinvent the wheel here. Yes, it gets the job done, but if you want to create something new and unprecedented, it might not be your best call.


Lack of Flexibility

Once the job is done it is set in stone. It is hard to change, adapt, or update the software that is being stored on a number of devices. It will take tremendous effort and time to make the necessary changes and improve the functioning of that software, which is the difference between traditional and cloud development.


OR IN EXPLANATION POINT OFVIEW:-

 In a traditional software development approach, the software is developed and tested on a computer and then run on either physical servers or a private or cloud as a production or ‘live’ environment. In cloud development, the software is developed, tested, and run within a cloud environment. As the world is transitioning from traditional development to cloud software development, it may be said by some traditional software is outdated and that cloud software development is the future. This statement is pretty debatable. Today, Cloud is undoubtedly faster and more secure, but that doesn’t mean that traditional software development is irrelevant. Both the development approaches have their pros and cons. Today, we will talk about the differences between the two so that you can choose what better suits your project or business. This is not just a comparison article; it has more to do with finding out which development process suits your business the best and is unique. Better IT support services and IT managed services are required in both cases.

As suggested by the name, Cloud computing is a combination of development services and configurable systems, and it can be easily developed and quickly delivered through the Internet. Whereas, Traditional computing is utilizing physical data storage for developing software for the smooth functioning of the system. The use of stored data is limited only to the device or the network which contains the software or data in traditional software development.

Whereas, Traditional computing is utilizing physical data storage for developing software for the smooth functioning of the system. The use of stored data is limited only to the device or the network which contains the software or data in traditional software development.




OR,
 A cloud service in contrast to a traditional software service must have at least the following 5 characteristics:


Self Service

  • Traditional software has essentially a long-term contract divided into phases such as development, testing, and maintenance. In a few cases, these 3 phases may be handled by 3 different companies.  In fact, traditional software’s main source of revenue is support and maintenance whereas Cloud Services are by and large architected in such a way that the end users can configure the software based on their requirements. So, apparently, cloud services are user-friendly services and require less maintenance from the service provider (maintenance is not charged to the consumer).


Scalable and Elastic

  • Before going into the details let us define Scalability and Elasticity. Scalability is the ability of a service to size up or size down based on the user's requirement. Any software has some usage pattern, for example, an e-retail service (online eCommerce portal, like Amazon) will have high traffic peaks during festive seasons like Christmas, and payroll processing software has a very high usage at the end of every month (or based on the period in which the salary is processed), similarly, a service for showing examination results of students will have very high usage at the end of every semester or yearly session.
  • All the examples provided above demand sizing up your service to cater to the increased load. Now think of the reverse of the above usage pattern, i.e. there are times when a service showing results of students is not at all used or required, e-retailers services also go through some lean phases where their business is a little dull and won’t require as much infrastructure as required by them during their peak phase. So, the infrastructure should size down itself to save money.
  • Elasticity is the ability of the service to instantly add or remove servers (infrastructure) i.e. you can configure your requirement in advance or can configure it instantly based on your requirement and that is possible only if your service is scalable and elastic.


Resource Sharing

  • When we share resources the operation cost of the resources is also shared. A simple analogy can be like driving your own car vs. participating in carpooling. Apart from the cost advantage, sharing also leads to innovation by the service provider to make the service efficient and high performing. Also, the collective usage of the infrastructure makes the service provider responsible and in turn empowers the end user because the service provider has to invest a significant amount of time and brain for the upkeep of the service. The service provider is almost forced to maintain the good health of the service because all the customers are dependent on that service because any glitch will certainly lead to a mass outage of the service.
  • Resource sharing is architected through Multi-tenancy – i.e. a single database and code base is used by multiple customers.


Metered by Usage

  • Unlike traditional software where you invest a significant amount of money upfront cloud services are like post-paid or pre-paid services. In a cloud, service users should be measured in terms of the number of users, bandwidth consumption, virtual machines, hardware (like RAM or CPU), or server usage. As the customer pays based on the usage every parameter that is charged should be measurable.


Internet Technologies

  • This sounds simple and is self-explanatory but as more and more devices are getting connected every day with various screen sizes it becomes quite challenging to offer a service that renders itself consistently on any device. Also, cloud services strive for an easier signup service that can be used instantly and can be paid by using a credit card.




Comments

Popular posts from this blog

Suppose that a data warehouse for Big-University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg_grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg_grade measure stores the actual course grade of the student. At higher conceptual levels, avg_grade stores the average grade for the given combination. a) Draw a snowflake schema diagram for the data warehouse. b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each BigUniversity student. c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)?

Suppose that a data warehouse consists of the four dimensions; date, spectator, location, and game, and the two measures, count and charge, where charge is the fee that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. a) Draw a star schema diagram for the data b) Starting with the base cuboid [date; spectator; location; game], what specific OLAP operations should perform in order to list the total charge paid by student spectators at GM Place in 2004?

What is national data warehouse? What is census data?