• Complain

Shyam Sundar - Cloud-Native Applications in Java

Here you can read online Shyam Sundar - Cloud-Native Applications in Java full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2018, publisher: Packt Publishing, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Shyam Sundar Cloud-Native Applications in Java

Cloud-Native Applications in Java: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Cloud-Native Applications in Java" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Highly available microservice-based web apps for Cloud with Java

About This Book

  • Take advantage of the simplicity of Spring to build a full-fledged application
  • Let your applications run faster while generating smaller cloud service bills
  • Integrate your application with various tools such as Docker and ElasticSearch and use specific tools in Azure and AWS

Who This Book Is For

Java developers who want to build secure, resilient, robust and scalable applications that are targeted for cloud based deployment, will find this book helpful. Some knowledge of Java, Spring, web programming and public cloud providers (AWS, Azure) should be sufficient to get you through the book.

What You Will Learn

  • See the benefits of the cloud environment when it comes to variability, provisioning, and tooling support
  • Understand the architecture patterns and considerations when developing on the cloud
  • Find out how to perform cloud-native techniques/patterns for request routing, RESTful service creation, Event Sourcing, and more
  • Create Docker containers for microservices and set up continuous integration using Jenkins
  • Monitor and troubleshoot an application deployed in the cloud environment
  • Explore tools such as Docker and Kubernetes for containerization and the ELK stack for log aggregation and visualization
  • Use AWS and Azure specific tools to design, develop, deploy, and manage applications
  • Migrate from monolithic architectures to a cloud native deployment

In Detail

Businesses today are evolving so rapidly that they are resorting to the elasticity of the cloud to provide a platform to build and deploy their highly scalable applications. This means developers now are faced with the challenge of building build applications that are native to the cloud. For this, they need to be aware of the environment, tools, and resources theyre coding against.

If youre a Java developer who wants to build secure, resilient, robust, and scalable applications that are targeted for cloud-based deployment, this is the book for you. It will be your one stop guide to building cloud-native applications in Java Spring that are hosted in On-prem or cloud providers - AWS and Azure

The book begins by explaining the driving factors for cloud adoption and shows you how cloud deployment is different from regular application deployment on a standard data centre. You will learn about design patterns specific to applications running in the cloud and find out how you can build a microservice in Java Spring using REST APIs

You will then take a deep dive into the lifecycle of building, testing, and deploying applications with maximum automation to reduce the deployment cycle time. Gradually, you will move on to configuring the AWS and Azure platforms and working with their APIs to deploy your application. Finally, youll take a look at API design concerns and their best practices. Youll also learn how to migrate an existing monolithic application into distributed cloud native applications.

By the end, you will understand how to build and monitor a scalable, resilient, and robust cloud native application that is always available and fault tolerant.

Style and approach

Filled with examples, this book will build you an entire cloud-native application through its course and will stop at each point and explain in depth the functioning and design considerations that will make a robust, highly available application

Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Shyam Sundar: author's other books


Who wrote Cloud-Native Applications in Java? Find out the surname, the name of the author of the book and a list of all author's works by series.

Cloud-Native Applications in Java — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Cloud-Native Applications in Java" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Service per VM

In this style, the fat JAR is deployed directly on the VM, as in the Service per process section. However, here there is only one service deployed per VM. This ensures a complete isolation of the service from the other services.

The deployment is automated through tools such as Chef and Puppet, that can take a base image (such as having Java installed) and then run through a series of steps to install the application JAR and other utilities on the VM:

Limitations of a local cache Local cache is useful in limited use cases such - photo 1
Limitations of a local cache

Local cache is useful in limited use cases (such as non-changing static data) as the updates done in one service using Spring annotations such as @CachePut, @CacheEvict, and so on cannot be synchronized with a cache on the other instance of services if we are running more than one instance of a service for load balancing or resiliency purposes.

Who this book is for

Java developers who want to build resilient, robust, and scalable applications that are targeted for cloud-based deployment will find this book helpful. Some knowledge of Java, Spring, web programming, and public cloud providers (AWS and Azure) should be sufficient to get you through the book.

Foreword

