Production-Ready Microservices

Building Standardized Systems Across an Engineering Organization

Author: Susan J. Fowler

Publisher: "O'Reilly Media, Inc."

ISBN: 1491965924

Category: Computers

Page: 172

View: 7717

One of the biggest challenges for organizations that have adopted microservice architecture is the lack of architectural, operational, and organizational standardization. After splitting a monolithic application or building a microservice ecosystem from scratch, many engineers are left wondering what’s next. In this practical book, author Susan Fowler presents a set of microservice standards in depth, drawing from her experience standardizing over a thousand microservices at Uber. You’ll learn how to design microservices that are stable, reliable, scalable, fault tolerant, performant, monitored, documented, and prepared for any catastrophe. Explore production-readiness standards, including: Stability and Reliability: develop, deploy, introduce, and deprecate microservices; protect against dependency failures Scalability and Performance: learn essential components for achieving greater microservice efficiency Fault Tolerance and Catastrophe Preparedness: ensure availability by actively pushing microservices to fail in real time Monitoring: learn how to monitor, log, and display key metrics; establish alerting and on-call procedures Documentation and Understanding: mitigate tradeoffs that come with microservice adoption, including organizational sprawl and technical debt

Production-Ready Microservices

Building Standardized Systems Across an Engineering Organization

Author: Susan J. Fowler

Publisher: "O'Reilly Media, Inc."

ISBN: 1491965940

Category: Computers

Page: 172

View: 997

One of the biggest challenges for organizations that have adopted microservice architecture is the lack of architectural, operational, and organizational standardization. After splitting a monolithic application or building a microservice ecosystem from scratch, many engineers are left wondering what’s next. In this practical book, author Susan Fowler presents a set of microservice standards in depth, drawing from her experience standardizing over a thousand microservices at Uber. You’ll learn how to design microservices that are stable, reliable, scalable, fault tolerant, performant, monitored, documented, and prepared for any catastrophe. Explore production-readiness standards, including: Stability and Reliability: develop, deploy, introduce, and deprecate microservices; protect against dependency failures Scalability and Performance: learn essential components for achieving greater microservice efficiency Fault Tolerance and Catastrophe Preparedness: ensure availability by actively pushing microservices to fail in real time Monitoring: learn how to monitor, log, and display key metrics; establish alerting and on-call procedures Documentation and Understanding: mitigate tradeoffs that come with microservice adoption, including organizational sprawl and technical debt

Microservice Architecture

Aligning Principles, Practices, and Culture

Author: Irakli Nadareishvili,Ronnie Mitra,Matt McLarty,Mike Amundsen

Publisher: "O'Reilly Media, Inc."

ISBN: 1491956348

Category: Computers

Page: 146

View: 9586

Microservices can have a positive impact on your enterprise—just ask Amazon and Netflix—but you can fall into many traps if you don’t approach them in the right way. This practical guide covers the entire microservices landscape, including the principles, technologies, and methodologies of this unique, modular style of system building. You’ll learn about the experiences of organizations around the globe that have successfully adopted microservices. In three parts, this book explains how these services work and what it means to build an application the Microservices Way. You’ll explore a design-based approach to microservice architecture with guidance for implementing various elements. And you’ll get a set of recipes and practices for meeting practical, organizational, and cultural challenges to microservice adoption. Learn how microservices can help you drive business objectives Examine the principles, practices, and culture that define microservice architectures Explore a model for creating complex systems and a design process for building a microservice architecture Learn the fundamental design concepts for individual microservices Delve into the operational elements of a microservices architecture, including containers and service discovery Discover how to handle the challenges of introducing microservice architecture in your organization

PHP Microservices

Author: Carlos Perez Sanchez,Pablo Solar Vilarino

Publisher: Packt Publishing Ltd

ISBN: 1787124037

Category: Computers

Page: 392

View: 7726

