Pradip Shah discusses using Bitbucket Pipelines to build continuous integration and delivery pipelines for WordPress and Magento applications. Bitbucket Pipelines uses Docker containers to run build steps defined in a YAML configuration file. Key benefits include reducing the cost of testing with containerization, and the ability to automate deployments through continuous delivery. The presentation provides an example Magento 2 pipeline and discusses concepts like separating concerns between Docker images and pipeline steps.
Logs/Metrics Gathering With OpenShift EFK StackJosef Karásek
This document summarizes a presentation about logs and metrics gathering with the OpenShift EFK stack. It introduces the OpenShift logging team and their objectives of collecting distributed logs in a common data model with security and scalability. It describes the main components of Fluendt for collection and normalization and Elasticsearch for storage. It provides examples of using the logging stack with OpenShift, OpenStack, and oVirt and advice for custom application logging.
Secrets of Performance Tuning Java on KubernetesBruno Borges
Java on Kubernetes may seem complicated, but after a bit of YAML and Dockerfiles, you will wonder what all that fuss was. But then the performance of your app in 1 CPU/1 GB of RAM makes you wonder. Learn how JVM ergonomics, CPU throttling, and GCs can help increase performance while reducing costs.
This document discusses time series data storage and querying in Prometheus. It describes how Prometheus stores time series data as chunks on disk in a key-value store format, with compression to reduce storage needs. It also explains how Prometheus handles ingesting new time series data through appending to in-memory chunks before writing to disk, and how it handles querying time series data through iterators over chunk files on disk.
Monitoring at Facebook - Ran Leibman, Facebook - DevOpsDays Tel Aviv 2015DevOpsDays Tel Aviv
This document summarizes Ran Leibman's presentation on monitoring tools, components, and mentality at Facebook. It describes Facebook's monitoring architecture including the operational data store (ODS) for storing metrics, Scuba for real-time log monitoring, the alarm system for creating alerts, Facebook Auto-Remediation (FBAR) for automating issue resolution, notifications and subscriptions for alerting engineers, and dashboards for visualizing data. The presentation emphasizes treating metrics as important data, empowering developers to monitor, automating problem resolution, and using monitoring to surface previously unknown issues.
This document outlines an agenda for the Viet OpenInfra Days 2019 event. The event will cover Kubernetes clustering, MetalLB for load balancing, and Istio service mesh. It will include demonstrations and hands-on activities. The presenters will provide overviews of Kubernetes architecture, how MetalLB implements load balancing, and how Istio uses the Envoy proxy and sidecars to manage and secure microservices communication.
- Ironic is an OpenStack service and Nova driver that provides bare metal provisioning capabilities, allowing deployment of images to physical machines without using virtualization.
- It has a distributed architecture with components like ironic-api, ironic-conductor, and deploy ramdisk for provisioning hardware.
- Ironic supports various technologies for remote access and booting including PXE, IPMI, and iSCSI. Configuration options allow it to work with both homogeneous and heterogeneous hardware environments.
Prometheus’s simple and reliable operational model is one of its major selling points. However, after surpassing a certain scale, we have identified a few shortcomings it imposes. We are proud to present Thanos, an open source project by Improbable that bundles a set of components that seamlessly transform existing Prometheus deployments, into a unified, global scale monitoring system.
Authors: Fabian Reinartz, Bartlomiej Plotka
Slides from January London Prometheus Meetup 2018.
Thanos: https://github.com/improbable-eng/thanos
Gitflow with FME and Autobuilding a Project with the Gitlab Build PipelineSafe Software
FME and git do not work so well together at the moment - but a git workflow is an attractive option when creating FME-based products. Indeed, in some IT companies using git during development is part of the company policy. It is not only using git and the attractive git workflow; Gitlab (and, of course, GitHub) is also a very attractive tool for developers: Gitlab is a server-based solution which provides an ecosystem to support the development process, and it can facilitate tracking issues, and bugs, managing versions, permissions and can even help with auto-building and deploying software.
This presentation will cover the challenges and benefits involved when applying a git-based workflow to FME development and discuss how Gitlab can be used to help run a pipeline to auto-deploy an FME-based project.
Distributed Caching in Kubernetes with HazelcastMesut Celik
As Monolith to Microservices migration almost became mainstream, Engineering Teams have to think about how their caching strategies will evolve in cloud-native world. Kubernetes is clear winner in containerized world so caching solutions must be cloud-ready and natural fit for Kubernetes.
Caching is an important piece in high performance microservices and choosing right architectural pattern can be crucial for your deployments. Hazelcast is a well known caching solution in open source community and can handle caching piece in microservices based applications.
In this talk, you will learn
* Distributed Caching With Hazelcast
* Distributed Caching Patterns in Kubernetes
* Kubernetes Deployment Options and Best Practices
* How to Handle Distributed Caching Day 2 Operations
1. Minikube allows users to run a single-node Kubernetes cluster locally for development and testing. It provisions and manages a virtual machine running Kubernetes.
2. The steps to set up Minikube on Windows are to install Oracle VirtualBox, enable virtualization in BIOS, install Minikube and Kubectl, and start the Minikube cluster.
3. Some basic operations with Minikube include starting and stopping the cluster, getting the cluster status and IP, creating deployments and exposing services, and checking pod statuses. The Kubernetes dashboard is also available.
This document provides an overview of CUDA architecture and programming. It discusses key CUDA concepts like the host/device model, CUDA C extensions, GPU memory management, and parallel programming using CUDA threads and blocks. CUDA allows developers to speed up applications by offloading work to the GPU. It provides a scalable parallel programming model that maps threads to GPU threads to express data-level parallelism across thousands of lightweight threads for applications like high-bandwidth computing and visual computing.
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...Edureka!
** Edureka DevOps Training : https://www.edureka.co/devops **
This Edureka Video on Docker vs VM (Virtual Machine) video compares the Major Differences between Docker and VM. Below are the topics covered in the video:
1. What is Virtual Machine?
2. Benefits of Virtual Machine
3. What are Docker Containers
4. Benefits of Docker Containers
5. Docker vs VM – Main Differences
6. Use Case
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Let's keep it simple and streaming.pdfVMware Tanzu
I’ll walk through how to build a simple streaming application using JDK 17, Spring Boot 3, and Apache Pulsar 2.11. At the end of this talk, you’ll have a simple streaming application running and ready for testing and beyond.
Speaker: Timothy Spann, Developer Advocate, StreamNative
DRUPAL CI/CD FROM DEV TO PROD WITH GITLAB, KUBERNETES AND HELMDrupalCamp Kyiv
I will share my experience with deploying multiple Drupal apps to different instances based on Gitlab integration with Kubernetes, used Helm charts for k8s templating, building CI/CD pipeline with GitlabCI, with examples and details on different stages. Also, we'll cover dynamic review envs, multisite installation, SSL and implementing extended configurations.
https://drupalcampkyiv.org/node/40
Virtual Kubernetes Clusters on Amazon EKSJim Bugwadia
From AWS Community Day 2019!
Learn how to use Kubernetes native constructs to build Virtual Clusters, so that your teams can focus on delivering business value.
This document discusses simulating an ad-hoc network using OMNeT++ and the INETMANET framework. It describes building an OMNeT++ project with INETMANET imported as a reference. It then details creating a network description file and initialization file to simulate an AODV ad-hoc network with a varying number of nodes. The simulation measures the end-to-end delay for the first 700 packets received by a fixed destination node. Test results show the total delay and average delay per packet increases as the number of nodes increases in the network.
This document discusses autoscaling in Kubernetes. It describes horizontal and vertical autoscaling, and how Kubernetes can autoscale nodes and pods. For nodes, it proposes using Google Compute Engine's managed instance groups and cloud autoscaler to automatically scale the number of nodes based on resource utilization. For pods, it discusses using an autoscaler controller to scale the replica counts of replication controllers based on metrics from cAdvisor or Google Cloud Monitoring. Issues addressed include rebalancing pods and handling autoscaling during rolling updates.
Log aggregation: using Elasticsearch, Fluentd/Fluentbit and Kibana (EFK)Lee Myring
A quick introduction to log aggregation in a local Docker development environment using Fluentd followed by a demonstration using a publicly available GitHub repo.
High Performance Computing - The Future is HereMartin Hamilton
These are the slides from my talk on supercomputing to DARC in January 2014. The talk covers everything from the UK's "missing million" young people not in employment, education or training (NEETs) to engaging with the Raspberry Pi generation, and also provides an introduction to supercomputing and our HPC Midlands facility.
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...Henning Jacobs
This document summarizes Henning Jacobs' talk on running Kubernetes in production and the many ways clusters can crash. It describes several incidents Zalando faced with their Kubernetes clusters that led to outages, including API server issues causing ingress problems, etcd deletion causing cluster downtime, EC2 networking issues, image pulling failures, and credential processing bottlenecks preventing deployments. Each incident highlighted lessons around disaster recovery planning, automated testing of upgrades, monitoring cloud infrastructure, and avoiding resource starvation.
1. Kubernetes and Docker Swarm are container orchestrators that ensure applications have the required number of running instances and provide automatic failover.
2. Kubernetes uses a master-node architecture and deploys configurations declaratively using YAML files. It ensures configurations are consistent and provides built-in health checks.
3. Docker Swarm manages nodes in a cluster using Docker APIs. It provides container placement using pluggable schedulers with strategies like bin packing and spread. It also supports resource management and affinity/anti-affinity filters.
4. Both orchestrators have limitations like complicated deployment and a lack of automatic horizontal scaling. Kubernetes has more advanced functionality for application deployments and health checks.
Watch the recording here: https://youtu.be/0KmqEp4VxSQ
Welcome Helm users! CNCF Flux has a best-in-class way to use Helm according to GitOps principles. For you, that means improved security, reliability, and velocity - no more being on the pager on the weekends or having painful troubleshooting or rollback when things go wrong. Built on Kubernetes controller-runtime, Flux’s Helm Controller is an example of a mature software agent that uses Helm’s SDK to full effect.
Flux’s biggest addition to Helm is a structured declaration layer for your releases that automatically gets reconciled to your cluster based on your configured rules:
⭐️ The Helm client commands let you imperatively do things
⭐️ Flux Helm Custom Resources let you declare what you want the Helm SDK to do automatically
During this session, Scott Rigby, Developer Experience Engineer at Weaveworks and Flux & Helm Maintainer, will take you on a tour of Flux’s Helm Controller, share the additional benefits Flux adds to Helm and then walk through a live demo of how to manage helm releases using Flux.
If you want to follow along with Scott’s demo, here are a couple of resources to help you prepare ahead of time:
📄 Flux for Helm Users Docs: https://fluxcd.io/docs/use-cases/helm/
📄 Flux Guide: Manage Helm Releases: https://fluxcd.io/docs/guides/helmreleases/
Speaker Bio:
Scott is a Brooklyn based interdisciplinary artist and Developer Advocate at Weaveworks. He co-founded the Basekamp art and research group in 1998 and the massively collaborative Plausible Artworlds international network. In technology he enjoys helping develop open source software that anyone can use, most recently projects in the cloud native landscape including co-maintaining Helm and Flux. In daily decisions, large or small, he tries to help make the world a better place for everyone.
This document discusses issues with running OpenStack in a multi-region mode and proposes Tricircle as a solution. It notes that in a multi-region OpenStack deployment, each region runs independently with separate instances of services like Nova, Cinder, Neutron, etc. Tricircle aims to integrate multiple OpenStack regions into a unified cloud by acting as a central API gateway and providing global views and replication of resources, tenants, and metering data across regions. It discusses how Tricircle could address issues around networking, quotas, resource utilization monitoring and more in a multi-region OpenStack deployment.
Kubernetes is an open-source system for managing containerized applications across multiple hosts. It includes key components like Pods, Services, ReplicationControllers, and a master node for managing the cluster. The master maintains state using etcd and schedules containers on worker nodes, while nodes run the kubelet daemon to manage Pods and their containers. Kubernetes handles tasks like replication, rollouts, and health checking through its API objects.
Spring IO '15 - Developing microservices, Spring Boot or Grails?Fátima Casaú Pérez
The document discusses the options of using Spring Boot or Grails to build microservices. It provides an overview of Spring Boot, Groovy, and GVM (Groovy enVironment Manager). It then gives an example of implementing a simple REST API using Spring Boot with Groovy, Gradle, creating an entity, repository, and controller. The document compares this to implementing the same example using Grails.
Charla en Madrid Spring User Group (www.meetup.com/madrid-spring-user-group/) sobre el uso del framework Spock en aplicaciones Spring Boot y como contenido extra, breve introducción al framework GEB para pruebas funcionales
- Ironic is an OpenStack service and Nova driver that provides bare metal provisioning capabilities, allowing deployment of images to physical machines without using virtualization.
- It has a distributed architecture with components like ironic-api, ironic-conductor, and deploy ramdisk for provisioning hardware.
- Ironic supports various technologies for remote access and booting including PXE, IPMI, and iSCSI. Configuration options allow it to work with both homogeneous and heterogeneous hardware environments.
Prometheus’s simple and reliable operational model is one of its major selling points. However, after surpassing a certain scale, we have identified a few shortcomings it imposes. We are proud to present Thanos, an open source project by Improbable that bundles a set of components that seamlessly transform existing Prometheus deployments, into a unified, global scale monitoring system.
Authors: Fabian Reinartz, Bartlomiej Plotka
Slides from January London Prometheus Meetup 2018.
Thanos: https://github.com/improbable-eng/thanos
Gitflow with FME and Autobuilding a Project with the Gitlab Build PipelineSafe Software
FME and git do not work so well together at the moment - but a git workflow is an attractive option when creating FME-based products. Indeed, in some IT companies using git during development is part of the company policy. It is not only using git and the attractive git workflow; Gitlab (and, of course, GitHub) is also a very attractive tool for developers: Gitlab is a server-based solution which provides an ecosystem to support the development process, and it can facilitate tracking issues, and bugs, managing versions, permissions and can even help with auto-building and deploying software.
This presentation will cover the challenges and benefits involved when applying a git-based workflow to FME development and discuss how Gitlab can be used to help run a pipeline to auto-deploy an FME-based project.
Distributed Caching in Kubernetes with HazelcastMesut Celik
As Monolith to Microservices migration almost became mainstream, Engineering Teams have to think about how their caching strategies will evolve in cloud-native world. Kubernetes is clear winner in containerized world so caching solutions must be cloud-ready and natural fit for Kubernetes.
Caching is an important piece in high performance microservices and choosing right architectural pattern can be crucial for your deployments. Hazelcast is a well known caching solution in open source community and can handle caching piece in microservices based applications.
In this talk, you will learn
* Distributed Caching With Hazelcast
* Distributed Caching Patterns in Kubernetes
* Kubernetes Deployment Options and Best Practices
* How to Handle Distributed Caching Day 2 Operations
1. Minikube allows users to run a single-node Kubernetes cluster locally for development and testing. It provisions and manages a virtual machine running Kubernetes.
2. The steps to set up Minikube on Windows are to install Oracle VirtualBox, enable virtualization in BIOS, install Minikube and Kubectl, and start the Minikube cluster.
3. Some basic operations with Minikube include starting and stopping the cluster, getting the cluster status and IP, creating deployments and exposing services, and checking pod statuses. The Kubernetes dashboard is also available.
This document provides an overview of CUDA architecture and programming. It discusses key CUDA concepts like the host/device model, CUDA C extensions, GPU memory management, and parallel programming using CUDA threads and blocks. CUDA allows developers to speed up applications by offloading work to the GPU. It provides a scalable parallel programming model that maps threads to GPU threads to express data-level parallelism across thousands of lightweight threads for applications like high-bandwidth computing and visual computing.
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...Edureka!
** Edureka DevOps Training : https://www.edureka.co/devops **
This Edureka Video on Docker vs VM (Virtual Machine) video compares the Major Differences between Docker and VM. Below are the topics covered in the video:
1. What is Virtual Machine?
2. Benefits of Virtual Machine
3. What are Docker Containers
4. Benefits of Docker Containers
5. Docker vs VM – Main Differences
6. Use Case
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Let's keep it simple and streaming.pdfVMware Tanzu
I’ll walk through how to build a simple streaming application using JDK 17, Spring Boot 3, and Apache Pulsar 2.11. At the end of this talk, you’ll have a simple streaming application running and ready for testing and beyond.
Speaker: Timothy Spann, Developer Advocate, StreamNative
DRUPAL CI/CD FROM DEV TO PROD WITH GITLAB, KUBERNETES AND HELMDrupalCamp Kyiv
I will share my experience with deploying multiple Drupal apps to different instances based on Gitlab integration with Kubernetes, used Helm charts for k8s templating, building CI/CD pipeline with GitlabCI, with examples and details on different stages. Also, we'll cover dynamic review envs, multisite installation, SSL and implementing extended configurations.
https://drupalcampkyiv.org/node/40
Virtual Kubernetes Clusters on Amazon EKSJim Bugwadia
From AWS Community Day 2019!
Learn how to use Kubernetes native constructs to build Virtual Clusters, so that your teams can focus on delivering business value.
This document discusses simulating an ad-hoc network using OMNeT++ and the INETMANET framework. It describes building an OMNeT++ project with INETMANET imported as a reference. It then details creating a network description file and initialization file to simulate an AODV ad-hoc network with a varying number of nodes. The simulation measures the end-to-end delay for the first 700 packets received by a fixed destination node. Test results show the total delay and average delay per packet increases as the number of nodes increases in the network.
This document discusses autoscaling in Kubernetes. It describes horizontal and vertical autoscaling, and how Kubernetes can autoscale nodes and pods. For nodes, it proposes using Google Compute Engine's managed instance groups and cloud autoscaler to automatically scale the number of nodes based on resource utilization. For pods, it discusses using an autoscaler controller to scale the replica counts of replication controllers based on metrics from cAdvisor or Google Cloud Monitoring. Issues addressed include rebalancing pods and handling autoscaling during rolling updates.
Log aggregation: using Elasticsearch, Fluentd/Fluentbit and Kibana (EFK)Lee Myring
A quick introduction to log aggregation in a local Docker development environment using Fluentd followed by a demonstration using a publicly available GitHub repo.
High Performance Computing - The Future is HereMartin Hamilton
These are the slides from my talk on supercomputing to DARC in January 2014. The talk covers everything from the UK's "missing million" young people not in employment, education or training (NEETs) to engaging with the Raspberry Pi generation, and also provides an introduction to supercomputing and our HPC Midlands facility.
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...Henning Jacobs
This document summarizes Henning Jacobs' talk on running Kubernetes in production and the many ways clusters can crash. It describes several incidents Zalando faced with their Kubernetes clusters that led to outages, including API server issues causing ingress problems, etcd deletion causing cluster downtime, EC2 networking issues, image pulling failures, and credential processing bottlenecks preventing deployments. Each incident highlighted lessons around disaster recovery planning, automated testing of upgrades, monitoring cloud infrastructure, and avoiding resource starvation.
1. Kubernetes and Docker Swarm are container orchestrators that ensure applications have the required number of running instances and provide automatic failover.
2. Kubernetes uses a master-node architecture and deploys configurations declaratively using YAML files. It ensures configurations are consistent and provides built-in health checks.
3. Docker Swarm manages nodes in a cluster using Docker APIs. It provides container placement using pluggable schedulers with strategies like bin packing and spread. It also supports resource management and affinity/anti-affinity filters.
4. Both orchestrators have limitations like complicated deployment and a lack of automatic horizontal scaling. Kubernetes has more advanced functionality for application deployments and health checks.
Watch the recording here: https://youtu.be/0KmqEp4VxSQ
Welcome Helm users! CNCF Flux has a best-in-class way to use Helm according to GitOps principles. For you, that means improved security, reliability, and velocity - no more being on the pager on the weekends or having painful troubleshooting or rollback when things go wrong. Built on Kubernetes controller-runtime, Flux’s Helm Controller is an example of a mature software agent that uses Helm’s SDK to full effect.
Flux’s biggest addition to Helm is a structured declaration layer for your releases that automatically gets reconciled to your cluster based on your configured rules:
⭐️ The Helm client commands let you imperatively do things
⭐️ Flux Helm Custom Resources let you declare what you want the Helm SDK to do automatically
During this session, Scott Rigby, Developer Experience Engineer at Weaveworks and Flux & Helm Maintainer, will take you on a tour of Flux’s Helm Controller, share the additional benefits Flux adds to Helm and then walk through a live demo of how to manage helm releases using Flux.
If you want to follow along with Scott’s demo, here are a couple of resources to help you prepare ahead of time:
📄 Flux for Helm Users Docs: https://fluxcd.io/docs/use-cases/helm/
📄 Flux Guide: Manage Helm Releases: https://fluxcd.io/docs/guides/helmreleases/
Speaker Bio:
Scott is a Brooklyn based interdisciplinary artist and Developer Advocate at Weaveworks. He co-founded the Basekamp art and research group in 1998 and the massively collaborative Plausible Artworlds international network. In technology he enjoys helping develop open source software that anyone can use, most recently projects in the cloud native landscape including co-maintaining Helm and Flux. In daily decisions, large or small, he tries to help make the world a better place for everyone.
This document discusses issues with running OpenStack in a multi-region mode and proposes Tricircle as a solution. It notes that in a multi-region OpenStack deployment, each region runs independently with separate instances of services like Nova, Cinder, Neutron, etc. Tricircle aims to integrate multiple OpenStack regions into a unified cloud by acting as a central API gateway and providing global views and replication of resources, tenants, and metering data across regions. It discusses how Tricircle could address issues around networking, quotas, resource utilization monitoring and more in a multi-region OpenStack deployment.
Kubernetes is an open-source system for managing containerized applications across multiple hosts. It includes key components like Pods, Services, ReplicationControllers, and a master node for managing the cluster. The master maintains state using etcd and schedules containers on worker nodes, while nodes run the kubelet daemon to manage Pods and their containers. Kubernetes handles tasks like replication, rollouts, and health checking through its API objects.
Spring IO '15 - Developing microservices, Spring Boot or Grails?Fátima Casaú Pérez
The document discusses the options of using Spring Boot or Grails to build microservices. It provides an overview of Spring Boot, Groovy, and GVM (Groovy enVironment Manager). It then gives an example of implementing a simple REST API using Spring Boot with Groovy, Gradle, creating an entity, repository, and controller. The document compares this to implementing the same example using Grails.
Charla en Madrid Spring User Group (www.meetup.com/madrid-spring-user-group/) sobre el uso del framework Spock en aplicaciones Spring Boot y como contenido extra, breve introducción al framework GEB para pruebas funcionales
This tutorial is about Spring Boot.
The tutorial includes an introduction to Spring Boot, key features of Spring Boot, prototyping using CLI, managing profiles aka environment in Grails, using GORM and using GSP. The tutorial begins with a section which is an introduction to Spring Boot. It includes an introduction to Spring Boot, the benefits of using Spring Boot.
Following is a features section which includes the key features of Spring Boot like embedded servers, security, metrics etc. Next is a section about prototyping. It includes prototyping using CLI, getting started, the things that happen during prototyping, starter POMs and a demo, building Gradle, using plugin and adding dependencies, and hot reloading.
Consecutively there is a section about managing profiles. It includes managing profiles aka managing environment in Grails like binding properties and its examples, using spring data to add dependency. Moreover, there's also a section which includes using GORM for next level persistence and also includes server side view template libraries like JSP, velocity, tiles, GSP etc.
The last section of this tutorial is about GSP. It includes using GSP with Spring Boot as it has limited tags, adds dependency and helps in packaging executable JAR and WAR files.
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3Lari Hotari
Modular monoliths are composed of loosely coupled modules of single responsibility. Ideally these modules can be separated into true microservices when needed - instead of introducing accidental complexity and tradeoffs of distributed systems to projects in the beginning. In this presentation we will look in to the practicality of this approach with Grails 3 and Spring Boot.
recording: https://skillsmatter.com/legacy_profile/lari-hotari#skillscasts
This document provides an introduction to the Grails framework. It discusses the major components of Grails including controllers, views, domain objects, services, tag libraries and plugins. It also summarizes common Grails commands and techniques for extending applications using plugins.
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011Fátima Casaú Pérez
Este documento presenta una introducción a las pruebas funcionales con Geb (WebDriver) en aplicaciones Grails. Explica que Geb permite probar la funcionalidad y el interfaz gráfico de aplicaciones web mediante el uso de navegadores como Firefox o Chrome. Utiliza un enfoque basado en objetos de páginas que proporciona modularidad y reutilización. También cubre temas como la inspección y navegación del contenido HTML, el uso de JavaScript y Ajax, y provee un ejemplo de aplicación de blog desarrollada en Gra
Este documento presenta Spock como una solución para facilitar la escritura y comprensión de pruebas unitarias y de integración en Grails. Spock proporciona una sintaxis basada en bloques y especificaciones declarativas que simplifican la escritura de pruebas. Además, Grails incluye mixins de prueba que agregan funcionalidad de prueba a los controladores, servicios y otros artefactos de Grails.
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsFátima Casaú Pérez
Groovy es un lenguaje dinámico para desarrollar aplicaciones web que se ejecuta en la JVM. Grails es un framework para crear aplicaciones web basadas en Java EE que utiliza Groovy como lenguaje de programación y sigue el patrón MVC. Grails simplifica el desarrollo web mediante convenciones como la ubicación de archivos y nombres descriptivos, lo que reduce la necesidad de configuración.
t3chfest 2016 - Implementando microservicios, como y por queFátima Casaú Pérez
Últimamente se escucha hablar mucho de microservicios web y parece un tendencia en el desarrollo de aplicaciones pero en muchas ocasiones no se sabe muy bien qué son, cuál es son sus diferencias con respecto a las aplicaciones monolíticas y qué ventajas nos aportan con respecto a éstas últimas.
En esta charla veremos una introducción a los microservicios, una comparativa con las aplicaciones monolíticas y ejemplos de frameworks, herramientas y arquitecturas que podemos montar para implementar y desplegar aplicaciones basadas en microservicios
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...Alvaro Sanchez-Mariscal
Grails 3.1 enhances and improves the profile system introduced in Grails 3.0. One of the new profiles ease the creation and development of applications where the the front-end is an Angular JS application, and the backend is a Grails REST API.
In this session, Álvaro (member of the Grails team at OCI, Grails committer and author of several plugins) will demonstrate how to use the Angular profile to create an application using Grails 3.1, Angular JS and Spring Security REST.
The workshop is published at http://alvarosanchez.github.io/grails-angularjs-springsecurity-workshop/
O documento discute as vantagens e desvantagens de duas tecnologias populares para desenvolvimento web Java: Java EE e Spring Framework. Defensores de ambos os lados fazem argumentos sobre qual tecnologia é melhor ou mais apropriada para diferentes casos de uso. A discussão também aborda preocupações sobre a direção futura e manutenção de cada tecnologia.
The document discusses using Groovy annotations and AST transformations to add behavior to classes at compile time. It provides examples of annotations like @Singleton, @Delegate, @Immutable that change how classes are instantiated or allow delegation of methods. It also shows an example of a HelloWorld annotation that uses an AST transformation to print "Hello, World!" by modifying the AST at compile time.
Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012kennethaliu
The document discusses modularizing a Grails application using private plugins. It covers Grails plugin development basics like creating a new plugin, the plugin descriptor file, excluded files, running and packaging a plugin. It also discusses application architecture with private plugins, including moving common functionality into plugins to avoid forking code.
The document discusses branching per user story in version control systems like Git. It covers topics like branching workflows, commits, merging, rebasing, continuous integration using tools like Jira and Bamboo, and linking work items like user stories or issues to code changes. The goal is to illustrate how to structure code development around individual user stories with branches in order to facilitate continuous integration and delivery.
Markup Template Engine is a new feature of Groovy, that is a kind of Embedded DSL which is implemented using Groovy 2.x features like:
- Custom Type Checker(Type Check Extension)
- Compiler Configuration
You can generate HTML/XML using full brown programming language features:
- modularity
- abstraction
- type system
- flow structure
- variable, OOP, etc, etc..
Rest style web services (google protocol buffers) prasad nirantarIndicThreads
Session presented at the 6th IndicThreads.com Conference on Java held in Pune, India on 2-3 Dec. 2011.
http://Java.IndicThreads.com
Spock is a testing framework for Java and Groovy applications that allows for highly expressive tests. It uses Groovy as its language and provides features like a JUnit runner, object mocking, and descriptive specifications. Spock tests can be written using fields, fixture methods, and feature methods with blocks to group test steps and assertions. Grails applications can also use Spock for integration and functional testing with the Geb plugin, which provides browser automation and page object modeling support.
El documento presenta a Fátima Casaú Pérez, una experta en desarrollo ágil de aplicaciones web con 5 años de experiencia como instructora y desarrolladora de software. Ella se especializa en plataforma Java, Groovy & Grails y metodologías ágiles. El documento también incluye sus datos de contacto.
Greach es el evento sobre tecnologías basadas en lenguaje Groovy referente en España.
Dentro de este evento, la charla 'Use Groovy & Grails in your Spring Boot projects' se presenta como una propuesta de ejemplos y posibilidades de introducir este lenguaje y algunos módulos del framework Grails (basado también en Groovy) en proyectos implementados con la reciente solución lanzada por Spring llama Spring Boot.
More info:
http://buff.ly/1DXXQWU
Ratpack - Classy and Compact Groovy Web AppsJames Williams
The document discusses Ratpack, a Groovy web framework for building simple and compact web applications. It provides an overview of Ratpack's features like routing, templating and deployment, and demonstrates how to build sample applications including a blog and todo list app. Examples are shown of integrating technologies like MongoDB, CoffeeScript, and Markdown within Ratpack applications.
This document provides an overview of moving from Java to Golang, highlighting key differences and how to adjust perspectives. It outlines Golang's focus on simplicity, standard libraries, and concurrency features. Examples demonstrate basic Golang concepts like functions, structs, and web servers. The document suggests thinking of Golang and Java as different rather than one being better, and emphasizes adopting Golang's emphasis on clear, maintainable code.
This document discusses integrating Spring Batch with Groovy and Gradle. It describes what Spring Batch is and why integrating it with Groovy and Gradle is beneficial. It also covers configuring and running Spring Batch jobs, improving performance through techniques like multi-threading, and provides references for further information.
greach 2014 marco vermeulen bdd using cucumber jvm and groovyJessie Evangelista
Using examples at multiple levels, Behavior Driven Development (BDD) creates a shared understanding to deliver software that matters. Cucumber allows writing executable specifications in a simple markup language called Gherkin and parsing them into tests. The Cucumber anatomy includes Gherkin features, step definitions that parse and execute the steps, and hooks to run code before and after scenarios. The Grails Cucumber plugin makes BDD easy in Grails through conventions, and was demonstrated in an example using GORM, Geb pages, and Spock specifications.
Gradle is an open-source build automation tool focused on flexibility, build reproducibility and performance. Over the years, this tool has evolved and introduced new concepts and features around dependency management, publication and other aspects on build and release of artifacts for the Java platform.
Keeping up to date with all these features across several projects can be challenging. How do you make sure that all your projects can be upgraded to the latest version of Gradle? What if you have thousands of projects and hundreds of engineers? How can you abstract common tasks for them and make sure that new releases work as expected?
At Netflix, we built Nebula, a collection of Gradle plugins that helps engineers remove boilerplate in Gradle build files, and makes building software the Netflix way easy. This reduces the cognitive load on developers, allowing them to focus on writing code.
In this talk, I’ll share with you our philosophy on how to build JVM artifacts and the pieces that help us boost the productivity of engineers at Netflix. I’ll talk about:
- What is Nebula
- What are the common problems we face and try to solve
- How we distribute it to every JVM engineer
- How we ensure that Nebula/Gradle changes do not break builds so we can ship new features with confidence at Netflix
This document summarizes a presentation about SpringBoot, a framework for creating Spring applications. It discusses how SpringBoot uses Groovy and removes the need for XML configuration. It provides an overview of Texas NIC where the presenter works and some of their applications. It then discusses why SpringBoot was created, how it can be used with Groovy, and demonstrates some sample applications. It also covers some good aspects of SpringBoot, things that can be confusing, and unexpected behaviors. It concludes with some tips for using SpringBoot with IntelliJ IDEA.
This document discusses and compares three popular JVM web frameworks: Grails, Spring Boot, and Ratpack. It provides an overview of common patterns in web frameworks and features of each framework. Code examples are shown to demonstrate creating projects and running basic applications with each framework. The document argues that Groovy scripts provide a way to deploy microservices using any of the frameworks with a single file.
Capistrano is a tool for automating deployment of web applications. It connects to servers over SSH and runs tasks like code deployment, database migrations, and asset precompilation. It uses a Ruby DSL to define tasks and roles for different servers. Capistrano comes with default tasks but can also be customized. It is commonly used for deploying Ruby on Rails apps but works with other stacks as well. The Capistrano gem generates files needed to get started, and tasks can be tailored for specific apps or server environments.
Spring helps developers adapt to change by providing tools and frameworks that make code easy to modify. Reactor brings asynchronous non-blocking I/O capabilities to Spring while maintaining familiar programming models. Spring Tools 4 and Boot 2.0 further enhance developer productivity with improved tooling and new features.
The document discusses using Golang for mobile application development. It provides an example of building a pure Golang Android app without Java by compiling Golang code to a shared object library and using the NativeActivity. It also provides an example of using Golang as a library in a Java Android app by generating bindings between Golang and Java code. Additionally, it proposes an approach for running a standalone Golang process on Android by cross-compiling Golang code to ARM/Linux and executing it from an Android app.
Feelin' Groovy: A Groovy Developer in the Java WorldKen Kousen
Keynote given at Gr8conf.in, Delhi, India, January 2017. Variation of same keynote given at Gr8conf.eu in Copenhagen (https://www.youtube.com/watch?v=KZ7u8CddgnI) and Gr8conf.us in Minneapolis, earlier in 2016
Gulp is a JavaScript task runner that helps automate repetitive tasks like bundling files, minifying code, running tests, and more. The presentation demonstrated how to set up Gulp and create basic tasks like linting JavaScript files. It discussed best practices like using NPM to manage plugins, running tasks synchronously or asynchronously, and provided an example of a more complex Gulpfile.
Grails @ Java User Group Silicon ValleySven Haiges
- The document discusses the Grails web framework and provides an overview of its key features
- Grails is built on Spring MVC, Hibernate, and SiteMesh but aims to reduce configuration through conventions over configuration
- The document demonstrates creating a basic domain model and test data, and shows how scaffolding in Grails quickly generates basic views and controllers
CoffeeScript: A beginner's presentation for beginners copyPatrick Devins
A short presentation on CoffeeScript for people who may not have much, or any, experience with it. It is a great way to learn JavaScript, as well as a fantastic syntactic sugar fro those who already know JavaScript.
The document discusses using Visual Studio Code for building, optimizing, and deploying Angular applications to Azure using Docker. It provides steps for scaffolding a new Angular app, building for development and production with optimizations, analyzing build outputs, debugging Dockerized apps in VS Code, and deploying built apps to Azure Web Apps from within VS Code using Docker. Key advantages highlighted include great debugging experiences for Node.js and Docker apps, useful Azure and Node.js extensions, and an integrated Docker development experience.
This document summarizes Groovy, Grails, and compares it to other web frameworks. It discusses key features of Groovy like being a dynamic language that runs on the JVM. Grails is introduced as a rapid web development framework built on Groovy. The document outlines common Grails features like MVC structure, GORM for CRUD, and taglibs. Success stories, plugins, tools, books and tutorials are listed. The roadmap mentions upcoming Grails 2.0 with modular deployment and standing GSP. A demo of creating a simple Grails app is described.
Brief introduction of Google App Engine and Play Framework.
Step-by-step instruction to develop and deploy play! web App on GAE with Siena persistence layer, CRUD management interface and login support.
Curious Coders Java Web Frameworks ComparisonHamed Hatami
This document provides a comparison of various Java web frameworks, including Spring MVC, Grails, Vaadin, GWT, Wicket, Play, Struts, and JSF. It evaluates the frameworks based on categories like rapid application prototyping, framework complexity, ease of use, documentation and community support. For each framework, it provides scores and analysis in these different categories. The document is split into multiple parts, with part one focusing on rapid application prototyping and framework complexity. It provides scores and reasoning for each framework in these two areas.
Avast Premium Security Crack FREE Latest Version 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
Avast Premium Security is a paid subscription service that provides comprehensive online security and privacy protection for multiple devices. It includes features like antivirus, firewall, ransomware protection, and website scanning, all designed to safeguard against a wide range of online threats, according to Avast.
Key features of Avast Premium Security:
Antivirus: Protects against viruses, malware, and other malicious software, according to Avast.
Firewall: Controls network traffic and blocks unauthorized access to your devices, as noted by All About Cookies.
Ransomware protection: Helps prevent ransomware attacks, which can encrypt your files and hold them hostage.
Website scanning: Checks websites for malicious content before you visit them, according to Avast.
Email Guardian: Scans your emails for suspicious attachments and phishing attempts.
Multi-device protection: Covers up to 10 devices, including Windows, Mac, Android, and iOS, as stated by 2GO Software.
Privacy features: Helps protect your personal data and online privacy.
In essence, Avast Premium Security provides a robust suite of tools to keep your devices and online activity safe and secure, according to Avast.
How can one start with crypto wallet development.pptxlaravinson24
This presentation is a beginner-friendly guide to developing a crypto wallet from scratch. It covers essential concepts such as wallet types, blockchain integration, key management, and security best practices. Ideal for developers and tech enthusiasts looking to enter the world of Web3 and decentralized finance.
FL Studio Producer Edition Crack 2025 Full Versiontahirabibi60507
Copy & Past Link 👉👉
http://drfiles.net/
FL Studio is a Digital Audio Workstation (DAW) software used for music production. It's developed by the Belgian company Image-Line. FL Studio allows users to create and edit music using a graphical user interface with a pattern-based music sequencer.
Download Wondershare Filmora Crack [2025] With Latesttahirabibi60507
Copy & Past Link 👉👉
http://drfiles.net/
Wondershare Filmora is a video editing software and app designed for both beginners and experienced users. It's known for its user-friendly interface, drag-and-drop functionality, and a wide range of tools and features for creating and editing videos. Filmora is available on Windows, macOS, iOS (iPhone/iPad), and Android platforms.
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Eric D. Schabell
It's time you stopped letting your telemetry data pressure your budgets and get in the way of solving issues with agility! No more I say! Take back control of your telemetry data as we guide you through the open source project Fluent Bit. Learn how to manage your telemetry data from source to destination using the pipeline phases covering collection, parsing, aggregation, transformation, and forwarding from any source to any destination. Buckle up for a fun ride as you learn by exploring how telemetry pipelines work, how to set up your first pipeline, and exploring several common use cases that Fluent Bit helps solve. All this backed by a self-paced, hands-on workshop that attendees can pursue at home after this session (https://o11y-workshops.gitlab.io/workshop-fluentbit).
WinRAR Crack for Windows (100% Working 2025)sh607827
copy and past on google ➤ ➤➤ https://hdlicense.org/ddl/
WinRAR Crack Free Download is a powerful archive manager that provides full support for RAR and ZIP archives and decompresses CAB, ARJ, LZH, TAR, GZ, ACE, UUE, .
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Ranjan Baisak
As software complexity grows, traditional static analysis tools struggle to detect vulnerabilities with both precision and context—often triggering high false positive rates and developer fatigue. This article explores how Graph Neural Networks (GNNs), when applied to source code representations like Abstract Syntax Trees (ASTs), Control Flow Graphs (CFGs), and Data Flow Graphs (DFGs), can revolutionize vulnerability detection. We break down how GNNs model code semantics more effectively than flat token sequences, and how techniques like attention mechanisms, hybrid graph construction, and feedback loops significantly reduce false positives. With insights from real-world datasets and recent research, this guide shows how to build more reliable, proactive, and interpretable vulnerability detection systems using GNNs.
Solidworks Crack 2025 latest new + license codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
The two main methods for installing standalone licenses of SOLIDWORKS are clean installation and parallel installation (the process is different ...
Disable your internet connection to prevent the software from performing online checks during installation
PDF Reader Pro Crack Latest Version FREE Download 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
PDF Reader Pro is a software application, often referred to as an AI-powered PDF editor and converter, designed for viewing, editing, annotating, and managing PDF files. It supports various PDF functionalities like merging, splitting, converting, and protecting PDFs. Additionally, it can handle tasks such as creating fillable forms, adding digital signatures, and performing optical character recognition (OCR).
Get & Download Wondershare Filmora Crack Latest [2025]saniaaftab72555
Copy & Past Link 👉👉
https://dr-up-community.info/
Wondershare Filmora is a video editing software and app designed for both beginners and experienced users. It's known for its user-friendly interface, drag-and-drop functionality, and a wide range of tools and features for creating and editing videos. Filmora is available on Windows, macOS, iOS (iPhone/iPad), and Android platforms.
Join Ajay Sarpal and Miray Vu to learn about key Marketo Engage enhancements. Discover improved in-app Salesforce CRM connector statistics for easy monitoring of sync health and throughput. Explore new Salesforce CRM Synch Dashboards providing up-to-date insights into weekly activity usage, thresholds, and limits with drill-down capabilities. Learn about proactive notifications for both Salesforce CRM sync and product usage overages. Get an update on improved Salesforce CRM synch scale and reliability coming in Q2 2025.
Key Takeaways:
Improved Salesforce CRM User Experience: Learn how self-service visibility enhances satisfaction.
Utilize Salesforce CRM Synch Dashboards: Explore real-time weekly activity data.
Monitor Performance Against Limits: See threshold limits for each product level.
Get Usage Over-Limit Alerts: Receive notifications for exceeding thresholds.
Learn About Improved Salesforce CRM Scale: Understand upcoming cloud-based incremental sync.
Douwan Crack 2025 new verson+ License codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
Douwan Preactivated Crack Douwan Crack Free Download. Douwan is a comprehensive software solution designed for data management and analysis.
Not So Common Memory Leaks in Java WebinarTier1 app
This SlideShare presentation is from our May webinar, “Not So Common Memory Leaks & How to Fix Them?”, where we explored lesser-known memory leak patterns in Java applications. Unlike typical leaks, subtle issues such as thread local misuse, inner class references, uncached collections, and misbehaving frameworks often go undetected and gradually degrade performance. This deck provides in-depth insights into identifying these hidden leaks using advanced heap analysis and profiling techniques, along with real-world case studies and practical solutions. Ideal for developers and performance engineers aiming to deepen their understanding of Java memory management and improve application stability.
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)Andre Hora
Software testing plays a crucial role in the contribution process of open-source projects. For example, contributions introducing new features are expected to include tests, and contributions with tests are more likely to be accepted. Although most real-world projects require contributors to write tests, the specific testing practices communicated to contributors remain unclear. In this paper, we present an empirical study to understand better how software testing is approached in contribution guidelines. We analyze the guidelines of 200 Python and JavaScript open-source software projects. We find that 78% of the projects include some form of test documentation for contributors. Test documentation is located in multiple sources, including CONTRIBUTING files (58%), external documentation (24%), and README files (8%). Furthermore, test documentation commonly explains how to run tests (83.5%), but less often provides guidance on how to write tests (37%). It frequently covers unit tests (71%), but rarely addresses integration (20.5%) and end-to-end tests (15.5%). Other key testing aspects are also less frequently discussed: test coverage (25.5%) and mocking (9.5%). We conclude by discussing implications and future research.
Download YouTube By Click 2025 Free Full Activatedsaniamalik72555
Copy & Past Link 👉👉
https://dr-up-community.info/
"YouTube by Click" likely refers to the ByClick Downloader software, a video downloading and conversion tool, specifically designed to download content from YouTube and other video platforms. It allows users to download YouTube videos for offline viewing and to convert them to different formats.
Landscape of Requirements Engineering for/by AI through Literature ReviewHironori Washizaki
Hironori Washizaki, "Landscape of Requirements Engineering for/by AI through Literature Review," RAISE 2025: Workshop on Requirements engineering for AI-powered SoftwarE, 2025.
Copy & Paste On Google >>> https://dr-up-community.info/
EASEUS Partition Master Final with Crack and Key Download If you are looking for a powerful and easy-to-use disk partitioning software,
Adobe Master Collection CC Crack Advance Version 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Master Collection CC (Creative Cloud) is a comprehensive subscription-based package that bundles virtually all of Adobe's creative software applications. It provides access to a wide range of tools for graphic design, video editing, web development, photography, and more. Essentially, it's a one-stop-shop for creatives needing a broad set of professional tools.
Key Features and Benefits:
All-in-one access:
The Master Collection includes apps like Photoshop, Illustrator, InDesign, Premiere Pro, After Effects, Audition, and many others.
Subscription-based:
You pay a recurring fee for access to the latest versions of all the software, including new features and updates.
Comprehensive suite:
It offers tools for a wide variety of creative tasks, from photo editing and illustration to video editing and web development.
Cloud integration:
Creative Cloud provides cloud storage, asset sharing, and collaboration features.
Comparison to CS6:
While Adobe Creative Suite 6 (CS6) was a one-time purchase version of the software, Adobe Creative Cloud (CC) is a subscription service. CC offers access to the latest versions, regular updates, and cloud integration, while CS6 is no longer updated.
Examples of included software:
Adobe Photoshop: For image editing and manipulation.
Adobe Illustrator: For vector graphics and illustration.
Adobe InDesign: For page layout and desktop publishing.
Adobe Premiere Pro: For video editing and post-production.
Adobe After Effects: For visual effects and motion graphics.
Adobe Audition: For audio editing and mixing.
Adobe Master Collection CC Crack Advance Version 2025kashifyounis067
Use groovy & grails in your spring boot projects
1. La importancia de un buen título en presentaciones
Use Groovy & Grails in your Spring Boot
projects,
don't be afraid!
@fatimacasau
2. La importancia de un buen título en presentaciones
Fátima Casaú Pérez
Software Engineer for over 7 years ago
Java Architect & Scrum Master in Paradigma Tecnológico
Specialized in Groovy & Grails environments
Recently, Spring Boot world
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
@fatimacasau
3. La importancia de un buen título en presentaciones
What is Spring Boot?
What is Groovy?
Where could you use Groovy in your Spring Boot Projects?
●
Gradle
●
Tests
●
Groovy Templates
●
Anywhere?
●
GORM
●
GSP’s
Overview
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
4. La importancia de un buen título en presentaciones
Spring Boot
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
5. La importancia de un buen título en presentaciones
Standalone
Auto-configuration - CoC
No XML
Embedded Container and Database
Bootstrapping
Groovy!!
Run quickly - Spring Boot CLI
projects.spring.io/spring-boot
Spring Boot
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
6. La importancia de un buen título en presentaciones
Spring Boot application
in a single tweet
DEMO...
7. La importancia de un buen título en presentaciones
GVM
gvmtool.net
> gvm install springboot
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
8. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
HelloWorld.groovy
1 @Controller
2 class ThisWillActuallyRun {
3 @RequestMapping("/")
4 @ResponseBody
5 String home() {
6 "Hello World!"
7 }
8 }
Spring Boot in a single Tweet
9. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
apply plugin: 'springboot'
dependencies {
compile("org.springframework.boot:springbootstarterweb")
…
}
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples
10. La importancia de un buen título en presentaciones
Groovy
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
11. La importancia de un buen título en presentaciones
Dynamic language
Optionally typed
@TypeChecked & @CompileStatic
Java Platform
Easy & expressive syntax
Powerful features
closures, DSL, meta-programming, functional programming, scripting, ...
Groovy
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
12. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
apply plugin: 'groovy'
dependencies {
compile("org.codehaus.groovy:groovyall:2.2.0")
…
}
13. La importancia de un buen título en presentaciones
Where could you use
Groovy?
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
14. La importancia de un buen título en presentaciones
Gradle
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
15. La importancia de un buen título en presentaciones
Powerful build tool
Support multi-project
Dependency management (based on Apache Ivy)
Support and Integration with Maven & Ivy repositories
Based on Groovy DSL
Build by convention
Ant tasks
Gradle
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
16. La importancia de un buen título en presentaciones
Building a Spring Boot
application with Gradle
DEMO...
17. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GVM
> gvm install gradle
> gradle build
> gradle tasks
18. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
build.gradle
1 buildscript {
2 repositories {
3 mavenCentral()
4 }
5 dependencies {
6 classpath("org.springframework.boot:springbootgradleplugin:1.2.2.RELEASE")
7 }
8 }
9
10 apply plugin: 'groovy'
11 apply plugin: 'idea'
12 apply plugin: 'springboot'
13
14 jar {
15 baseName = 'helloworld'
16 version = '0.1.0'
17 }
18
19 repositories {
20 mavenCentral()
21 }
22
23 dependencies {
24 compile("org.springframework.boot:springbootstarterweb")
25 }
19. La importancia de un buen título en presentaciones
Testing with Spock
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
20. La importancia de un buen título en presentaciones
Spock framework & specification
Expressive
Groovy DSL’s
Easy to read tests
Well documented
Powerful assertions
Testing with Spock
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
21. La importancia de un buen título en presentaciones
Testing with Spock
DEMO...
22. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GoogleSpec.groovy
1 void "test Google Maps API where address is ‘Madrid’"(){
2 setup: “Google Maps API Host & Uri”
3 def rest = new RESTClient("https://maps.googleapis.com")
4 def uri = "/maps/api/geocode/json"
5 when: “Call the API with address = ‘madrid’”
6 def result = rest.get(path: uri, query: [address:'madrid'])
7 then: “HttpStatus is OK, return a list of results and field status = OK”
8 result
9 result.status == HttpStatus.OK.value()
10 !result.data.results.isEmpty()
11 result.data.status == ‘OK’
12 result.data.toString().contains('Madrid')
13 }
23. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GoogleSpec.groovy
1 void "test Google Maps API with different values"(){
2 setup: “Google Maps API Host & Uri”
3 def rest = new RESTClient("https://maps.googleapis.com")
4 def uri = "/maps/api/geocode/json"
5 expect: “result & status when call the REST API”
6 def result = rest.get(path: uri, query: [address:address])
7 resultsIsEmpty == result.data.results.isEmpty()
8 result.data.status == status
9 where: “address takes different values with different results & status”
10 address | resultsIsEmpty | status
11 'Madrid'| false | 'OK'
12 'abdkji'| true | 'ZERO_RESULTS'
13 '186730'| false | 'ZERO_RESULTS' // This fails!
14
15 }
24. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
Assertion failed:
assert resultsIsEmpty == result.data.results.isEmpty()
| | | | | |
false false | | true
| | [...]
| |
| ...
...
docs.spockframework
.org
25. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
testCompile("org.springframework.boot:springbootstartertest")
testCompile("org.springframework:springtest")
testRuntime("org.spockframework:spockspring:0.7groovy2.0") {
exclude group: 'org.spockframework', module: 'spockcore'
}
testCompile("org.spockframework:spockcore:0.7groovy2.0") {
exclude group: 'org.codehaus.groovy', module: 'groovyall'
}
…
}
https://github.com/tomaslin/gs-spring-boot-spock
26. La importancia de un buen título en presentaciones
Groovy templates
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
27. La importancia de un buen título en presentaciones
Groovy Template Framework
Based MarkupBuilder
Groovy DSL’s
Render readable views
Replace variables easily
Groovy templates
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
28. La importancia de un buen título en presentaciones
Groovy Templates
DEMO...
29. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
1 ul {
2 people.each { p >
3 li(p.name)
4 }
5 }
With the following model
6 def model = [people: [
7 new Person(name:'Bob'),
8 new Person(name:'Alice')
9 ]]
Renders the following
10 <ul><li>Bob</li><li>Alice</li></ul>
30. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
compile("org.springframework.boot:springbootstartergroovytemplates")
…
}
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-
boot-sample-web-groovy-templates
31. La importancia de un buen título en presentaciones
Anywhere!
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
32. La importancia de un buen título en presentaciones
Anywhere
Mix Java & Groovy easily
More expressive, simple & flexible than Java
Extension of JDK -> GDK
@CompileStatic @TypeChecked
Controllers, Services, Model,...
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
33. La importancia de un buen título en presentaciones
Groovy Controller
DEMO...
34. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
HelloWorld.groovy
1
2 @Controller
3 class ThisWillActuallyRun {
4 @RequestMapping("/")
5 @ResponseBody
6 String home() {
7 "Hello World!"
8 }
9 }
@groovy.transform.CompileStatic
35. La importancia de un buen título en presentaciones
GORM
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
36. La importancia de un buen título en presentaciones
Automatic mapping for entities
Dynamic finders, criterias, persistence methods, validation,
mappings, constraints…
Expressive and simple code
implicit getters & setters
implicit constructors
implicit primary key
For Hibernate
For MongoDB
GORM: Grails Object Relational Mapping
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
37. La importancia de un buen título en presentaciones
GORM for Hibernate
DEMO...
38. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
Customer.groovy
1 @Entity
2 public class Customer {
3
4 String firstName;
5 String lastName;
6
7 static constraints = {
8 firstName blank:false
9 lastName blank:false
10 }
11 static mapping = {
12 firstName column: 'first_name'
13 lastName column: 'last_name'
14 }
15 }
39. La importancia de un buen título en presentaciones
@fatimacasa
uUse Groovy & Grails in your Spring Boot projects, don't be afraid!
1 [[firstName:"Jack", lastName:"Bauer"],
2 [firstName:"Michelle", lastName:"Dessler"]].each {
3 new Customer(it).save()
4 }
5
6 def customers = Customer.findAll()
7
8 customers.each {
9 println it
10 }
11
12 def customer = Customer.get(1L)
13
14 customers = Customer.findByLastName("Bauer")
15 customers.each {println it}
40. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
compile("org.grails:gormhibernate4springboot:1.1.0.RELEASE")
compile("com.h2database:h2")
…
}
https://github.com/fatimacasau/spring-boot-talk/blob/spring-boot-groovy-gorm
41. La importancia de un buen título en presentaciones
GSP's
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
42. La importancia de un buen título en presentaciones
Groovy Server Pages is used by Grails
Large list of useful Tag Libraries
Easy to define new Tags
Not only views
Layouts & Templates
Reuse Code
GSP's: Groovy Server Pages
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
43. La importancia de un buen título en presentaciones
GSP's in Spring Boot
DEMO...
44. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
1 <g:if test="${session.role == 'admin'}">
2 <% show administrative functions %>
3 </g:if>
4 <g:else>
5 <% show basic functions %>
6 </g:else>
___________________________________________________________________
1 <g:each in="${[1,2,3]}" var="num">
2 <p>Number ${num}</p>
3 </g:each>
___________________________________________________________________
1 <g:findAll in="${books}" expr="it.author == 'Stephen King'">
2 <p>Title: ${it.title}</p>
3 </g:findAll>
___________________________________________________________________
1 <g:dateFormat format="ddMMyyyy" date="${new Date()}" />
___________________________________________________________________
1 <g:render template="bookTemplate" model="[book: myBook]" />
45. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
compile("org.grails:grailsgspspringboot:1.0.0")
compile("org.grails:grailswebgsp:2.5.0")
compile("org.grails:grailswebgsptaglib:2.5.0")
compile("org.grails:grailswebjsp:2.5.0")
…
}
https://github.com/grails/grails-boot/tree/master/sample-apps/gsp/gsp-example
46. La importancia de un buen título en presentaciones
Conclusions
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
47. La importancia de un buen título en presentaciones
If you use Groovy…
Less code
More features
Cool Tests
Cool utilities
Why not? Please try to use Groovy!
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
49. La importancia de un buen título en presentaciones
MVC Spring based Apps
Convention Over Configuration
Bootstrapping
Groovy
GORM
GSP’s ...
It's sounds like Grails!
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
50. La importancia de un buen título en presentaciones
Why do you not use Grails?
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
51. La importancia de un buen título en presentaciones
Thanks!!
@fatimacasau
52. La importancia de un buen título en presentaciones
EXAMPLE
http://github.com/fatimacasau/spring-boot-talk
Simple API Rest with Spring Boot, Groovy and GORM
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
53. La importancia de un buen título en presentaciones
We are hiring!
JEE, Python, PHP, MongoDB, Cassandra, Big Data, Scala, NoSQL,
AngularJS, Javascript, iOS, Android, HTML, CSS3… and Commitment,
Ping Pong, Arcade…
SEND US YOUR CV
Editor's Notes
#3: My name is Fatima Casau
I’m a software engineer since seven years ago and currently, I work as a Java Architect and Scrum Master in Paradigma Tecnologico
Since 6 years ago, I’m specialized in Groovy & Grails technologies and recently, I&apos;m working with Spring Boot. For this, I&apos;m here and I want to tell you my experience about this
#4: Well...
In short, What are we going to see in this talk?
I’m going to talk about Spring Boot and Groovy and where you could use Groovy in your spring boot projects
We go to see...
What is Spring Boot
What is Groovy
And, how or where use both. For example
Using Gradle
Developing tests with groovy and the Spock framework
Using Groovy Templates
Or why not?, Anywhere in your projects
Also, We will see how to use GORM and GSP’s in a Spring Boot project, outside Grails
#5: In First Place, What is Spring Boot?
Question: How many people know Spring Boot?
Question: How many people are using Spring Boot currently?
(If many people -&gt; As many of you know...
#6: … Spring Boot is a new project from Spring that allows you to develop standalone Spring MVC applications easily.
Probably, You think about the many configurations there are in Spring projects, but, Spring Boot, follows Convention Over Configuration allowing Autoconfiguration and configuration with annotations, eliminating the necessity of use XML configuration files.
In other hand, Spring Boot allows you to start and build production applications quickly, because
provides an embedded container and database according to the dependencies specified in the build system, so, you don&apos;t need to configure this to start to work.
Additionally, we can use Groovy, and, of course, all of its features, only including a dependency.
Finally, we can run an application quickly thanks to Spring Boot CLI Tool
Of course, you can find examples and documentation about all of this on the Spring Boot website in projects (dot) spring (dot) io (slash) spring-boot
#7: We go to see a little but powerful example:
We can develop an application that can be contained in a single tweet and execute it quickly with Spring Boot CLI
#8: First, I want to talk about the GVM Tool
GVM is a Tool for managing versions of multiple Software Development Kits
To use it, you can download in its website gvmtool.net
Once you have downloaded, you can see witch framework are available only typing &apos;gvm&apos;
you can download Spring Boot with the GVM Tool
Once you have installed GVM tool, only you need to do is execute in a terminal gvm install springboot and this will install the latest version of spring boot
#9: Here we have the example: a groovy script with:
an annotation (at) Controller that means this is a Controller component
two more annotations, to determine the URI and response of the controller
and finally, a method that returns the message “Hello World”
To execute this, we open a terminal and go to the path that contains the groovy script and type spring run helloWorld.groovy
(By command line)
go to workspaces/greach14
spring run helloWorld.groovy
Later, go to Chrome and type localhost:8080 and see the result
It&apos;s only you need to do to start an example
#10: In second place, The next lead actor in this talk, of course, is Groovy!
Question: How many people know Groovy?
Question: How many people are using Groovy currently?
#11: What is Groovy?
Groovy is a dynamic language,
optionally typed with static-typing and static compilation capabilities for the Java platform
Thanks to an easy and expressive syntax it’s easy to learn for java developers.
Furthermore, it integrates easily with any Java program, delivering powerful features, including closures, runtime and compile-time meta-programming, functional programming, scripting, powerful tests...and so on
So..., if we combine the power of Spring Boot with the features of Groovy
we obtain a couple of powerful tools that allows to developers work
in an easy and more productive, interesting and amazing way
#12: Then....
Where could you introduce Groovy in your spring boot applications? In short, anywhere!, but we go to see the different sites in the project where you could use Groovy bit by bit
#13: The first option is use Groovy in the process to build the project using Gradle
#14: With Spring Boot we can build our projects with Maven, but also, we can use Gradle
With Maven, we have to manage a static xml file, the pom.xml file, but with Gradle we have a flexible and modular groovy file that it&apos;s more easy to read thanks to a friendly syntax based on Groovy DSL’s and a plugin model
With Gradle, we have a powerful building tool with many features such as support for multi-project, dependency management based on Apache Ivy, with support and integration with Maven and Ivy repositories.. And also, we have a large list of tasks based on Ant to manage our application
#16: Like with Spring Boot, we can download and manage our versions of Gradle with GVM Tool
Later, we only need to create a build.gradle file with some dependencies and execute the command gradle build to compile, test and assemble the code into a jar file.
If we execute gradle ‘tasks’ we can see a list of available for our project.
#17: This is an example of build.gradle file.
We can see some plugins such as groovy, idea or spring boot, of course.
Also, we have got the configurations about the jar file, the name and the version of our project
Below, the repositories configuration and the dependencies.
If you include some plugin more and execute the ‘tasks’ command again, you will can see new tasks in the list, the tasks are related with the dependencies available in the project
#18: Other site where use Groovy is implementing tests using the framework Spock.
This is my favorite section
I like to implement tests with groovy and Spock framework
#19: Why?
Spock is not only a test framework, Spock is a test specification for Groovy and Java projects
With an expressive language, its also based on Groovy DSL’s and this makes our tests become easy to read and well documented.
Moreover, when an assertion failed, the exit is very intuitive and easy to read as well.
#20: Let me to show some examples of simple spock tests and how to use its test blocks
#21: For example,
With Spock we can define test with descriptive signatures.
We can organize the code in intuitive blocks such as:
“given” or “setup” to setup initial variables, for example,
“when” to execute an action
and “then” to test the result. In this block we needn’t asserts, only test if a sentence is true or not by the use of groovy truth
#22: In the other hand we have got two blocks more, ‘expect’ and ‘where’. With this blocks we can test different combinations of data in only one test and later, we will see what iterations it has failed and what not easily
#23: Here, we can view the way to show the assertions failed. It’s very easy read the failure
In addition to these, we have more features with diferents tags and utilities. Please visit the documentation and test the examples
I think that this is a good point to start with Groovy and know the features and the simplicity of the language
#24: Another possibility is the use of Groovy templates
#25: Groovy Template Framework is based on MarkupBuild that permits a pretty and easy way to write readable Groovy Views using Groovy DSL&apos;s
Also, provide an easy way to replace variables in the view
#27: In this block, we have an ‘ul’ block where a people list is iterated and for each person, its name is printed in a li element. We can pass a list and iterate it in the view easily
If we return this view and, in the model, we send this list of people, we obtain the result printed in the line below
Right?
#28: Well...,
Really, You can use Groovy anywhere in your spring boot project
#29: Yes! Anywhere!
We can use Groovy in controllers, services, domain classes…
If we need, we can combine Java & Groovy easily, that is, if we need have classes in Java & in other hand, classes in Groovy, it is possible.
And, you must to know that the most important features of use groovy over java is that our applications will be very simple, expressive and flexible, will have less code and, if there are less code, there will be less errors. This is a fact!
Furthermore, with Groovy we have many features available than with Java, because Groovy provides the GDK as an extension of JDK with many more features about the use of Strings, collections, control structures, closures… and so on.
Finally, you could think about compilation in runtime or dynamic typing, but, if you are worry about this, you must to know that you can use Static Compilation or Static Typing with the annotations (at)CompileStatic and (at)TypeChecked in your classes.
#30: Here, I won&apos;t to show anything different, only, the same controller in the beginning of the talk but with the use of CompileStatic annotation
#31: Only, you need to add the annotation (at)CompileStatic in the definition of the class
This code should already run as fast as Java.
#32: The use of GORM with Spring Boot
GORM is the Grails Object Relational Mapping
#33: Since Grails 2.4, It is possible to use GORM outside of Grails, and this permits access relational database or MongoDB with GORM in a Spring Application including the correct dependency in the project.
With GORM we can map the entities automatically, we have dynamic finders, criterias, persistence methods, validations… and more. We don’t need implements getters & setters methods, constructors or specify the primary key.
With this features, our code is even simple
#35: This is a domain class implemented with Groovy and using GORM. The annotation @Entity indicates that we are using GORM.
We can specify some constraints easily, or some mapping options.
#36: Now, see how to use a domain class with GORM.
For example. We can instance new object of the class with a map in the constructor and we have not defined this constructor
In other hand, We have dynamic finders without implement it, findAll, get, findBy… any attributes… and many more
#37: As GORM, we can use GSP’s (Groovy Server Pages) outside of Grails.
#38: With GSP’s we have a large list of Tag libraries that we can use to make our views more simple.
Also, we can create easily our own tags or we can define layouts, templates and reuse the code easily
#40: conditional tags as g:if and g:else
iterator tags as g:each or using a finder that iterates a list with a condition
g:dateFormat to format dates in view easily
g:render to render templates sending a model
and many more!
Also, remind that you can implements your own tags easily
#41: well… after all of this…
What are the conclusions? (Almost my conclusions)
#42: If you use Groovy… as I’ve said before, your application has less lines of code, so, less errors, if there are errors, you can find them easily so, you will be more productive
Remind that with Groovy you can get more features for your project, you can implement cool test and you can use cool utilities, this is: you have a super-vitaminized Project!
Then, Why not use Groovy in your Spring Boot project? Please, use Groovy! Try to introduce bit to bit in the application. Begin with Spock tests, later, introduce groovy in the code of your services, and so on.
#44: We have talked about MVC Spring Based Apps
Convention Over Configuration
Application Bootstrapping
Groovy Language
GORM
GSP’s….
This sounds like Grails!
And also, Grails 3.0 is built on Spring Boot!!
So, I want to leave you with a question,... Why not use Grails instead of Spring Boot?
#45: The next lead actor in this talk is Groovy!
Question: How many people know Groovy?
Question: How many people are using Groovy currently?
#47: One more thing.
In Paradigma, we are hiring for people specialized in many technologies as you can see, so, if your are interested or you know somebody could be interested, please, send us your CV
&lt;number&gt;