YaaS in a Nutshell
The Basics of YaaS
Welcome to YaaS! Simply put, YaaS is a marketplace for services that you can use to design applications and extend the functionality of your existing applications. YaaS services help you accomplish your business and development goals quickly and with low overhead. How does it work?
As a business user or developer, subscribe to packages in the YaaS Market to use the features provided in the services and Builder modules included with your subscription.
You can also build friendly interfaces (UIs) for your applications by creating your own Builder modules with the Builder CLI (command line interface). Manage your Builder modules, and the services bundled in the packages you subscribe to, in the Builder.
To learn how to manage services and Builder modules, use the Knowledge Hub, which includes configuration guides for non-developers. If you're a developer, use the Dev Portal to learn how to build and document services and Builder modules.
The following diagram shows how the pieces of YaaS work together. You can see how, as a member of an organization, you can work on projects to build, modify, or configure the services and Builder modules available within packages. You can also see that a client is required to access services, and that YaaS tools like the Service SDK and the Builder SDK further support and extend the functionality contained in packages. The Builder, shown on the side, displays service and Builder module functionality in a sleek, simple-to-use UI. Packages published to the YaaS Market provide subscription-based access to the functionality developed using these components.
Read on for brief descriptions of packages, services, the Builder, and Builder modules.
YaaS functionality lives in packages
In YaaS, packages are the main commodity. Each package contains at least one service or Builder module, which are described in the following sections. Subscribe to packages in the YaaS Market or create your own packages using the Builder.
The services in YaaS packages are microservices. That means they are small, isolated applications that are responsible for a single piece of functionality. When you subscribe to a package, you can use the Builder to configure the included YaaS microservices. Developers can interact with services exposed over a RESTful API. For detailed information about the microservice architecture in YaaS, see the Architecture documentation.
The Builder and Builder modules
The difference between the Builder and Builder modules is simple. The Builder is the main tool you use to manage a YaaS project as a business user or build, manage, and publish packages as a developer. The URL for the Builder is http://builder.yaas.io.
Builder modules, on the other hand, provide a user interface to easily manage the services in the packages you subscribe to. You can create your Builder modules using the Builder CLI and register those modules in the Builder. For more information and to learn more Builder terminology, see the Builder documentation.
This illustration shows how a package can include at least one service or Builder module, and how Builder modules have runtime dependencies on services.
The YaaS Market
On the YaaS Market, at http://market.yaas.io, you can subscribe to packages. When you subscribe to a package, you can use the service or Builder module functionality it contains. For example, an existing package that SAP Hybris offers in the YaaS Market is the Site Management package, which includes services for managing an e-commerce site. You can subscribe to this package in the YaaS Market, and then use the Site Management services in your own projects, which you manage in the Builder. The Site Management package includes five services to help you set up shipping methods, manage site settings, create and manage tax codes, calculate taxes for orders, and capture customer payments using Stripe.
On the YaaS Market, you can select any package to view more detailed information. This image shows the details for the Site Management package:
As another example, the Product Content package provides services and Builder modules to support back-office management tasks, the display of product data, and search capabilities within the product data.
To view the packages available in your region, select a region from the Show packages in list in the top-right corner of the YaaS Market. When you register to use YaaS for free, you can subscribe to the Beta packages on the YaaS Market. Beta packages allow you to try out YaaS functionality on a trial basis. To use YaaS services in a production capacity, you must subscribe to one or more Standard packages in your region.
The Knowledge Hub
The Knowledge Hub is the information portal for YaaS business users. Find easy-to-follow configuration guides, articles about how YaaS services and solutions can help you achieve your business goals, and an FAQ with quick answers to the most common YaaS questions.
The Dev Portal
Because you are reading this overview, you have already found your way to the Dev Portal. All of the YaaS service API documentation lives on the Dev Portal, and is located at http://devportal.yaas.io/services. You can also access the API documentation from any YaaS Market package details page, where you can click the link for any of the included services to read the selected service's in-depth API documentation. For example, referring to the preceding Site Management details page image, clicking the Shipping service redirects you to the Shipping API documentation. The API Documentation includes the API Console, API Reference, a link to the RAML file, and much more detailed information and tutorials.
Important guidelines and resources such as SDKs and Documentation Guidelines also live on the Dev Portal. Click around and learn all you can about consuming and providing applications in YaaS!
Key Concepts in YaaS
To drill down a bit further into YaaS, it is important to understand the key concepts described in the following sections, including security concepts, events, and API management.
The following Authentication and authorization and Multi-tenancy sections describe the layers of security that protect access to your services and data within the system. In addition to the OAuth 2.0 protocol and multi-tenancy, the API Proxy protects access to YaaS services. You can also view the YaaS guidelines to help you adhere to data protection regulations.
Authentication and authorization
YaaS secures your APIs using the OAuth 2.0 protocol, providing authentication and authorization at the service level through the OAuth2 service. The OAuth2 service issues bearer access tokens for authorized clients. Define those clients for each project in the Builder and grant scopes to them. Scopes represent access and permission settings unique to each service.
Multi-tenancy is another key concept in YaaS. In the software industry, it is usually defined as a main principle in architecture where a single instance of the software runs on a server, serving multiple client-organizations, or tenants. On the YaaS platform, which brings developers and business users together, the client-organization concept is redefined as a project. When you create a project in the Builder, you are that project's owner. You can assign user roles, invite other team members to your project, subscribe to packages or Builder modules, and add clients.
But when your applications call and receive responses from so many other services, how do you protect access to your application and your data? Multi-tenancy ensures that, even while every service can serve any request, those services and the data contained therein are securely partitioned and not accessible without authorization.
In practice, that means that to work with services created by a different tenant, you must subscribe, within your project, to the package that includes the service functionality you need. This is multi-tenancy in YaaS.
In YaaS, events are created frequently, such as when a customer redeems a coupon, or when you create a tenant. The message channels used to communicate specific events have topic owners, such as hybris.customer. Each topic owner can have multiple event types, such as customer-login. Therefore, the specific event name is a combination of the topic owner and the event type. For example, when a customer attempts to sign in, the system creates an event named hybris.customer.customer-login. The API documentation lists, by topic owner, the events that each service creates. An example is Customer events. The PubSub service publishes all of the YaaS events so that other services can consume them.
More YaaS Tools
You can get more out of YaaS with the useful toolkits and the storefront template described in the following sections.
The Service Software Development Kit (Service SDK) provides helper modules so that you can work around any restrictions involved in running a service in the SAP Hybris cloud without making extensive modifications to the application itself. These helper modules are organized into libraries and plug-ins. The Service SDK currently supports a Java implementation, but it is not mandatory to use this SDK if you prefer to have more freedom in your design.
Use the Builder SDK CLI to create your own user interfaces to manage your services in the Builder. The Builder SDK is a command-line interface that runs the Builder in developer mode. You can test your Builder module while developing it, and preview how your Builder module appears to subscribers to the package that contains your Builder module.
The YaaS Storefront is a ready-to-use template. You can set it up as a fully transactional storefront within minutes, or you can use the template as a starting point to customize your own features and functionality. Its architecture makes the storefront easy to extend, by creating or implementing new and existing services.
How to Get Started
What can I do with my YaaS account?
Use your YaaS account to sign into the Builder, the Dev Portal, and the Knowledge Hub. You can use your account for different organizations, teams, and projects in which you are a member. Each account can have different roles, so you can use a single account in multiple contexts.
With one account:
- You can work on different projects.
- You can manage multiple projects.
- Project members can upgrade their roles. For example, developers who grow into managing their own startup organizations can upgrade their roles.
Where do I start?
If you're ready to dive in and try out YaaS, check out these resources:
- The Learning Journey: SAP Hybris as a Service (YaaS) Developer is a guide that helps everyone, from business users to functional leads and developers find their way around YaaS. It walks you through the essential components of YaaS, presenting different learning artifacts that you can look at to learn about YaaS and its packages.
- The Getting Started Guides include step-by-step tutorials for using YaaS, and can help you start creating your own services and Builder modules.
- The YaaS Bites offer short coding exercises that can take you "from zero-to-YaaS" in just a couple of days.
If you find any information that is unclear or incorrect, please let us know so that we can improve the Dev Portal content.
Use our private help channel. Receive updates over email and contact our specialists directly.
If you need more information about this topic, visit hybris Experts to post your own question and interact with our community and experts.