The document provides instructions on deploying applications to Cloud Foundry using the Cloud Foundry plugin for Grails applications. It describes initializing the plugin, configuring services like databases, and using plugin commands like cf-push to deploy applications and bind services. Monitoring and updating deployed applications is also briefly covered.
Introduction to Spring WebFlux #jsug #sf_a1Toshiaki Maki
The document provides an introduction and overview of Spring WebFlux, a non-blocking web framework for Spring. It discusses the differences between blocking and non-blocking web stacks, and how Spring WebFlux uses reactive streams and programming. Code examples are provided showing how to build reactive controllers and streams in Spring WebFlux that support backpressure.
Microservices with Spring and Cloud FoundryAlain Sahli
Cloud Foundry allows developers to deploy easily and often their applications. This is a great thing but it is only a part of the whole picture. In order to smoothly scale an application some patterns and basic architecture concepts must be taken into consideration. With Spring Boot, applications can be split into smaller parts called Microservices, which can be scaled in a more fine-grained manner. In addition Spring Cloud provides tools to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers).
From Spring Boot 2.2 to Spring Boot 2.3 #jsugToshiaki Maki
Spring Boot 2.3 will include improvements to support for containers and Kubernetes, as well as updates for Spring Framework 5.3 including support for JDK 17 LTS and GraalVM native images. Other new features in Spring Boot 2.3 include enhancements to Spring Data and a target release date of April 2020. Spring Framework 5.3 will build upon features introduced in 5.x such as RSocket and coroutines.
Open Service Broker APIとKubernetes Service Catalog #k8sjpToshiaki Maki
The document discusses the Open Service Broker API and Kubernetes Service Catalog. It describes how the Service Broker API allows developers to provision and bind to services outside of Kubernetes. It then explains how the Kubernetes Service Catalog implements the Service Broker API to provide services within Kubernetes using new resource types like ServiceInstance and ServiceBinding. The document provides examples of installing brokers, listing available services, and creating instances and bindings.
Why PCF is the best platform for Spring BootToshiaki Maki
Pivotal Cloud Foundry (PCF) provides many out-of-the-box features for managing and operating Spring Boot apps, including a cloud profile, Spring Cloud Connectors, Spring Cloud Services, a Trace Exporter, Spring Actuator support in Apps Manager, and a Metrics Forwarder Service. These features simplify development and operations of microservices built with Spring technologies when deployed to PCF.
Spring Boot Actuator 2.0 has been refactored and now supports Micrometer for instrumentation and metrics collection. Micrometer allows instrumentation without vendor lock-in and supports many monitoring systems including Prometheus, Datadog, and Cloud Foundry Metrics. New features in Spring Boot Actuator 2.0 include support for Spring WebFlux, more secure configuration of endpoints, and histograms and percentiles for more detailed metrics. Micrometer provides a common API for instruments like timers, counters, and gauges and supports adding custom meters.
This document provides instructions for developing an API plug-in for CloudStack version 4.5 using SolidFire as an example. It outlines the steps to create a new Maven project called "abc123" by copying the existing "solidfire" project template. It describes updating files and dependencies to reference the new "abc123" project instead of "solidfire". The document then explains how to create the key classes needed to implement the plug-in, map it to API commands, and deploy the final JAR file. The goal is to extend CloudStack's API with new commands that can invoke functionality from a third-party product via the plug-in.
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Alexandre Dutra
Spring and Cassandra are two of the leading technologies for building cloud native applications. In this talk by the project leads for Spring Data and the Cassandra Java Driver, we’ll cover the recent improvements in the latest and greatest versions of Spring Boot, Spring Data Cassandra, Cassandra 4.0 and the Cassandra Java driver. Whether you’re a novice, intermediate, or expert developer, this content will help you get started or migrate your existing application to the latest innovations. We’ll illustrate these new concepts with code samples and snippets that you can find on GitHub to help you get things done faster with these tools.
Introduction to Spring WebFlux #jsug #sf_a1Toshiaki Maki
The document provides an introduction and overview of Spring WebFlux, a non-blocking web framework for Spring. It discusses the differences between blocking and non-blocking web stacks, and how Spring WebFlux uses reactive streams and programming. Code examples are provided showing how to build reactive controllers and streams in Spring WebFlux that support backpressure.
Microservices with Spring and Cloud FoundryAlain Sahli
Cloud Foundry allows developers to deploy easily and often their applications. This is a great thing but it is only a part of the whole picture. In order to smoothly scale an application some patterns and basic architecture concepts must be taken into consideration. With Spring Boot, applications can be split into smaller parts called Microservices, which can be scaled in a more fine-grained manner. In addition Spring Cloud provides tools to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers).
From Spring Boot 2.2 to Spring Boot 2.3 #jsugToshiaki Maki
Spring Boot 2.3 will include improvements to support for containers and Kubernetes, as well as updates for Spring Framework 5.3 including support for JDK 17 LTS and GraalVM native images. Other new features in Spring Boot 2.3 include enhancements to Spring Data and a target release date of April 2020. Spring Framework 5.3 will build upon features introduced in 5.x such as RSocket and coroutines.
Open Service Broker APIとKubernetes Service Catalog #k8sjpToshiaki Maki
The document discusses the Open Service Broker API and Kubernetes Service Catalog. It describes how the Service Broker API allows developers to provision and bind to services outside of Kubernetes. It then explains how the Kubernetes Service Catalog implements the Service Broker API to provide services within Kubernetes using new resource types like ServiceInstance and ServiceBinding. The document provides examples of installing brokers, listing available services, and creating instances and bindings.
Why PCF is the best platform for Spring BootToshiaki Maki
Pivotal Cloud Foundry (PCF) provides many out-of-the-box features for managing and operating Spring Boot apps, including a cloud profile, Spring Cloud Connectors, Spring Cloud Services, a Trace Exporter, Spring Actuator support in Apps Manager, and a Metrics Forwarder Service. These features simplify development and operations of microservices built with Spring technologies when deployed to PCF.
Spring Boot Actuator 2.0 has been refactored and now supports Micrometer for instrumentation and metrics collection. Micrometer allows instrumentation without vendor lock-in and supports many monitoring systems including Prometheus, Datadog, and Cloud Foundry Metrics. New features in Spring Boot Actuator 2.0 include support for Spring WebFlux, more secure configuration of endpoints, and histograms and percentiles for more detailed metrics. Micrometer provides a common API for instruments like timers, counters, and gauges and supports adding custom meters.
This document provides instructions for developing an API plug-in for CloudStack version 4.5 using SolidFire as an example. It outlines the steps to create a new Maven project called "abc123" by copying the existing "solidfire" project template. It describes updating files and dependencies to reference the new "abc123" project instead of "solidfire". The document then explains how to create the key classes needed to implement the plug-in, map it to API commands, and deploy the final JAR file. The goal is to extend CloudStack's API with new commands that can invoke functionality from a third-party product via the plug-in.
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Alexandre Dutra
Spring and Cassandra are two of the leading technologies for building cloud native applications. In this talk by the project leads for Spring Data and the Cassandra Java Driver, we’ll cover the recent improvements in the latest and greatest versions of Spring Boot, Spring Data Cassandra, Cassandra 4.0 and the Cassandra Java driver. Whether you’re a novice, intermediate, or expert developer, this content will help you get started or migrate your existing application to the latest innovations. We’ll illustrate these new concepts with code samples and snippets that you can find on GitHub to help you get things done faster with these tools.
Dokumen tersebut membahas mengenai pengawasan dan pengendalian terhadap pelaksanaan norma, standar, dan prosedur manajemen kepegawaian aparatur sipil negara oleh Badan Kepegawaian Negara. Termasuk didalamnya adalah penjelasan mengenai dasar hukum audit kepegawaian, jenis-jenis audit, dan hukuman disiplin yang dapat diberikan kepada aparatur sipil negara.
A day in the Life of Beaver Brook Nature Centercelestepbarr
The document outlines the events and activities that took place throughout the year at the Beaver Brook Association in Hollis, New Hampshire, including workshops on fire by friction and maple sugaring in January, a summer camp program, fall festival, and volunteer appreciation events. It notes the large number of students, attendees, and summer campers that participated in the association's educational programs throughout the year.
La canción "Blowin' in the Wind" de Bob Dylan, compuesta en 1962, plantea preguntas filosóficas sobre temas como la paz, la guerra y la libertad. A través de su enfoque esperanzador, la canción ha mantenido su vigencia durante más de 40 años como himno de la lucha contra la guerra de Vietnam y otros conflictos.
The document discusses meta-programming concepts in Groovy, including how Groovy allows for dynamic behavior through introspection and intercession. It provides examples of intercepting method calls and dynamically modifying class behavior using metaclasses. Groovy's meta-programming capabilities make it highly customizable and allow developers to expose "magic" that isn't readily available in Java.
The document discusses solutions for sales training challenges on a small and large scale. It proposes the Pro Learn Network as a strategic HR development solution that is aligned with talent management, applied through team collaboration within work projects, and done by employees supported by external experts using suitable technology. The Pro Learn Network facilitates both external and internal training, coaching, and real-life case learning through a multi-step process from preparation to implementation to improvement.
Peraturan ini mengatur tentang tata cara pengisian jabatan pimpinan tinggi secara terbuka di instansi pemerintah sesuai dengan UU ASN dan prinsip-prinsip sistem merit untuk mendapatkan pejabat yang memenuhi kompetensi yang dibutuhkan."
Dokumen tersebut membahas tentang strategi yang dapat dilakukan untuk menghadapi tantangan di bidang sosial dan politik yang berdampak pada kelembagaan pemerintahan. Tiga strategi utama yang direkomendasikan adalah: 1) Memisahkan pejabat politik dan birokrasi karier, 2) Melaksanakan desentralisasi kekuasaan untuk meningkatkan akuntabilitas, dan 3) Merampingkan struktur kelembagaan pemerintahan untuk menghilang
General Objective. Intended as a pre-reading activity, this project has been created to foster reading, intercultural conscience, and creating students’ own learning materials by means of cooperative work and use of NNTT.
Specific Objective: Getting familiar to Ireland, Oscar Wilde and Ghost stories.
Grouping: The project implies individual, small and big group work. The 30 students will be divided into 6 groups of 5 members each. Each group will work an aspect of the project; and each member will play a different role within the small group.
The document provides instructions on deploying, updating, and monitoring Grails applications on Cloud Foundry using the Cloud Foundry plugin. It describes how to install and configure the plugin, provision services, deploy applications using the cf-push script, update applications and services, and monitor deployed applications and services usage. Configuration options for the plugin are also outlined.
Accelerating innovation and diffusion of renewable energy technologies: techn...CambridgeIP Ltd
There is a need for innovation and industrial upgrade policies to be co-ordinated with renewable energy capacity obligations for Bulgaria and other accession member states to the EU: that was the main message of a presentation by CambridgeIP’s CEO Ilian Iliev at a recent workshop on The Costs and Benefits of Renewables: Biomass organised by the Center for Study of Democracy in Sofia, Bulgaria.
The document discusses developing a smart camera monitoring system to analyze environments, recognize entities, track motion paths, and process data to identify patterns. The system would use modules for entity detection, recognition, motion tracking, storing spatiotemporal data in a database, mining data to form patterns, and comparing input to available patterns to select and perform actions. Challenges include detecting faces in crowded areas, monitoring in hostile environments, and cost/design feasibility.
Michael Pitcher is a highly accomplished senior operations executive with extensive experience improving productivity, efficiency, and profitability through strategic planning and process improvement. He has consulted with manufacturing, healthcare, and other organizations, developing innovative solutions that increase revenues and cut costs. As an operations consultant, he has delivered significant results such as doubling company revenues, reducing labor costs by $30M, and boosting productivity by up to 300%.
Ansaitse huomioita - luova pr hyvinvointituotteen markkinoinnissa: Case Johns...Darwin Oy
Ansaitse huomioita - luova pr hyvinvointituotteen markkinoinnissa: Case Johnson & Johnson Consumer Nordic
Brand Manager, Heidi Miessmer
Elän Enemmän - Hyvinvointimarkkinoinnin seminaari 21.4.2010
Darwin Media
The document lists 121 names, organizations, and roles associated with various junior consulting enterprises and student organizations across Europe. It includes members from organizations in countries like Austria, Belgium, Greece, Italy, Poland, Spain, and more. Many are identified as being associated with specific junior consulting enterprises, student projects, or national confederations of junior enterprises.
This document provides an overview of integrating Spring Security into a Grails application. It discusses configuring domain classes like User and Role, securing URL mappings, and using helper classes like the Security TagLib and SpringSecurityService. The plugin simplifies adding authentication and authorization to Grails apps by generating initial classes and configurations and providing tags and services to check authentication status and roles.
This document provides an overview of integrating Spring Security into a Grails application. It discusses configuring domain classes like User and Role, securing URL mappings, and using helper classes like the Security TagLib and SpringSecurityService. The plugin simplifies adding authentication and authorization to Grails apps by generating initial classes and configurations and providing tags and services to check authentication status and roles.
Dokumen tersebut membahas mengenai pengawasan dan pengendalian terhadap pelaksanaan norma, standar, dan prosedur manajemen kepegawaian aparatur sipil negara oleh Badan Kepegawaian Negara. Termasuk didalamnya adalah penjelasan mengenai dasar hukum audit kepegawaian, jenis-jenis audit, dan hukuman disiplin yang dapat diberikan kepada aparatur sipil negara.
A day in the Life of Beaver Brook Nature Centercelestepbarr
The document outlines the events and activities that took place throughout the year at the Beaver Brook Association in Hollis, New Hampshire, including workshops on fire by friction and maple sugaring in January, a summer camp program, fall festival, and volunteer appreciation events. It notes the large number of students, attendees, and summer campers that participated in the association's educational programs throughout the year.
La canción "Blowin' in the Wind" de Bob Dylan, compuesta en 1962, plantea preguntas filosóficas sobre temas como la paz, la guerra y la libertad. A través de su enfoque esperanzador, la canción ha mantenido su vigencia durante más de 40 años como himno de la lucha contra la guerra de Vietnam y otros conflictos.
The document discusses meta-programming concepts in Groovy, including how Groovy allows for dynamic behavior through introspection and intercession. It provides examples of intercepting method calls and dynamically modifying class behavior using metaclasses. Groovy's meta-programming capabilities make it highly customizable and allow developers to expose "magic" that isn't readily available in Java.
The document discusses solutions for sales training challenges on a small and large scale. It proposes the Pro Learn Network as a strategic HR development solution that is aligned with talent management, applied through team collaboration within work projects, and done by employees supported by external experts using suitable technology. The Pro Learn Network facilitates both external and internal training, coaching, and real-life case learning through a multi-step process from preparation to implementation to improvement.
Peraturan ini mengatur tentang tata cara pengisian jabatan pimpinan tinggi secara terbuka di instansi pemerintah sesuai dengan UU ASN dan prinsip-prinsip sistem merit untuk mendapatkan pejabat yang memenuhi kompetensi yang dibutuhkan."
Dokumen tersebut membahas tentang strategi yang dapat dilakukan untuk menghadapi tantangan di bidang sosial dan politik yang berdampak pada kelembagaan pemerintahan. Tiga strategi utama yang direkomendasikan adalah: 1) Memisahkan pejabat politik dan birokrasi karier, 2) Melaksanakan desentralisasi kekuasaan untuk meningkatkan akuntabilitas, dan 3) Merampingkan struktur kelembagaan pemerintahan untuk menghilang
General Objective. Intended as a pre-reading activity, this project has been created to foster reading, intercultural conscience, and creating students’ own learning materials by means of cooperative work and use of NNTT.
Specific Objective: Getting familiar to Ireland, Oscar Wilde and Ghost stories.
Grouping: The project implies individual, small and big group work. The 30 students will be divided into 6 groups of 5 members each. Each group will work an aspect of the project; and each member will play a different role within the small group.
The document provides instructions on deploying, updating, and monitoring Grails applications on Cloud Foundry using the Cloud Foundry plugin. It describes how to install and configure the plugin, provision services, deploy applications using the cf-push script, update applications and services, and monitor deployed applications and services usage. Configuration options for the plugin are also outlined.
Accelerating innovation and diffusion of renewable energy technologies: techn...CambridgeIP Ltd
There is a need for innovation and industrial upgrade policies to be co-ordinated with renewable energy capacity obligations for Bulgaria and other accession member states to the EU: that was the main message of a presentation by CambridgeIP’s CEO Ilian Iliev at a recent workshop on The Costs and Benefits of Renewables: Biomass organised by the Center for Study of Democracy in Sofia, Bulgaria.
The document discusses developing a smart camera monitoring system to analyze environments, recognize entities, track motion paths, and process data to identify patterns. The system would use modules for entity detection, recognition, motion tracking, storing spatiotemporal data in a database, mining data to form patterns, and comparing input to available patterns to select and perform actions. Challenges include detecting faces in crowded areas, monitoring in hostile environments, and cost/design feasibility.
Michael Pitcher is a highly accomplished senior operations executive with extensive experience improving productivity, efficiency, and profitability through strategic planning and process improvement. He has consulted with manufacturing, healthcare, and other organizations, developing innovative solutions that increase revenues and cut costs. As an operations consultant, he has delivered significant results such as doubling company revenues, reducing labor costs by $30M, and boosting productivity by up to 300%.
Ansaitse huomioita - luova pr hyvinvointituotteen markkinoinnissa: Case Johns...Darwin Oy
Ansaitse huomioita - luova pr hyvinvointituotteen markkinoinnissa: Case Johnson & Johnson Consumer Nordic
Brand Manager, Heidi Miessmer
Elän Enemmän - Hyvinvointimarkkinoinnin seminaari 21.4.2010
Darwin Media
The document lists 121 names, organizations, and roles associated with various junior consulting enterprises and student organizations across Europe. It includes members from organizations in countries like Austria, Belgium, Greece, Italy, Poland, Spain, and more. Many are identified as being associated with specific junior consulting enterprises, student projects, or national confederations of junior enterprises.
This document provides an overview of integrating Spring Security into a Grails application. It discusses configuring domain classes like User and Role, securing URL mappings, and using helper classes like the Security TagLib and SpringSecurityService. The plugin simplifies adding authentication and authorization to Grails apps by generating initial classes and configurations and providing tags and services to check authentication status and roles.
This document provides an overview of integrating Spring Security into a Grails application. It discusses configuring domain classes like User and Role, securing URL mappings, and using helper classes like the Security TagLib and SpringSecurityService. The plugin simplifies adding authentication and authorization to Grails apps by generating initial classes and configurations and providing tags and services to check authentication status and roles.
Simplify Cloud Applications using Spring CloudRamnivas Laddad
This document discusses how to simplify cloud applications using Spring Cloud. It describes Spring Cloud's goals of abstracting over cloud services and environments. It covers using Java and XML configuration, scanning for services, and acquiring services. It also discusses Spring Cloud's extensibility for cloud platforms, services, and frameworks. The document includes demos of using Spring Cloud on Cloud Foundry, Heroku, and with Hadoop. It describes the integration with Spring Boot.
The document contains a practice exam for the Google Professional Cloud Developer Exam. It includes 16 multiple choice questions that test knowledge of Google Cloud services and best practices related to migration, monitoring, deployment strategies, databases, Kubernetes, and logging. Sample questions cover topics like copying files to Cloud Storage, improving monitoring latency, database replication, canary deployments, and configuring health checks in Kubernetes.
This document discusses how to create and structure Grails plugins. Key points include:
- Plugins have a similar structure to Grails apps, with grails-app, src, and web-app directories, and require a GrailsPlugin.groovy file.
- Plugins can modify the Spring configuration, web.xml, add dynamic methods, and respond to reloading events through closures.
- The loading order and dependencies of plugins can be configured.
- Plugins are packaged and distributed separately from apps and can be installed via a command.
The document discusses plugins in Grails. It covers what a plugin is, the directory structure of plugins, common types of plugins, and implementation details like using the GrailsApplication object, configuring Spring, adding dynamic methods, and reloading on changes. The document is intended to teach plugin developers best practices for creating plugins in Grails.
The document discusses various strategies for deploying and maintaining Pyramid web applications. It covers deployment options using Nginx, Apache with mod_wsgi, and Paste. It also discusses using buildout, supervisor, scripting, exception logging, backups, staging environments, caching, monitoring, and replication. The case study at the end describes how the open source KARL project deploys their Pyramid application using Nginx, HAProxy, Paste, Supervisor, buildout, and a custom package index on GitHub.
Appsecco Kubernetes Hacking Masterclass. The slides used during the class with links to the commands, scripts and setup information.
These slides are to be used with the masterclass video recording on YouTube -
Hands on exercises are highly recommended to get the most out of this class!
More Enhancements to Grails:
Topics covered:
Grails Plugins
Resources
Restful API
Integration Tests
What’s new in grails 2.0
What’s new in grails 2.1
What’s new in grails 2.2
How to upgrade plugins
The document provides steps to connect to a CloudFoundry environment and deploy a sample Predix application. It includes instructions on installing the CF CLI, logging in, listing services, creating a PostgreSQL service instance, pushing a sample app, and binding the app to the database. The steps cover common operations for deploying and managing apps on Pivotal CloudFoundry and interacting with services on Predix.
15- Parameterize Linked Services in Azure Data Factory.pptxBRIJESH KUMAR
You can now parameterize linked services in Azure Data Factory to pass dynamic values at runtime. The document demonstrates how to create parameterized linked services in the Azure portal by referencing trigger body properties like folderName and fileName. It provides a link to a Microsoft Learn page about parameterizing linked services in Azure Data Factory.
Spring Cloud Config provides a centralized way to manage external configuration for distributed systems. The Config Server stores configuration in Git repositories and makes it available via REST APIs to client applications. Clients can bind to the Config Server to initialize their Spring Environment with remote property sources. The default storage backend uses Git, allowing version control and tooling support. The Config Server serves configuration properties and YAML files from Git or HashiCorp Vault. It maps request paths to files in sources by application, profile, and label. Client applications can encrypt/decrypt values.
Make Your Build Great Again (DroidConSF 2017)Jared Burrows
Slow builds have been plaguing Android development since the very beginning, especially for large multi-dex projects. As libraries tend to grow in size and the more libraries an application consumes it will slow down the build, especially when an application goes over the mutli-dex limit. Libraries aren't the only thing that can slow down the build, adding many Gradle plugins and repositories can increase the time it takes to configure the Gradle build. This talk will be centered around how I was able to decrease Yammer for Android's Gradle build times by optimizing our use of the Android Gradle plugin and the Gradle setup of our multi-project build and will give several tools and tips on how to help you profile and decrease your build times as well.
Pyramid is a flexible Python web framework that allows applications to start small and grow as needed without enforcing specific technologies or patterns. The document provides suggestions for structuring larger Pyramid projects, choosing persistence mechanisms, assembling toolkits, using traversal vs URL dispatch, testing, documenting, and deploying applications using buildout, supervisor, and Nginx/mod_wsgi. Project layout, tools, and deployment options depend on each application's specific needs and scope.
With Grails 3, the plugin development experience changes a little bit compared to that of Grails 2. In this talk, Álvaro (member of the Grails team at OCI, Grails committer and author of several plugins) will cover several topics to understand how plugins work in Grails 3, focusing on best practices.
The session is structured as a set of tips and tricks with code samples in the following areas: modularisation, build system, testing and publishing.
This document discusses using the ng-grid module to display tabular data from a REST API in an Angular application. It begins by explaining ng-grid and setting up a sample app with a basic grid. Then it demonstrates configuring ng-grid options like column definitions, cell templates, and inline editing. The code provides a service to retrieve mock data from a JSON file and an example of updating the REST service after edits.
It is a common requirement for any project to display data in some kind of tabular format. The easiest way to achieve this is by using HTML table. But soon this gets complex as you need a way to support pagination (client-side and server-side), sorting (single & multi column), resizable columns, inline editing, filtering, etc.
Google cloud certified professional cloud developer practice dumps 2020SkillCertProExams
Google Cloud Certified - Professional Cloud Developer Exam Tests Questions PDF 2020
Full Practice Tests: https://skillcertpro.com/yourls/pcd
Unlike others, We offer details explanation to each and every questions that will help you to understand the question.
Practice Questions are taken from previous real time tests and are prepared by Industry Experts at Skillcertpro.
Our study material can be accessed online and 100% accessible to mobile devices.
100% money back guarantee (Unconditional, we assure that you will be satisfied with our services and pass the exam.
Do leave us a question we will happy to answer your queries.
Grails is a web application framework built on Groovy and Java that follows the conventions of the Model-View-Controller (MVC) pattern. It aims to improve developer productivity over traditional Java frameworks by eliminating XML configuration files in favor of conventions, providing automated scaffolding for rapid prototyping, and including a complete development environment out of the box. Key features of Grails include its object-relational mapping (ORM) functionality, tag libraries for views, and ability to define domain classes, controllers, and services to build the model, controller and service layers of an application respectively.
Git is a distributed version control system that allows teams to manage multiple versions of documents and programs. Bitbucket provides Git and Mercurial hosting and integrates with Jira. Continuous integration with Bamboo automates building and testing code changes frequently to catch errors early. Confluence provides a central place for teams to share and collaborate on information.
This document provides a summary of common operations for Amazon S3 including service operations, bucket operations, object operations, versioning, and authentication. Key operations include creating and deleting buckets, uploading and downloading objects, copying objects between buckets, and retrieving object metadata and versions. Authentication requires generating a signature using an HMAC-SHA1 hash of the request elements.
This document provides a summary of common operations for Amazon S3 including service operations, bucket operations, object operations, versioning, and authentication. Key operations include creating and deleting buckets, uploading and downloading objects, copying objects between buckets, and retrieving object metadata and versions. Authentication requires generating a signature using an HMAC-SHA1 hash of the request elements.
The document provides an overview and instructions for using the AWS Management Console to interact with Amazon S3. It describes key Amazon S3 concepts like buckets, objects, folders and keys. It also outlines how to work with buckets and objects through the console, including creating, browsing, configuring, editing permissions, and deleting resources. The console enables managing storage and retrieval of data in Amazon S3 without writing code.
This document provides a summary of common operations for Amazon S3 including service operations, bucket operations, object operations, versioning, and authentication. Key operations include creating and deleting buckets, uploading and downloading objects, copying objects between buckets, and retrieving object metadata and versions. Authentication requires generating a signature using an HMAC-SHA1 hash of the request elements.
The document provides an overview and instructions for using the AWS Management Console to interact with Amazon S3. It describes key Amazon S3 concepts like buckets, objects, folders and keys. It also outlines how to work with buckets and objects through the console, including creating, browsing, configuring, editing permissions, and deleting resources. The document is intended to help users understand and get started using the basic functionality of Amazon S3 through the management console.
The tutorial provides instructions for getting started with Gaelyk, a framework for building Groovy applications on Google App Engine. It explains how to set up a project with the recommended directory structure and configuration files. It also gives an overview of key Gaelyk features like views, controllers, routing, and integration with App Engine services.
2. Cloud Foundry Plugin - Reference Documentation
Authors: Burt Beckwith
Version: 1.0.0.M3
Table of Contents
1 Introduction to the Cloud Foundry Plugin .................................................................................................................. 3
1.1 History ................................................................................................................................................................... 3
2 Getting Started ............................................................................................................................................................. 4
3 Configuration ............................................................................................................................................................... 5
4 Deploying applications ................................................................................................................................................ 6
5 Updating applications and services ............................................................................................................................. 9
6 Monitoring ................................................................................................................................................................. 14
7 Service Configuration ................................................................................................................................................ 16
2
3. 1 Introduction to the Cloud Foundry Plugin
The Cloud Foundry plugin makes it easy to deploy, update and monitor Grails applications in Cloud Foundry. It has
the same feature set as the "vmc" commandline Ruby client that Rails and Node.js users will be using. There's also
support in SpringSource Tool Suite (STS) via a plugin.
The benefit of using this plugin versus the vmc client or STS is that the plugin is very Grails-aware. It makes several
assumptions that reduce the amount of typing you need to do, for example you don't need to type the application
name since it defaults to your Grails application name (although you can configure the deployed name in
Config.groovy, or override the application name with the --appname commandline argument).
Use the interactive script when you're running multiple Cloud Foundry scripts - it will
significantly reduce the startup time for each command you run once the initial JVM has
started.
1.1 History
History
April 29, 2011
1.0.0.M3 release
Fixed support for RabbitMQ
April 21, 2011
1.0.0.M2 release
Added cf-env, cf-env-add, cf-del, cf-frameworks, and cf-runtimes scripts
April 12, 2011
1.0.0.M1 release
3
4. 2 Getting Started
The first step is to install the plugin:
grails install-plugin cloud-foundry
Add your Cloud Foundry credentials to grails-app/conf/Config.groovy, or an external config file
referenced from Config.groovy, or in $HOME/.grails/settings.groovy:
grails.plugin.cloudfoundry.username = 'your.email@server.com'
grails.plugin.cloudfoundry.password = 's3kr3t'
If you want to deploy with a different application name than your Grails application name, specify it with the
grails.plugin.cloudfoundry.appname property:
grails.plugin.cloudfoundry.appname = 'my-cool-app'
There are other configuration options, but next you'll want to provision some services and deploy your application.
See section 4 Deploying applications for details on that.
4
5. 3 Configuration
There are a few configuration options for the plugin. All are specified in Config.groovy, but you can put the values
for grails.plugin.cloudfoundry.username and/or grails.plugin.cloudfoundry.password
in $HOME/.grails/settings.groovy to avoid storing this information in source control.
Property Default Meaning
grails.plugin.cloudfoundry.username none, must be specified the username/emai
grails.plugin.cloudfoundry.password none, must be specified the password for y
grails.plugin.cloudfoundry.target 'api.cloudfoundry.com' the cloud API serv
the application nam
application name b
grails.plugin.cloudfoundry.appname application name
overridden from th
attribute
whether to test a st
grails.plugin.cloudfoundry.testStartWithGet true to checking the rep
positives
the url to test if
grails.plugin.cloudfoundry.testStartGetUrl application url grails.plugin
is true
disables auto-confi
grails.plugin.cloudfoundry.datasource.disableTimeoutAutoconfiguration false
timeout checking i
5
6. 4 Deploying applications
Initial state
When you initially start you won't have any configured services or applications. Running the cf-services script should
display something similar to this:
$ grails cf-services
============== System Services ==============
+----------+---------+-------------------------------+
| Service | Version | Description |
+----------+---------+-------------------------------+
| mongodb | 1.8 | MongoDB NoSQL store |
| redis | 2.2 | Redis key-value store service |
| mysql | 5.1 | MySQL database service |
+----------+---------+-------------------------------+
=========== Provisioned Services ============
None provisioned yet.
All of the available services are listed first, and then your configured service instances, if any.
If you run the cf-apps script you should see that there are no applications:
No applications available.
And if you run the cf-info script you should see that there are no resources in use:
VMware's Cloud Application Platform
For support visit support@cloudfoundry.com
Target: http://api.cloudfoundry.com (v0.999)
User: your.email@yourserver.com
Usage: Memory (0B of 2.0G total)
Services (0 of 16 total)
Apps (0 of 20 total)
Services
Before deploying your application, you'll probably need to configure at least one service, e.g. a MySQL, MongoDB,
or Redis database. Use the cf-create-service script for that, e.g.
$ grails cf-create-service mysql
Service 'mysql-2f5fb76' provisioned.
or
$ grails cf-create-service redis
Service 'redis-364841f' provisioned.
By default a name is generated for you, but you can choose the name, and also bind it to an existing application. You
can also bind a service to an application when you deploy the application.
Re-running the cf-services script will display the new services:
6
7. ============== System Services ==============
+----------+---------+-------------------------------+
| Service | Version | Description |
+----------+---------+-------------------------------+
| mongodb | 1.8 | MongoDB NoSQL store |
| redis | 2.2 | Redis key-value store service |
| mysql | 5.1 | MySQL database service |
+----------+---------+-------------------------------+
=========== Provisioned Services ============
+-----------------+---------+
| Name | Service |
+-----------------+---------+
| mysql-2f5fb76 | mysql |
| redis-364841f | redis |
+-----------------+---------+
Use the cf-delete-service script to delete a service:
$ grails cf-delete-service redis-364841f
Successfully removed service: redis-364841f
Applications
The cf-push script creates an application. It deploys a war file and optionally binds one or more services, and has
options to configure the allocated memory and associated URLs. By default it also starts the application but you can
deploy it without starting if you want to perform configuration steps after creating the application.
The default memory allocation is 512MB but this can be overridden when running the script or changed later.
You can use an existing war file but if one isn't specified then a war is built for you.
Most scripts are not environment-specific but cf-push builds a war file, so be sure to specify
the environment.
A typical deploy command would be
$ grails prod cf-push --services=mysql-2f5fb76
or if you're running the interactive script:
prod cf-push --services=mysql-2f5fb76
and you should see output similar to
7
8. Environment set to production
Building war file
[gspc] Compiling 13 GSP files for package …
…
Building WAR file …
[copy] Copying 633 files to …
…
[propertyfile] Updating property file: …
…
[jar] Building jar: .../target/cf-temp-1299173015209.war
…
Done creating WAR ...target/cf-temp-1299173015209.war
Application Deployed URL: 'myappname.cloudfoundry.com'?
Uploading Application Information.
Trying to start Application: 'myappname'.
..................
Application 'myappname' started.
Running cf-apps should display something like this:
+-------------+----+---------+----------------------------+---------------+
| Application | # | Health | URLs | Services |
+-------------+----+---------+----------------------------+---------------+
| myappname | 1 | RUNNING | myappname.cloudfoundry.com | mysql-2f5fb76 |
+-------------+----+---------+----------------------------+---------------+
You might also omit the service bindings and deploy without starting:
grails prod cf-push --no-start
or use a pre-built war:
grails prod cf-push --warfile=target/myappname.war
Note that the war file name has no bearing on the deployed url - the war is deployed as the default ('ROOT') context
in Tomcat.
Automatic binding and provisioning
You can also let the plugin discover required services for you. The plugin will determine that you probably need a
MySQL database if you have the Hibernate plugin, a MongoDB instance if you have the Mongo plugin, and a Redis
instance if you have that plugin.
If you specify a service of the correct type (with the --services attribute) then it'll be used, otherwise if you need
one and have one provisioned it will be suggested to you, e.g.
Would you like to bind the 'mysql-2f5fb76' service? ([y], n)
and if you need one and don't have one provisioned, the plugin will offer to provision and bind one for you, e.g.
Would you like to create and bind a redis service? ([y], n)
8
9. 5 Updating applications and services
Updating applications
Once an application has been created, there are several options for making changes to it:
binding and unbinding services
mapping and unmapping URLs
increasing or decreasing the number of running instances
increasing or decreasing the amount of memory allocated
Services
Use the cf-bind-service script to associate an existing service instance with your application:
grails cf-bind-service mongodb-eaa5601
or if you're running the interactive script:
cf-bind-service mongodb-eaa5601
Creating new service binding to 'mongodb-eaa5601' for 'myappname'.
Application 'myappname' updated
Service 'mongodb-eaa5601' added
Application 'myappname' stopped.
Trying to start Application: 'myappname'.
.
Application 'myappname' started.
If you run cf-apps you'll see that the service is registered:
+-------------+----+---------+----------------------------+--------------------------------+
| Application | # | Health | URLs | Services |
+-------------+----+---------+----------------------------+--------------------------------+
| myappname | 1 | RUNNING | myappname.cloudfoundry.com | mysql-2f5fb76, mongodb-eaa5601 |
+-------------+----+---------+----------------------------+--------------------------------+
Use the cf-unbind-service script to remove an existing service instance from your application:
$ grails cf-unbind-service mongodb-eaa5601
Removing service binding 'mongodb-eaa5601' from 'myappname'.
Application 'myappname' updated
Service 'serviceName' removed
Application 'myappname' stopped.
Trying to start Application: 'myappname'.
.
Application 'myappname' started.
If you run cf-apps you'll see that the service is no longer registered:
+-------------+----+---------+----------------------------+---------------+
| Application | # | Health | URLs | Service |
+-------------+----+---------+----------------------------+---------------+
| myappname | 1 | RUNNING | myappname.cloudfoundry.com | mysql-2f5fb76 |
+-------------+----+---------+----------------------------+---------------+
9
10. URLs
Use the cf-map script to associate an additional URL with your application:
$ grails cf-map myotherappname.cloudfoundry.com
Succesfully mapped url
If you run cf-apps you'll see that the extra URL is mapped:
+-------------+----+---------+-------------------------------------------------------------+-------
| Application | # | Health | URLs | Servic
+-------------+----+---------+-------------------------------------------------------------+-------
| myappname | 1 | RUNNING | myappname.cloudfoundry.com, myotherappname.cloudfoundry.com | mysql-
+-------------+----+---------+-------------------------------------------------------------+-------
Use the cf-unmap script to remove a URL from your application:
$ grails cf-unmap myotherappname.cloudfoundry.com
Succesfully unmapped url
If you run cf-apps you'll see that the URL is no longer mapped:
+-------------+----+---------+----------------------------+---------------+
| Application | # | Health | URLs | Service |
+-------------+----+---------+----------------------------+---------------+
| myappname | 1 | RUNNING | myappname.cloudfoundry.com | mysql-2f5fb76 |
+-------------+----+---------+----------------------------+---------------+
Instances
Use the cf-update-instances script to increase or decrease the number of running instances of your application:
$ grails cf-update-instances 3
Scaled 'myappname' up to 3 instance(s).
It will take a short amount of time to start the new instances, so if you run cf-apps you'll see that the extra instances
are allocated but not all are running yet:
+-------------+----+---------+----------------------------+---------------+
| Application | # | Health | URLs | Service |
+-------------+----+---------+----------------------------+---------------+
| myappname | 3 | 33% | myappname.cloudfoundry.com | mysql-2f5fb76 |
+-------------+----+---------+----------------------------+---------------+
Wait a while longer and all should be running:
+-------------+----+---------+----------------------------+---------------+
| Application | # | Health | URLs | Service |
+-------------+----+---------+----------------------------+---------------+
| myappname | 3 | RUNNING | myappname.cloudfoundry.com | mysql-2f5fb76 |
+-------------+----+---------+----------------------------+---------------+
If you have a test page that displays the environment variables VCAP_APP_HOST and VCAP_APP_PORT you'll
10
11. see that you're automatically load-balanced randomly between the instances when you refresh your browser:
VCAP_APP_HOST 10.114.110.207
VCAP_APP_PORT 48684
VCAP_APP_HOST 10.114.110.208
VCAP_APP_PORT 47793
VCAP_APP_HOST 10.114.110.209
VCAP_APP_PORT 58232
Use the cf-show-instances script to display information about the instances:
$ grails cf-show-instances
+-------+---------+--------------------+
| Index | State | Start Time |
+-------+---------+--------------------+
| 0 | RUNNING | 04/12/2011 11:33AM |
+-------+---------+--------------------+
| 1 | RUNNING | 04/12/2011 11:33AM |
+-------+---------+--------------------+
| 2 | RUNNING | 04/12/2011 11:33AM |
+-------+---------+--------------------+
Use the cf-stats script to display runtime information about the instances:
$ grails cf-stats
+----------+-------------+----------------+--------------+--------------+
| Instance | CPU (Cores) | Memory (limit) | Disk (limit) | Uptime |
+----------+-------------+----------------+--------------+--------------+
| 0 | 9.5% (4) | 372.7M (512M) | 52.6M (2G) | 0d:0h:1m:12s |
| 1 | 3.3% (4) | 375.7M (512M) | 52.6M (2G) | 0d:0h:1m:53s |
| 2 | 3.7% (4) | 383.2M (512M) | 52.6M (2G) | 0d:0h:1m:55s |
+----------+-------------+----------------+--------------+--------------+
You can also scale the number down:
$ grails cf-update-instances 1
Scaled 'myappname' down to 1 instance(s).
Memory
Use the cf-update-memory script to increase or decrease the allocated memory for your application:
$ grails cf-update-memory 1G
Updated memory reservation to '1.0G'.
Application 'myappname' stopped.
Trying to start Application: 'myappname'.
.
Application 'myappname' started.
Note that the memory must be one of 64M, 128M, 256M, 512M, 1G, or 2G.
Start, stop, restart
11
12. Use the cf-stop script to stop your application:
$ grails cf-stop
Application 'myappname' stopped.
Use the cf-start script to start your application:
$ grails cf-start
Trying to start Application: 'myappname'.
.
Application 'myappname' started.
Use the cf-restart script to stop and then start your application:
$ grails cf-restart
Application 'myappname' stopped.
Trying to start Application: 'myappname'.
.
Application 'myappname' started.
Updating
Use the cf-update script to redeploy an application after making code changes:
$ grails prod cf-update
Uploading Application.
Building war file
[gspc] Compiling 13 GSP files for package …
…
Building WAR file …
[copy] Copying 635 files to …
…
[propertyfile] Updating property file: …
…
[jar] Building jar: .../target/cf-temp-1299178697861.war
…
Done creating WAR ...target/cf-temp-1299178697861.war
Application 'myappname' stopped.
Trying to start Application: 'myappname'.
.
Application 'myappname' started.
Most scripts are not environment-specific but cf-update builds a war file, so be sure to specify
the environment.
Like the cf-push script you can either let the script create a war file for you, or specify an existing one.
Deleting applications
Use the cf-delete-app script to delete an application:
$ grails cf-delete-app
Application 'myappname' deleted.
Use the cf-delete-all-apps script to delete all applications:
12
14. 6 Monitoring
Crashes
If a deployment or update fails, the script will display the application logs but you can view crash information and
logs at any time.
Use the cf-crashes script to check if there have been recent crashes:
$ grails cf-crashes
+-------------+--------------------------------------+--------------------+
| Name | Instance ID | Crashed Time |
+-------------+--------------------------------------+--------------------+
| myappname-1 | 9f3e61c9-7c64-4e57-ab3e-8d7e892dd722 | 04/11/2011 02:43PM |
| myappname-2 | 17b6470c-6444-49f4-8981-d3bd7d7796dc | 04/11/2011 02:43PM |
| myappname-3 | d1b99f31-203c-48e3-aa17-17ca26178a49 | 04/11/2011 02:44PM |
+----------+-------------+----------------+--------------+--------------+
Use the cf-crashlogs script to view log files for crashed instances:
$ grails cf-crashlogs
==== logs/stdout.log ====
2011-03-03 14:50:23,904 [main] ERROR context.ContextLoader - Context initialization failed
org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exc
at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(G
…
Caused by: java.lang.NullPointerException
at $Proxy13.save(Unknown Source)
…
Stopping Tomcat because the context stopped.
Logs
Use the cf-logs script to view log files:
$ grails cf-logs
==== logs/stderr.log ====
Mar 3, 2011 2:51:32 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-50478
…
INFO: Server startup in 9169 ms
==== logs/stdout.log ====
By default all logs are displayed, but you can limit it to one or more:
$ grails cf-logs --stderr
==== logs/stderr.log ====
Mar 3, 2011 2:51:32 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-50478
…
INFO: Server startup in 9169 ms
And you can also write a log to a file instead of the console:
$ grails cf-logs target/myapp.stderr.log --stderr
Wrote logs/stderr.log to target/myapp.stderr.log
Viewing files
Use the cf-list-files script to view directory listings:
14
15. $ grails cf-list-files /
logs/ -
tomcat/ -
$ grails cf-list-files tomcat
bin/ -
conf/ -
lib/ -
logs/ -
temp/ -
webapps/ -
work/ -
$ grails cf-list-files tomcat/webapps
ROOT/ -
$ grails cf-list-files tomcat/webapps/ROOT
META-INF/ -
WEB-INF/ -
css/ -
images/ -
js/ -
plugins/
Use the cf-get-file script to view a file:
$ grails cf-get-file tomcat/webapps/ROOT/css/main.css
html * {
margin: 0;
/*padding: 0; SELECT NOT DISPLAYED CORRECTLY IN FIREFOX */
}
...
And you can also write the contents to a file instead of the console:
$ grails cf-get-file tomcat/webapps/ROOT/css/main.css target/main.css
Wrote tomcat/webapps/ROOT/css/main.css to target/main.css
15
16. 7 Service Configuration
When you provision a service and bind it to an application, an environment variable VCAP_SERVICES is set for
your server instance(s). This is a JSON string and you can use it to configure your DataSource, MongoDB, and Redis
connections and will look something like this (formatted for readability):
{"redis-2.2":
[{"name":"redis-1d8e28a",
"label":"redis-2.2",
"plan":"free",
"credentials":{
"node_id":"redis_node_3",
"hostname":"172.30.48.42",
"port":5004,
"password":"1463d9d0-4e35-4f2e-be2f-01dc5536f183",
"name":"redis-1a69a915-6522-496c-93d5-1271d2b3118e"}
}],
"mongodb-1.8":
[{"name":"mongodb-3854dbe",
"label":"mongodb-1.8",
"plan":"free",
"credentials":{
"hostname":"172.30.48.63",
"port":25003,
"username":"b6877670-da98-4124-85ca-84357f042797",
"password":"f53e6a4b-f4b8-497d-ac81-43cb22cf1e88",
"name":"mongodb-9dda2cfb-9672-4d58-8786-98c3abcb21ec",
"db":"db"}
}],
"mysql-5.1":
[{"name":"mysql-497b12e",
"label":"mysql-5.1",
"plan":"free",
"credentials":{
"node_id":"mysql_node_8",
"hostname":"172.30.48.27",
"port":3306,
"password":"p3rO5K5lRZaEU",
"name":"d887d4f5664f64dde86f3ce42c6333962",
"user":"umuPIJ8IzSKVA"}
}]
}
Fortunately the plugin manages this for you, so in general you don't need to be aware of this. It will update your
DataSource configuration if you have a MySQL service provisioned and bound, and likewise your MongoDB and
Redis connection information if you have those plugins installed and have those services provisioned and bound.
If you're not using the MongoDB or Redis plugin then you'll need to access the information yourself - just call
System.getenv('VCAP_SERVICES') and parse the JSON.
DataSource
In addition to replacing the username, password, and JDBC url for your DataSource, the plugin will configure
MySQL connection testing, using the following settings:
removeAbandoned = true
removeAbandonedTimeout = 300 // 5 minutes
testOnBorrow = true
validationQuery = '/* ping */ SELECT 1'
This will only be done if the DataSource is the standard org.apache.commons.dbcp.BasicDataSource
that Grails configures since we assume that if you have customized the DataSource, you will configure connection
testing yourself. You can also tell the plugin to not make these changes with
grails.plugin.cloudfoundry.datasource.disableTimeoutAutoconfiguration = true
16
17. in Config.groovy.
Searchable
Although there's no explicit support for Compass in Cloud Foundry, the plugin does detect that the Searchable plugin
is installed and will configure it to write its Lucene index to a writeable directory on your server.
17