Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Cloud computing What Why How
1.
2. This presentation reflects my own view on cloud computing and does not necessarily represent Oracle’s cloud computing strategy. To understand Oracle’s cloud computing strategy, please see various Oracle Open World 2010 presentations available at www.oracle.com/rednetwork
7. Rationale for Cloud Computing: Enterprise Perspective Source: “An SME perspective on Cloud Computing, a Survey”, The European Network and Information Security Agency, Nov, 2009
26. Server Virtualization and Clustering Deliver Resource Pooling and Elastic Scalability Both server virtualization and clustering are key technologies for cloud Single Physical Resource Consumers Multiple Virtual Resources Server Virtualization Make one physical resource look like many Virtualization Software Clustering Software Consumers Multiple Physical Resources Clustering Make many physical resource look like one Single Virtual Resource
32. Taxonomy for Cloud Computing Source: Cloud Computing Use Cases White Paper V2, Cloud Computing Use Case Discussion Group http://creativecommons.org/licenses/by-sa/3.0/
33. Build Time vs. Run Time Perspectives Need to Separate Development / Operations Horizons BUILD TIME RUN TIME Source “Enterprise Cloud Computing: What, Why and How” by Rex Wang, Oracle Process Modeling, Simulation and Documentation Deployment Engineering Cloud Monitoring and Metrics Service Identification & Discovery End Users Application Owner Service Developer Service Deployer Cloud Operator Cloud Builder
34. Example of Build vs. Run Time 1. Set Up Cloud 2. Build App 3. Use App 4. Manage App BUILD TIME RUN TIME Set up Cloud Platform Set up self-service portal Set up shared components Dept App Build app using shared components IT App Developer Deploy using self service App Users App Owner Manage Adjust Capacity Review Charge-back Use app Self-Service Interface Shared Components Application Server Integration / SOA BPM Portal Security & Identity System Manager Database Operating System,Virtualization,Server,Storage Cloud Platform
37. Do You Provide or Use Internal or Private Clouds? Source: IOUG ResearchWire member study on Cloud Computing, conducted in August-September 2010. 28.6% 28.6% of respondents have internal or private clouds today Yes, in production at scale 11.3% Yes, in limited use 12.8% Yes, in pilot stage 4.5% Preliminary planning 4.9% Under consideration 10.5% No 47.4% Don ’t know/unsure 8.7%
38. What Type of Private Platform and Infrastructure Cloud Services Is Your Company Providing? Source: IOUG ResearchWire member study on Cloud Computing, conducted in August-September 2010. Most popular: App Server as a service Database as a service PaaS IaaS Application server platform as a service 24.7% Database platform as a service 21.4% Identity as a service 4.7% Compute as a service 10.2% Storage as a service 18.1% Software development and test as a service 14.9% Don ’t know/unsure 20.5% None 37.2%
If you are developing a simple app, implementing an algorithm to analyze a given data series, then you probably won’t need too much HW or SW resources. However, if your app has to use a database, and/or needs to access an LDAP directory, and/or interact with cellular wireless network access point, etc., then your development environment HW+SW cost could go up substantially. For a large enterprise, the data center run by the IT department can host the development environment with a charge back to the department that is developing the app. For Small and Medium Businesses (SMB) the data center and IT staff may not make economical sense and hosted development environment may be the most cost-effective solution.
All mission critical enterprise applications have to meet certain usability criteria such as response time and availability including recovery from disaster (e.g., the entire data center becomes inoperable due to a disaster). Testing to make sure that these usability metrics are satisfied requires simulating the workload and various faults, which in turn requires a lot of hardware and software that may not make sense for Small and medium businesses.
If the enterprise application is deployed in its own data center, then the cost of hardware, software, and IT personnel could become very high. This may not be cost-effective for SMBs.
“ Server utilization, especially in x86 environments, is often at the low end of the performance range, averaging between 7% and 15% in many organizations today. One of the key drivers for virtualization has been to improve these performance levels, driving servers up towards 60%-70% average utilization” -- Data Center Efficiency – Beyond PUE and DCiE, by Dave Cappuccio, February 15, 2009, Gartner.
What is Cloud Computing?
One of the areas of confusion is the definition of Cloud Computing. There are many definitions of Cloud Computing out there. Here is one of them that seems to represent the most commonly held view. It’s from the National Institute of Standards and Technology (NIST) and seems to be gaining in popularity, not only in the US, but also the rest of the world as well. The definition is essentially about “on-demand access to a shared pool of computing resources.” Breaking it down, cloud computing is composed of: 5 essential characteristics 3 service models 4 deployment models The 5 essential characteristics are key: On demand self-service – provisioning, monitoring, management control Broad network access – typically means access through a browser on any networked device Resource pooling – implies sharing and a level of abstraction between consumers and services Rapid elasticity – the ability to quickly scale up/down as needed Measured service – metering utilization for either internal chargeback (private cloud) or external billing (public cloud) I’ll cover the 5 characteristics, 3 service models and 4 deployment models on the next few slides.
This slide has animations/builds. We believe that enterprises are on a JOURNEY to cloud computing. Most will EVOLVE their current IT infrastructure to become more “cloud-like” – to become a better internal service provider to the lines of business, BUs, departments – to provide greater agility and responsiveness to business needs, higher quality of service in terms of latency & availability, and lower costs and higher utilization. This evolution will take time. Not only is the available technology evolving and advancing, but enterprises are also working on the new policies and processes needed. In many cases, the technical building blocks for cloud computing are available in advance of enterprise readiness, so we think that enterprises will evolve towards the right at different rates. The first step that many enterprises are taking is to move from a “Silo’ed” environment to a “Grid” or virtualized environment –moving from a dedicated, rigid, physical structure for each application to a virtual environment with shared services, dynamic provisioning and standardized configurations or appliances. This trend is very strong right now. Many enterprises are leveraging Grid and virtualization technologies to consolidate and reduce costs. [CLICK] From here, enterprises can evolve to a self-service and pay-per-use environment, similar to how Amazon works. A user goes to the employee portal, signs in, makes a request for a virtual machine(s) with a certain amount of CPU, memory and disk, picks a VM image for database or middleware, then clicks “submit.” If that employee’s role and entitlements allow him to have that amount of IT resource, then it auto-magically gets provisioned without an IT person being involved. If not, perhaps his request gets routed to his manager and/or IT for workflow approval. In 10 minutes, they are up and running with a full “private PaaS.” After he deploys the app, the system has policy-based resource management to automatically make capacity adjustments, and the employee’s business unit gets an internal charge every month based on how much IT resources they consumed. To make all that happen, the enterprise must have policies and processes defined, and the technology must be able to support it.
Why do we need Cloud Computing?
Before Virtualization: Two physical machines for App1 and two for App2 (why do we need 2?). Each using less than half of the compute resources. After Virtulization: Three physical machines each running both App1 and App2. These apps are isolated by virtualization technology and can run on different OS/platforms and can listen on the same port. The availability characteristic is also better (why?)
Now lets take a look at the new world of platform environments – PaaS. The new PaaS lifecycle has four macro-level steps. First, the central IT function sets up the cloud platform, starting with out-of-the-box cloud platform and creating the enterprise-specific shared components and self-service interface. Once the basic platform is up and running, the application developers within the enterprise’s departments can set up their respective applications. Again, depending on the nature of the domain and enterprise, this may involve fairly simple application composition using platform components, or it may involve a substantial amount of custom application development. Once an application has been deployed on the platform, the third step is simply the use of the application. From the application users’ perspective, the application is no different from any other network/Web-based application they would use within the enterprise—there is nothing special about the fact that it’s running on a cloud platform as far as they are concerned. Finally, there is of course ongoing administration of the application, which is carried out by the application owners. Depending on the nature of the applications, the application owners will carry out some amount of user administration, such as adding and removing users or other high-level functions specific to the application. Application owner is also concerned with lower-level issues such as whether the application is resourced appropriately, is meeting its service-level agreements (SLAs), etc. One of the goals in setting up shared infrastructure in general and private cloud in particular is to exploit as many economies of scale and opportunities for efficiency as possible. Among these is the opportunity to automate dynamic resource allocation and optimization, enabling the elastic capacity that characterizes cloud. This also enables the continuously high responsiveness demanded by users irrespective of load and minimizes manual intervention.