This document provides an overview of using Dropwizard, a Java framework for building production-grade RESTful web services, with Groovy. It discusses how Dropwizard combines popular Java libraries and frameworks, highlights some companies using Dropwizard with Groovy successfully, and describes key parts of a Dropwizard application like configurations, resources, representations, metrics, and deployment. The document emphasizes how Dropwizard enables service-oriented architectures and provides advantages like performance, testability, and easy deployment.
An introduction to Dropwizard, as well as examples of how to integrate it with Spring DI and Spring Security. Prepared for a presentation at the Houston Java User Group. Code samples at : https://github.com/jacek99/dropwizard-spring-di-security-onejar-example
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
What is different about this generation of web applications? A solid development approach must consider latency, throughput, and interactivity demanded by users users across mobile devices, web browsers, and IoT. These applications often use NoSQL to support a flexible data model and easy scalability required for modern development.
A full stack application (composed of Couchbase, WebAPI, Angular2, and ASP.NET/ASP.NET Core) will be demonstrated in this session. The individual parts of a stack may vary, but the overall design is the focus.
An introduction to Dropwizard, as well as examples of how to integrate it with Spring DI and Spring Security. Prepared for a presentation at the Houston Java User Group. Code samples at : https://github.com/jacek99/dropwizard-spring-di-security-onejar-example
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
What is different about this generation of web applications? A solid development approach must consider latency, throughput, and interactivity demanded by users users across mobile devices, web browsers, and IoT. These applications often use NoSQL to support a flexible data model and easy scalability required for modern development.
A full stack application (composed of Couchbase, WebAPI, Angular2, and ASP.NET/ASP.NET Core) will be demonstrated in this session. The individual parts of a stack may vary, but the overall design is the focus.
Single Page App (SPA) frameworks offer many benefits over traditional web apps which do all of their HTML generation on the server side. Popular SPA frameworks include Vue, React and Angular. Micronaut is very well suited for publishing REST APIs and is a terrific fit for implementing backend logic for SPAs.
There are many styles of code review, and it can be tough to find a process that works for your team. Do you use Git, SVN, or something more exotic? Do you prefer pre-commit reviews or pull requests? Do you branch, fork, or do everything with patches? This talk examines the various review options adopted by professional teams. We'll investigate Bitbucket pull requests, Crucible reviews, and Gerrit, discussing the pros and cons of each workflow. Then I'll show you the battle-hardened peer review process - refined over thousands of code reviews and pull requests - that Atlassian teams use to maintain the high quality expected of our products.
Tim Pettersen, Senior Developer Advocate, Atlassian
ContainerDays NYC 2016: "OpenWhisk: A Serverless Computing Platform" (Rodric ...DynamicInfraDays
Slides from Rodric Rabbah & Philippe Suter's talk "OpenWhisk: A Serverless Computing Platform" at ContainerDays NYC 2016: dynamicinfradays.org/events/2016-nyc/programme.html#openwhisk
Spring Boot Revisited with KoFu and JaFuVMware Tanzu
SpringOne 2020
Spring Boot Revisited with KoFu and JaFu
Audrey Neveu, Software Engineer on Reactor at VMware
Sébastien Deleuze, Spring Framework Committer at VMware
Apache Lucene is the de-facto standard open source library for Java developers to implement full-text-search capabilities.
While it’s thriving in its field, it is rarely mentioned in the scope of Java EE development.
In this talk we will see for which features many developers love Lucene, make some concrete examples of common problems it elegantly solves, and see some best practices about using it in a Java EE stack.
Finally we'll see how some popular OSS projects such as Hibernate ORM (JPA provider), WildFly (Java EE runtime) and Infinispan (in-memory datagrid, JCache implementor) actually provide great Lucene integration capabilities.
Google App Engine (GAE) is a popular PaaS offering. Where its scalable and reliable environment is hidden behind a custom API. This makes GAE apps hard to port over to other non-GAE environments.
But what if one could implement such similar environment? And you could simply move your GAE application’s .war file to this new environment and it would just work?
After all, at the end it’s all about the API, plus scalable and reliable services.
JBoss CapeDwarf project aims at making this a reality. This presentation will provide a glimpse into what it takes to implement something as GAE, ranging from runtime integration with JBoss Application Server, actual services implementation to last but not least, automated heavy testing.
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...VMware Tanzu
SpringOne 2021
Session Title:The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchronous to Reactive
Speakers: Kuassi Mensah, Director of Product Management at Oracle; Michael McMahon, Principal Member of Technical Staff at Oracle
Jakarta EE is now over 20 years old and despite its age, it is as relevant today as it was back in 1999. It is one of the few open standards for developing enterprise applications with multiple independent vendor implementations. Its APIs are central to developing Java based cloud solutions. It is as relevant today as it was back in 1999. This presentation will provide context to Jakarta EE and why businesses choose to use it.
Unleashing Docker with Pipelines in Bitbucket CloudAtlassian
For those using Bitbucket Cloud, Bitbucket Pipelines makes Docker a first class citizen in your CI/CD cycle. Join Bitbucket Pipelines developer Philip Hodder to learn how containers are changing the way developers build software for the cloud, enabling faster development and safer deployments in a microservices world. He'll use practical, real-world examples to show best practices for testing, building, and pushing your Docker containers in the cloud when using Bitbucket Pipelines.
Philip Hodder, Developer, Atlassian
A Common API & UI for Building Next Generation Identity ServicesForgeRock
Presented by Jamie Nelson, VP of Engineering, ForgeRock and Jonathan Scudder, OpenAM Architect and ForgeRock Co-Founder at ForgeRock Open Identity Summit, June 2013
Learn more about ForgeRock Access Management:
https://www.forgerock.com/platform/access-management/
Learn more about ForgeRock Identity Management:
https://www.forgerock.com/platform/identity-management/
Slides accompanying a presentation on Dropwizard I gave at the DevIgnition conference ( www.devignition.com ) on April 29, 2016. The sample code is on GitHub at https://github.com/sleberknight/dropwizard-devignition-2016
Single Page App (SPA) frameworks offer many benefits over traditional web apps which do all of their HTML generation on the server side. Popular SPA frameworks include Vue, React and Angular. Micronaut is very well suited for publishing REST APIs and is a terrific fit for implementing backend logic for SPAs.
There are many styles of code review, and it can be tough to find a process that works for your team. Do you use Git, SVN, or something more exotic? Do you prefer pre-commit reviews or pull requests? Do you branch, fork, or do everything with patches? This talk examines the various review options adopted by professional teams. We'll investigate Bitbucket pull requests, Crucible reviews, and Gerrit, discussing the pros and cons of each workflow. Then I'll show you the battle-hardened peer review process - refined over thousands of code reviews and pull requests - that Atlassian teams use to maintain the high quality expected of our products.
Tim Pettersen, Senior Developer Advocate, Atlassian
ContainerDays NYC 2016: "OpenWhisk: A Serverless Computing Platform" (Rodric ...DynamicInfraDays
Slides from Rodric Rabbah & Philippe Suter's talk "OpenWhisk: A Serverless Computing Platform" at ContainerDays NYC 2016: dynamicinfradays.org/events/2016-nyc/programme.html#openwhisk
Spring Boot Revisited with KoFu and JaFuVMware Tanzu
SpringOne 2020
Spring Boot Revisited with KoFu and JaFu
Audrey Neveu, Software Engineer on Reactor at VMware
Sébastien Deleuze, Spring Framework Committer at VMware
Apache Lucene is the de-facto standard open source library for Java developers to implement full-text-search capabilities.
While it’s thriving in its field, it is rarely mentioned in the scope of Java EE development.
In this talk we will see for which features many developers love Lucene, make some concrete examples of common problems it elegantly solves, and see some best practices about using it in a Java EE stack.
Finally we'll see how some popular OSS projects such as Hibernate ORM (JPA provider), WildFly (Java EE runtime) and Infinispan (in-memory datagrid, JCache implementor) actually provide great Lucene integration capabilities.
Google App Engine (GAE) is a popular PaaS offering. Where its scalable and reliable environment is hidden behind a custom API. This makes GAE apps hard to port over to other non-GAE environments.
But what if one could implement such similar environment? And you could simply move your GAE application’s .war file to this new environment and it would just work?
After all, at the end it’s all about the API, plus scalable and reliable services.
JBoss CapeDwarf project aims at making this a reality. This presentation will provide a glimpse into what it takes to implement something as GAE, ranging from runtime integration with JBoss Application Server, actual services implementation to last but not least, automated heavy testing.
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...VMware Tanzu
SpringOne 2021
Session Title:The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchronous to Reactive
Speakers: Kuassi Mensah, Director of Product Management at Oracle; Michael McMahon, Principal Member of Technical Staff at Oracle
Jakarta EE is now over 20 years old and despite its age, it is as relevant today as it was back in 1999. It is one of the few open standards for developing enterprise applications with multiple independent vendor implementations. Its APIs are central to developing Java based cloud solutions. It is as relevant today as it was back in 1999. This presentation will provide context to Jakarta EE and why businesses choose to use it.
Unleashing Docker with Pipelines in Bitbucket CloudAtlassian
For those using Bitbucket Cloud, Bitbucket Pipelines makes Docker a first class citizen in your CI/CD cycle. Join Bitbucket Pipelines developer Philip Hodder to learn how containers are changing the way developers build software for the cloud, enabling faster development and safer deployments in a microservices world. He'll use practical, real-world examples to show best practices for testing, building, and pushing your Docker containers in the cloud when using Bitbucket Pipelines.
Philip Hodder, Developer, Atlassian
A Common API & UI for Building Next Generation Identity ServicesForgeRock
Presented by Jamie Nelson, VP of Engineering, ForgeRock and Jonathan Scudder, OpenAM Architect and ForgeRock Co-Founder at ForgeRock Open Identity Summit, June 2013
Learn more about ForgeRock Access Management:
https://www.forgerock.com/platform/access-management/
Learn more about ForgeRock Identity Management:
https://www.forgerock.com/platform/identity-management/
Slides accompanying a presentation on Dropwizard I gave at the DevIgnition conference ( www.devignition.com ) on April 29, 2016. The sample code is on GitHub at https://github.com/sleberknight/dropwizard-devignition-2016
Java application monitoring with Dropwizard Metrics and graphite Roberto Franchini
Java application monitoring with Dropwizard Metrics and graphite.
How to correlate system monitoring and application monitoring using graphite as backend for Collectd and application metrics.
Dropwizard is a Java framework for developing ops-friendly, high-performance, painless RESTful web services. I've presented this simple & light-weight framework (with an example project) on 10th of June.
Agenda:
Presentation (20 minutes):
- Definition & History (What is Dropwizard, versions, first commit etc.)
- Libraries (Built-in libraries, what we use these for etc.)
- User Manual (Project configuration, documentation, getting started etc.)
- Performance (Comparison with other frameworks)
- Versus (Dropwizard vs Springboot on technical terms)
I've prepared a sample Brown Bag Seminars (BBS) application to demonstrate features of Dropwizard (with MongoDB integration).
Sample Project & Code Review (40 minutes):
- Project configuration
- Resource
- Representations
- Views
- Health checks
- Metrics
- Tests
While we move towards microservices architecture, and are managing too many services, the issue of service discovery arises. This becomes a bigger issue when we are autoscaling. So we need a system to be able to resolve a service to a specific machine in our deployment.
Cloud native applications are popular these days – applications that run in the cloud reliably und scale almost arbitrarily. They follow three key principles: They are built and composed as microservices, they are packaged and distributed in containers and the containers are executed dynamically in the cloud. In this hands-on session we will show how to build, package and deploy cloud native Java EE applications on top of DC/OS - fully automated with Gradle using cloud native infrastructure like Consul, Fabio, Hystrix and Prometheus. And for the fun of it we will be using an off-the-shelf DJ pad, programmed with nothing else than the Java Sound API, to demonstrate the core concepts and to visualize and remote control DC/OS.
Nowadays when developers required to be aligned with operations it’s quite important to have common understanding of how application is performing in production. I believe quite small amount of developers are really care/think about operation of the app. In this talk I’m going to describe how it’s easy to provide performance information of application in production with Metrics by Coda Hale and to share practical use cases.
WildFly Swarm: Criando Microservices com Java EE 7George Gastaldi
Apresentado no TDC 2016 - Florianópolis
Microservices é a arquitetura do momento. Todos estão falando sobre Spring Boot, NodeJS, DropWizard e outros frameworks, mas nenhum deles é tão completa quanto a oferecida pela especificação Java EE. Nesta sessão live-coding você vai aprender sobre o WildFly Swarm, e como transformar um projeto Java EE 7 qualquer em um microservice.
Simple REST-APIs with Dropwizard and SwaggerLeanIX GmbH
During the VOXXED Days in Berlin on 29 January 2016 Bernd Schönbach from LeanIX demonstrated an easy way to create well documented and implemented REST-APIs using the Dropwizard Library for the implementation and Swagger for easy Documentation.
===
LeanIX offers an innovative software-as-a-service solution for Enterprise Architecture Management (EAM), based either in a public cloud or the client’s data center.
Companies like Adidas, Axel Springer, Helvetia, RWE, Trusted Shops and Zalando use LeanIX Enterprise Architecture Management tool.
Free Trial: http://bit.ly/LeanIXFreeTrial
You have heard how containers are great for running microservices, but what is needed to get microservices to run in production at scale? In this session, we explore the reasoning and concepts behind microservices and how containers simplify building microservices based applications. We will show how you can easily launch microservices on Amazon EC2 Container Service and how you can use ELB and Route 53 to easily do service discovery between microservices.
Presented by: Danny Fezer, Solutions Architect, Amazon Web Services
Customer Guest: Liz Duke, Technical Delivery Manager, Irdeto
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"Daniel Bryant
Microservice platforms are finally becoming a reality: Mesos, Kubernetes, and a whole bunch of PaaS-style offerings are available, but the reality is that these platforms still don’t provide everything you need in order to build a fully functional microservice ecosystem. Come to this session to learn about the essential deployment, orchestration, and glue components that often have to be self-assembled. The presentation begins by looking at deployment techniques and tools and examines where to test (QA, staging, or production), how to test (integration and contracts), and how to separate deployment and release. It then discusses orchestration, configuration, and service discovery. Finally it looks at essential glue such as logging, monitoring, and alerting.
Microservices is a software architectural method where you decompose complex applications into smaller, independent services. Containers are great for running small decoupled services, but how do you coordinate running microservices in production at scale and what AWS services do you use?
In this session, we will explore the reasoning and concepts behind microservices and how containers simplify building microservices based applications. We will also demonstrate how you can easily launch microservices on Amazon EC2 Container Service and how you can use ELB and Route 53 to easily do service discovery between microservices.
Webinar: Extend The Power of The ForgeRock Identity Platform Through ScriptingForgeRock
Scripting extends ForgeRock products in a powerful way, both for deployers as well as developers. For OpenAM, deployers can embed the ssoadm command line utility in comprehensive shells scripts for ultra fast deployments and configurations. Developers can use scripts for client-side and server-side authentication, policy conditions, and handling OpenID Connect claims. In OpenIDM, scripting allows you to customize various aspects of OpenIDM functionality, by providing custom logic between source and target mappings, defining correlation rules, filters, triggers, and more.
Webinar Highlights:
Scripting
The ForgeRock Platform
Q&A
Join Anders Askåsen, Senior Technical Product Manager, and Javed Shah, Senior Sales Engineer, as they highlight the concepts and show examples and best practices for scripting with the ForgeRock Identity Platform.
Dev Ops Geek Fest: Automating the ForgeRock PlatformForgeRock
Modern identity management platforms must be agile enough to respond to demanding business timelines. Your dev-ops strategy could be the difference between hitting or missing business-critical deadlines. In this session we will demonstrate how to use dev-ops tools such as Ansible and Vagrant to automate and simplify the installation of the ForgeRock Identity Platform.
Serverless architectures let you build and deploy applications and services with infrastructure resources that require zero administration. In the past, you had to provision and scale servers to run your application code, install and operate distributed databases, and build and run custom software to handle API requests. Now, AWS provides a stack of scalable, fully-managed services that eliminates these operational complexities.
In this session, you will learn about the benefits of serverless architectures and the basics of the serverless stack AWS provides. We will also walk through how you can use serverless architectures for everything from data processing to mobile and web backends.
AWS DevDay San Francisco, June 21, 2016.
Presenter: Jeremy Edberg, Co-Founder, CloudNative, & AWS Community Hero
Groovy & Grails - From Scratch to Production Tal Maayani
Walk-through a true story of developing a Grails web application from the ground up. some tips and how to guides for those of you who want to start developing on Grails or are using Grails and would like to learn from other experience.
The talk at DAUG:
1. Think about your project dependencies graph
2. Assert your project dependencies graph
3. Dagger reflect and remove jetifier to speed up builds
A general- ‐purpose build automation tool. It can automate building, testing, deployment, publishing, generate documentation etc.
Designed to take advantage of convention over configuration.
Combines the power and flexibility of Ant with the dependency management and
conventions of Maven into a more effective way to build.
Moving to the cloud isn’t easy, transforming your engineering team to adopt to the cloud and services lifestyle is therefore crucial. It all starts with creating a common understanding of the engineering and development principles which are important in the cloud, which are different then building regular applications. This session will take you on a road trip based on the presenters experience developing and more importantly operating Azure Active Directory, SQL Server Azure and most recently the Xbox Live Services to support Xbox One.
Performance Testing using Real Browsers with JMeter & WebdriverBlazeMeter
Learn how to easily run performance tests with real browsers using Selenium WebDriver.
Ophir Prusak, BlazeMeter’s Chief Evangelist, gives step-by-step instructions on doing this using BlazeMeter and/or JMeter.
Learn how to:
- Correlate actual browser-based user experience with the load tests
- Run multiple Selenium Webdriver tests in parallel at scale by using the power of the cloud
- Do it all without any prior JMeter knowledge or experience!
Whether you are building a mobile app or a web app, Apache Usergrid (incubating) can provide you with a complete backend that supports authentication, persistence and social features like activities and followers all via a comprehensive REST API — and backed by Cassandra, giving you linear scalability. This session will tell you what you need to know to be a Usergrid contributor, starting with the basics of building and running Usergrid from source code. You’ll learn how to find your way around the Usergrid code base, how the code for the Stack, Portal and SDKs and how to use the test infrastructure to test your changes to Usergrid. You’ll learn the Usergrid contributor workflow, how the project uses JIRA and Github to manage change and how to contribute your changes to the project. The session will also cover the Usergrid roadmap and what the community is currently working on.
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.
This presentation gives an overview on how Platform as a Service technology can help you to become an IT manufacturer with highly integrated and greatly automated processes that drive your business forward.
This presentation was held at (W-) JAX 2014 by Jürgen Hoffmann (Red Hat) and Sebastian Faulhaber (Red Hat).
Every customer-facing project aims to achieve high uptime. We, as developers, write thorough unit and integration tests to catch as many bugs as possible. We even set up staging environments to simulate production as well as we can. Yet, downtime still happens and not only once we had to revert a change.
Blue-Green deployment is a technique that allows us to ship code with high confidence, minimizing the risk of errors. We will go through the why and what of Blue-Green,as well as show how you can start doing it using Spinnaker.
BDEVOPS @ Adobe 11.04.2017
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
2. !
Goals for this talk
• Quick tour of Dropwizard functionality
written with Groovy & friends instead of
pure Java.
• Showcase some of the “DevOps” friendly
features in Dropwizard for easy setup,
deployment and monitoring.
3. This is not a talk about
REST Services
• Everything I tell you about REST will
probably be a lie.
• Think JSON services over http.
4. REST Services
REST-ful API Design - Ben Hale
https://github.com/nebhale/spring-one-2013/tree/master/
rest-ful-api-design
Beautiful REST + JSON APIs - Les Hazlewood
http://www.slideshare.net/stormpath/rest-jsonapis
9. Dropwizard stack
• Takes mature, well known Java frameworks
and glues them together.
• Jetty for HTTP
• Jersey for REST
• Jackson for JSON
• Metrics for metrics
• Etc. ( Logback, Hibernate, Liquibase, etc )
11. Who uses Dropwizard?
Fraud Detection & Gift Card
Services
Fault Tolerant Job Scheduler
https://github.com/airbnb/chronos
Carl Quinn : Dropwizard +
Netflix OSS tools
http://tekconf.com/conferences/
codemash-2014/how-we-built-acloud-platform-at-riot-games-u
12. Dropwizard + Groovy?
• Bloom Health - Insurance carriers data exchange.
Spring Batch, Dropwizard and Groovy.
(25x faster than previous system)
• Sky Find and Watch - Powers the remote record /
watch now functionality
• UnderwriteMe - Watch Marcin’s talk!
http://skillsmatter.com/podcast/home/moderngroovy-enterprise-stack
13. Dropwizard + Groovy?
• Editorial Expansion - Time inc. subsidiary in Mexico
Gourmet Awards iPhone app backend.
21. Advantages
• Scale up only some parts of your
application.
• Isolate services based depending on their
security profiles.
• Fault tolerance.
• Cloud friendly!
25. Performance
Dropwizard is a very high performance, low latency
framework.
http://www.techempower.com/benchmarks/
26.
27.
28. Other niceties
• Testable. Every part of the system can be
tested during development.
• Deployment friendly - easy to configure,
deploy and monitor.
• Pure Java.
30. Lazybones Starter
Template
• By Kyle Boon from Bloom Health
• Available via Lazybones template tool by
Peter Ledbrook
• You can get Lazybones via gvm
31. Lazybones Starter
Template
• Gradle build
• Spock tests
• Hibernate persistance layer
• Fat Jars via Shadow ( like Maven’s Shade )
• CodeNarc for clean code
• Cobertura for test coverage
32.
33. Tasks
• Test the application ./gradlew test
• Build a Jar file for deploy ./gradlew shadow
• Drop a database ./gradlew dropAll
• Setup database ./gradlew migrate
• You can add your own like deployToCloud
37. Services
• Like an Application in Grails
• Central place where all the other building
blocks are connected.
38.
39.
40. Services
• The Dropwizard approach to services lets
us see one place where all our other
components are bound and glued together.
• Relationships between other parts must be
explicitly declared. There is no magic
linking.
41. Configurations
• Each service has a configuration that is
passed into the run method.
• Dropwizard has default configurations for
clients, logging and Jetty that can be
overwritten
42. Configurations
Same jar file, configuration is externalized.
!
java -jar application.jar server test.yml
java -jar application.jar server stage.yml
java -jar application.jar server prod.yml
52. Configurations
• Configurations are vital because they allow
us to make sure we got all the details for
our service right.
• One config file instead of merged conflict
from many sources eliminates confusion
and makes it easy to automate / swap out.
53. Resources
• Represent a set of service endpoints
• Like Controllers in Grails
• They are just Jersey Resources:
https://jersey.java.net/nonav/documentation/
latest/user-guide.html#jaxrs-resources
57. Resources
• Tested not as Unit mocks, but as Jersey
components with a real Jersey server.
• Similar to the FakeServer in Grails Rest Client
• Dropwizard comes with a ResourceTest that
works with Mockito / JUnit
• I wrote a Spock equivalent available at http://
fbflex.wordpress.com/2013/01/30/dropwizardwith-spock-and-groov/
62. Representations
• Lets you formally describe the data flowing
in and out of your REST API.
• Data Transfer Objects that can be validated.
• It gives you a way to easily map them into
your database objects either directly or via
a DAO.
• Recommended approach is to share
representations between servers and
clients.
63.
64.
65.
66.
67.
68.
69.
70. Representations
• The use of representations ensure the
contract between our REST endpoints and
clients that consume this endpoint.
• You could also just skip this and go straight
to your other endpoints or JSON friendly
database.
76. Metrics
• They are first class citizens within
Dropwizard.
• Very flexible.You can define custom
metrics, set Gauges, etc.
• It’s about communicating the actual state of
your server back to the mothership so it
can be coordinated.
80. Logging
• I am lazy.
• Don’t realize logs are needed until it is too
late.
• Logs are time machines to past
malfunctions, making them easy to set up
allows us to use them.
81. Client Support
• Dropwizard has available both the Apache
HttpClient and the Jersey Client.
• Jersey Client can use same deserialization
available to the server
82.
83. We can now use the client within the
Resource to fetch http data from other sources
84. Clients
• Returns a fully wrapped object that emits
metrics. This allows us to monitor how
they are used and identify bottlenecks or
bugs.
85. Managed Objects
• Classes that have a start and end phase
attached to the service.
• Often have their own configurations.
• Easy way to encapsulate integrations into
other services / systems.
86.
87.
88. Health Checks
• Runtime checks that the service is
operating correctly
• If an exception is thrown, this is shown on
the health monitoring screen
• Also throws a 500 error code on the
health check page for tools
89.
90.
91.
92.
93. Health Checks
• Quick diagnostics on running instance.
• Better to kill a sick service than to keep it
running and potentially corrupting your
data.
• Also helps when you are deploying and
building out your infrastructure.
94. Other Features
• Tasks - Like Grails Scripts
• Commands - Jobs that can be invoked via
an URL. Lots of power since you’re using
the same stack as your runtime service.
• Others - Filters, Bundles, etc.
http://www.dropwizard.io/manual/
97. Grails Equivalents
• Dropwizard Plugin by Burt Beckwith
http://grails.org/plugin/dropwizard
• Health Control Plugin by Kim Betti
http://grails.org/plugin/health-control
• Validate Config Plugin by Andy Miller
http://grails.org/plugin/validate-config
• Metrics Plugin by Jeff Ellis
http://grails.org/plugin/yammer-metrics
98. Using Groovy
• Less verbose objects. Can use map
constructors.
• Nice annotations for logging.
• Gradle / Spock / Betamax / Lazybones.
• Not sure if @CompileStatic has any changes
that are significant - 6%
[ http://kyleboon.org/blog/2013/09/26/doescompile-static-make-your-website-faster/ ]
99. Development
• A lot faster since there is very little magic
and user interface to test.
• Excellent support in IntelliJ for Gradle
project and tasks.
100. Final Thoughts
• Think about the deployed application.
• Grails + Dropwizard. Not Grails or
Dropwizard.
• This is just mini-scale. What happens when
you have 100 services/servers? 1,000?
1,000,000? ( Come work at Netflix! )
101. Thank you
• Email : tomaslin@gmail.com
• Twitter : @tomaslin
• Slides will be posted on my blog:
• http://bit.ly/tomaslin