One of the pain points with migrating your app to the cloud is that while it's pretty easy to setup a server in the cloud and load up your software, the basic setup usually won't scale over time. As a result your developers end up spending time managing the scalability and availability and creating solutions around the same, or you end up outsourcing and paying to manage this.
New age services such as Amazon Web Services, BeanStalk and CloudFormation, address these pain points by providing environments and tools which automatically handles the capacity provisioning, load balancing, auto-scaling and application health monitoring etc, while allowing us to retain full control over the AWS resources and giving system administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly fashion.
So are these services cost competitive as compared to outsourcing the management of your infrastructure to some PAAS provider? Do these services support any technology stack? Do they support any and all the architectures that your apps implement? What are the optimal architectures that your applications should implement to leverage these services to their fullest?
This webinar gives the answers to these questions and to discuss how your apps could leverage various services to achieve max elasticity and availability to your application, allowing applications to handle peaks in demand, while you are not forced to pay for resources you don't need.
4. Introduction: Speakers
Girish Karachiwala Yatin Kulkarni
Head Of Technology Chief Architect – Cloud Computing
Compassites Software Solutions Pvt Ltd Compassites Software Solutions Pvt Ltd
Girish is Head of Technology at Yatin is Chief Architect – Cloud Computing
Compassites. In his 14 years of experience at Compassites. With over 17 years of
in IT industry and his passion about creating hands-on experience in architecting and
simple and innovative technology solutions implementing internet, intranet, and
to complex business problems, Girish has desktop enterprise applications for clients
provided enterprise level, high end technical in United States, Europe, Africa, Far East,
solutions for various problems in business and Middle East. Over the last four years
domains including pharmaceutical, banking Yatin has been focusing on applying
and finance, securities, insurance, customer various cloud technologies to domains
relationship management, mortgage, social such as Map Data Management and and
networking and statistical data management Enterprise Content Management.
to customers across the globe.
5. What is Cloud?
Cloud Computing
Cloud computing is the use of computing
PaaS SaaS resources (hardware and software) that are
delivered as a service over a network (typically
the Internet).
IaaS
Software as a Service (SaaS)
Application Software in the cloud ..
e,.g: Salesforce, Microsoft Office 365, Google apps
Platform as a Service (PaaS)
Computing Platform: OS, execution environments, DB, application servers ..
e,.g: Force.com, Amazon Elastic Beanstalk, Google App Engine, Windows
Azure Compute, Cloud Foundry, Engineyard
Infrastructure as a Service (IaaS)
Servers, Virtual Machines, Storage, Firewall, Load Balancer, Network
e.g. AWS – EC2, Rackspace cloud, Datapipe, Windows Azure VMs
6. Platform as a Service (PaaS)
The whole spectrum of cloud based tools and services to be utilized by web application
developers could be categorized as a PaaS.
An alternative to the traditional way of acquiring the hardware and software upfront, developing web
applications using desktop development tools, and then manually deploy those applications to a
hosting provider, and then manage and maintain the capacity and scalability of the same yourself.
PaaS typically offers faster, more cost effective, cloud based, computing platform for developers,
typically including operating system, programming language execution environment, database,
and web or application server.
It could also include software lifecycle management tools and services like
configuration management to continuous integration and release process.
Developers can focus on application expertise for their business, not managing
complex hardware and software infrastructure, configuration and release
management.
e.g: CloudFoundry, Amazon BeanStalk, Force.com, Google App Engine
7. PaaS Limitations
• Vendor Lock-in – Costing model changes, shifts in technology, add-on services.
• Existing apps may not confirm to vendor specifications, best practices dictated by
vendor.
• Runtime limitations – versions of software/ frameworks your applications need, might
not be supported.
• Add-on limitations – Your application might need add-ons which might not be
supported.
• Operational limitations – You might loose control on infrastructure, you may not be
able to customize your builds, or debug deployments.
8. Paas Offerings
Amazon Web Services is leading the innovation, in PaaS, with its innovative
offerings, which could be used as building blocks for a modern web application.
e.g:
• Amazon RDS
• Amazon ElastiCache
• Amazon DynamoDb
• AWS Identity Management
• Amazon Simple Queue Services
• Amazon Simple Workflow Services
• AWS Marketplace
• AWS Elastic BeanStalk
• AWS CloudFormation
9. AWS Elastic BeanSalk
AWS Elastic Beanstalk is an even easier way for you to quickly deploy and manage
applications in the AWS cloud. You simply upload your application, and Elastic
Beanstalk automatically handles the deployment details of capacity provisioning,
load balancing, auto-scaling, and application health monitoring.
At the same time, with Elastic Beanstalk, you retain full control over the AWS
resources powering your application and can access the underlying resources at
any time.
It leverages AWS services such as Amazon EC2, Amazon S3, Amazon Simple
Notification Service, Elastic Load Balancing, and Auto Scaling to deliver the same
highly reliable, scalable, and cost-effective infrastructure.
You retain full control over the AWS resources powering your application. If you
decide you want to take over some (or all) of the elements of their infrastructure,
you can do so seamlessly by using Elastic Beanstalk's management capabilities.
10. AWS CloudFormation
AWS CloudFormation gives developers and systems administrators an easy way to
create and manage a collection of related AWS resources, provisioning and updating
them in an orderly and predictable fashion.
You can use AWS CloudFormation’s sample templates or create your own templates
to describe the AWS resources, and any associated dependencies or runtime
parameters, required to run your application.
Once deployed, you can modify and update the AWS resources in a controlled and
predictable way allowing you to version control your AWS infrastructure in the same
way as you version control your software.
14. Best Practices
• Modularize your web components based on expected
usage patterns
• Externalize session management via the use of an in-
memory object cache
• Provide read-only access to business object model
entities via a separate persistence unit