• No results found

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

N/A
N/A
Protected

Academic year: 2021

Share "CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

CLOUD DEVELOPMENT

BEST PRACTICES &

(2)

Universal competition due to globalization and a high request for offers make it difficult for companies to establish a working solution that immediately serves their target customers. The classic software development approach calls for infrastructure architecture, infrastructure building and maintenance, code deployment, software monitoring for optimum uptime and a running application. All of these are supported by consistent investment of time and money and require specialized IT professionals.

Countless businesses fall short of these requirements because they don't have access to the professionals they need, or the necessary time to market is too limited for them to compete. By applying the following best practices, your cloud solution will become the clear choice for reaching new markets, increasing your customer base and growing your business geographically.

CLOUD DEVELOPMENT BEST PRACTICES

Cloud-based solutions are increasingly present on the IT market and

adopted by a growing number of companies from all industries. Cloud is a

new concept in the IT software development area, increasingly used in

research and implementations due to clear advantages, such as:

Configurability

Flexibility

Reduced time

to market

Solution

Cloud solutions have emerged as the remedy for these shortcomings. But in order to succeed, it is important to develop and deploy a software application with best practices that apply from the beginning of software development.

A web application hosted in the cloud needs to be scalable. In order to achieve this, it is important to decide from the very beginning of the development phase, namely from system design and architecture design, how your application will expand over time.

(3)

Hosting this kind of application in the cloud has some limits in terms of growth: you have the opportunity to supplement the resources that serve the application (like CPUs), but this can be applied only as much as the hardware allows it. In other words, your growth is limited by hardware, and it is not recommended to be applied in the design of cloud applications.

Vertical growth is a traditional approach in a single-server kind of configuration. Its usefulness in a cloud environment is only due to the fact that the user needn't be concerned about hardware details; he only needs to request a virtual machine (VM), and increase the resources of that VM as his needs grow. Resources can be

supplemented by increasing the number of virtual CPUs, increasing available memory or disk space, installing additional network interfaces if needed—essentially, by increasing virtual hardware power.

This is a major advantage in the cloud because it allows you to add as many resources as you need. It is important that the app design allows the sync between the running machines so that there are no discrepancies.

For web applications, this kind of architecture is translated into a single common session used by all enabled machines. Since essentially all of the machines are sharing the same common session, the user will not experience any crash, even if his requests are now served by another machine. It is recommended that the common session be stored on a separate server in the cloud or in the application database (Amazon

recommends Dynamo DB to store the common session).

Both horizontal and vertical growth are suitable for cloud, but

horizontal growth is preferred as the new paradigm in cloud

development. Vertical has some limitations imposed by hardware,

while horizontal is limited only by the application architecture.

The application is designed to work (compute)

on a single machine.

The application is designed to compute on multiple machines,

through a modular architecture.

(4)

Select a trusted deploy system. Implement a message-queuing

service.

Split the service so that two distinct machines do not process the same set of data and, if one of them crashes, no unprocessed data will remain.

Amazon SQS for applications hosted in Amazon Cloud.

Utilize job distribution solutions.

❶Do work in parallel.

❷ Load balance processing.

❸ Call functions between languages. It can be used in a variety of applications, from high-availability

websites to the transport of

database replication events.

It is the nervous system for how distributed processing

communicates.

Gearman is a job distribution solution that suits all cloud applications.

It provides a generic application framework that farms out work to better-suited machines or processes.

Have in place an alert system. Notify the development team in

real time about the status of

machines and applications.

Major cloud providers have a basic alert system in place that can be supplemented by the Nagios alert system.

BEST PRACTICE THE REASON BEHIND IT OSF TECHNICAL TIP

What?

Why?

How?

Constantly collect data and centralize it.

❶ Intervene when needed.

❷ Take the best path for future software development.

❸ Decide if the cloud infrastructure needs to be adjusted in accordance with the current system behavior.

log4netis a useful library that helps in statistics collection and enables the creation of a log output to a variety of targets in .NET applications.

It is suitable not only for cloud

applications, but for any other kind of system as well.

(5)

