The document discusses RESTful APIs and ASP.NET Core. It begins by asking why RESTful APIs are needed and defines RESTful as being represented by URIs, HTTP methods, and hypermedia. It covers the six constraints of RESTful design including being client-server, having a uniform interface, being stateless, cacheable, using a layered system, and optionally having code on demand. It provides examples of RESTful routing in ASP.NET Core and adding support for XML, versioning, and HATEOAS. Finally, it emphasizes that not all APIs must be RESTful and to design with clients in mind rather than forcing RESTful implementation.
Thibault Charbonnier presented on using Kong as an API gateway to manage APIs and microservices. He began with an overview of why an API gateway is useful both for building and running APIs. He then demonstrated Kong, including adding an API, applying a plugin, and making a request through the gateway. Finally, he discussed new features in Kong 0.10 like dynamic load balancing and the AWS Lambda plugin.
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...Weaveworks
In this talk we'll present a prototype solution for multitenant, horizontally scalable Prometheus as a Service, code name "Project Frankenstein".
Frankenstein turns Prometheus architectural assumptions on their head, by marrying the PromQL query engine with a storage layer based on DynamoDB and S3. We have disaggregated the Prometheus binary into a microservices-style architecture, with separate services for distribution, ingest, alerting rules and storage. By designing all these services as fungible replicas, this solution can be scaled out with ease and failure of any individual replica can be dealt with gracefully.
This multitenant, scale-out Prometheus service forms a core component of Weave Cloud, a hosted management, monitoring and visualisation platform for cloud native applications. This platform is built from 100% open source components, and we're working with the Prometheus community to contribute all the changes we've made back to Prometheus. Project Frankenstein is open source and can be found at https://github.com/weaveworks/frankenstein
1) Consul-templaterb is a Ruby-based templating engine for Consul that provides a more powerful and optimized templating experience than the default Golang one.
2) It handles complex templates, outputs to multiple formats like JSON and YAML, supports hot reloading, and can even create full-featured GUIs.
3) It is highly optimized for performance on large Consul clusters with thousands of services and nodes.
This document discusses using Prometheus for application monitoring on Kubernetes. It describes the current monitoring systems in use and their limitations. Prometheus is introduced as an open-source monitoring system developed by SoundCloud. Two approaches are presented for using Prometheus on Kubernetes - running Prometheus on EC2 instances and pointing it at Kubernetes, or using the Prometheus Operator which automates Prometheus configuration based on Kubernetes resources. The Prometheus Operator approach is recommended for its simplified configuration.
Apresentação realizada no 3º Meetup de cloud native realizado na Ilegra.
Na apresentação é apresentado as funcionalidades oferecidas pelas duas ferramentas e os aprendizados e vantagens destas.
Microservices with Netflix OSS & Spring Cloud - Arnaud Cogoluègnesdistributed matters
Netflix OSS and Spring Cloud provide frameworks for building microservice applications that can run on various infrastructures. They include libraries like Eureka for service registration and discovery, Ribbon for load balancing, and Hystrix for fault tolerance via circuit breaking. Spring Cloud builds on Spring Boot and "Spring-ifies" Netflix libraries, providing a simple way to add features like configuration management and monitoring dashboards. These frameworks help developers implement microservices patterns in a transparent manner.
Spring Cloud and Netflix OSS Overview is a technical document that:
1) Provides an overview of the Spring Cloud framework for building distributed and microservice applications, highlighting projects such as Spring Cloud Config, Spring Cloud Netflix, Spring Cloud Bus, Spring Cloud Stream and Spring Cloud Sleuth.
2) Describes the Netflix OSS projects integrated with Spring Cloud including service discovery with Eureka, client side load balancing with Ribbon, circuit breaking with Hystrix, routing and filtering with Zuul, and monitoring with Hystrix Dashboard and Turbine.
3) Includes demos of key Spring Cloud features like externalized configuration with Spring Cloud Config and propagating configuration changes with Spring Cloud Bus.
In this WebHack talk I shared my experience about microservices, Docker, Kubernetes and Kong, an API gateway by Mashape. Since they are based on a real working system, this slides is majorly for how to build the whole thing up, not about detailed internal implementation. Although I included some details and reference in order to make it more comprehensive.
Thibault Charbonnier presented on using Kong as an API gateway to manage APIs and microservices. He began with an overview of why an API gateway is useful both for building and running APIs. He then demonstrated Kong, including adding an API, applying a plugin, and making a request through the gateway. Finally, he discussed new features in Kong 0.10 like dynamic load balancing and the AWS Lambda plugin.
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...Weaveworks
In this talk we'll present a prototype solution for multitenant, horizontally scalable Prometheus as a Service, code name "Project Frankenstein".
Frankenstein turns Prometheus architectural assumptions on their head, by marrying the PromQL query engine with a storage layer based on DynamoDB and S3. We have disaggregated the Prometheus binary into a microservices-style architecture, with separate services for distribution, ingest, alerting rules and storage. By designing all these services as fungible replicas, this solution can be scaled out with ease and failure of any individual replica can be dealt with gracefully.
This multitenant, scale-out Prometheus service forms a core component of Weave Cloud, a hosted management, monitoring and visualisation platform for cloud native applications. This platform is built from 100% open source components, and we're working with the Prometheus community to contribute all the changes we've made back to Prometheus. Project Frankenstein is open source and can be found at https://github.com/weaveworks/frankenstein
1) Consul-templaterb is a Ruby-based templating engine for Consul that provides a more powerful and optimized templating experience than the default Golang one.
2) It handles complex templates, outputs to multiple formats like JSON and YAML, supports hot reloading, and can even create full-featured GUIs.
3) It is highly optimized for performance on large Consul clusters with thousands of services and nodes.
This document discusses using Prometheus for application monitoring on Kubernetes. It describes the current monitoring systems in use and their limitations. Prometheus is introduced as an open-source monitoring system developed by SoundCloud. Two approaches are presented for using Prometheus on Kubernetes - running Prometheus on EC2 instances and pointing it at Kubernetes, or using the Prometheus Operator which automates Prometheus configuration based on Kubernetes resources. The Prometheus Operator approach is recommended for its simplified configuration.
Apresentação realizada no 3º Meetup de cloud native realizado na Ilegra.
Na apresentação é apresentado as funcionalidades oferecidas pelas duas ferramentas e os aprendizados e vantagens destas.
Microservices with Netflix OSS & Spring Cloud - Arnaud Cogoluègnesdistributed matters
Netflix OSS and Spring Cloud provide frameworks for building microservice applications that can run on various infrastructures. They include libraries like Eureka for service registration and discovery, Ribbon for load balancing, and Hystrix for fault tolerance via circuit breaking. Spring Cloud builds on Spring Boot and "Spring-ifies" Netflix libraries, providing a simple way to add features like configuration management and monitoring dashboards. These frameworks help developers implement microservices patterns in a transparent manner.
Spring Cloud and Netflix OSS Overview is a technical document that:
1) Provides an overview of the Spring Cloud framework for building distributed and microservice applications, highlighting projects such as Spring Cloud Config, Spring Cloud Netflix, Spring Cloud Bus, Spring Cloud Stream and Spring Cloud Sleuth.
2) Describes the Netflix OSS projects integrated with Spring Cloud including service discovery with Eureka, client side load balancing with Ribbon, circuit breaking with Hystrix, routing and filtering with Zuul, and monitoring with Hystrix Dashboard and Turbine.
3) Includes demos of key Spring Cloud features like externalized configuration with Spring Cloud Config and propagating configuration changes with Spring Cloud Bus.
In this WebHack talk I shared my experience about microservices, Docker, Kubernetes and Kong, an API gateway by Mashape. Since they are based on a real working system, this slides is majorly for how to build the whole thing up, not about detailed internal implementation. Although I included some details and reference in order to make it more comprehensive.
Or how I learned to stop worrying and love Continuous Deployment...
Presentation by Tom Wilkie on 29/09/16 at SF Microservices Meetup.
In this talk I discuss the journey Weaveworks has been through building Weave Cloud, using all the laster buzzword-compliant techniques: Microservices, DevOps, Continuous Delivery, Kubernetes, Docker etc.
OpenStack - Tzu-Mainn Chen, Marek Aufart, Petr Blaho - ManageIQ Design Summit...ManageIQ
This document discusses ManageIQ's integration with OpenStack. It provides an overview of the OpenStack TripleO deployment model and describes how ManageIQ implements OpenStack Cloud and Infrastructure providers. It also outlines future work, including improving dashboard and topology views, adding more cloud features like segregation and backups, and using Mistral workflows to simplify exposing TripleO deployment logic through ManageIQ.
Microservices with Netflix OSS and Spring Cloudacogoluegnes
Netflix OSS and Spring Cloud provide frameworks for building microservice applications that can run on various infrastructures. They include libraries like Eureka for service registration and discovery, Ribbon for load balancing, and Hystrix for fault tolerance via circuit breaking. Spring Cloud builds on Spring Boot and "Spring-ifies" Netflix libraries, providing a easy way to add configuration, service discovery, and other features needed for microservices. These frameworks allow building microservice applications that are decoupled from underlying infrastructure and can run on traditional or cloud-based systems.
API Versioning in the Cloud. Presented to the Galvanize gSchool on 6/14/2013 by Travis McChesney, Senior Engineer- Cloud Elements. Content Negotiation, URI, URI Parameter, Cloud Elements Demo.
This document discusses microservices and service-oriented architecture (SOA). It notes that SOA can provide time savings of 30-50% compared to non-SOA. Microservices are discussed as an evolution of SOA, with each service focused on doing a single task. Popular technologies discussed include Docker, Kubernetes, Mesos, API gateways, service discovery like Eureka and Consul, and continuous integration/delivery tools like Jenkins. The benefits of microservices for deployments, portability and using containers/PaaS are also summarized.
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCPNETWAYS
As Squad Architect Platform I supported the platform-team to migrate a complete ecommerce-environment to Google Cloud Platform. By sketching out various migration-steps, technical concepts and tooling I will explain we did the migration exactly this way.
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...Amazon Web Services
- Netflix evolved from a monolithic architecture to a microservices architecture due to bottlenecks from organizational growth and diverse functionality in the monolithic stack.
- Microservices address these issues by decomposing applications into independently deployable services but introduce new challenges around service discovery, communication between services, and failure handling.
- Netflix developed best practices for microservices including service discovery with Eureka, load balancing with Ribbon, failure mitigation with Hystrix, and reactive inter-process communication with RxJava and tools like Ribbon and Hystrix.
2019 Lightning Talk: Discovery, Consul and Inversion of Control for the infr...Pierre Souchay
This document summarizes Pierre Souchay's talk on Inversion of Control with Consul. Some key points:
1. Pierre leads the Discovery Team at Criteo which deals with over 240,000 services across 38,000 Consul nodes in 9 data centers.
2. Consul is an open source distributed discovery system that allows services to register and discover other services via IP, port, health checks, tags and metadata.
3. At Criteo, Consul is used for service discovery, configuration, automatic alerts, load balancing, and more. All of Criteo's services are registered in Consul.
4. By leveraging Consul's metadata and templating, Criteo can automatically configure
Kong is an open source API gateway that acts as a single entry point for API requests. It handles requests by either proxying them directly to services or fanning out requests to multiple services. It runs in front of RESTful APIs and extends their functionality through plugins. Kong listens on ports 8000 for HTTP, 8443 for HTTPS, 8001 for its admin API, and 7946 and 7373 for inter-node communication. The document discusses setting up Kong with Docker, viewing logs, and the architecture of a Kong implementation with an API and management container on each host behind private and public load balancers. Next steps discussed are using Kongfig for configuration management and comparing Kong to just using Nginx.
This document discusses CloudStack's extensibility through plug-ins and adaptors that allow third-party integration. It describes how plug-ins can define new APIs, network elements, services, and management components. Plug-ins have well-defined interfaces and configurations to integrate new functionality without modifying CloudStack code.
Kubernetes provides a powerful framework and great tooling to control hundreds of heterogenous workloads on thousands of machines. In a production environment, however, the collection of metrics to automatically detect and act on issues in such a cluster is essential. Prometheus was created to meet such needs: highly dynamic scheduling, automatic service discovery, and reliable operations.
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...apidays
GraphQL enables API consumers to retrieve data from backend services by defining the specific data needed in a query. This contrasts with REST APIs where the resource structure is defined by the provider. While GraphQL gives consumers more control, it also requires management of queries' impact on backend systems. API management solutions can enforce throttling, rate limits, access controls and pricing models for GraphQL APIs to provide threat protection and differentiated API plans.
OpenStack and Containers - Will they blend? A prequel. SF Bay OpenStack MeetupJohn Starmer
Modern software containers provide a virtualization model that OpenStack, as originally conceived, was not designed for. We are now faced with trying to determine the appropriate path forward for managing disparate virtualization models in increasingly hybrid business settings. In this presentation, we look at the possibility of treating OpenStack as "just another containerized application" running with Kubernetes as the container operating environment. See the associated presentation here: https://kumul.us/will-it-blend-a-joint-openstack-and-kubernetes-environment/
The document compares the API gateways Kong and Traefik. Kong is easy to install and maintain, has great performance, and flexible integration with Kubernetes ingress. However, it lacks an official dashboard and plugins must be built in Lua. Traefik is very simple to configure and use and has strong integration with many cloud systems. However, it has less documentation and lacks some advanced features of Kong. Overall, both tools are suitable API gateways but Kong may be better for more complex needs while Traefik is simpler to use and get started with.
5 lessons learned for Successful Migration to Confluent CloudNatan Silnitsky
Confluent Cloud makes Devops engineers lives a lot more easier.
Yet moving 1500 microservices, 10K topics and 100K partitions to a multi-cluster Confluent cloud can be a challenge.
In this talk you will hear about 5 lessons that Wix has learned in order to successfully meet this challenge.
These lessons include:
1. Automation, Automation, Automation - all the process has to be completely automated at such scale
2. Prefer a gradual approach - E.g. migrate topics in small chunks and not all at once. Reduces risks if things go bad
3. First migrate test topics with relayed real traffic - So data will be real but will not effect production.
4. Cleanup first - avoid migrating unused topics or topics with too many unnecessary partitions
5. Adapt to Confluent Cloud APIs - e.g. lag monitoring
Spring Cloud Netflix provides a service discovery client that allows services to register with a Eureka server and clients to lookup available services. The key components are the discovery server, which is an actively managed registry of service locations, services which register their locations with the server, and clients which use the server to find service locations and request services. The document demonstrates setting up a Eureka server, registering sample services with it, and having a client discover and call the services.
Multi cloud Serverless platform using KubernetesFahri Yardımcı
Graduation project for Gazi University Faculty of Technology Computer Engineering BS Degree.
Tech stack: Kubernetes , Federation-v2, Knative, Istio, Elasticsearch, Grafana, AWS, Google Cloud
This document provides an overview of API gateways. It discusses the API gateway pattern which includes separating client and server code, providing distinct API views from the same origin, and composing calls between APIs. It also includes an architecture diagram and discusses core features like uniform authentication, REST over HTTPS, horizontal scalability, payload rewrite, request composition, and backend as a service. Popular API gateway players like APIGEE, AWS API Gateway, and Kong are compared. Potential pitfalls around dependency, lock-in, scalability, and backend savings are also covered. The conclusion recommends using API gateways as accelerators but planning to reduce their footprint, using standard protocols, managing cache/data, and being able to migrate to an open
This document provides an overview of Kong, an open-source API gateway. It discusses that Kong is a cloud-native, scalable middleware between clients and APIs, and supports features like authentication, security, traffic control, and analytics. The document also summarizes the Community and Enterprise editions of Kong, including that the Enterprise edition provides additional capabilities like an admin GUI, API analytics, and support. It concludes with an example of using Kong to expose an API and discusses benefits and concerns of Kong.
This document summarizes the experience of developing web applications using ASP.NET Core on Linux. It discusses the renaming of ASP.NET to ASP.NET Core, changes to Visual Studio integration, support for package managers like NPM, and the current status of ASP.NET Core. The document also provides details on ASP.NET Core runtime platforms, web application structure, configuration using Project.json, dependency injection, middleware, and routing.
This talk cover the principles and the best practices in creation of flexible Microsoft .NET Core-based applications in connection with Microsoft Azure services, as well as tools and libraries that greatly simplify the development, configuration and deployment of applications. Also, attention paid to some pitfalls that may be encountered while using .NET Core.
This presentation by Andrii Antilikatorov, Consultant at GlobalLogic Kharkiv, was delivered at GlobalLogic Kharkiv MS TechTalk #2 on November 4, 2017.
Or how I learned to stop worrying and love Continuous Deployment...
Presentation by Tom Wilkie on 29/09/16 at SF Microservices Meetup.
In this talk I discuss the journey Weaveworks has been through building Weave Cloud, using all the laster buzzword-compliant techniques: Microservices, DevOps, Continuous Delivery, Kubernetes, Docker etc.
OpenStack - Tzu-Mainn Chen, Marek Aufart, Petr Blaho - ManageIQ Design Summit...ManageIQ
This document discusses ManageIQ's integration with OpenStack. It provides an overview of the OpenStack TripleO deployment model and describes how ManageIQ implements OpenStack Cloud and Infrastructure providers. It also outlines future work, including improving dashboard and topology views, adding more cloud features like segregation and backups, and using Mistral workflows to simplify exposing TripleO deployment logic through ManageIQ.
Microservices with Netflix OSS and Spring Cloudacogoluegnes
Netflix OSS and Spring Cloud provide frameworks for building microservice applications that can run on various infrastructures. They include libraries like Eureka for service registration and discovery, Ribbon for load balancing, and Hystrix for fault tolerance via circuit breaking. Spring Cloud builds on Spring Boot and "Spring-ifies" Netflix libraries, providing a easy way to add configuration, service discovery, and other features needed for microservices. These frameworks allow building microservice applications that are decoupled from underlying infrastructure and can run on traditional or cloud-based systems.
API Versioning in the Cloud. Presented to the Galvanize gSchool on 6/14/2013 by Travis McChesney, Senior Engineer- Cloud Elements. Content Negotiation, URI, URI Parameter, Cloud Elements Demo.
This document discusses microservices and service-oriented architecture (SOA). It notes that SOA can provide time savings of 30-50% compared to non-SOA. Microservices are discussed as an evolution of SOA, with each service focused on doing a single task. Popular technologies discussed include Docker, Kubernetes, Mesos, API gateways, service discovery like Eureka and Consul, and continuous integration/delivery tools like Jenkins. The benefits of microservices for deployments, portability and using containers/PaaS are also summarized.
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCPNETWAYS
As Squad Architect Platform I supported the platform-team to migrate a complete ecommerce-environment to Google Cloud Platform. By sketching out various migration-steps, technical concepts and tooling I will explain we did the migration exactly this way.
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...Amazon Web Services
- Netflix evolved from a monolithic architecture to a microservices architecture due to bottlenecks from organizational growth and diverse functionality in the monolithic stack.
- Microservices address these issues by decomposing applications into independently deployable services but introduce new challenges around service discovery, communication between services, and failure handling.
- Netflix developed best practices for microservices including service discovery with Eureka, load balancing with Ribbon, failure mitigation with Hystrix, and reactive inter-process communication with RxJava and tools like Ribbon and Hystrix.
2019 Lightning Talk: Discovery, Consul and Inversion of Control for the infr...Pierre Souchay
This document summarizes Pierre Souchay's talk on Inversion of Control with Consul. Some key points:
1. Pierre leads the Discovery Team at Criteo which deals with over 240,000 services across 38,000 Consul nodes in 9 data centers.
2. Consul is an open source distributed discovery system that allows services to register and discover other services via IP, port, health checks, tags and metadata.
3. At Criteo, Consul is used for service discovery, configuration, automatic alerts, load balancing, and more. All of Criteo's services are registered in Consul.
4. By leveraging Consul's metadata and templating, Criteo can automatically configure
Kong is an open source API gateway that acts as a single entry point for API requests. It handles requests by either proxying them directly to services or fanning out requests to multiple services. It runs in front of RESTful APIs and extends their functionality through plugins. Kong listens on ports 8000 for HTTP, 8443 for HTTPS, 8001 for its admin API, and 7946 and 7373 for inter-node communication. The document discusses setting up Kong with Docker, viewing logs, and the architecture of a Kong implementation with an API and management container on each host behind private and public load balancers. Next steps discussed are using Kongfig for configuration management and comparing Kong to just using Nginx.
This document discusses CloudStack's extensibility through plug-ins and adaptors that allow third-party integration. It describes how plug-ins can define new APIs, network elements, services, and management components. Plug-ins have well-defined interfaces and configurations to integrate new functionality without modifying CloudStack code.
Kubernetes provides a powerful framework and great tooling to control hundreds of heterogenous workloads on thousands of machines. In a production environment, however, the collection of metrics to automatically detect and act on issues in such a cluster is essential. Prometheus was created to meet such needs: highly dynamic scheduling, automatic service discovery, and reliable operations.
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...apidays
GraphQL enables API consumers to retrieve data from backend services by defining the specific data needed in a query. This contrasts with REST APIs where the resource structure is defined by the provider. While GraphQL gives consumers more control, it also requires management of queries' impact on backend systems. API management solutions can enforce throttling, rate limits, access controls and pricing models for GraphQL APIs to provide threat protection and differentiated API plans.
OpenStack and Containers - Will they blend? A prequel. SF Bay OpenStack MeetupJohn Starmer
Modern software containers provide a virtualization model that OpenStack, as originally conceived, was not designed for. We are now faced with trying to determine the appropriate path forward for managing disparate virtualization models in increasingly hybrid business settings. In this presentation, we look at the possibility of treating OpenStack as "just another containerized application" running with Kubernetes as the container operating environment. See the associated presentation here: https://kumul.us/will-it-blend-a-joint-openstack-and-kubernetes-environment/
The document compares the API gateways Kong and Traefik. Kong is easy to install and maintain, has great performance, and flexible integration with Kubernetes ingress. However, it lacks an official dashboard and plugins must be built in Lua. Traefik is very simple to configure and use and has strong integration with many cloud systems. However, it has less documentation and lacks some advanced features of Kong. Overall, both tools are suitable API gateways but Kong may be better for more complex needs while Traefik is simpler to use and get started with.
5 lessons learned for Successful Migration to Confluent CloudNatan Silnitsky
Confluent Cloud makes Devops engineers lives a lot more easier.
Yet moving 1500 microservices, 10K topics and 100K partitions to a multi-cluster Confluent cloud can be a challenge.
In this talk you will hear about 5 lessons that Wix has learned in order to successfully meet this challenge.
These lessons include:
1. Automation, Automation, Automation - all the process has to be completely automated at such scale
2. Prefer a gradual approach - E.g. migrate topics in small chunks and not all at once. Reduces risks if things go bad
3. First migrate test topics with relayed real traffic - So data will be real but will not effect production.
4. Cleanup first - avoid migrating unused topics or topics with too many unnecessary partitions
5. Adapt to Confluent Cloud APIs - e.g. lag monitoring
Spring Cloud Netflix provides a service discovery client that allows services to register with a Eureka server and clients to lookup available services. The key components are the discovery server, which is an actively managed registry of service locations, services which register their locations with the server, and clients which use the server to find service locations and request services. The document demonstrates setting up a Eureka server, registering sample services with it, and having a client discover and call the services.
Multi cloud Serverless platform using KubernetesFahri Yardımcı
Graduation project for Gazi University Faculty of Technology Computer Engineering BS Degree.
Tech stack: Kubernetes , Federation-v2, Knative, Istio, Elasticsearch, Grafana, AWS, Google Cloud
This document provides an overview of API gateways. It discusses the API gateway pattern which includes separating client and server code, providing distinct API views from the same origin, and composing calls between APIs. It also includes an architecture diagram and discusses core features like uniform authentication, REST over HTTPS, horizontal scalability, payload rewrite, request composition, and backend as a service. Popular API gateway players like APIGEE, AWS API Gateway, and Kong are compared. Potential pitfalls around dependency, lock-in, scalability, and backend savings are also covered. The conclusion recommends using API gateways as accelerators but planning to reduce their footprint, using standard protocols, managing cache/data, and being able to migrate to an open
This document provides an overview of Kong, an open-source API gateway. It discusses that Kong is a cloud-native, scalable middleware between clients and APIs, and supports features like authentication, security, traffic control, and analytics. The document also summarizes the Community and Enterprise editions of Kong, including that the Enterprise edition provides additional capabilities like an admin GUI, API analytics, and support. It concludes with an example of using Kong to expose an API and discusses benefits and concerns of Kong.
This document summarizes the experience of developing web applications using ASP.NET Core on Linux. It discusses the renaming of ASP.NET to ASP.NET Core, changes to Visual Studio integration, support for package managers like NPM, and the current status of ASP.NET Core. The document also provides details on ASP.NET Core runtime platforms, web application structure, configuration using Project.json, dependency injection, middleware, and routing.
This talk cover the principles and the best practices in creation of flexible Microsoft .NET Core-based applications in connection with Microsoft Azure services, as well as tools and libraries that greatly simplify the development, configuration and deployment of applications. Also, attention paid to some pitfalls that may be encountered while using .NET Core.
This presentation by Andrii Antilikatorov, Consultant at GlobalLogic Kharkiv, was delivered at GlobalLogic Kharkiv MS TechTalk #2 on November 4, 2017.
ASP.NET MVC 4 Request Pipeline InternalsLukasz Lysik
This is a presentation about ASP.NET MVC 4 request pipeline, presented on Study Group meeting. It mainly contains analysis of MVC framework's source code.
The document summarizes the ASP.NET MVC request pipeline in 4 main steps: 1) Routing, 2) Controller execution, 3) Action execution, and 4) Result execution. It describes each step in detail: for routing, it explains how the UrlRoutingModule matches the URL and returns a RouteData that is used to get the controller and action names; for controller execution, it describes how the controller is instantiated and its ExecuteCore method called; for action execution, it outlines how the action invoker finds and invokes the action method; and for result execution, it provides examples of different result types like ViewResult and JsonResult that can be returned.
Challenges in a Microservices Age: Monitoring, Logging and Tracing on Red Hat...Martin Etmajer
Until recently, applications ran on a handful of carefully curated technologies for years to come, deployments were static and teams siloed. In the microservices age, teams are cross-functional, pick the technologies they consider to work best for them, and are held accountable for what they produce. Application deployments are fine-grained, frequent, scalable and fully automated. What a shift and what a challenge for monitoring such environments! In this presentation, you'll learn how to obtain insights from your OpenShift environment by exploring various open-source monitoring, logging, and tracing technologies, including Elasticsearch, Fluentd, Hawkular, Heapster, Jolokia, Kibana, OpenTracing, Prometheus and ZipKin.
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...MSDEVMTL
16 Avril 2016
Groupe Azure
Sujet: Les micro-services et Azure Service Fabric
Conférenciers: Alexandre Brisebois, Microsoft, Stéphane Lapointe, Orckestra et Frank Boucher, Lixar IT
Nous vous proposons une journée complète sur les micro-services et Azure Service Fabric, le but étant d'appendre la théorie avec une série de présentations pour ensuite concrétiser le tout avec une partie pratique "hands-on" et des labs.
Pour participer, vous devrez obligatoirement apporter votre ordinateur portable, avoir installé Visual Studio 2015 Update 2 et Service Fabric SDK 2.0.135.
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusEmily Jiang
This document provides an overview of Eclipse MicroProfile, Open Liberty, and hands-on cloud-native Java microservices. It discusses key MicroProfile APIs for REST, configuration, fault tolerance, health checks, metrics, and more. It also covers deploying microservices on Docker, Kubernetes, and using a service mesh like Istio. The document concludes with a link to a GitHub repository containing a tutorial lab for getting started with a MicroProfile application on Open Liberty.
It begins by defining data abstraction as the development of classes, objects, and types in terms of their interfaces and functionality rather than their implementation details. Abstraction denotes a model or view of a real-world item. Encapsulation then hides the implementation details.
It provides an example Person class that abstracts some key properties and behaviors of a person, such as height, weight, age, and abilities like running, sitting, crying, and reading. This demonstrates how abstraction is used to manage complexity by decomposing real-world concepts into software components.
NuGet 3.0 - Transitioning from OData to JSON-LDJeff Handley
From Oredev 2014
http://oredev.org/2014/sessions/nuget-3-0--transitioning-from-odata-to-json-ld
The NuGet team has spent most of 2014 working on NuGet 3.0. You’ll get a tour of NuGet 3.0, its features, and the direction we’re headed. But then we’ll get to the fun stuff we can all learn from: the challenges we’ve faced, and how we’re overcoming them. You’ll hear chilling tales about how interfaces, LINQ, and general-purpose server APIs have caused us so much grief. But you’ll also see how we broke a cycle of endless design and started making progress when it seemed like none could be made, allowing us to transition from OData to JSON-LD.
Devfest 2023 - Service Weaver Introduction - Taipei.pdfKAI CHU CHUNG
In modern software development, decentralized applications are increasingly common. Decentralized applications can split applications into multiple independent services, each service can be developed, deployed and managed independently.
Service Weaver is a decentralized application development framework provided by Google Cloud. It helps you develop, deploy and manage decentralized applications easily.
In this session, Google Cloud developer expert Kai-Chu Chung will introduce the basic concepts and usage of Service Weaver.
Spring boot microservice metrics monitoringOracle Korea
This document summarizes a presentation on monitoring microservices with Spring Boot. It discusses evolving architectures from monolithic to microservices and challenges in microservices. It then covers different monitoring techniques like metrics, tracing and logging. It provides an overview of tools like Prometheus, Grafana, Spring Boot Admin, Eureka and Consul for monitoring microservices. Finally, it outlines hands-on labs to set up monitoring of a sample application with different tool combinations.
Spring Boot - Microservice Metrics MonitoringDonghuKIM2
마이크로서비스 아키텍쳐에서의 분산된 서비스간의 모니터링 방법을 소개합니다.
- Microservice Monitoring with Service Discovery (Eureka) Spring Boot Admin
- Microservice Monitoring with Service Discovery (Consul), Prometheus, Grafana
APIs are one of the main elements of cloud services. All major cloud service providers expose REST APIs to allow you to programmatically access their services and capabilities. SOAP and REST are the two most common ways of exposing APIs, whether to external, partner, cloud, or internal developers.
The concept of API management is to publish these web APIs for consumption, and includes capabilities such as monitoring, security, and documentation.
This presentation introduces basic concepts of APIs, API management, cloud REST services, and a brief walkthrough of WSO2 API Manager and the Oracle API Gateway to see how you can centrally publish, expose, and secure APIs, essentially virtualizing your backend services.
Microsoft is taking a multifaceted approach to interoperability including collaboration with partners, developing interoperable products/technologies, promoting standards, and providing developer resources. This includes tools like Eclipse for Silverlight which allows Eclipse developers to build applications with Silverlight, and SDKs for Azure that enable PHP, Java and Ruby developers to leverage Microsoft cloud services. Customer feedback has been positive for these cross-platform tools and Microsoft is continuing work on interoperability bridges between technologies like RIA, SOA, identity and web services.
Scale and Load Testing of Micro-ServiceIRJET Journal
1) The document discusses testing of microservices using load and scale testing frameworks. It describes using Locust for load testing and analyzing response times as the number of requests per second and pods are increased.
2) APIs were tested using Pytest with over 50 test cases covering different responses and statuses. Test results were generated as Allure reports.
3) New Relic was used to monitor application performance under increasing load and identify bottlenecks. Testing showed the system could handle 2000 requests per second per container before response times increased significantly.
This document provides an introduction to MicroProfile, Open Liberty, and how to build cloud native microservices. It discusses key MicroProfile specifications like JAX-RS, CDI, REST Client, OpenAPI, Config, Fault Tolerance, Health, Metrics, and OpenTracing. It also covers using Open Liberty, Docker, Kubernetes, Istio and OpenShift for microservices deployment. The document includes an agenda, overview of the MicroProfile community and specifications, a timeline of MicroProfile releases, and pointers to the tutorial code repository.
This document provides an introduction to MicroProfile, Open Liberty, and how to build cloud native microservices. It discusses key MicroProfile specifications like JAX-RS, CDI, REST Client, OpenAPI, Config, Fault Tolerance, Health, Metrics, and OpenTracing. It also covers using Open Liberty, Docker, Kubernetes, Istio and OpenShift for microservices deployment. The document includes an agenda, overview of the MicroProfile community and specifications, a timeline of MicroProfile releases, and pointers to useful resources and the hands-on lab.
New and smart way to develop microservice for istio with micro profileEmily Jiang
The new and smart way to develop microservices for Istio - Eclipse MicroProfile
Focus on MicroProfile and demonstrate 8 MicroProfile specifications with some overview on Istio
The RequestDispatcher interface provides methods for dispatching a request to another resource like a servlet, JSP, or HTML page. The forward() method dispatches the request to another resource and forwards the request, while include() includes the response from another resource in the current response. For example, a servlet can forward a request to a welcome page servlet if authentication succeeds, or include an HTML page if authentication fails to show the login form again.
Explorando el Diseño de la Memoria en RustGermán Küber
Esta presentación, creada por Germán Kúber, ofrece una inmersión profunda en la organización y gestión de la memoria en la programación Rust, abordando desde la disposición de la memoria hasta los conceptos avanzados como el manejo del heap y el stack, y cómo Rust optimiza el uso de la memoria en tiempo de ejecución.
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
La presentación sobre MSIL en C# explica el flujo de compilación en .NET, desde el análisis del código hasta la generación de MSIL, destacando su importancia como puente entre el código fuente y el ejecutable. Se enfoca en la estructura y funciones del compilador, incluyendo la descomposición del código en tokens, la construcción del árbol sintáctico, y la conversión final a MSIL para ejecución por el CLR, subrayando el rol clave de MSIL en la portabilidad y optimización de código en diferentes plataformas.
Este documento describe el concepto de valor máximo extraíble (MEV) y cómo los buscadores pueden aprovecharse de él mediante tácticas como el front running, el back running y los ataques sandwich para ganar dinero a expensas de otros usuarios de blockchain. Explica cómo los buscadores pueden analizar las transacciones pendientes en la memoria para determinar la mejor manera de ordenar sus propias transacciones y así obtener una ventaja financiera injusta.
El documento introduce los conceptos de blockchain y smart contracts, explicando que los smart contracts son aplicaciones descentralizadas que se ejecutan en la blockchain y no pueden ser modificados una vez publicados, a diferencia de las aplicaciones tradicionales. También proporciona recursos adicionales sobre patrones de actualización y proxies para smart contracts.
De 0 a blockchain developer en 3 mesesGermán Küber
Este documento presenta una introducción de 3 meses para convertirse de un desarrollador novato a un experto en blockchain y desarrollo de contratos inteligentes en Ethereum. Cubre temas como las motivaciones para blockchain, qué es blockchain, cómo invertir en criptomonedas, herramientas de desarrollo como Solidity, truffle y hardhat, conceptos como DEFI, seguridad y auditoría, y recursos adicionales para aprender más.
Este documento describe patrones funcionales como alternativas a los patrones de diseño orientados a objetos. Explica conceptos funcionales como functores, monadas y monoides que pueden reemplazar patrones como el patrón de fábrica, estrategia y visitante. Además, incluye recursos para aprender más sobre functores, aplicativos y monadas en Haskell y Javascript.
The document discusses design patterns in Solidity, including categories like security, creational, behavioral, and economic patterns. It also mentions specific patterns like the withdrawal pattern, factory contract pattern, and state machine pattern. Resources for learning more about Solidity design patterns are provided, and the author invites the audience to join Solidity meetup groups and discord channels.
The document discusses vertical slice architecture as an alternative to traditional n-tier architectures. Vertical slice architecture organizes code into classes that each handle a single request from the UI to the database rather than separating layers. This keeps code simple, easy to test, and allows the application to be more easily divided and worked on in parallel.
De 0 a blockchain developer en 3 mesesGermán Küber
Este documento ofrece una guía de 3 meses para convertirse de un novato a un desarrollador blockchain experto. Explica conceptos clave como blockchain, criptomonedas, Ethereum, Solidity y Defi, e incluye recursos para aprender sobre comunidades, lenguajes de programación, seguridad y más temas relevantes para construir en la blockchain de Ethereum. El objetivo es capacitar a los interesados para que puedan crear y auditar contratos inteligentes de manera independiente.
This document discusses the EIP-2535 Diamond standard for upgrading smart contracts in a modular way. Diamonds allow a contract to have infinite functionality by splitting code into reusable facets. Individual facets can be updated without changing the entire contract. This avoids issues like maximum contract sizes and allows for modular permissions. Diamonds provide a shared storage area across all facets to enable state reuse. While more complex, diamonds allow modular updates, permissions, and avoiding storage limits compared to traditional upgrade patterns.
Este documento presenta una introducción a los patrones funcionales para desarrolladores. Explica que los patrones de diseño orientados a objetos como el patrón de responsabilidad única, el principio abierto/cerrado y la inversión de dependencias tienen equivalentes funcionales basados en el uso de funciones. Además, anticipa que cubrirá conceptos funcionales como monadas, functores y monoides.
El documento habla sobre la programación defensiva y cómo escribir código defensivo. Explica que la programación defensiva mejora la calidad, comprensibilidad y predictibilidad del código mediante la validación de argumentos, el manejo de excepciones y nulls, y la escritura de pruebas unitarias. También destaca la importancia de refactorizar el código para separar las responsabilidades y mejorar la testabilidad.
Este documento trata sobre los beneficios y conceptos fundamentales de la programación funcional. Explica que la programación funcional se centra en computar resultados en lugar de ejecutar acciones y que minimiza los efectos secundarios. También cubre conceptos como las funciones de orden superior, la inmutabilidad y cómo LINQ está construido sobre principios funcionales para procesar datos de manera declarativa.
El documento proporciona consejos para escribir pruebas unitarias efectivas. Explica que las pruebas unitarias deben asegurar que el código funcione como se espera, mejorar la calidad y acelerar el desarrollo. Recomienda que las pruebas sean rápidas, aisladas, repetibles y testeen una pequeña funcionalidad usando el patrón AAA (arrange, act, assert). También aborda conceptos como cobertura de código, pruebas en vivo y principios SOLID para hacer el código más testeable.
El documento habla sobre la programación defensiva y cómo escribir código más seguro y predecible. La programación defensiva mejora la calidad, comprensibilidad y predictibilidad del código mediante la validación de argumentos, el manejo de excepciones, y la escritura de pruebas unitarias. Escribir código defensivo previene bugs futuros y mejora la testabilidad general del código.
El documento habla sobre Event Sourcing, una técnica en la que todos los cambios en una aplicación se almacenan como una secuencia de eventos. Explica que el estado actual de una entidad se representa como la suma de todos los eventos pasados, y que solo se agregan eventos sin eliminarlos. También menciona que CQRS y Event Sourcing separan la representación estructural de la representación por eventos, y que los eventos pueden usarse para generar estados actuales o proyecciones y consultas.
The document discusses new features in C# 8 including readonly members, default interface methods, pattern matching with switch expressions and property patterns, using declarations, static local functions, asynchronous streams with IAsyncEnumerable, and null-coalescing assignment. Some key features covered are readonly members to prevent modification of struct fields and methods, default interface methods to provide implementation in interfaces, switch expressions as a cleaner alternative to switch statements, and property patterns for matching on property values in a switch expression.
Arquitectura en aplicaciones Angular y buenas practicas.Germán Küber
Este documento resume buenas prácticas de arquitectura en aplicaciones Angular. Recomienda mantener una estructura plana y simple, organizar funcionalidades en módulos y componentes, usar servicios para compartir lógica e implementar interfaces. También sugiere nomenclaturas claras, comunicación entre componentes mediante observables, y centralizar la lógica compleja en servicios para mantener componentes simples.
El documento habla sobre los problemas que causan los condicionales IF en el código y cómo los genéricos pueden ayudar a resolverlos. Explica que los IF duplican código, hacen que el código haga más de una cosa y pierde los principios de OOP. Luego introduce los genéricos como una forma de encapsular lógica condicional y errores para crear una interfaz más limpia y legible. Finalmente, muestra un ejemplo de cómo usar genéricos para encapsular la lógica de autenticación.
Este documento presenta diferentes servicios de Microsoft Azure y cuándo utilizarlos. Explica opciones para implementar aplicaciones web, almacenar y analizar datos, mejorar el rendimiento, agregar inteligencia y manejar mensajes. Proporciona detalles sobre servicios como App Service, SQL Database, Cosmos DB, Machine Learning y Service Bus. El objetivo es ayudar a los desarrolladores a elegir el servicio correcto para cada situación.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
2. 1. ¿Por qué la necesidad de RESTFull?
2. ¿Qué es RESTFull?
3. Los 6 conceptos de RESTFull
4. Como implementar RESTFull en Asp.net Core
5. Conclusión
¿Qué vamos a ver?
3. Las 8 Falacias de la Computación Distribuida
1. La red es confiable
2. La latencia es cero, la latencia no es problema
3. El ancho de banda es infinito
4. La red es segura
5. La topología no cambia
6. Hay uno y sólo un administrador
7. El coste de transporte es cero
8. La red es homogénea http://www.rgoarchitects.com/Files/fallacies.pdf
17. [HttpGet("{id}")]
public User Get(int id)
[HttpGet("{id}/comments")]
public User Get(int id)
[HttpGet("{id:int}/comments/{commentId:int}")]
public List<Comment> Get(int id,int commentId)
[HttpPost]
public void Post([FromBody]string value)
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value)
Microsoft.AspNetCore.Mvc
29. Cliente 1 Cliente 2 API
G E T api/authors/{id}
G E T api/authors/{id}
PUT api/authors/{id}
Concurrencia
PUT api/authors/{id}
30. Cliente 1 Cliente 2 API
Concurrencia en RESTFull
G E T api/authors/{id}
PUT api/authors/{id}
If-Match: “123456789”
2 0 0 Ok, ETag: “123456789”
G E T api/authors/{id}
200/204, ETag: “987654321”
PUT api/authors/{id}
If-Match: “123456789”
412 Precondition failed
2 0 0 Ok, ETag: “123456789”
34. RESUMEN
• No toda api es una api RESTFull
• Debemos diseñar siempre pensando en nuestros clientes
• No debemos forzar la implementación de RESTFull
• RESTFull prepara nuestras API para el futuro
35. Recursos
Microsoft REST API Guidelines
https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md
Asp.net Core
https://docs.microsoft.com/en-us/aspnet/core/
Roy T. Fielding's dissertation
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Como armar el Etag no es parte de la norma si no que lo decide el servidor.
En 1994
L. Peter Deutsch fundador de Aladdin Enterprises y más conocido como el creador de Ghostscript, afirmó que todo programador que empieza en el mundo de las aplicaciones distribuidas comete una serie de presunciones erróneas cuyo resultado se traduce en errores o reducciones substanciales del alcance del sistema. Estas presunciones, que inicialmente fueron 7, se conocen como las Falacias de la Computación Distribuida.
Intenta definir y mostrar como una web bien diseñada se comporta por detrás.
Se diseña pensando en el modelo no en los requisitos de sismtea
Esto permite crecer y extender nuestro sistema
Se diseña pensando en el modelo no en los requisitos de sismtea
Esto permite crecer y extender nuestro sistema
Es una forma de pensar nuestras aplicaciones
Es un modelo de arquitectura
Solo se implementa sobre HTTP
Un concepto que intenta describir como se comporta la web por detrás, o como deberia comportarse por completo
En 1994
L. Peter Deutsch fundador de Aladdin Enterprises y más conocido como el creador de Ghostscript, afirmó que todo programador que empieza en el mundo de las aplicaciones distribuidas comete una serie de presunciones erróneas cuyo resultado se traduce en errores o reducciones substanciales del alcance del sistema. Estas presunciones, que inicialmente fueron 7, se conocen como las Falacias de la Computación Distribuida.
Clava diferenciadora
Aplicar patrones de diseño general, donde la Interface de nuestra api sea lo mas natural
Definir una comunicación estándar, donde todos los clientes puedan comunicarse.
No se trabaja con el recurso directamente si no con una reprensetacion de el: json, xml
Mensajes deben tener la capacidad de auto describir, los puntos de actualizacion y hasta como eliminar a este recurso (HATEOAS)
Beneficios:
Todos entienden el mismos lenguaje, y pueden reaccionar antes errores de red, o de otro tipo
Reconoce que todo se escribe en lenguajes distintos
Asegura que no se necesita que los componentes conozcan el lenguaje del otro componente, si no que entiendan un lenguaje comun independiente a su implementación
Visibilidad, el mismos mensaje significa lo mismo en todos los componentes
Estabilidad : puedo evolucionar componentes independientes sin que el sistema se vuelva inestable
Define toda la comunicación entre servidores como la de un cliente con un servidor
Separacion de responsabilidades entre cliente y servidor
Evolucion independiente
Los clientes solo conocen a los SERVIDORES y no los servidores a los CLIENTES
Portabilidad de clientes
Evolucion independiente
Clava diferenciadora
Aplicar patrones de diseño general, donde la Interface de nuestra api sea lo mas natural
Definir una comunicación estándar, donde todos los clientes puedan comunicarse.
No se trabaja con el recurso directamente si no con una reprensetacion de el: json, xml
Mensajes deben tener la capacidad de auto describir, los puntos de actualizacion y hasta como eliminar a este recurso (HATEOAS)
Beneficios:
Todos entienden el mismos lenguaje, y pueden reaccionar antes errores de red, o de otro tipo
Reconoce que todo se escribe en lenguajes distintos
Asegura que no se necesita que los componentes conozcan el lenguaje del otro componente, si no que entiendan un lenguaje comun independiente a su implementación
Visibilidad, el mismos mensaje significa lo mismo en todos los componentes
Estabilidad : puedo evolucionar componentes independientes sin que el sistema se vuelva inestable
No construimos una app sin estados
Todo estado del cliente se mantiene en el cliente y se envia en la solicitud
Evita sincronizacion entre servidores, y evita flujos complejos
Si la conexión se cae , no pierdo el estado ya que le estado viaja en el request
Pueden vivir app intermedias que sean capaz de aplica capas de seguridad
Visibilidad
Relaibility > si cae un servidor reinicio el workflow
Escalabilidad
Hypermedia as the Engine of Application State
La respuesta debe estar etiquetada como cacheable o no cacheable
Benefiicios de cache:
Cliente
Servidor
Intermedio
Dado que la latencia nunca es cero, evita esperar respuesta no necesarias al cliente
Ancho de banda, evita hacer pedidos no necesarios , reduce el ancho de banda..
Reconoce el tema de que no hay costos en las llamadas
Por ejemplo un mobile
El servidor puede mantener una cantidad X de cache, hasta evolucionar a un sistema mucho mas caro
Beneficios
Eficiencia
Escalabilidad: se peude escalar dado que no se consume toda la red
Performance.
Como armar el Etag no es parte de la norma si no que lo decide el servidor.
Como armar el Etag no es parte de la norma si no que lo decide el servidor.
Como armar el Etag no es parte de la norma si no que lo decide el servidor.
Como armar el Etag no es parte de la norma si no que lo decide el servidor.
El componente solo puede conocer las capas del sistema en el que vive
Esto permite agregar caches,.
Proxys.
Balanceadores de carga
Entiende que los servidores estan en constante cambio
Entiende que la red no es segura por lo que limita los contextos.
Puede administrarse mejor dado que cada persona puede administrar su propio contexto.
Escalabilidad
Manajabilidad
Cliente > proovedor > empresa > base de datos
Mas ignorada por falta de tecnología que pudiera implementarlo de una manera adecuada.
Jj, html5 y ajax lo hacen posible.
El servidor puede proveedor de código ejecutable al cliente.
Evita que el cliente tenga que escribir lógica redundante.
Problemas de seguridad, estamos descargando algo que no controlamos
Menos gente utilice la api.
Se debe aseguridad de que devolvemos valor al cliente que lo precisa pero no rompemos al cliente que no lo quiere.
Autenticación federada, me quiero loguear con facebook y el me devuelva html y js para que me redirija.
Rest no es una implementación. Rest es un concepto.
No todas las api rest son api rest, y aun menos todas las api RESTFull no son restfull.
Debemos tener en cuenta este concepto a la hora de diseñar nuestros sistemas, y debemos tener en cuenta siempre que nuestras aplicaciones son para nuestros clientes
Por lo que la implementación y la cantidad de conceptos que implementemos siempre deben ayudar a los clientes.
Asp.net Core, es un framework pensado para la nube, por lo que si queresmo aprobecharlo realmente debemos diseñar.