Transit from monolithic architectures to highly available, scalable, and fault-tolerant microservices About This Book Build your own applications based on event-driven microservices and set them up on a production server. Successfully transform any monolithic application into a microservice. Monitor the health of your application, prevent downtime, and reduce costs. Who This Book Is For PHP developers who want to build scalable, highly available, and secure applications will find this book useful. No knowledge of microservices is assumed. What You Will Learn Set up a development environment using the right strategies and tools. Learn about application design and structure to start implementing your application. Transform a monolithic application into microservices. Explore the best way to start implementing your application using testing. Understand how to monitor your microservices, handle errors, and debug the application. Deploy your finished application into a production environment and learn how to solve common problems. Know how to scale your application based on microservices once it is up–and-running. In Detail The world is moving away from bulky, unreliable, and high-maintenance PHP applications, to small, easy-to-maintain and highly available microservices and the pressing need is for PHP developers to understand the criticalities in building effective microservices that scale at large. This book will be a reliable resource, and one that will help you to develop your skills and teach you techniques for building reliable microservices in PHP. The book begins with an introduction to the world of microservices, and quickly shows you how to set up a development environment and build a basic platform using Docker and Vagrant. You will then get into the different design aspects to be considered while building microservices in your favorite framework and you will explore topics such as testing, securing, and deploying microservices. You will also understand how to migrate a monolithic application to the microservice architecture while keeping scalability and best practices in mind. Furthermore you will get into a few important DevOps techniques that will help you progress on to more complex domains such as native cloud development, as well as some interesting design patterns. By the end of this book you will be able to develop applications based on microservices in an organized and efficient way. You will also gain the knowledge to transform any monolithic applications into microservices. Style and approach Filled with code that you can start typing straightaway, this book will take you through building, testing, securing, and deploying microservices in the most practical way possible. The focus of the book is more inclined towards showing you how it's done, rather than with what to do, although you will get a good idea of those tools most widely used to build microservices.

Building Microservices

Author: Sam Newman

Publisher: "O'Reilly Media, Inc."

ISBN: 1491950331

Category: Computers

Page: 280

View: 503

Annotation Over the past 10 years, distributed systems have become more fine-grained. From the large multi-million line long monolithic applications, we are now seeing the benefits of smaller self-contained services. Rather than heavy-weight, hard to change Service Oriented Architectures, we are now seeing systems consisting of collaborating microservices. Easier to change, deploy, and if required retire, organizations which are in the right position to take advantage of them are yielding significant benefits. This book takes an holistic view of the things you need to be cognizant of in order to pull this off. It covers just enough understanding of technology, architecture, operations and organization to show you how to move towards finer-grained systems.

Architecting for Scale

High Availability for Your Growing Applications

Author: Lee Atchison

Publisher: "O'Reilly Media, Inc."

ISBN: 1491943416

Category: Computers

Page: 230

View: 9320

Every day, companies struggle to scale critical applications. As traffic volume and data demands increase, these applications become more complicated and brittle, exposing risks and compromising availability. This practical guide shows IT, devops, and system reliability managers how to prevent an application from becoming slow, inconsistent, or downright unavailable as it grows. Scaling isn’t just about handling more users; it’s also about managing risk and ensuring availability. Author Lee Atchison provides basic techniques for building applications that can handle huge quantities of traffic, data, and demand without affecting the quality your customers expect. In five parts, this book explores: Availability: learn techniques for building highly available applications, and for tracking and improving availability going forward Risk management: identify, mitigate, and manage risks in your application, test your recovery/disaster plans, and build out systems that contain fewer risks Services and microservices: understand the value of services for building complicated applications that need to operate at higher scale Scaling applications: assign services to specific teams, label the criticalness of each service, and devise failure scenarios and recovery plans Cloud services: understand the structure of cloud-based services, resource allocation, and service distribution

Microservices

Flexible Software Architecture

Author: Eberhard Wolff

Publisher: Addison-Wesley Professional

ISBN: 0134650409

Category: Computers

Page: 368

View: 9736