In a deployment diagram, internet outside the firewall was depicted using the shape of a cloud. Not until I read Big Switch, Nicholas G. Carr, did I realize the full potential of cloud and what was to come. Fast forwarding 10 years, now we do not think twice before drawing the cloud shape around the complete system to depict how cloud is everywhere. Cloud Native comes naturally for start-ups, but for a lot of enterprises, this is still an uncharted territory. Just doing lift-and-shift is not the right use of cloud, though it may be the first thing most large corporations are doing to mitigate the currency of their data centers or to avoid extension of leases. The power of cloud is seen when we are able to build cloud-native architecture-based applications that are business critical and can drive transformational value. Hence, I have always encouraged my team to gain knowledge on designing and building smarter applications on cloud.

Munish, Ajay, and Shyam are part of the core team that has always researched and worked on emerging technologies, using them to solve business problems. They are among the leading experts and consultants on the enterprise digital transformation with a focus on distributed systems using microservices and emerging technologies such as reactive frameworks, open source, and container technology (Dockers and Kubernetes) to name a few. Hence, I encouraged them to work on this book so as to enable the next generation of developers to jump start their journey to cloud-native applications.

This book takes a step-by-step approach to understanding, designing, and writing applications for cloud. The authors take you on a learning journey that starts with the concepts, followed by building a small REST service, and then going through the incremental journey of enhancing the service to be cloud native. They cover various aspects of cloud-specific nuances, such as how to discover a service in a distributed architecture and the role played by service discovery tools. You will also learn how to migrate your application to public cloud providersAWS and Azure. The book covers serverless computing models such as AWS Lamda and Cloud Functions.

I encourage you to get the best out of this book to spearhead your application development journey on cloud.

Hari Kishan Burle

Vice President and Global Head Architecture Services

Wipro Limited

Benefits and trade-offs

The benefits and trade-offs associated with the service per process style are as follows:

  • This approach helps in separating the runtime processes on which the services run. Thus, it creates an isolation between the services, so that a memory leak or fat exception in one process does not affect the other services to some extent.
  • This allows for selective scaling of service, by allowing more deployments of a service compared to other services on the existing hardware.
  • It also gives the freedom to teams of using a different application server/web container based on specific use cases or the needs of the team.
  • However, it cannot prevent any one service from hogging system resources (such as CPU, I/O, and memory) that can affect the performance of the other services.
  • It also reduces the control over the runtime of the operations team, as there is no central web container or application server present in this model.
  • This style requires good governance to limit variability in the deployment estate and having substantial use cases to support the divergence.
Suitability

There are not many scenarios in which this is useful as it does not offer runtime isolation. However, it might be an intermediary step toward releasing the full separation.

Cloud-native and microservices

To enable the adoption of the IaaS and PaaS services, a change in how the applications are designed and architected needs to be made.

The model of designing enterprise applications on a base platform (read: application server) meant that the heavy lifting of the application's scalability and availability was the responsibility of the platform. Enterprise developers would focus on using the standardized JEE patterns and developing components (Presentation, Business, Data, and Integration) to build fully functional and transactional applications. The extent to which the application could be scaled was limited by the abilities (node clustering and distributed caching) of the underlying platform:

Monolithic application A business application built as a monolithic application - photo 2
Monolithic application

A business application built as a monolithic application is typically characterized by the following factors:

  • The entire application logic is packaged into a single EAR file
  • The application reuse is derived by sharing JARs
  • Application changes are planned months in advance, typically in a big push once a quarter
  • There is one database that encompasses the entire schema for the application
  • There are thousands of test cases that signify the amount of regression
  • The application design, development, and deployment requires coordination among multiple teams and significant management

With the advent of social interactions and mobile users, the scale of application users and data started increasing exponentially. Enterprises soon found that the platform was becoming a bottleneck in terms of the following issues:

  • Business agility: The operational cost of managing the application platform and making constant changes to the features/functionalities was getting hampered because of the monolithic nature of the application. Even for a small feature change, the entire cycle of regression tests and deployment across server clusters was eating into the overall speed of innovation.
    The mobile revolution meant that the problem was not just at the channel layers, but also percolated down to the integration and systems of record layers. Unless enterprises fixed the problem across these layers, the ability to innovate and be competitive in the market would be under threat.
  • Cost: To handle the increased demand, the IT Operations team were adding new server instances to handle the load. However, with each new instance, the complexity was increasing along with license costs (that depended on the number of cores). Unlike the Facebooks of the world, enterprise cost per user was increasing with every user acquisition.
Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Cloud-Native Applications in Java»

Look at similar books to Cloud-Native Applications in Java. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Cloud-Native Applications in Java»

Discussion, reviews of the book Cloud-Native Applications in Java and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.