BEST PRACTICE THE REASON BEHIND IT OSF TECHNICAL TIP

What?

Why?

How?

Make use of persistence layers. Perform the migration from a SQL database to an Amazon database with minimal effort.

Your application should be able to be linked to any kind of database.

Upgrade to the latest services available in the cloud provider portfolio.

This should be a permanent concern when dealing with cloud-hosted applications.

Use dedicated storage services. Avoid storing data on machines that run or process in the cloud.

OSF Global Services has seen positive results with Amazon S3.

Implement a distribution system to the application

nodes.

❶ Have a tag on the Source Control

Tool from which the code is

pushed to a new cloud machine .

❷ Assist with disaster recovery and scaling while reducing the deploy effort and downtime.

There are more advanced solutions for distribution systems like

Capistrano or Puppet, embedded in system node images, which retrieve the application packages and code from a centralized store through

SVN and Chron Jobs.

(6)

CLOUD DEVELOPMENT SUPPORT APPLICATIONS

Modern Software development methodologies are focused on Agile

development principles, which enable you to have a usable software

application with a shorter production time. The Agile methodology

principles especially fit with the cloud concept when we consider

time to market.

Agility and cloud fit with any software application whether you have an ecommerce store, a financial application or a human resources management tool. They promise to support your efforts in penetrating new markets, in increasing your number of users or customers, or to operate in different geographical regions.

Nowadays, Agility and cloud concepts are supported by various tools and applications, or by complete services provided by companies that allow you to reach your business objectives.

Solution

As a supporter of Agility and cloud-based solution development, GIT has a set of advantages that contribute to achieving usable and functional software:

• GIT is decentralized compared to SVN, which runs on a server and depends on an internet connection. Using GIT, you can work offline, and when an internet connection is available, a push is performed and the committed code is synced with the rest of the application. If you are using SVN, offline development is not possible.

• BitBucket has an optimum uptime.

• BitBucket has code review implemented, code compare functionalities and the feedback is provided per line of code. So, the code review process is facilitated by the BitBucket application.

• The back-up of the code is performed by the provider, in the cloud. No maintenance

is needed.

• GIT was designed to be fully distributed from the start, allowing each developer to have full local control and to develop as close as possible to production. This leads to fewer system integration bugs and issues.

• Due to distribution, you inherently do not have to give commit access to other

people in order for them to use the versioning features; instead, you decide when to merge what from whom.

(7)

CONCLUSION

The development of cloud-based solutions is a challenge, but also an opportunity to grow faster than your competitors, obviate downtime of your application, support an increasing number of users and compete on all geographical markets. Start with a competitive and professional cloud technology services provider that knows how to architect, design, develop, test and run your application using the appropriate tools that create a real advantage from Agile development—and get the most out of your cloud-based solution.

Enable your Website Increase Conversion Rates Expand Globally

Thank You

for Reading!

For more valuable insights, access our entire library. Share with friends and colleagues:

For more information on OSF Global Services’

digital commerce and optimization

services, please check out our website:

www.osf-commerce.com

End-to-end ecommerce services, cutting edge solutions and best-practice methodologies to help you:

References

Related documents

atmospheric circulation changes linked with extreme high and low daily GBI episodes 41.. are used to shed light on potential linkages between Greenland blocking and jet-stream

The east and west elevations continue the same general pattern of the south facade with filled arched openings on the main level, alternating single and paired

En general, hoy, gracias a los nuevos enfoques existe todo un universo de líneas y temas de investigación dentro de la historia militar en España, como el de la violencia

adjustments in an on-line, “real-time” environment. The payment system must accommodate payment in cash and by personal check, money order and credit and debit cards and must

In particular, it will explain how the IBM Smart Business Development & Test Cloud can be used to realize many of these benefits as well as provide step-by-step

How does cloud Service Provider Support affect cloud

If your web site is hosted on a shared cloud platform or if you offer services or applications in the cloud, Prolexic recommends the following best practices to help ensure that

Our research shows British Members of the European Parliament (MEPs) to be relatively at ease working with the different faith-based organisations which seek to influence the