Академический Документы
Профессиональный Документы
Культура Документы
Here are six important ways cloud computing and virtualization enhance agile software
development.
When agile development is used without virtualization or clouds, development teams are limited
to one physical server per development, staging and production server need. However, when
virtual machines or cloud instances are used, development teams have practically an unlimited
number of servers available to them. They do not need to wait for physical servers to become
free to begin or continue their work.
You may use agile development but still experience delays in provisioning server instances and
in installing necessary underlying platforms such as database software. Just as the
Commonwealth Bank reduced the provisioning of an Oracle database from three months to two
minutes, agile development teams can provision the servers they need quickly themselves, rather
than wait for IT operations to do it for them.
Although an agile methodology aims to squeeze all the inefficiencies and delays out of software
development, in practice it becomes a serial activity. Cloud computing can push it toward
becoming a more parallel activity than it once was. This leads to more efficient, more effective
and better utilized agile software development teams.
Being able to spawn as many instances as needed enables agile development groups to innovate.
If a feature or a story looks interesting, a team can spawn a development instance quickly to code
it and test it out. There's no need to wait for the next build or release, as is the case when a
limited number of physical servers are available. When adding cloud computing to agile
development, builds are faster and less painful, which encourages experimentation.
As stated, cloud instances and virtualization greatly enhance continuous integration and delivery.
Builds and automated tests take time. Agile development groups may need to subsequently fix
the code for tests that fail during the automated testingand they need to do this again and again
until the build passes all the tests.
Having a large number of virtual machines available to the agile development group in its own
cloud or on the public cloud greatly enhances the speed of continuous integration and delivery.
Agile development groups may need to use a variety of project management, issue management,
and, if continuous integration is used, automated testing environments. A number of these
services are available as Software as a Service (SaaS) offerings in the cloud.
Agile development can use a combination of virtualization, private clouds and the public
cloud at the Infrastructure as a Service (IaaS) level. Such offerings include Amazon Web
Services, GoGrid, OpSource and RackSpace Cloud.
Then comes the use of Platform as a Service (PaaS) instances such as the Oracle
Database Cloud Service, the Google App Engine and the Salesforce.com platform
force.com, all of which include databases and language environments as services.
Finally, there are a number of SaaS services that specifically assist agile development,
including Saleforce.com, the Basecamp project management portal and TestFlight, which
provides hosted testing automation for Apple iOS devices.
In theory, agile development assumes that all features can be broken down into stories of uniform
size and slated for builds. In practice, agile projects may encounter features whose development
efforts last longer than a build or even a release. In code refactoring efforts, current releases may
need to be enhanced with minor enhancements and used in production, all while a major redesign
of code is going on. Code branching is necessary in these cases. Code branching and merging
involves juggling many versions of development and staging builds. With virtualization and
cloud computing, you can avoid buying or renting additional physical servers for these purposes.
Overall, virtualization and cloud computing remove the dependencies of test and development
servers on physical servers, whether they are virtual machines with just an operating system
installed or fully configured servers with platforms such as database software, language or code
libraries. Virtualization and cloud computing also become indispensable if agile teams intend to
practice continuous integration and delivery methods. This moves agile development more
toward a parallel activity, rather than a serial one, by eliminating the delays in provisioning. In
turn,enterprises can better align innovative development projects with business goals.
1. Licensing
First, you need to think about licensing. It is likely that your application is made up of many
different components, most of which have some type of licensing agreement associated with
them. You will need to review each of those agreements to determine if, or how, those licenses
will be affected by deployment in a cloud.If your application uses a component that is licensed
by CPU and you deploy it in a cloud environment designed to launch new instances and request
more resources as load increases, for example, you could easily exceed your CPU license limit.
You will need to understand how your licenses affect your ability to scale.
How your application handles sessions and locking will also be a factor in deployment and
migration decisions. If your application uses system-centric locking or session mechanisms,
which includes memory-based locks or memory-based session management, then it will most
likely not be able to utilize the dynamic scalability of the cloud. Locks are tied to an individual
system, which is contradictory to how cloud computing works. An application designed for the
cloud should use a shared locking mechanism or have session management design features.
3. Bandwidth requirements
Because you access a public cloud via the Internet, bandwidth is significantly limited when
compared to a private cloud. Given the public cloud's bandwidth limitation, you should only
consider applications that have moderate client bandwidth requirements. If you have an
application that uses extensive Microsoft File Sharing functions between the client and server,
for example, it is likely that the user will find the application unacceptable, as the traffic between
the client and server will overwhelm the client's Internet connection. It should be noted that this
limitation is not the case for inter-cloud (server to server) communications within a single
provider, as they typically use considerably more powerful connections within the cloud
provider.
4. Communication protocol
The cloud is based on the Internet Protocol (IP), so for an application to be considered, it must
use IP as its communication mechanism. While there are many protocols that can be run over IP,
the use of Transport Control Protocol (TCP) is preferred.
5. Data security
The application will need to provide security at the data storage, processing and transmission
stages. Three critical components of this are:
Data in transit needs to be protected either at the application or the transmission level.
You will find that most applications choose the transmission level for protection and the
Secure Sockets Layer (SSL)/Transport Layer Security (TLS) protocols are often used.
Data at rest must be protected by the application. The application must provide a
mechanism to protect the data stored in the cloud. Encrypting data at rest is the best
option at this time, and a future technical tip will delve into the specifics of this area.
Server to server communications are typically forgotten because they currently exist
within the data center. You will need to ensure the security of server to server (cloud
instance to cloud instance) communications, in addition to client to server
communications.
Moving or deploying your application to the cloud can be a very smart business move, but you
need to make sure you can do it successfully. We have discussed some of most important
application design aspects when considering the cloud. To recap, here are the design attributes
that will make it a "cloud-ready" application:
Flexible licensing
A parallel design
IP-based networking
A securable application
https://azure.microsoft.com/en-in/
Web Apps
Create and deploy mission-critical web apps that scale with your business.
Continuous deployment with Git, TFS, GitHub and Visual Studio Team Services
Enterprise grade
App Service is designed for building and hosting secure mission-critical applications. Build
Azure Active Directory-integrated business apps that connect securely to on-premises resources,
then host them on a secure cloud platform which is compliant with ISO information security
standard, SOC2 accounting standards and PCI security standards. Automatically back up and
restore your apps, all while enjoying enterprise-level SLAs.
Global scale
App Service provides availability and automatic scale on a global datacenter infrastructure.
Easily scale applications up or down on demand and get high availability within and across
different geographical regions. Replicating data and hosting services in multiple locations is
quick and easy, making expansion into new regions and geographies as simple as a mouse click.
Virtual Machines
Launch Windows Server and Linux virtual machines in minutes
Scale from 1 to thousands of virtual machine instances
Load balancing across multiple virtual machine instances is included and easy to configure. You
create the load balancer, add security ACLs to control access and define specific probes to help
monitor application health, all within the easy-to-use Azure portal.
SQL Database
A relational database-as-a-service that makes tier-1 capabilities easily
accessible
Flavorus unlocked new business with an on-premises to cloud hybrid architecture that supports
massive scale-out for temporal peaks.
* The 99.99% uptime SLA applies to Basic, Standard and Premium service tiers only. SQL
Database Web and Business Editions have an established uptime SLA of 99.9%.
MYOB has the ability to scale up to thousands of databases as needed, backed by a disaster
recovery solution and geo-redundancy.
Drive productivity through support for familiar functionality, tools and platforms
With a near-complete SQL Server programmable surface area, you can more easily migrate on-
premises SQL Server applications to Azure to help drive down datacenter costs and improve IT
productivity. Available in preview, full-text search allows fast and flexible indexing for keyword-
based querying of text data stored in tables. Drive DevOps tasks such as scale out or business
continuity using programmatic APIs for streamlined management as you scale to hundreds or
thousands of databases. SQL Database offers a choice of management toolsREST APIs,
PowerShell, the Azure portal with HTML5 support or SQL Server Management Studioand
supports a choice of popular platforms and technologies, including .NET, Java, PHP, Ruby on
Rails and Node.js. With Visual Studio integration, enjoy seamless development online or offline
and across on-premises and cloud-designed apps.
"The firewall and security configurations in SQL [Database] are great. Our cloud-based services
are now as secure as our datacenter-based services."
Mobile Apps
Build engaging iOS, Android, and Windows apps
AWS- https://aws.amazon.com/
Process required for deploying web services---
Concepts
Three components are required in order to deploy an application as a cloud service in Azure:
Service Definition
The cloud service definition file (.csdef) defines the service model, including the number
of roles.
Service Configuration
The cloud service configuration file (.cscfg) provides configuration settings for the cloud
service and individual roles, including the number of role instances.
Service Package
The service package (.cspkg) contains the application code and configurations and the
service definition file.
You can learn more about these and how to create a package here.
Three cloud service features require special configurations before you export a service package:
If you want to deploy a cloud service that uses Secure Sockets Layer (SSL) for data
encryption, configure your application for SSL.
If you want to configure Remote Desktop connections to role instances, configure the
roles for Remote Desktop.
If you want to configure verbose monitoring for your cloud service, enable Azure
Diagnostics for the cloud service. Minimal monitoring (the default monitoring level) uses
performance counters gathered from the host operating systems for role instances (virtual
machines). "Verbose monitoring* gathers additional metrics based on performance data
within the role instances to enable closer analysis of issues that occur during application
processing. To find out how to enable Azure Diagnostics, see Enabling Diagnostics in
Azure.
To create a cloud service with deployments of web roles or worker roles, you must create the
service package.
If any role instances require a certificate, create the certificates. Cloud services require
a .pfx file with a private key. You can upload the certificates to Azure as you create and
deploy the cloud service.
If you plan to deploy the cloud service to an affinity group, create the affinity group. You
can use an affinity group to deploy your cloud service and other Azure services to the
same location in a region. You can create the affinity group in the Networks area of the
Azure classic portal, on the Affinity Groups page.
3. In Region or Affinity Group, select the geographic region or affinity group to deploy the
cloud service to. Select an affinity group if you want to deploy your cloud service to the
same location as other Azure services within a region.
The Cloud Services area opens, with the new cloud service displayed. When the status
changes to Created, cloud service creation has completed successfully.
5. Click OK (checkmark).
You can watch the progress of the upload in the message area, shown below. When the
upload completes, the certificate is added to the table. In the message area, click OK to
close the message.
How to: Deploy a cloud service
1. In the Azure classic portal, click Cloud Services, click the name of the cloud service, and
then click Dashboard.
3. In Deployment label, enter a name for the new deployment - for example,
MyCloudServicev4.
4. In Package, use Browse to select the service package file (.cspkg) to use.
5. In Configuration, use Browse to select the service configure file (.cscfg) to use.
6. If the cloud service will include any roles with only one instance, select the Deploy even
if one or more roles contain a single instance check box to enable the deployment to
proceed.
Azure can only guarantee 99.95 percent access to the cloud service during maintenance
and service updates if every role has at least two instances. If needed, you can add
additional role instances on the Scale page after you deploy the cloud service. For more
information, see Service Level Agreements.
2. Under quick glance, click the site URL to open your cloud service in a web browser.
Next steps
https://azure.microsoft.com/en-in/documentation/articles/cloud-services-how-to-create-deploy/
Public Cloud
By now, most organizations understand the cost benefits of an IaaS provider like Amazon Web
Services, including a low and predictable cost of ownership and a shift from a capital
expenditure to an operating expenditure. This makes it possible to significantly reduce an
organizations upfront costs, its ongoing costs of IT labor and potentially its tax liability.
The technical benefits are equally attractive: scalability, automated deployments, and greater
reliability, to name a few. There are also very few technical limitations that would prevent an
organization from moving their infrastructure to AWS; almost every function a traditional
resource supports in the private cloud or in a datacenter could be replicated in AWS.
These application tiers are especially well suited to the public cloud:
Long-term storage, including tape storage, which has significantly more cost-effective
solutions in AWS (Glacier and Storage Gateways Virtual Tape Library)
Data storage of any kind, especially if you are currently hosting physical media that fails
often or needs to be replaced (S3 is an infinitely expandable, low-cost storage resource)
The web tier of an application that is bursty or highly seasonal (EC2, Auto Scaling,
ELBs)
Any new application that demand is uncertain for, especially for microsites or other
interactive properties for marketing and ad campaigns
Testing environments, due to the fact that it is so much easier to spin up and down
instances for load testing.
Enterprises must then decide whether they want to manage their public cloud infrastructure
themselves or outsource it to a managed cloud services provider. A managed cloud services
provider can maintain the entire cloud infrastructure (web servers, application servers, load
balancing, custom failover scripts) and some may also be able to integrate with on-premises or
private cloud solutions to provide a single monitoring interface.
Note that compliance requirements no longer necessitate a private cloud solution rather than a
public cloud solution. AWS has been on the leading edge of compliance in the cloud for several
years, and while there is lingering skepticism, the adoption of AWS cloud by the largest and most
complex healthcare and financial institutions is a indication of the degree to which AWS ensures
compliance and security in the cloud. We presented at Amazon re:Invent on the architecture
required for HIPAA-compliant deployments here.
Private Cloud
Although there are many advantages to the public cloud, enterprises very rarely deploy 100% of
their applications into the public cloud. Logistically, it is often much simpler to move from your
on-premises environment to a private cloud than from on-premises to public cloud.
Private cloud environments can be configured to support any application, just as your datacenter
currently hosts it. Private cloud is an especially attractive option if certain features in legacy
applications prevent some applications from operating well in the public cloud.
Here are some indicators that your application would be a good candidate for maintenance in a
private cloud:
You are using Oracle RAC (shared storage) and require dedicated infrastructure for
compliance. The shared storage equivalent in AWS, RDS, is not HIPAA-compliant.
You need high performance access to a file system, as in a media company that creates or
produces large video files.
An application is poorly written and infrequently used, and therefore not worth the effort
of migrating to the public cloud.
The application has very predictable usage patterns and low storage costs.
An application is unstable and heavily trafficked, but current IT staff is unfamiliar with
the application. This may instead be a case for partial rewriting in the cloud.
The engineering team responsible for maintaining the application is not equipped for
migrating the application in a cost-effective time frame. This may instead be a case for
bringing on a managed cloud service provider.
A private cloud solution can be implemented in your on-premises datacenter with a virtualization
layer such as VMware, though many mid-sized and large enterprises let a managed private cloud
services provider maintain servers, storage, network, and application infrastructure.
On-Premise Servers
While cloud-based infrastructure has many advantages, there are some applications that would
see little to no cost benefit from migrating to the cloud. This is usually the case when you have
invested significant capital in on-premise infrastructure, such as high-performance databases,
that are specially configured to support that application.
Here are some situations where on-premises infrastructure might work best for your application:
The cost savings of cloud storage and compute resources do not outweigh significant
capital in on-premise solutions
Your application already sees high performance and high availability from custom
infrastructure
You produce large multimedia files that your in-house staff needs low-latency access to
for editing purposes
Applications that meet these requirements are often not well-suited to the cloud. Often it would
be wiser financially to maintain the infrastructure until its value has depreciated.
Hybrid Cloud
Ninety percent (90%) of enterprises say they are going to pursue a hybrid cloud solution this
year. As explained above, enterprise architecture is often so complex that a hybrid cloud solution
where public, private or on-premises infrastructure supports a single application is the best
solution.
Hybrid architectures are especially attractive for large organizations that want to explore the
flexibility and scalability of the public cloud. An audit will not always reveal how an application
will perform in the public cloud, so enterprises choose to test a single tier in the public cloud
while maintaining key infrastructure on their private cloud or dedicated infrastructure.
A hybrid system is also a good solution if there is institutional hesitancy about the security of the
public cloud for sensitive data (whether this is justified or not). Frankly, it is often easier to
convince internal executive or IT teams to experiment with cloud solutions rather than adopt
them wholesale. Maintaining veteran IT staff and legacy applications on legacy infrastructure
while opening new lines of business in the cloud is a cost-effective solution that also manages
institutional risk.
Finally, an important thing to understand about hybrid environments is that they are only as
strong as the integrations that unite them. Performance monitoring, regular testing, and data
ingress and egress procedures will reveal future areas of difficulty as well as signal when and
how to further evolve the application. The team orchestrating the infrastructure is almost always
more important than the specific type of cloud solution you chose.
Public Clouds
A public cloud is one in which the services and infrastructure are provided off-site over the
Internet. These clouds offer the greatest level of efficiency in shared resources; however, they are
also more vulnerable than private clouds. A public cloud is the obvious choice when
Your standardized workload for applications is used by lots of people, such as e-mail.
You need incremental capacity (the ability to add computer capacity for peak times).
Many IT department executives are concerned about public cloud security and reliability. Take
extra time to ensure that you have security and governance issues well planned, or the short-term
cost savings could turn into a long-term nightmare.
Private Clouds
A private cloud is one in which the services and infrastructure are maintained on a private
network. These clouds offer the greatest level of security and control, but they require the
company to still purchase and maintain all the software and infrastructure, which reduces the
cost savings. A private cloud is the obvious choice when
Your business is your data and your applications. Therefore, control and security are
paramount.
Your business is part of an industry that must conform to strict security and data privacy
issues.
Your company is large enough to run a next generation cloud data center efficiently and
effectively on its own.
To complicate things, the lines between private and public clouds are blurring. For example,
some public cloud companies are now offering private versions of their public clouds. Some
companies that only offered private cloud technologies are now offering public versions of those
same capabilities.
Hybrid Clouds
A hybrid cloud includes a variety of public and private options with multiple providers. By
spreading things out over a hybrid cloud, you keep each aspect at your business in the most
efficient environment possible. The downside is that you have to keep track of multiple different
security platforms and ensure that all aspects of your business can communicate with each other.
Here are a couple of situations where a hybrid environment is best.
Your company wants to use a SaaS application but is concerned about security. Your SaaS
vendor can create a private cloud just for your company inside their firewall. They
provide you with a virtual private network (VPN) for additional security.
Your company offers services that are tailored for different vertical markets. You can use
a public cloud to interact with the clients but keep their data secured within a private
cloud.
The management requirements of cloud computing become much more complex when you need
to manage private, public, and traditional data centers all together. You'll need to add capabilities
for federating these environments.
loud Storage is a service where data is remotely maintained, managed, and backed up. The
service allows the users to store files online, so that they can access them from any location via
the Internet. According to a recent survey conducted with more than 800 business decision
makers and users worldwide, the number of organizations gaining competitive advantage
through high cloud adoption has almost doubled in the last few years and by 2017, the public
cloud services market is predicted to exceed $244 billion. Now, lets look into some of the
advantages and disadvantages of Cloud Storage.
1. Usability: All cloud storage services reviewed in this topic have desktop folders for Macs and
PCs. This allows users to drag and drop files between the cloud storage and their local storage.
2. Bandwidth: You can avoid emailing files to individuals and instead send a web link to
recipients through your email.
3. Accessibility: Stored files can be accessed from anywhere via Internet connection.
5. Cost Savings: Businesses and organizations can often reduce annual operating costs by using
cloud storage; cloud storage costs about 3 cents per gigabyte to store data internally. Users can
see additional cost savings because it does not require internal power to store information
remotely.
1. Usability: Be careful when using drag/drop to move a document into the cloud storage folder.
This will permanently move your document from its original folder to the cloud storage location.
Do a copy and paste instead of drag/drop if you want to retain the documents original location in
addition to moving a copy onto the cloud storage folder.
4. Data Security: There are concerns with the safety and privacy of important data stored
remotely. The possibility of private data commingling with other organizations makes some
businesses uneasy.
5. Software: If you want to be able to manipulate your files locally through multiple devices,
youll need to download the service on all devices.
A cloud application (or cloud app) is an application program that functions in the
cloud, with some characteristics of a pure desktop app and some characteristics of
a pure Web app. A desktop app resides entirely on a single device at the user's
location (it doesn't necessarily have to be a desktop computer). A Web app is stored
entirely on a remote server and is delivered over the Internet through a browser
interface.