The Most Complete, Practical, and Actionable Guide to Microservices Going beyond mere theory and marketing hype, Eberhard Wolff presents all the knowledge you need to capture the full benefits of this emerging paradigm. He illuminates microservice concepts, architectures, and scenarios from a technology-neutral standpoint, and demonstrates how to implement them with today’s leading technologies such as Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud. The author fully explains the benefits and tradeoffs associated with microservices, and guides you through the entire project lifecycle: development, testing, deployment, operations, and more. You’ll find best practices for architecting microservice-based systems, individual microservices, and nanoservices, each illuminated with pragmatic examples. The author supplements opinions based on his experience with concise essays from other experts, enriching your understanding and illuminating areas where experts disagree. Readers are challenged to experiment on their own the concepts explained in the book to gain hands-on experience. Discover what microservices are, and how they differ from other forms of modularization Modernize legacy applications and efficiently build new systems Drive more value from continuous delivery with microservices Learn how microservices differ from SOA Optimize the microservices project lifecycle Plan, visualize, manage, and evolve architecture Integrate and communicate among microservices Apply advanced architectural techniques, including CQRS and Event Sourcing Maximize resilience and stability Operate and monitor microservices in production Build a full implementation with Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud Explore nanoservices with Amazon Lambda, OSGi, Java EE, Vert.x, Erlang, and Seneca Understand microservices’ impact on teams, technical leaders, product owners, and stakeholders Managers will discover better ways to support microservices, and learn how adopting the method affects the entire organization. Developers will master the technical skills and concepts they need to be effective. Architects will gain a deep understanding of key issues in creating or migrating toward microservices, and exactly what it will take to transform their plans into reality.

Developing with Docker

Author: Jaroslaw Krochmalski

Publisher: Packt Publishing Ltd

ISBN: 1786466333

Category: Computers

Page: 262

View: 3116

Change the way your organization deploys software at scale with this fast-paced guide to the world of Docker About This Book Cut through the noise and in simple terms learn to package your applications and test, ship, and scale your containers Find and build images and successfully run your programs within containers Build, deploy, and test your Docker containers and put them to work in production Who This Book Is For This book is for IT professionals, system administrators, and DevOps professionals or anyone looking to quickly develop and deploy software to production at scale. If you are interested in Docker, DevOps, or containers in general, don't look any further. What You Will Learn Understand Docker's architecture Build, ship, and run distributed applications Deploy, automate, and manage the execution of applications within Docker Scale and virtualize images and containers Utilize the networking features that Docker offers Use repositories to store and retrieve images In Detail This fast-paced practical guide will get you up and running with Docker. Using Docker, you will be able to build, ship, and run many distributed applications in real time. You will start with quickly installing Docker and start working with images and containers. We will present different types of containers and their applications, and show you how to find and build images. You will learn how you can contribute to the image repository by publishing different images. This will familiarize you with the image building process and you will be able to successfully run your programs within containers. By finishing this book, you will be well equipped in deploying your applications using Docker and will have a clear understanding of concepts, techniques, and practical methods to get it running in production systems. Style and approach This book takes a fast-paced practical approach that quickly gets you up and running with Docker so that you spend less time learning and more time deploying Docker containers effectively. This book contains a mix of concepts, practical examples, techniques, and the most up-to-date content to run things effectively in production. We'll show you the easiest way to speed up your development and deployment with Docker.

I Heart Logs

Event Data, Stream Processing, and Data Integration

Author: Jay Kreps

Publisher: "O'Reilly Media, Inc."

ISBN: 1491909331

Category: Computers

Page: 60

View: 5803

Why a book about logs? That’s easy: the humble log is an abstraction that lies at the heart of many systems, from NoSQL databases to cryptocurrencies. Even though most engineers don’t think much about them, this short book shows you why logs are worthy of your attention. Based on his popular blog posts, LinkedIn principal engineer Jay Kreps shows you how logs work in distributed systems, and then delivers practical applications of these concepts in a variety of common uses—data integration, enterprise architecture, real-time stream processing, data system design, and abstract computing models. Go ahead and take the plunge with logs; you’re going love them. Learn how logs are used for programmatic access in databases and distributed systems Discover solutions to the huge data integration problem when more data of more varieties meet more systems Understand why logs are at the heart of real-time stream processing Learn the role of a log in the internals of online data systems Explore how Jay Kreps applies these ideas to his own work on data infrastructure systems at LinkedIn

Testing Java Microservices

Author: Alex Soto Bueno,Jason Porter,Andy Gumbrecht

Publisher: Pearson Professional

ISBN: 9781617292897

Category: Computers

Page: 296

View: 5936

