360 likes | 541 Views
Migrating Applications to the Cloud. Peter Johnson ( peter.johnson2@unisys.com ) CMG ‘11, Washington, D.C. 7 December 2011 Session 454, Paper 1033. Abstract.
E N D
Migrating Applications to the Cloud Peter Johnson (peter.johnson2@unisys.com) CMG ‘11, Washington, D.C. 7 December 2011 Session 454, Paper 1033
Abstract So you have decided to move one or more of your enterprise applications to the cloud. What are some of the migration issues that you should consider? Which applications are a good fit for the cloud? Could you possibly offer your application as a Software as a Service (SaaS) solution? This paper looks at these questions and many more to help you understand the various possibilities when moving an application to the cloud and to help you better prepare for that migration.
Agenda • Introduction • Cloud Reference Model • On Demand Self-Service • Broadband Network Access • Resource Pooling • Rapid Elasticity • Measured Service • Other Considerations • IaaSvsPaaS • Who are Your Users? • Networking Issues • Expect Failure • Licensing Issues • Application Lifecycle and Processes • From Virtualized to the Cloud
Introduction • You have an application running in your datacenter • You want to run the application in the cloud • What does that mean? • Researched numerous cloud SaaS offerings to see what make them tick • Handling large numbers of users, large amounts of data • Understanding issues they encountered and overcame • Examined how the NIST definition of cloud computing applied to SaaS
How SaaS(y) is Your App? Typical datacenter app Ideal SaaS app Is your app here? Or is it here?
How SaaS(y) is Your App? Datacenter App networkaccess self service Ideal SaaS app resource pooling measure service networkaccess self service other elasticity resource pooling measure service other elasticity
Agenda • Context • Cloud Reference Model • On Demand Self-Service • Broadband Network Access • Resource Pooling • Rapid Elasticity • Measured Service • Other Considerations • IaaSvsPaaS • Who are Your Users? • Networking Issues • Expect Failure • Licensing Issues • Application Lifecycle and Processes • From Virtualized to the Cloud
Typical On-Boarding Process • 2. Manager notifies IT, via: • email • web page • ITSM ticket 1. New employee is hired 4. Employee informed (usually via email) 5. Employee accesses application • Issues: • Manual process • Slow (hours) • Low volume • 3. IT grants user access, via: • updates Active Directory • other
Self-Service On-Boarding Process Application registration page or portal 1. User requests access • Benefits: • Automated • Fast (minutes) • High volume • Issues: • Access restrictions 5. User uses app On-boardingautomation invoked User sent“welcome”email userregistered ScriptRunbook App code
Other Self-Service Considerations • No access to Active Directory with public cloud • Use database for registered users • Registration can be handled by a separate application • Might need a new home page • Think about how to unregister users • Accumulation of data users no longer care about
Agenda • Context • Cloud Reference Model • On Demand Self-Service • Broadband Network Access • Resource Pooling • Rapid Elasticity • Measured Service • Other Considerations • IaaSvsPaaS • Who are Your Users? • Networking Issues • Expect Failure • Licensing Issues • Application Lifecycle and Processes • From Virtualized to the Cloud
Network Access in Data Center http, https web service sockets, EJB, messaging, etc.
Network Access in the Cloud disallow http access X http, https encrypt web service X blocked by firewall sockets, EJB, messaging, etc.
Network Access in Data Center standard corporate desktop with preloaded applications standard corporate laptop with preloaded applications
Network Access in the Cloud • desktops & laptops running: • Windows • Mac OS X • Linux • Variety of browsers Netbooks Smart phones tablets Action plan: Ensure browser works with your application Provide native mobile app(UI probably written from scratch)
Agenda • Context • Cloud Reference Model • On Demand Self-Service • Broadband Network Access • Resource Pooling • Rapid Elasticity • Measured Service • Other Considerations • IaaSvsPaaS • Who are Your Users? • Networking Issues • Expect Failure • Licensing Issues • Application Lifecycle and Processes • From Virtualized to the Cloud
Data Sharing and Separation Acme Inc. BusinessIntelligenceService Acme Inc. data Apex Ltd. data Apex Ltd.
Multi-Tenancy Models - #1 Acme Inc. Each tenant has own VM(s) and own database Acme Inc. data Application does not need to be tenant aware Apex Ltd. Apex Ltd. data
Multi-Tenancy Models - #2 Acme Inc. Each tenant has own VM(s) but they share the same database Acme Inc. data Application needs to be tenant aware, but only for database access Apex Ltd. data Apex Ltd.
Multi-Tenancy Models - #3 Acme Inc. Tenants share the VM(s) but each has own database Application needs to be tenant aware Acme Inc. data Apex Ltd. Apex Ltd. data
Multi-Tenancy Models - #4 Acme Inc. Tenants share the VM(s) and the database Application needs to be tenant aware Acme Inc. data Apex Ltd. Apex Ltd. data
Agenda • Context • Cloud Reference Model • On Demand Self-Service • Broadband Network Access • Resource Pooling • Rapid Elasticity • Measured Service • Other Considerations • IaaSvsPaaS • Who are Your Users? • Networking Issues • Expect Failure • Licensing Issues • Application Lifecycle and Processes • From Virtualized to the Cloud
Elasticity Poster Child - Animoto EC2 Servers in Use Time (interval between text is 16 hours) Reference: http://aws.typepad.com/aws/2008/04/animoto---scali.html
Elasticity Considerations • Existing applications can benefit from scale down, making resource available for other tasks • To scale up, application must be architected for it • Use multiple tiers • Use stateless design • Use distributed design • Database considerations • Use a NoSQL database for data that doesn’t need transactional semantics • Consider caching and/or sharding • Does your cloud provide automatic elasticity (EC2), or do you have to check in your application (Azure)
Agenda • Context • Cloud Reference Model • On Demand Self-Service • Broadband Network Access • Resource Pooling • Rapid Elasticity • Measured Service • Other Considerations • IaaSvsPaaS • Who are Your Users? • Networking Issues • Expect Failure • Licensing Issues • Application Lifecycle and Processes • From Virtualized to the Cloud
Measured Service Considerations • Who gets billed? • How will you bill? • Per request? • Request processing time? • Per megabyte moved/stored? • Flat rate per month/year? • If billing per use or by volume, provide portal where customer can check on current usage
Agenda • Context • Cloud Reference Model • On Demand Self-Service • Broadband Network Access • Resource Pooling • Rapid Elasticity • Measured Service • Other Considerations • IaaSvsPaaS • Who are Your Users? • Networking Issues • Expect Failure • Licensing Issues • Application Lifecycle and Processes • From Virtualized to the Cloud
Application Deployment: IaaS or PaaS? Microsoft Azure Application PaaS ? SQL Azure IaaS rewrite Google AppEngine data data Spring, etc.
Who are Your Users? Importanceof NIST Characteristics Measured Service Network Access Resource Pooling Self Service Elasticity Low Medium Low Medium Low Employees Other Companies Medium Medium Low Medium Low High High High High Medium Public (Your mileage may vary…)
Networking Issues Network Usage If you have a single application running on a box, what is the network usage? If you have a dozen VMs on a box, now what is the network usage? Virtual LAN Each VM has its own LAN, no visibility of traffic of other VMs. Datacenter Access Most private cloud vendors provide VPN access so that you can hook your apps back to the datacenter. No Broadcast Support Might require config changes for Java EE app servers
Expect Failure: What Could Go Wrong? Datacenter goes down Solution: Distribute app among data centers App or VM crashes Solution: Run multiple copies, load balancer ? Trunk line goes down Solution: Replicate apps and databases between regions Database goes down Solution: Cache data updates
Licensing Issues Does your application use software that comes from a third-party? Does your license agreement allow you to run the that software in the cloud? • Issues: • Software locked down to MAC/IP address • License billed by machine size (e.g. CPU count) • Is that physical machine or virtual machine? • Can you fire up extra copies? (might need more for elasticity) • Will you be billed for actual copies used or potential copies? • Can you migrate the software from one cloud to another? Using open source software will help you avoid these licensing issues.
Application Lifecycle • How do you introduce changes/fixes/new versions? • Some SaaS providers use rolling updates • Most SaaS provides perform regular updates (weekly, daily, even hourly), rather than major infrequent upgrades • How do you test the app? • Many cloud vendors provide desktop simulation tools • Google AppEngine SDK • Microsoft Azure SDK • etc. • Set up some tests systems in the cloud
Conclusion: What’s the Shape of Your App? networkaccess self service resource pooling measure service networkaccess self service other elasticity resource pooling measure service other elasticity
Peter Johnson (peter.johnson2@unisys.com)CMG ‘11, Washington, D.C. 7 December 2011 Session 454, Paper 1033 Thank you! Questions?