As we know, HP is all about "The New Style of IT". To achieve this, HP has highlighted 4 Big Bets: Cloud, Security, Mobility and Big Data. Bart Blommaerts, Expert Information Developer, is going to talk about “Developing applications for the Cloud“. Bart will focus on these questions:
Why do we want applications in the cloud?
Which applications do we want in the cloud?
What methodology do we need to use, to move to the cloud?
Does the cloud have implications on how applications should be developed?
Bart will demonstrate potential pitfalls, and explain the HP approach that aims to avoid issues on the performance, elasticity, resilience and security of Cloud applications. This brown bag session will be an incremental update of a presentation Bart did at HP Discover in Barcelona last year. It is about concepts and methodology, not about technical implementation.
How does the Cloud help you achieve these objectives:
New Economics - The fundamental alignment of purchasing to consumption - pay for what you use, lower operational costs (b/t 10-50% in many cases), and from a financial perspective shifting the expenditures from capital expenditures to operational expenses
Speed – is about having your IT resources focused on highest value projects by freeing up cycles on maintenance/patching tasks. This is also about providing the tools to increase the flexibility and in many cases the reliability of your infrastructure.
Agility & innovation – enabling users to more quickly take advantage of the latest innovations, leverage the self-service capabilities of online services for employees, and enable them to be productive in many locations on many different devices.
MACRO REALIZATON:
These Cloud services will start coming into your organization and as an IT organization you can embrace and develop a strategy or have this change happen to you as your business stakeholders start to implement
Eg. Most of the time fat clients will not be an economic fit for the cloud .. Although it is possible (eg. Via JNLP)
Developers want to be agile, go fast, release often.
Operations wants to keep everything stable.
DevOps can solve this difference: Development and Operations need to work together better and sooner. Bridge Development and Operations for faster delivery of applications
To achieve this, we propose the continuous approach and far-reaching virtualization.
Continuous Approach:
Continuous Testing: reduces need and urge for testing at the end
Continuous Monitoring: detect issues faster
Continuous Improvement: decrease time to reproduce and fix issues faster
Continuous Deployment: resolve issues faster
Continuous Delivery: shorter time-to customer
Virtualization:
Servers: reduce risk of outage
Servers: reduce cost (no physical hardware)
Services: Increase quality: test earlier
Services: reduce time-to-market (test services that are finished, before the application is finished)
Flemish Government: migration to WLS.
Cry for standardization and openness .. While these might be very different.
This means: choose open standards, try to avoid propriety OS’s, avoid direct coupling between Java/Other and systems such as LDAP or AD, try to avoid technologies that require license fees.
Kamesh Pemmaraju, Product Manager at Dell.
This graph illustrates the first challenge I spoke about:
In a truly scalable application, an increase in resources results in a proportional increase in performance (purple line)
If there are some inherent performance flaws or bottlenecks in the application, you WILL be able to meet the demand because of the cloud infrastructure’s ability to scale up. However, you could end up paying more than you need to. You may start 10 VMs to meet the demand when you would only need 2 if the application was performance optimized in the right way
You will need to identify functional components causing performance constraints and refactor in order to fully take advantage of the cloud. Examples of this might include: Inefficient database queries, or decoupling compute-intensive components to they can scale independently from the rest of the application.
A stat from the just released CapGemini world quality report was that a quarter of the respondents indicated that they encountered application performance issues within the first few months of moving to the cloud
So this can be a very real issue
For building new applications or refactoring existing applications we strongly emphasize on modularity.
Where possible modules get their own life cycle to enable virtual services.
Benefits:
Only up-scale the services that require upscaling
Effective infrastructure resource management
Realtime feedback on load and thus performance of modules
Head-start for continuous improvement
Business:
Talk about services with the customer: what kind of services can he provide
Sell services, not applications
Maybe other parties are interested to consume your services?
Development:
Packaging:
OSGI, Maven Modules, Project Jigsaw
Scalability:
Multi-threading, parallelism
Business:
Does it make sense for a service to have it’s own life cycle?
Does the would-be service benefit from scaling? Eg. Complex calculations.
The next question is “what workloads are a fit for the cloud?”
There are 4 Key Patterns:
“On / Off” or Batch processing
Growing Fast
Unpredictable Bursting
Predictable Bursting
The first workload is an “on / off”. For example, a customer that runs risk analysis for hedge funds. The big challenge for hedge funds is acting quickly. You want to look at market trends, do some analysis and buy or sell based on what the analysis outcome. They will want to come in, book a bank of machines for a month or a week or maybe just a few hours to do their analysis then go back to their clients and make recommendations. This model makes complete sense because you don’t have to buy a bunch of machines that they will never use. They never sit empty, you come in, use what you want and turn it off.
Another example is an application that is growing quickly. Typically startups or companies launching a new product and want to plan for the best case scenario – and that is a hot service or product. Years ago this was not possible - a company or organization would have to gamble on making reasonable estimates on their needed IT capacity. Today, that gamble is no longer necessary.
The third example is unpredictable bursting. Lets say you are the sole provider of sporting goods and apparel for the university of Kentucky Wildcats basketball. (one of the final four teams).. As a smaller sports retailer, you are not able to predict and build for the infrastructure needed to handle the peek demands you will see after winning the tournament. I am not a Kentucky fan… just a prediction.
The last thing is predictable bursting, it is tax time, so lets use that as our example. Your business offers tax preparation services. You know in the months of March and April you will be running full out. Why carry the capacity to handle this predictable peak throughout the year? A cloud PaaS will allow you to throttle up your resources for these two months and throttle back down in May.
[next]
Not going into detail. Important: Service Platform is a platform. The Creation Services and Runtime Services should be perceived as building blocks for other services in the Service Platform.
Nice to know: Service Platform is used for development in the cloud: this means application development starts in the cloud!
Controller will be the HP CSA, which is an HP standard.
Besides creation, change and termination, the controller is also able to facilitate service discovery: what services are available / what services can be build .. Together?
Architecting elasticity in means:
Elasticity as a feature: how should the application behave if a new instance appears / disappears
Elasticity as a selling point: only pay for the computing time you need
Service Level Objective dependent: if availablity is crucial we will propose another configuration then the case were availablity is not crucial.
Options: load balanced servers, clustered servers, ..
Application behavior can often also be implemented in the chosen infrastructure: what should happen when a new middleware is spun?
This optimized approach combines secure architectural design principles, security code analysis or scanning, vulnerability assessments, and penetration testing to avoid, mitigate, find, or fix vulnerabilities as early as practical, resulting in fewer vulnerabilities to be addressed at the most expensive time – late in the development lifecycle.
Design security continuously: from development to deployment.
Do not take shortcuts.
HP Helion: which cloud is right for you? Focus on cloud
Accelerator Pack: more information, free demos, training, cost calculator, ..
At2c: focus on application