Summary Testing Java Microservices teaches you to implement unit and integration tests for microservice systems running on the JVM. You'll work with a microservice environment built using Java EE, WildFly Swarm, and Docker. You'll learn how to increase your test coverage and productivity, and gain confidence that your system will work as you expect. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Microservice applications present special testing challenges. Even simple services need to handle unpredictable loads, and distributed message-based designs pose unique security and performance concerns. These challenges increase when you throw in asynchronous communication and containers. About the Book Testing Java Microservices teaches you to implement unit and integration tests for microservice systems running on the JVM. You'll work with a microservice environment built using Java EE, WildFly Swarm, and Docker. You'll advance from writing simple unit tests for individual services to more-advanced practices like chaos or integration tests. As you move towards a continuous-delivery pipeline, you'll also master live system testing using technologies like the Arquillian, Wiremock, and Mockito frameworks, along with techniques like contract testing and over-the-wire service virtualization. Master these microservice-specific practices and tools and you'll greatly increase your test coverage and productivity, and gain confidence that your system will work as you expect. What's Inside Test automation Integration testing microservice systems Testing container-centric systems Service virtualization About the Reader Written for Java developers familiar with Java EE, EE4J, Spring, or Spring Boot. About the Authors Alex Soto Bueno and Jason Porter are Arquillian team members. Andy Gumbrecht is an Apache TomEE developer and PMC. They all have extensive enterprise-testing experience. Table of Contents An introduction to microservices Application under test Unit-testing microservices Component-testing microservices Integration-testing microservices Contract tests End-to-end testing Docker and testing Service virtualization Continuous delivery in microservices

Cloud Native Infrastructure

Patterns for Scalable Infrastructure and Applications in a Dynamic Environment

Author: Justin Garrison,Kris Nova

Publisher: "O'Reilly Media, Inc."

ISBN: 1491984279

Category: Computers

Page: 160

View: 3595

Cloud native infrastructure is more than servers, network, and storage in the cloud—it is as much about operational hygiene as it is about elasticity and scalability. In this book, you’ll learn practices, patterns, and requirements for creating infrastructure that meets your needs, capable of managing the full life cycle of cloud native applications. Justin Garrison and Kris Nova reveal hard-earned lessons on architecting infrastructure from companies such as Google, Amazon, and Netflix. They draw inspiration from projects adopted by the Cloud Native Computing Foundation (CNCF), and provide examples of patterns seen in existing tools such as Kubernetes. With this book, you will: Understand why cloud native infrastructure is necessary to effectively run cloud native applications Use guidelines to decide when—and if—your business should adopt cloud native practices Learn patterns for deploying and managing infrastructure and applications Design tests to prove that your infrastructure works as intended, even in a variety of edge cases Learn how to secure infrastructure with policy as code

Getting Started with OAuth 2.0

Programming Clients for Secure Web API Authorization and Authentication

Author: Ryan Boyd

Publisher: "O'Reilly Media, Inc."

ISBN: 1449331610

Category: Computers

Page: 82

View: 1712

Whether you develop web applications or mobile apps, the OAuth 2.0 protocol will save a lot of headaches. This concise introduction shows you how OAuth provides a single authorization technology across numerous APIs on the Web, so you can securely access users’ data—such as user profiles, photos, videos, and contact lists—to improve their experience of your application. Through code examples, step-by-step instructions, and use-case examples, you’ll learn how to apply OAuth 2.0 to your server-side web application, client-side app, or mobile app. Find out what it takes to access social graphs, store data in a user’s online filesystem, and perform many other tasks. Understand OAuth 2.0’s role in authentication and authorization Learn how OAuth’s Authorization Code flow helps you integrate data from different business applications Discover why native mobile apps use OAuth differently than mobile web apps Use OpenID Connect and eliminate the need to build your own authentication system

Microservices

Building Microservices Architecture. Quick Start

Author: Anthony Cotton

Publisher: Createspace Independent Publishing Platform

ISBN: 9781540333940

Category:

Page: 130

View: 1412

