Mastering Microservices with Java 9

Total Page:16

File Type:pdf, Size:1020Kb

Mastering Microservices with Java 9 Mastering Microservices with Java 9 Second Edition Build domain-driven microservice-based applications with Spring, Spring Cloud, and Angular Sourabh Sharma BIRMINGHAM - MUMBAI Mastering Microservices with Java 9 Second Edition Copyright © 2017 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: June 2016 Second edition: December 2017 Production reference: 1051217 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78728-144-8 www.packtpub.com Credits Author Copy Editor Safis Editing Sourabh Sharma Reviewer Project Coordinator Guido Grazioli Vaidehi Sawant Commissioning Editor Proofreader Aaron Lazar Safis Editing Acquisition Editor Indexer Denim Pinto Aishwarya Gangawane Content Development Editor Production Coordinator Zeeyan Pinheiro Melwyn D'sa Technical Editor Romy Dias About the Author Sourabh Sharma has over 15 years of experience in product/application development. His expertise lies in designing, developing, deploying, and testing N-tier web applications and leading teams. He loves to troubleshoot complex problems and look for the best solutions. Throughout his career, he has successfully delivered various on-premise and cloud applications/products to some of the fortune 500 companies that has amazed stakeholders, including happy satisfied customers. Sourabh believes in the continuous process of learning and has been continuously updating his skill set —from standalone application development to microservices development, from JDK 1.2 to Java 9, from IE 5 dependent frontend code to cross-browser development, and from on-premise deployment to cloud deployment. He has effectively managed delivering single products to bouquets of applications. About the Reviewer Guido Grazioli has worked as an application developer, software architect, and systems integrator for a wide variety of business applications across several domains. He is a hybrid software engineer with deep knowledge of the Java platform and tooling as well as Linux systems. He is particularly interested in SOAs, EIPs, continuous integration and delivery, and service orchestration in the cloud. www.PacktPub.com For support files and downloads related to your book, please visit www.PacktPub.com. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks. https://www.packtpub.com/mapt Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career. Why subscribe? Fully searchable across every book published by Packt Copy and paste, print, and bookmark content On demand and accessible via a web browser Customer Feedback Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at https://www.amazon.com/dp/1787 281442. If you'd like to join our team of regular reviewers, you can e-mail us at [email protected]. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products! Table of Contents Preface What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support Downloading the example code Errata Piracy Questions 1. A Solution Approach Evolution of microservices Monolithic architecture overview Limitation of monolithic architecture versus its solution with microservices Traditional monolithic design Monolithic design with services Services design One dimension scalability Release rollback in case of failure Problems in adopting new technologies Alignment with Agile practices Ease of development – could be done better Microservices build pipeline Deployment using a container such as Docker Containers Docker Docker's architecture Deployment Summary 2. Setting Up the Development Environment NetBeans IDE installation and setup Spring Boot configuration Spring Boot overview Adding Spring Boot to our main project Sample REST program Writing the REST controller class The @RestController annotation The @RequestMapping annotation The @RequestParam annotation The @PathVariable annotation Making a sample REST application executable Adding a Jetty-embedded server Setting up the application build Running the Maven tool Executing with the Java command REST API testing using the Postman Chrome extension Some more positive test scenarios Negative test scenarios Summary 3. Domain-Driven Design Domain-driven design fundamentals Fundamentals of DDD Ubiquitous language Multilayered architecture Presentation layer Application layer Domain layer Infrastructure layer Artifacts of domain-driven design Entities Value objects FAQs Services Aggregates Repository Factory Modules Strategic design and principles Bounded context Continuous integration Context map Shared kernel Customer-supplier Conformist Anticorruption layer Separate ways Open Host Service Distillation Sample domain service Entity implementation Repository implementation Service implementation Summary 4. Implementing a Microservice OTRS overview Developing and implementing microservices Restaurant microservice OTRS implementation Controller class API versioning Service classes Repository classes Entity classes Registration and discovery service (Eureka service) Eureka client Booking and user services Execution Testing References Summary 5. Deployment and Testing Mandatory services for good microservices Service discovery and registration Edge servers Load balancing Circuit breakers Monitoring An overview of microservice architecture using Netflix OSS Load balancing Server-side load balancing Client-side load balancing Circuit breakers and monitoring Using Hystrix's fallback methods Monitoring Setting up the Hystrix dashboard Creating Turbine services Building and running the OTRS application Microservice deployment using containers Installation and configuration Docker machine with 4 GB Building Docker images with Maven Running Docker using Maven Integration testing with Docker Pushing the image to a registry Managing Docker containers References Summary 6. Reactive Microservices An overview of the reactive microservice architecture Responsive Resilient Elastic Message driven Implementing reactive microservices Producing an event Consuming the event References Summary 7. Securing Microservices Enabling Secure Socket Layer Authentication and authorization OAuth 2.0 Usage of OAuth OAuth 2.0 specification - concise details OAuth 2.0 roles Resource owner Resource server Client Authorization server OAuth 2.0 client registration Client types Client profiles Client identifier Client authentication OAuth 2.0 protocol endpoints Authorization endpoint Token endpoint Redirection endpoint OAuth 2.0 grant types Authorization code grant Implicit grant Resource owner password credentials grant Client credentials grant OAuth implementation using Spring Security Authorization code grant Implicit grant Resource owner password credential grant Client credentials grant References Summary 8. Consuming Services Using a Microservice Web Application AngularJS framework overview MVC MVVM Modules Providers and services Scopes Controllers Filters Directives UI-Router Development of OTRS features Home page/restaurant list page index.html app.js restaurants.js restaurants.html Search restaurants Restaurant details with reservation option restaurant.html Login page login.html login.js Reservation confirmation Setting up the web application References Summary 9. Best Practices and Common Principles Overview and mindset Best practices and principles Nanoservice, size, and monolithic Continuous integration and deployment System/end-to-end test automation Self-monitoring and logging A separate data store for each microservice Transaction boundaries Microservices frameworks and tools Netflix Open Source Software (OSS) Build - Nebula Deployment and delivery - Spinnaker with Aminator Service registration and discovery - Eureka Service communication - Ribbon Circuit breaker - Hystrix Edge (proxy) server - Zuul Operational monitoring - Atlas Reliability monitoring service - Simian Army AWS resource monitoring
Recommended publications
  • Myriad: Resource Sharing Beyond Boundaries
    Resource Sharing Beyond Boundaries Mohit Soni Santosh Marella Adam Bordelon Anoop Dawar Ben Hindman Brandon Gulla Danese Cooper Darin Johnson Jim Klucar Kannan Rajah Ken Sipe Luciano Resende Meghdoot Bhattacharya Paul Reed Renan DelValle Ruth Harris Shingo Omura Swapnil Daingade Ted Dunning Will Ochandarena Yuliya Feldman Zhongyue Luo Agenda What's up with Datacenters these days? Apache Mesos vs. Apache Hadoop/YARN? Why would you want/need both? Resource Sharing with Apache Myriad What's running on your datacenter? Tier 1 services Tier 2 services High Priority Batch Best Effort, backfill Requirements Programming models based on resources, not machines Custom resource types Custom scheduling algorithms: Fast vs. careful/slow Lightweight executors, fast task launch time Multi-tenancy, utilization, strong isolation Hadoop and More Support Hadoop/BigData ecosystem Support arbitrary (legacy) processes/containers Connect Big Data to non-Hadoop apps, share data, resources Mesos from 10,000 feet Open Source Apache project Cluster Resource Manager Scalable to 10,000s of nodes Fault-tolerant, no SPOF Multi-tenancy, Resource Isolation Improved resource utilization Mesos is more than Yet Another Resource Negotiator Long-running services; real-time jobs Native Docker; cgroups for years; Isolate cpu/mem/disk/net/other Distributed systems SDK; ~200 loc for a new app Core written in C++ for performance, Apps in any language Why two resource managers? Static Partitioning sucks Hadoop teams fine with isolated clusters, but Ops team unhappy; slow
    [Show full text]
  • Is 'Distributed' Worth It? Benchmarking Apache Spark with Mesos
    Is `Distributed' worth it? Benchmarking Apache Spark with Mesos N. Satra (ns532) January 13, 2015 Abstract A lot of research focus lately has been on building bigger dis- tributed systems to handle `Big Data' problems. This paper exam- ines whether typical problems for web-scale companies really benefits from the parallelism offered by these systems, or can be handled by a single machine without synchronisation overheads. Repeated runs of a movie review sentiment analysis task in Apache Spark were carried out using Apache Mesos and Mesosphere, on Google Compute Engine clusters of various sizes. Only a marginal improvement in run-time was observed on a distributed system as opposed to a single node. 1 Introduction Research in high performance computing and `big data' has recently focussed on distributed computing. The reason is three-pronged: • The rapidly decreasing cost of commodity machines, compared to the slower decline in prices of high performance or supercomputers. • The availability of cloud environments like Amazon EC2 or Google Compute Engine that let users access large numbers of computers on- demand, without upfront investment. • The development of frameworks and tools that provide easy-to-use id- ioms for distributed computing and managing such large clusters of machines. Large corporations like Google or Yahoo are working on petabyte-scale problems which simply can't be handled by single computers [9]. However, 1 smaller companies and research teams with much more manageable sizes of data have jumped on the bandwagon, using the tools built by the larger com- panies, without always analysing the performance tradeoffs. It has reached the stage where researchers are suggesting using the same MapReduce idiom hammer on all problems, whether they are nails or not [7].
    [Show full text]
  • Unravel Data Systems Version 4.5
    UNRAVEL DATA SYSTEMS VERSION 4.5 Component name Component version name License names jQuery 1.8.2 MIT License Apache Tomcat 5.5.23 Apache License 2.0 Tachyon Project POM 0.8.2 Apache License 2.0 Apache Directory LDAP API Model 1.0.0-M20 Apache License 2.0 apache/incubator-heron 0.16.5.1 Apache License 2.0 Maven Plugin API 3.0.4 Apache License 2.0 ApacheDS Authentication Interceptor 2.0.0-M15 Apache License 2.0 Apache Directory LDAP API Extras ACI 1.0.0-M20 Apache License 2.0 Apache HttpComponents Core 4.3.3 Apache License 2.0 Spark Project Tags 2.0.0-preview Apache License 2.0 Curator Testing 3.3.0 Apache License 2.0 Apache HttpComponents Core 4.4.5 Apache License 2.0 Apache Commons Daemon 1.0.15 Apache License 2.0 classworlds 2.4 Apache License 2.0 abego TreeLayout Core 1.0.1 BSD 3-clause "New" or "Revised" License jackson-core 2.8.6 Apache License 2.0 Lucene Join 6.6.1 Apache License 2.0 Apache Commons CLI 1.3-cloudera-pre-r1439998 Apache License 2.0 hive-apache 0.5 Apache License 2.0 scala-parser-combinators 1.0.4 BSD 3-clause "New" or "Revised" License com.springsource.javax.xml.bind 2.1.7 Common Development and Distribution License 1.0 SnakeYAML 1.15 Apache License 2.0 JUnit 4.12 Common Public License 1.0 ApacheDS Protocol Kerberos 2.0.0-M12 Apache License 2.0 Apache Groovy 2.4.6 Apache License 2.0 JGraphT - Core 1.2.0 (GNU Lesser General Public License v2.1 or later AND Eclipse Public License 1.0) chill-java 0.5.0 Apache License 2.0 Apache Commons Logging 1.2 Apache License 2.0 OpenCensus 0.12.3 Apache License 2.0 ApacheDS Protocol
    [Show full text]
  • The Dzone Guide to Volume Ii
    THE D ZONE GUIDE TO MODERN JAVA VOLUME II BROUGHT TO YOU IN PARTNERSHIP WITH DZONE.COM/GUIDES DZONE’S 2016 GUIDE TO MODERN JAVA Dear Reader, TABLE OF CONTENTS 3 EXECUTIVE SUMMARY Why isn’t Java dead after more than two decades? A few guesses: Java is (still) uniquely portable, readable to 4 KEY RESEARCH FINDINGS fresh eyes, constantly improving its automatic memory management, provides good full-stack support for high- 10 THE JAVA 8 API DESIGN PRINCIPLES load web services, and enjoys a diverse and enthusiastic BY PER MINBORG community, mature toolchain, and vigorous dependency 13 PROJECT JIGSAW IS COMING ecosystem. BY NICOLAI PARLOG Java is growing with us, and we’re growing with Java. Java 18 REACTIVE MICROSERVICES: DRIVING APPLICATION 8 just expanded our programming paradigm horizons (add MODERNIZATION EFFORTS Church and Curry to Kay and Gosling) and we’re still learning BY MARKUS EISELE how to mix functional and object-oriented code. Early next 21 CHECKLIST: 7 HABITS OF SUPER PRODUCTIVE JAVA DEVELOPERS year Java 9 will add a wealth of bigger-picture upgrades. 22 THE ELEMENTS OF MODERN JAVA STYLE But Java remains vibrant for many more reasons than the BY MICHAEL TOFINETTI robustness of the language and the comprehensiveness of the platform. JVM languages keep multiplying (Kotlin went 28 12 FACTORS AND BEYOND IN JAVA GA this year!), Android keeps increasing market share, and BY PIETER HUMPHREY AND MARK HECKLER demand for Java developers (measuring by both new job 31 DIVING DEEPER INTO JAVA DEVELOPMENT posting frequency and average salary) remains high. The key to the modernization of Java is not a laundry-list of JSRs, but 34 INFOGRAPHIC: JAVA'S IMPACT ON THE MODERN WORLD rather the energy of the Java developer community at large.
    [Show full text]
  • Getting Started with Apache Avro
    Getting Started with Apache Avro By Reeshu Patel Getting Started with Apache Avro 1 Introduction Apache Avro Apache Avro is a remote procedure call and serialization framework developed with Apache's Hadoop project. This is uses JSON for defining data types and protocols, and tend to serializes data in a compact binary format. In other words, Apache Avro is a data serialization system. Its frist native use is in Apache Hadoop, where it's provide both a serialization format for persistent data, and a correct format for communication between Hadoop nodes, and from client programs to the apache Hadoop services. Avro is a data serialization system.It'sprovides: Rich data structures. A compact, fast, binary data format. A container file, to store persistent data. Remote procedure call . It's easily integration with dynamic languages. Code generation is not mendetory to read or write data files nor to use or implement Remote procedure call protocols. Code generation is as an optional optimization, only worth implementing for statically typewritten languages. Schemas of Apache Avro When Apache avro data is read, the schema use when writing it's always present. This permits every datum to be written in no per-value overheads, creating serialization both fast and small. It also facilitates used dynamic, scripting languages, and data, together with it's schema, is fully itself-describing. 2 Getting Started with Apache Avro When Apache avro data is storein a file, it's schema is store with it, so that files may be processe later by any program. If the program is reading the data expects a different schema this can be simply resolved, since twice schemas are present.
    [Show full text]
  • Kubernetes As an Availability Manager for Microservice Based Applications Leila Abdollahi Vayghan
    Kubernetes as an Availability Manager for Microservice Based Applications Leila Abdollahi Vayghan A Thesis in the Department of Computer Science and Software Engineering Presented in Partial Fulfillment of the Requirements for the Degree of Master of Computer Science at Concordia University Montreal, Quebec, Canada August 2019 © Leila Abdollahi Vayghan, 2019 CONCORDIA UNIVERSITY SCHOOL OF GRADUATE STUDIES This is to certify that the thesis prepared By: Leila Abdollahi Vayghan Entitled: Kubernetes as an Availability Manager for Microservice Based Applications and submitted in partial fulfillment of the requirements for the degree of Master in Computer Science complies with the regulations of the University and meets the accepted standards with respect to originality and quality. Signed by the final examining committee: ________________________________________________ Chair Dr. P. Rigby ________________________________________________ Internal Examiner Dr. D. Goswami ________________________________________________ Internal Examiner Dr. J. Rilling ________________________________________________ Co-Supervisor Dr. F. Khendek ________________________________________________ Co-Supervisor Dr. M. Toeroe Approved by: ___________________________________ Dr. L. Narayanan, Chair Department of Computer Science and Software Engineering _______________ 2019___ __________________________________ Dr. Amir Asif, Dean, Faculty of Engineering and Computer Science ii ABSTRACT Kubernetes as an Availability Manager for Microservice Based Applications Leila
    [Show full text]
  • Kafka Schema Registry Example Java
    Kafka Schema Registry Example Java interchangeAshby repaginated his nephology his crucibles so antagonistically! spindle actinally, Trey but understand skewbald Barnabyher wheedlings never cannonballs incommutably, so inhumanly.alpine and official.Articulable Elton designs some mantillas and The example java client caches this Registry configuration options Settings to control schema registry authentication options and more. Kafka Connect and Schemas rmoff's random ramblings. To generate Java POJOs from our Avro schema files we need avro-maven-plugin. If someone Use Confluent Schema Registry on a Kafka Target. Kafka-Avro Adapter Tutorial This gospel a short tutorial on law to testify a Java. HDInsight Managed Kafka with Confluent Kafka Schema. Using the Confluent or Hortonworks schema registry Striim. As well as a partition was written with an event written generically for example java languages so you used if breaking compatibility. 30 Confluent Schema Registry Elastic HDFS Example Consumers. This is even ensure Avro Schema and Avro in Java is fully understood before occur to the confluent schema registry for Apache Kafka. Confluent schema registry it provides convenient methods to encode decode and tender new schemas using the Apache Avro serialization. For lease the treaty is shot you've defined the schema that schedule be represented as a Java. HowTo Produce Avro Messages to Kafka using Schema. Spring Boot Kafka Schema Registry by Sunil Medium. Login Name join a administrator name do the Kafka Cluster example admin. Installing and Upgrading the Confluent Schema Registry. The Debezium Tutorial shows what the records look decent when both payload and. Apache Kafka Schema Evolution Part 1 Learning Journal.
    [Show full text]
  • A Single Platform for Container Orchestration and Data Services
    A SINGLE PLATFORM FOR CONTAINER ORCHESTRATION AND DATA SERVICES MESOSPHERE DC/OS WITH KUBERNETES EASES ENTERPRISE ADOPTION OF NEW TECHNOLOGIES FOR DIGITAL TRANSFORMATION EXECUTIVE SUMMARY Digital disruption is occurring across many industries as technology improvements, ranging from mobile and social to Internet of Things (IoT), are shifting customer behavior and market context. Enterprises mastering digital business technologies are positioned to take advantage of this trend, while poorly equipped incumbents are left behind. This is so widely recognized that achieving a faster pace of innovation is commonly considered a mission-critical investment. Achieving the goals of the investment depends on an organization’s ability to rapidly: ● Iterate in application development – continuously delivering improvements, ● Extract value from data – focused on immediate decision making and response with “fast data” as well as in-depth analytical investigation with “big data”. Best practice rapid application development requires the use of tools like Kubernetes, which serves as a container orchestrator supporting cloud-native methods of continuous deployment, DevOps, and microservices architecture for running stateless applications such as web and application servers. To maximize value from an organization’s data in determining insights and actions requires another set of tools from a diverse, evolving set of stateful (i.e. data store) applications like Spark, Cassandra, and Kafka. Open source tools and cloud computing are a great start, but their rate of change and complexity to operate (i.e. upgrade, scale, etc.) are challenging for most organizations to embrace. Organizations commonly seek a platform integrating a set of tools into a solution. The struggle has been to find a platform that addresses ease of running both cloud-native, stateless applications and data-intensive, stateful applications.
    [Show full text]
  • Delivering Business Value with Apache Mesos
    White paper: Delivering Business Value with Apache Mesos Executive Summary Case Studies In today’s business environment, time to market is critical as we eBay increased developer productivity and reduced operational are more reliant on technology to meet customer needs. costs associated with virtualisation machine sprawl at eBay Traditional approaches to solving technology problems are failing as we develop and run applications at massive scale. eBay Inc - The worlds leading online auction site Apache Mesos is an open source project that addresses the eBay have heavily invested in continuous integration as a problems of efciently managing data center infrastructure at development best practice. At eBay, each developer gets a scale. Apache Mesos also provides a simplifed abstraction layer dedicated virtual machine running Jenkins, a widely used for your development resources to use, allowing them to focus on continuous integration server. This resulted in 1000’s of VMs delivering customer value. (Virtual Machines), which used physical resources and required operational support. In this white paper, we look at some of the core business drivers in the digital age, the problems of running and developing technology at scale and examples from disruptive companies like Continuous Integration is a development Ebay, Twitter and Airb&B who have Mesos in production. practice that requires developers to The Problems of Technology at Scale integrate code into a shared repository several times a day. Each check-in is then Development teams are spending more time dealing with increasingly complex infrastructures, rather than delivering on verified by an automated build, allowing new product features. Computing resources in our data centers teams to detect problems early.
    [Show full text]
  • Apache/Mesos
    Re:platforming// the/Datacenter// with/Apache/Mesos/ Christos(Kozyrakis( Why$your$ASF$project$should$run$on$Mesos$ O(10K)/commodity/servers/ HighAspeed/networking/ Distributed/storage/(HDD,/Flash)/ x10/MWatt/ x100/M$/ ( developers$ ops$ automation( automation( performance( efficiency( ( ( ① Datacenter/past/ Static/Partitioning/ Static/Partitioning/ Hadoop/ Cassandra/ Rails/ Jenkins/ memcached/ Static/Partitioning/ Hadoop/ Cassandra/ Rails/ Jenkins/ memcached/ Static/Partitioning/ Hadoop/ Cassandra/ Rails/ Jenkins/ memcached/ Static/Partitioning/ Hadoop/ Cassandra/ Rails/ Jenkins/ memcached/ Static/Partitioning/ developers$ ops$ " automation( " automation( ! performance( " efficiency( ( ( ② Datacenter/present/ Apache/Mesos/ The(datacenter(OS(kernel( Aggregates(all(resources(into(a(single(shared(pool( Dynamically(allocates(resources(to(distributed(apps( Container(management(at(scale((cgroups,(docker,(…)( Mesos/Architecture/ Frameworks/ Marathon( Jenkins( … Allocator/ Allocator/ Allocator/ Masters/ AuthN/ AuthZ/ AuthN/ AuthZ/ AuthN/ AuthZ/ Slave/ Slave/ Executor/ Executor/ … Executor/ Executor/ Servers/ Task/ Task/ Task/ Task/ Scales(to(10s(of(thousands(of(servers( Mesos/Fault/Tolerance/ Frameworks/ Marathon( Jenkins( … Allocator/ Allocator/ Allocator/ Masters/ AuthN/ AuthZ/ AuthN/ AuthZ/ AuthN/ AuthZ/ Slave/ Slave/ Executor/ Executor/ … Executor/ Executor/ Servers/ Task/ Task/ Task/ Task/ Tasks(survive(failures(of(the(master((( Mesos/Fault/Tolerance/ Frameworks/ Marathon( Jenkins( … Allocator/ Allocator/ Allocator/ Masters/ AuthN/ AuthZ/ AuthN/
    [Show full text]
  • Full-Graph-Limited-Mvn-Deps.Pdf
    org.jboss.cl.jboss-cl-2.0.9.GA org.jboss.cl.jboss-cl-parent-2.2.1.GA org.jboss.cl.jboss-classloader-N/A org.jboss.cl.jboss-classloading-vfs-N/A org.jboss.cl.jboss-classloading-N/A org.primefaces.extensions.master-pom-1.0.0 org.sonatype.mercury.mercury-mp3-1.0-alpha-1 org.primefaces.themes.overcast-${primefaces.theme.version} org.primefaces.themes.dark-hive-${primefaces.theme.version}org.primefaces.themes.humanity-${primefaces.theme.version}org.primefaces.themes.le-frog-${primefaces.theme.version} org.primefaces.themes.south-street-${primefaces.theme.version}org.primefaces.themes.sunny-${primefaces.theme.version}org.primefaces.themes.hot-sneaks-${primefaces.theme.version}org.primefaces.themes.cupertino-${primefaces.theme.version} org.primefaces.themes.trontastic-${primefaces.theme.version}org.primefaces.themes.excite-bike-${primefaces.theme.version} org.apache.maven.mercury.mercury-external-N/A org.primefaces.themes.redmond-${primefaces.theme.version}org.primefaces.themes.afterwork-${primefaces.theme.version}org.primefaces.themes.glass-x-${primefaces.theme.version}org.primefaces.themes.home-${primefaces.theme.version} org.primefaces.themes.black-tie-${primefaces.theme.version}org.primefaces.themes.eggplant-${primefaces.theme.version} org.apache.maven.mercury.mercury-repo-remote-m2-N/Aorg.apache.maven.mercury.mercury-md-sat-N/A org.primefaces.themes.ui-lightness-${primefaces.theme.version}org.primefaces.themes.midnight-${primefaces.theme.version}org.primefaces.themes.mint-choc-${primefaces.theme.version}org.primefaces.themes.afternoon-${primefaces.theme.version}org.primefaces.themes.dot-luv-${primefaces.theme.version}org.primefaces.themes.smoothness-${primefaces.theme.version}org.primefaces.themes.swanky-purse-${primefaces.theme.version}
    [Show full text]
  • Guide to the Open Cloud Open Cloud Projects Profiled
    Guide to the Open Cloud Open cloud projects profiled A Linux Foundation publication January 2015 www.linuxfoundation.org Introduction The open source cloud computing landscape has changed significantly since we published our first cloud guide in October 2013. This revised version adds new projects See also the rise of Linux container and technology categories that have since technology with the advent of Docker gained importance, and in some cases and its emerging ecosystem. You will be radically change how companies approach hard pressed to find an enterprise Linux building and deploying an open source distribution that isn’t yet working on Docker cloud architecture. integration and touting its new container strategy. Even VMware vSphere, Google In 2013, many cloud projects were still Cloud Platform, and Microsoft Azure are working out their core enterprise features rushing to adapt their cloud platforms to the and furiously building in functionality. And open source Docker project. enterprises were still very much in the early stages of planning and testing their public, This rapid pace of innovation and resulting private or hybrid clouds–and largely at the disruption of existing platforms and vendors orchestration layer. can now serve as a solid case study for the role of open source software and Now, not only have cloud projects collaboration in advancing the cloud. consistently (and sometimes dramatically) grown their user and developer Other components of the cloud infrastructure communities, lines of code and commits have also followed suit, hoping to harness over the past year, their software is the power of collaboration. The Linux increasingly enterprise-ready.
    [Show full text]