This book is an exploration of microservices. It begins by explaining what microservices are and where they are used. Remote Procedure Calls (RPCs) are commonly used for communication between applications. This book guides you on how to use Google shares gRPC for Microservices. You will also be guided on how to use Microservices with Spring, including how to develop a sample microservice in Spring. This book also explains how to perform filtering and routing of requests in microservices. Filtering of requests is done via a proxy service. Instructions on using the Netflix Zuul service for the purpose of filtering requests at the proxy service are also provided, as well as how to create a pagerank analytics platform using microservices. You will also be guided on how to use polyglot persistence. This allows you to use different kinds of databases, so that you can use the best language for your needs, depending on the application. The process of discovery and registration of microservices will also been explored in detail. The following topics are discussed in this book: - What are Microservices - Google shares gRPC for Microservices - Microservices with Spring - Routing and Filtering - Creation of a PageRank Analytics Platform - Polyglot Persistence in Microservices - Discovery and Registration of Microservices with Netflix's Eureka and Spring Cloud

Designing Distributed Systems

Patterns and Paradigms for Scalable, Reliable Services

Author: Brendan Burns

Publisher: "O'Reilly Media, Inc."

ISBN: 1491983612

Category: Computers

Page: 166

View: 8388

In the race to compete in today’s fast-moving markets, large enterprises are busy adopting new technologies for creating new products, processes, and business models. But one obstacle on the road to digital transformation is placing too much emphasis on technology, and not enough on the types of processes technology enables. What if different lines of business could build their own services and applications—and decision-making was distributed rather than centralized? This report explores the concept of a digital business platform as a way of empowering individual business sectors to act on data in real time. Much innovation in a digital enterprise will increasingly happen at the edge, whether it involves business users (from marketers to data scientists) or IoT devices. To facilitate the process, your core IT team can provide these sectors with the digital tools they need to innovate quickly. This report explores: Key cultural and organizational changes for developing business capabilities through cross-functional product teams A platform for integrating applications, data sources, business partners, clients, mobile apps, social networks, and IoT devices Creating internal API programs for building innovative edge services in low-code or no-code environments Tools including Integration Platform as a Service, Application Platform as a Service, and Integration Software as a Service The challenge of integrating microservices and serverless architectures Event-driven architectures for processing and reacting to events in real time You’ll also learn about a complete pervasive integration solution as a core component of a digital business platform to serve every audience in your organization.

Kubernetes Microservices with Docker

Author: Deepak Vohra

Publisher: Apress

ISBN: 1484219074

Category: Computers

Page: 432

View: 518

Start using Kubernetes in complex big data and enterprise applications, including Docker containers. Starting with installing Kubernetes on a single node, the book introduces Kubernetes with a simple Hello example and discusses using environment variables in Kubernetes. Next, Kubernetes Microservices with Docker discusses using Kubernetes with all major groups of technologies such as relational databases, NoSQL databases, and in the Apache Hadoop ecosystem. The book concludes with using multi container pods and installing Kubernetes on a multi node cluster. /div "a concise but clear introduction to containers, Docker and Kubernetes, using simple real-world examples to pass on the core concepts, via repetition, and is a very useful enabler." 10/10 Dave Hay MBCS CITP: review for BCS, The Chartered Institute for IT (http://www.bcs.org/content/conWebDoc/58512) What You Will Learn Install Kubernetes on a single node Set environment variables Create multi-container pods using Docker Use volumes Use Kubernetes with the Apache Hadoop ecosystem, NoSQL databases, and RDBMSs Install Kubernetes on a multi-node cluster Who This Book Is For Application developers including Apache Hadoop developers, database developers and NoSQL developers.

Practical Monitoring

Effective Strategies for the Real World

Author: Mike Julian

Publisher: "O'Reilly Media, Inc."

ISBN: 1491957328

Category: Computers

Page: 170

View: 9203

Do you have a nagging feeling that your monitoring needs improvement, but you just aren’t sure where to start or how to do it? Are you plagued by constant, meaningless alerts? Does your monitoring system routinely miss real problems? This is the book for you. Mike Julian lays out a practical approach to designing and implementing effective monitoring—from your enterprise application down to the hardware in a datacenter, and everything between. Practical Monitoring provides you with straightforward strategies and tactics for designing and implementing a strong monitoring foundation for your company. This book takes a unique vendor-neutral approach to monitoring. Rather than discuss how to implement specific tools, Mike teaches the principles and underlying mechanics behind monitoring so you can implement the lessons in any tool. Practical Monitoring covers essential topics including: Monitoring antipatterns Principles of monitoring design How to build an effective on-call rotation Getting metrics and logs out of your application

Site Reliability Engineering

How Google Runs Production Systems

Author: Niall Richard Murphy,Betsy Beyer,Chris Jones,Jennifer Petoff

Publisher: "O'Reilly Media, Inc."

ISBN: 1491951176

Category: Computers

Page: 552

View: 8436

The overwhelming majority of a software system’s lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems? In this collection of essays and articles, key members of Google’s Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You’ll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient—lessons directly applicable to your organization. This book is divided into four sections: Introduction—Learn what site reliability engineering is and why it differs from conventional IT industry practices Principles—Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE) Practices—Understand the theory and practice of an SRE’s day-to-day work: building and operating large distributed computing systems Management—Explore Google's best practices for training, communication, and meetings that your organization can use

Mastering Microservices with Java 9

Build domain-driven microservice-based applications with Spring, Spring Cloud, and Angular

Author: Sourabh Sharma

Publisher: Packt Publishing Ltd

ISBN: 1787282414

Category: Computers

Page: 316

View: 8233

Master the art of implementing scalable microservices in your production environment with ease About This Book Use domain-driven design to build microservices Use Spring Cloud to use Service Discovery and Registeration Use Kafka, Avro and Spring Streams for implementing event based microservices Who This Book Is For This book is for Java developers who are familiar with the microservices architecture and now wants to take a deeper dive into effectively implementing microservices at an enterprise level. A reasonable knowledge level and understanding of core microservice elements and applications is expected. What You Will Learn Use domain-driven design to design and implement microservices Secure microservices using Spring Security Learn to develop REST service development Deploy and test microservices Troubleshoot and debug the issues faced during development Learning best practices and common principals about microservices In Detail Microservices are the next big thing in designing scalable, easy-to-maintain applications. It not only makes app development easier, but also offers great flexibility to utilize various resources optimally. If you want to build an enterprise-ready implementation of the microservices architecture, then this is the book for you! Starting off by understanding the core concepts and framework, you will then focus on the high-level design of large software projects. You will gradually move on to setting up the development environment and configuring it before implementing continuous integration to deploy your microservice architecture. Using Spring security, you will secure microservices and test them effectively using REST Java clients and other tools like RxJava 2.0. We'll show you the best patterns, practices and common principals of microservice design and you'll learn to troubleshoot and debug the issues faced during development. We'll show you how to design and implement reactive microservices. Finally, we'll show you how to migrate a monolithic application to microservices based application. By the end of the book, you will know how to build smaller, lighter, and faster services that can be implemented easily in a production environment. Style and approach This book starts from the basics, including environment setup and provides easy-to-follow steps to implement the sample project using microservices.

Cloud Foundry: The Definitive Guide

Develop, Deploy, and Scale

Author: Duncan C. E. Winn

Publisher: "O'Reilly Media, Inc."

ISBN: 1491932538

Category: Computers

Page: 324

View: 3002

How can Cloud Foundry help you develop and deploy business-critical applications and tasks with velocity? This practical guide demonstrates how this open source, cloud-native application platform not only significantly reduces the develop-to-deploy cycle time, but also raises the value line for application operators by changing the way applications and supporting services are deployed and run. Learn how Cloud Foundry can help you improve your product velocity by handling many of essential tasks required to run applications in production. Author Duncan Winn shows DevOps and operations teams how to configure and run Cloud Foundry at scale. You’ll examine Cloud Foundry’s technical concepts—including how various platform components interrelate—and learn how to choose your underlying infrastructure, define the networking architecture, and establish resiliency requirements. This book covers: Cloud-native concepts that make the app build, test, deploy, and scale faster How to deploy Cloud Foundry and the BOSH release engineering toolchain Concepts and components of Cloud Foundry’s runtime architecture Cloud Foundry’s routing mechanisms and capabilities The platform’s approach to container tooling and orchestration BOSH concepts, deployments, components, and commands Basic tools and techniques for debugging the platform Recent and soon-to-emerge features of Cloud Foundry