How to Build Your Own Test Automation Framework?Dmitry Buzdin
Even though there are plenty of open source tools on the market every company needs to put them together and create a test automation framework on top. Best practices of doing that are quite well-known in industry and it is important to learn them before building your own framework. We will go through the core building blocks of test automation frameworks and how they are playing together. You will learn how to assemble your test automation toolchain out of open source libraries and how to integrate them together. The session will be heavily biased towards Java platform.
The document discusses how to grow microservices from a monolithic architecture using a staged approach. It recommends starting with a modular monolith broken into bounded context modules that can be deployed and tested independently. These modules can then be upgraded to independent microservices by separating databases, exposing APIs, and moving to an eventual consistency model. The process should be iterative, allowing code to be refactored and services extracted gradually based on factors like scalability needs and usage patterns. Practical advice includes API-first design, avoiding reusable frameworks, using schema per bounded context, and embracing testing and devops best practices.
Unit tests isolate and test classes individually using mocks and dependency injection. Integration tests emulate dependencies using fakes to test integration points. Functional tests start the application context and emulate user requests to test functionality across layers without GUI. The document discusses patterns for different types of automated tests including using embedded containers and databases, configuration overrides, and JUnit rules to test at the unit, integration, and functional levels. The goal is to decrease costs and risks of changes through extensive automation.
This document outlines an agenda for a presentation on automated testing of web applications using behavior driven development, JBehave, and Selenium. It discusses behavior driven development, an introduction to the JBehave framework, automated testing with Selenium, the page object pattern, adding new test scenarios, running tests through Maven, best practices, and reporting test results. The document provides examples of how to implement various aspects like page objects, test scenarios, and using Maven for building and running tests.
The document summarizes a presentation on testing in Java given by David Noble. The presentation covered test-driven development concepts and practices, common testing terminology, popular tools for different types of testing, and resources for learning more. It included a demonstration of test-driven development using an open source medical records system. The goal was to motivate excellence in testing through concepts, practices and tools discussed.
Testcontainers - Geekout EE 2017 presentationRichard North
Unit testing our code on the JVM is well catered for with a lot of great tools that are mature and reliable – things tend to just work. Integrated testing, however, is another matter. Any time we face a situation where we need to involve non-JVM elements in our tests, we’re faced with painful environment setup and repeatability issues. Testcontainers aims to make integrated tests a little less unpleasant, through the power of Docker. Databases, Web browsers – in fact anything available as a Docker image – can be made available as a component to use in our tests.
In this talk, we’ll go through the motivations for building Testcontainers, its features, as well as some examples of using it in practice for testing various types of components.
A presentation that guides you through the stages of testing your Java enterprise application. Finally it shows you that Arquillian is the best tool for that
Data driven automation testing of web applications using seleniumanandseelan
This document discusses data driven automation testing of web applications using Selenium. It provides an overview of Selenium and some key considerations for choosing an automation testing tool. It then describes the typical components of a Selenium-based automation testing framework, including test scripts, reusable libraries, test suites, reports, and more. It discusses the advantages and limitations of the Selenium IDE and RC tools.
How to Build Your Own Test Automation Framework?Dmitry Buzdin
Even though there are plenty of open source tools on the market every company needs to put them together and create a test automation framework on top. Best practices of doing that are quite well-known in industry and it is important to learn them before building your own framework. We will go through the core building blocks of test automation frameworks and how they are playing together. You will learn how to assemble your test automation toolchain out of open source libraries and how to integrate them together. The session will be heavily biased towards Java platform.
The document discusses how to grow microservices from a monolithic architecture using a staged approach. It recommends starting with a modular monolith broken into bounded context modules that can be deployed and tested independently. These modules can then be upgraded to independent microservices by separating databases, exposing APIs, and moving to an eventual consistency model. The process should be iterative, allowing code to be refactored and services extracted gradually based on factors like scalability needs and usage patterns. Practical advice includes API-first design, avoiding reusable frameworks, using schema per bounded context, and embracing testing and devops best practices.
Unit tests isolate and test classes individually using mocks and dependency injection. Integration tests emulate dependencies using fakes to test integration points. Functional tests start the application context and emulate user requests to test functionality across layers without GUI. The document discusses patterns for different types of automated tests including using embedded containers and databases, configuration overrides, and JUnit rules to test at the unit, integration, and functional levels. The goal is to decrease costs and risks of changes through extensive automation.
This document outlines an agenda for a presentation on automated testing of web applications using behavior driven development, JBehave, and Selenium. It discusses behavior driven development, an introduction to the JBehave framework, automated testing with Selenium, the page object pattern, adding new test scenarios, running tests through Maven, best practices, and reporting test results. The document provides examples of how to implement various aspects like page objects, test scenarios, and using Maven for building and running tests.
The document summarizes a presentation on testing in Java given by David Noble. The presentation covered test-driven development concepts and practices, common testing terminology, popular tools for different types of testing, and resources for learning more. It included a demonstration of test-driven development using an open source medical records system. The goal was to motivate excellence in testing through concepts, practices and tools discussed.
Testcontainers - Geekout EE 2017 presentationRichard North
Unit testing our code on the JVM is well catered for with a lot of great tools that are mature and reliable – things tend to just work. Integrated testing, however, is another matter. Any time we face a situation where we need to involve non-JVM elements in our tests, we’re faced with painful environment setup and repeatability issues. Testcontainers aims to make integrated tests a little less unpleasant, through the power of Docker. Databases, Web browsers – in fact anything available as a Docker image – can be made available as a component to use in our tests.
In this talk, we’ll go through the motivations for building Testcontainers, its features, as well as some examples of using it in practice for testing various types of components.
A presentation that guides you through the stages of testing your Java enterprise application. Finally it shows you that Arquillian is the best tool for that
Data driven automation testing of web applications using seleniumanandseelan
This document discusses data driven automation testing of web applications using Selenium. It provides an overview of Selenium and some key considerations for choosing an automation testing tool. It then describes the typical components of a Selenium-based automation testing framework, including test scripts, reusable libraries, test suites, reports, and more. It discusses the advantages and limitations of the Selenium IDE and RC tools.
Acceptance Test-driven Development (ATDD) involves collaboratively discussing acceptance criteria and examples before development begins. These criteria and examples are then distilled into concrete acceptance tests. The team then develops software features while hooking them up to the acceptance tests. Finally, the features and successful acceptance tests are demoed. Cucumber is a tool that allows executing acceptance tests written in a behavior-driven style using a Given-When-Then format. Cucumber tests can automate interactions with a web application using tools like Selenium WebDriver.
This document provides an overview of best practices for Android Wear development. It discusses how to pair Wear devices, common APIs with Android, showing notifications, distributing Wear apps, defining layouts, accessing views, useful libraries like Gson and EventBus, and other tips.
Take Control of your Integration Testing with TestContainersNaresha K
Slides from my demonstration titled "Take Control of your Integration Testing with TestContainers". Demonstrates using TestContainers for RDBMS and test driving S3 API with localstack.
Software Test automation tools are available under several categories such as commercial, free software, open source software and etc. In this paper Open Source Software Testing Tools will be discussed.
Open source software test automation tools may be practical alternatives to popular closed-source commercial applications and some open source tools offers features or performance benefits that exceed their commercial counterparts. The source code is openly published for use and/or modification from its original design, free of charge. And these are usually available under a license defined by the Open Source Initiative.
This document discusses the Java development ecosystem. It describes common development tools like Jenkins, source control systems, Maven, Nexus, code analysis tools, and Sonar. These tools help with tasks like continuous integration, dependency management, code quality analysis, and monitoring project metrics over time. Sonar in particular collects results from analysis tools and provides visual dashboards to track metrics and summarize projects' test coverage, lines of code, and other indicators.
This document provides an introduction to SOAPUI, including how to add and configure different types of assertions for validating responses, using Groovy scripts to write test logic and verify results, and techniques for organizing projects using workspaces and environments. It covers topics like XPath functions, SOAPUI object models, refactoring WSDLs, and testing web services with attachments.
This document discusses various web application security vulnerabilities like injection, cross-site scripting (XSS), cross-site request forgery (CSRF), security misconfiguration, and insecure direct object references. It provides examples of each vulnerability and methods for preventing them, such as input validation, output encoding, using parameterized queries, and generating unique identifiers. The document also covers topics like HTTP, sessions, cookies and the importance of keeping software updated.
Microsoft Fakes help you isolate the code you are testing by replacing other parts of the application with substitute code. These substitutes are called stubs and shims and are under the control of your tests. Microsoft Fakes is ideal when you need to test legacy or “legacy” code that is either restricted for refactoring or “refactoring” practically means rewriting and cost you a lot.
Node.js is an event-driven platform for building scalable network applications. It uses non-blocking I/O and asynchronous calls to handle many connections concurrently without blocking. At the core of Node.js is a single-threaded event loop that processes tasks in the order they are placed into the queue, executing callbacks asynchronously without blocking the main thread. The event loop handles all incoming requests and passes them to the JavaScript engine to execute callbacks and return responses. Node.js uses the V8 JavaScript engine and runs built-in modules and third-party modules for common tasks like HTTP servers and file system access.
This document provides an introduction to web services and the API testing tool SoapUI. It discusses what web services are, their components like XML, SOAP, WSDL and UDDI. It describes the architecture of web services including roles like service provider, requester and registry. It explains operations like publish, find and bind. It then introduces SoapUI for testing web services, covering its project structure of test suites, cases and steps. It provides details on creating a project, adding tests, assertions and response time verification. It also briefly mentions the pro version and using SoapUI for security testing through security scans and assertions.
This presentation will give you a fuller understanding of unit testing in Swift, its benefits, key characteristics, mocks and stubs, dependency injection, DI patters and common mistakes one may make throughout the process.
This presentation by Andrii Gavrysh, GlobalLogic expert, was delivered at GlobalLogic Lviv iOS TechTalk on November 16, 2016.
Learn more: https://www.globallogic.com/ua/gl_news/globallogic-lviv-ios-techtalk-summary
This document provides an introduction to SOAPUI, including how to add different types of assertions to test steps to validate responses. It discusses contains/not contains assertions, SOAP/non-SOAP requests, faults, response time limits, XPath matching, and more. It also covers using Groovy scripts to manipulate tests and responses, refactoring WSDLs, and organizing projects using workspaces and environments.
PowerShell Plus is the most advanced Interactive Development Environment for PowerShell available today. Designed to help administrators and developers quickly learn and master Windows PowerShell, it also dramatically increases the productivity of expert users.
PowerShell Plus features a powerful interactive console, an advanced script editor and debugger and a comprehensive interactive learning center all integrated into a single product.
Exactpro Systems for KSTU Students in KostromaIosif Itkin
This document discusses Exactpro Systems, an innovative trading systems company. It provides information on the company's history, team compositions for different offices including Kostroma, statistics on employee retention and attrition, the breakdown of departments, and descriptions of products developed including ClearTH, Mini-Robots, Dolphin, Shsha, and Load Injector. It also discusses the company's conference in Kostroma on software development and analysis topics.
First Section:
Continuous Delivery as a software engineering approach.
(This is beneficial for Project Managers, DEVs & QAs.)
1. Projects Case Studies to explain why you should adopt Continuous Delivery.
2. Advantages & Reasons for releasing software more frequently.
3. How to make a Reliable / Production Ready Software.
4. Ingredients of Continues Delivery.
5. Tools/ approaches to choose while using Continues Delivery Methodology.
Second Section:
Technical side of Continuous Delivery.
(This is more beneficial for DEVs/ QAs than Project Managers.)
1. Testing a Software.
2. Measuring Code Quality / Analytic to visualize teams performances.
3. Tools: Code Syntax Checker, Testing Framework, Build Automation, Automated Reporting/ Analytic Dashboard.
4. Continuous Delivery Automation over Cloud using Travis CI - Live demonstration.
Third Section:
1. Sample Projects for audience to adopt right tools for development, testing & deployments.
2. Q&A.
-------------------------------------------------
By Waqar Alamgir http://waqaralamgir.tk
Data-driven testing is a methodology where test input and output values are read from external data sources like files or databases. A single test script can be used to execute multiple test cases by varying the test data. Maveryx is a tool that supports data-driven testing through features like intelligent object recognition, separation of test logic from data, and reading test data from sources like Excel. The document provides an overview of data-driven testing and examples of how to create a data-driven test script using Maveryx.
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
In this introduction to Test Driven Development (TDD) or Behaviour Driven Development (BDD) we give a high level description of what it is and why it is useful for developers. Then we go into some details on stubs and mocks, test data, UI testing, SQL testing, JavaScript testing, web services testing and how to start doing TDD/BDD on an existing code base.
Rest-assured is a 100% java-based, BDD style, test library that you can use for testing REST api's in java projects. These are the slides from the presentation and demo I give at the 2017 #JBCNConf Java conference in Barcelona.
Exploring No Mans Land with Keyword-Driven TestingMartinGijsen
The document discusses keyword-driven testing as a way to automate testing while avoiding issues with record and playback approaches. It describes how keyword-driven testing involves defining keywords or instructions specific to the application that allow testers to write automated test cases without programming. This separates the testing concerns from the automation implementation, allowing testers and developers to focus on their respective roles. Different framework designs are presented for various types of applications.
1. The document provides an overview of the Spring Test Framework including memos, gifs, theory, humor and a demo. Technologies covered include Spring 4, Spring Boot 1.5, Docker, Gradle, H2 and PostgreSQL.
2. Testing concepts such as the test pyramid, F.I.R.S.T principles, unit vs integration testing are discussed. The benefits of testing such as maintainability and reducing errors are also summarized.
3. Key aspects of the Spring framework are highlighted including inversion of control, dependency injection, Spring MVC, Spring Data and Spring Boot features like autoconfiguration. Spring testing annotations and customization are also outlined.
Docker - Demo on PHP Application deployment Arun prasath
Docker is an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.
In this demo, I will show how to build a Apache image from a Dockerfile and deploy a PHP application which is present in an external folder using custom configuration files.
Acceptance Test-driven Development (ATDD) involves collaboratively discussing acceptance criteria and examples before development begins. These criteria and examples are then distilled into concrete acceptance tests. The team then develops software features while hooking them up to the acceptance tests. Finally, the features and successful acceptance tests are demoed. Cucumber is a tool that allows executing acceptance tests written in a behavior-driven style using a Given-When-Then format. Cucumber tests can automate interactions with a web application using tools like Selenium WebDriver.
This document provides an overview of best practices for Android Wear development. It discusses how to pair Wear devices, common APIs with Android, showing notifications, distributing Wear apps, defining layouts, accessing views, useful libraries like Gson and EventBus, and other tips.
Take Control of your Integration Testing with TestContainersNaresha K
Slides from my demonstration titled "Take Control of your Integration Testing with TestContainers". Demonstrates using TestContainers for RDBMS and test driving S3 API with localstack.
Software Test automation tools are available under several categories such as commercial, free software, open source software and etc. In this paper Open Source Software Testing Tools will be discussed.
Open source software test automation tools may be practical alternatives to popular closed-source commercial applications and some open source tools offers features or performance benefits that exceed their commercial counterparts. The source code is openly published for use and/or modification from its original design, free of charge. And these are usually available under a license defined by the Open Source Initiative.
This document discusses the Java development ecosystem. It describes common development tools like Jenkins, source control systems, Maven, Nexus, code analysis tools, and Sonar. These tools help with tasks like continuous integration, dependency management, code quality analysis, and monitoring project metrics over time. Sonar in particular collects results from analysis tools and provides visual dashboards to track metrics and summarize projects' test coverage, lines of code, and other indicators.
This document provides an introduction to SOAPUI, including how to add and configure different types of assertions for validating responses, using Groovy scripts to write test logic and verify results, and techniques for organizing projects using workspaces and environments. It covers topics like XPath functions, SOAPUI object models, refactoring WSDLs, and testing web services with attachments.
This document discusses various web application security vulnerabilities like injection, cross-site scripting (XSS), cross-site request forgery (CSRF), security misconfiguration, and insecure direct object references. It provides examples of each vulnerability and methods for preventing them, such as input validation, output encoding, using parameterized queries, and generating unique identifiers. The document also covers topics like HTTP, sessions, cookies and the importance of keeping software updated.
Microsoft Fakes help you isolate the code you are testing by replacing other parts of the application with substitute code. These substitutes are called stubs and shims and are under the control of your tests. Microsoft Fakes is ideal when you need to test legacy or “legacy” code that is either restricted for refactoring or “refactoring” practically means rewriting and cost you a lot.
Node.js is an event-driven platform for building scalable network applications. It uses non-blocking I/O and asynchronous calls to handle many connections concurrently without blocking. At the core of Node.js is a single-threaded event loop that processes tasks in the order they are placed into the queue, executing callbacks asynchronously without blocking the main thread. The event loop handles all incoming requests and passes them to the JavaScript engine to execute callbacks and return responses. Node.js uses the V8 JavaScript engine and runs built-in modules and third-party modules for common tasks like HTTP servers and file system access.
This document provides an introduction to web services and the API testing tool SoapUI. It discusses what web services are, their components like XML, SOAP, WSDL and UDDI. It describes the architecture of web services including roles like service provider, requester and registry. It explains operations like publish, find and bind. It then introduces SoapUI for testing web services, covering its project structure of test suites, cases and steps. It provides details on creating a project, adding tests, assertions and response time verification. It also briefly mentions the pro version and using SoapUI for security testing through security scans and assertions.
This presentation will give you a fuller understanding of unit testing in Swift, its benefits, key characteristics, mocks and stubs, dependency injection, DI patters and common mistakes one may make throughout the process.
This presentation by Andrii Gavrysh, GlobalLogic expert, was delivered at GlobalLogic Lviv iOS TechTalk on November 16, 2016.
Learn more: https://www.globallogic.com/ua/gl_news/globallogic-lviv-ios-techtalk-summary
This document provides an introduction to SOAPUI, including how to add different types of assertions to test steps to validate responses. It discusses contains/not contains assertions, SOAP/non-SOAP requests, faults, response time limits, XPath matching, and more. It also covers using Groovy scripts to manipulate tests and responses, refactoring WSDLs, and organizing projects using workspaces and environments.
PowerShell Plus is the most advanced Interactive Development Environment for PowerShell available today. Designed to help administrators and developers quickly learn and master Windows PowerShell, it also dramatically increases the productivity of expert users.
PowerShell Plus features a powerful interactive console, an advanced script editor and debugger and a comprehensive interactive learning center all integrated into a single product.
Exactpro Systems for KSTU Students in KostromaIosif Itkin
This document discusses Exactpro Systems, an innovative trading systems company. It provides information on the company's history, team compositions for different offices including Kostroma, statistics on employee retention and attrition, the breakdown of departments, and descriptions of products developed including ClearTH, Mini-Robots, Dolphin, Shsha, and Load Injector. It also discusses the company's conference in Kostroma on software development and analysis topics.
First Section:
Continuous Delivery as a software engineering approach.
(This is beneficial for Project Managers, DEVs & QAs.)
1. Projects Case Studies to explain why you should adopt Continuous Delivery.
2. Advantages & Reasons for releasing software more frequently.
3. How to make a Reliable / Production Ready Software.
4. Ingredients of Continues Delivery.
5. Tools/ approaches to choose while using Continues Delivery Methodology.
Second Section:
Technical side of Continuous Delivery.
(This is more beneficial for DEVs/ QAs than Project Managers.)
1. Testing a Software.
2. Measuring Code Quality / Analytic to visualize teams performances.
3. Tools: Code Syntax Checker, Testing Framework, Build Automation, Automated Reporting/ Analytic Dashboard.
4. Continuous Delivery Automation over Cloud using Travis CI - Live demonstration.
Third Section:
1. Sample Projects for audience to adopt right tools for development, testing & deployments.
2. Q&A.
-------------------------------------------------
By Waqar Alamgir http://waqaralamgir.tk
Data-driven testing is a methodology where test input and output values are read from external data sources like files or databases. A single test script can be used to execute multiple test cases by varying the test data. Maveryx is a tool that supports data-driven testing through features like intelligent object recognition, separation of test logic from data, and reading test data from sources like Excel. The document provides an overview of data-driven testing and examples of how to create a data-driven test script using Maveryx.
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
In this introduction to Test Driven Development (TDD) or Behaviour Driven Development (BDD) we give a high level description of what it is and why it is useful for developers. Then we go into some details on stubs and mocks, test data, UI testing, SQL testing, JavaScript testing, web services testing and how to start doing TDD/BDD on an existing code base.
Rest-assured is a 100% java-based, BDD style, test library that you can use for testing REST api's in java projects. These are the slides from the presentation and demo I give at the 2017 #JBCNConf Java conference in Barcelona.
Exploring No Mans Land with Keyword-Driven TestingMartinGijsen
The document discusses keyword-driven testing as a way to automate testing while avoiding issues with record and playback approaches. It describes how keyword-driven testing involves defining keywords or instructions specific to the application that allow testers to write automated test cases without programming. This separates the testing concerns from the automation implementation, allowing testers and developers to focus on their respective roles. Different framework designs are presented for various types of applications.
1. The document provides an overview of the Spring Test Framework including memos, gifs, theory, humor and a demo. Technologies covered include Spring 4, Spring Boot 1.5, Docker, Gradle, H2 and PostgreSQL.
2. Testing concepts such as the test pyramid, F.I.R.S.T principles, unit vs integration testing are discussed. The benefits of testing such as maintainability and reducing errors are also summarized.
3. Key aspects of the Spring framework are highlighted including inversion of control, dependency injection, Spring MVC, Spring Data and Spring Boot features like autoconfiguration. Spring testing annotations and customization are also outlined.
Docker - Demo on PHP Application deployment Arun prasath
Docker is an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.
In this demo, I will show how to build a Apache image from a Dockerfile and deploy a PHP application which is present in an external folder using custom configuration files.
Docker, a new LINUX container technology based light weight virtualizationSuresh Balla
Docker is a tool that allows applications to run reliably from one computing environment to another in lightweight execution environments called containers. It solves the problem of differences in computing environments by running applications within standardized containers that have all their dependencies, so they can run on any Docker host regardless of the underlying infrastructure. The presentation demonstrated how Docker works, how to build Docker images using Dockerfiles, and how Docker is being used by companies and integrated into platforms like OpenStack.
This document provides information about Linux containers and Docker. It discusses:
1) The evolution of IT from client-server models to thin apps running on any infrastructure and the challenges of ensuring consistent service interactions and deployments across environments.
2) Virtual machines and their benefits of full isolation but large disk usage, and Vagrant which allows packaging and provisioning of VMs via files.
3) Docker and how it uses Linux containers powered by namespaces and cgroups to deploy applications in lightweight portable containers that are more efficient than VMs. Examples of using Docker are provided.
Deploying windows containers with kubernetesBen Hall
The document discusses deploying Windows containers with Kubernetes. It covers building Windows containers, deploying containers on Kubernetes, and operating Kubernetes. Specifically, it shows how to:
- Build a Windows container with SQL Server using Docker
- Deploy a .NET Core app container to Kubernetes and expose it using a load balancer
- Scale the deployment to multiple replicas and observe traffic distribution
- Perform rolling updates to deploy new versions of the application
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...CodeMill digital skills
Details
Alexandra Carter - Callcredit, Numero and Microsoft: Containerisation Hack of a Legacy Software Solution
This is the story of how we took a legacy solution and pushed it into containers on windows in just three days. This was also a great chance to work with Microsoft at the cutting edge of their work on containerisation, VSTS and Azure. Moving on from our Hackathon, we have continued adding new components, experimenting with orchestration and showcasing our work. I’ll talk you through the prep work, the 3 day hack and the subsequent work; what it means for the product roadmap, the experimentation we have done and how stakeholders are responding. Finally, we’ll look ahead to next steps.
Case study: https://microsoft.github.io/techcasestudies/devops/2017/06/16/Callcredit_DevOps.html
Alex Carter
"I have worked in IT, Marketing, Software Support and Software Delivery before moving into my current System Build (DevOps) role within Callcredit. I live and breathe DevOps and am currently focussing on anything around containerisation in Windows. A day without Metal and motor racing is a dull one."
@smileandeliver (https://twitter.com/smileandeliver)
From CodeMill digital skills meetup https://www.meetup.com/CodeMill-Digital-Skills/events/243110732/
- The document outlines best practices for using containers in continuous delivery solutions with Docker and Amazon ECS, including using containers to provide predictable environments, fast feedback, and quick feature rollouts.
- It demonstrates a development and deployment workflow using AWS CodeCommit for source control, Jenkins for builds and testing, and Amazon ECS for deployment, with CodePipeline automating the workflow.
- Live demos were presented showing building and deploying a Rails application using Docker Compose locally and on Amazon ECS, running tests with Jenkins, and integrating the stages with AWS CodePipeline.
Containerizing your Security Operations CenterJimmy Mesta
AppSec USA 2016 talk on using containers and Kubernetes to manage a variety of security tools. Includes best practices for securing Kubernetes implementations.
#dddsw - Modernizing .NET Apps with DockerElton Stoneman
From _Developer, Developer, Developer_ South West. Moving full .NET applications to Docker and then extracting features into separate containers, addressing performance, usability and deployment concerns.
This document summarizes Docker, an open-source containerization platform. It discusses Docker's rapid growth since its launch 1 year prior, with over 370 contributors and 1 million downloads. Docker addresses the challenge of running applications across different environments by allowing applications and their dependencies to run in isolated containers that can be moved between servers. This eliminates inconsistencies between development and production environments. The document outlines benefits of Docker for developers, operations teams, and its role in microservices architecture.
Azure Bootcamp 2016 - Docker Orchestration on Azure with RancherKarim Vaes
This document discusses Docker orchestration on Azure using Rancher. It begins with an introduction to Docker concepts like containers, images and the Docker workflow. It then demonstrates deploying a Rancher server on Azure, adding nodes, upgrading a sample application, enabling cross-region networking, auto-scaling services, and using a Docker volume plugin to connect to Azure File Storage for persistent storage. The document includes code samples and step-by-step demonstrations of these Rancher and Docker capabilities on Azure.
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
Some of the best businesses today are deploying their code dozens of times a day. How? By making heavy use of automation, smart tools, and repeatable patterns to get process out of the way and keep the workflow moving. Come to this session to learn how you can do this too, using services such as AWS OpsWorks, AWS CloudFormation, Amazon Simple Workflow Service, and other tools. We'll discuss a number of different deployment patterns, and what aspects you need to focus on when working toward deployment automation yourself.
This document provides an overview of Container as a Service (CaaS) with Docker. It discusses key concepts like Docker containers, images, and orchestration tools. It also covers DevOps practices like continuous delivery that are enabled by Docker. Specific topics covered include Docker networking, volumes, and orchestration with Docker Swarm and compose files. Examples are provided of building and deploying Java applications with Docker, including Spring Boot apps, Java EE apps, and using Docker for builds. Security features of Docker like content trust and scanning are summarized. The document concludes by discussing Docker use cases across different industries and how Docker enables critical transformations around cloud, DevOps, and application modernization.
The Information Technology have led us into an era where the production, sharing and use of information are now part of everyday life and of which we are often unaware actors almost: it is now almost inevitable not leave a digital trail of many of the actions we do every day; for example, by digital content such as photos, videos, blog posts and everything that revolves around the social networks (Facebook and Twitter in particular). Added to this is that with the "internet of things", we see an increase in devices such as watches, bracelets, thermostats and many other items that are able to connect to the network and therefore generate large data streams. This explosion of data justifies the birth, in the world of the term Big Data: it indicates the data produced in large quantities, with remarkable speed and in different formats, which requires processing technologies and resources that go far beyond the conventional systems management and storage of data. It is immediately clear that, 1) models of data storage based on the relational model, and 2) processing systems based on stored procedures and computations on grids are not applicable in these contexts. As regards the point 1, the RDBMS, widely used for a great variety of applications, have some problems when the amount of data grows beyond certain limits. The scalability and cost of implementation are only a part of the disadvantages: very often, in fact, when there is opposite to the management of big data, also the variability, or the lack of a fixed structure, represents a significant problem. This has given a boost to the development of the NoSQL database. The website NoSQL Databases defines NoSQL databases such as "Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open source and horizontally scalable." These databases are: distributed, open source, scalable horizontally, without a predetermined pattern (key-value, column-oriented, document-based and graph-based), easily replicable, devoid of the ACID and can handle large amounts of data. These databases are integrated or integrated with processing tools based on the MapReduce paradigm proposed by Google in 2009. MapReduce with the open source Hadoop framework represent the new model for distributed processing of large amounts of data that goes to supplant techniques based on stored procedures and computational grids (step 2). The relational model taught courses in basic database design, has many limitations compared to the demands posed by new applications based on Big Data and NoSQL databases that use to store data and MapReduce to process large amounts of data.
Course Website http://pbdmng.datatoknowledge.it/
Contact me to download the slides
Quick introduction to Apache OpenWhisk, an open source, distributed Serverless platform that executes functions (fx) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using Docker containers so you can focus on building amazing and efficient applications.
Docker allows building and running applications inside lightweight containers. Some key benefits of Docker include:
- Portability - Dockerized applications are completely portable and can run on any infrastructure from development machines to production servers.
- Consistency - Docker ensures that application dependencies and environments are always the same, regardless of where the application is run.
- Efficiency - Docker containers are lightweight since they don't need virtualization layers like VMs. This allows for higher density and more efficient use of resources.
#SDD2017 - Modernizing .NET Apps with DockerElton Stoneman
From SDD Conf, London 2017: Modernizing .NET Apps with Docker. Moves an ASP.NET app to Docker, first by installing an MSI in a Dockerfile, then by using multi-stage builds to compile and package the app in Docker. Then splits out features into other containers, and finally deploys to Azure using Docker Enterprise Edition to manage the solution.
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
This is the presentation given at the Symfony Live 2011 conference. It is an introduction to the new agile movement spreading in the technical operations community called DevOps and how to adopt it on web development projects, in particular Symfony projects.
Plan of the slides :
- Configuration Management
- Development VM
- Scripted deployment
- Continuous deployment
Tools presented in the slides:
- Puppet
- Vagrant
- Fabric
- Jenkins / Hudson
In this deck from the Stanford HPC Conference, Christian Kniep from Docker, Inc. gives a tutorial on linux containers.
"This tutorial provides a detailed overview of the components needed to run containerized applications and explores how distributed HPC applications can be tackled. We’ll explain the concept of Linux Containers and describe the bits and pieces participants will explore following step-by-step examples.
The workshop will introduce the predominant forms of orchestration in the industry; what problems they solve and how to approach the problem.
Attendees will explore the benefits and drawbacks of orchestrators first hand with their own small exemplary stack deployments.
Finally the workshop will introduce how HPC and Big Data workloads can be tackled on-top of these service-oriented clusters."
Watch the video: https://youtu.be/LJinZpCTyk0
Learn more: http://www.docker.com/
and
http://hpcadvisorycouncil.com
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
Similar to Delivery Pipeline for Windows Machines (20)
This talk is an introduction about technical aspects of how payment cards function, what technical protocols are involved and what are implementation complexities in a typical payments project. You will learn about concepts like Authorisation and Clearing, Tokenization and know about novelties in the payment world, which will affect consumers in the nearest future.
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Big Data Processing Using Hadoop InfrastructureDmitry Buzdin
The document discusses using Hadoop infrastructure for big data processing. It describes Intrum Justitia SDC, which has data across 20 countries in various formats and a high number of data objects. Hadoop provides solutions like MapReduce and HDFS for distributed storage and processing at scale. The Hadoop ecosystem includes tools like Hive, Pig, HBase, Impala and Oozie that help process and analyze large datasets. Examples of using Hadoop with Java and integrating it into development environments are also included.
The document provides an overview of using Flyway and JOOQ together to manage database migrations and generate Java objects from database schemas. Flyway is used to run SQL scripts for schema migrations, while JOOQ generates Java classes that correspond to database tables and can be used to write type-safe SQL queries. Examples are given of using JOOQ to build queries, fetch results in various formats, perform CRUD operations on records, and integrate Flyway and JOOQ into build systems like Gradle.
This document discusses best practices for developing useful APIs. It recommends treating all reusable code as an API and following principles like using minimal dependencies and packaging code appropriately. It also provides examples of API design patterns at the module, class, and method level, such as using dependency injection, builder patterns, and exception handling conventions. The goal is to make APIs easy to read, use, extend, and hard to misuse by learning from open source projects and following trends in API design.
This document summarizes some of the new features introduced in Java 8, including streams, lambda expressions, default methods, and date/time API changes. It discusses streams in more detail, covering stream operations like filter, map, distinct, and collect. It also covers new features like Optional for returning absent/present values, annotations for null checks, parallel array sorting, and concurrency utilities.
This document provides an overview of a Dart workshop that teaches Dart fundamentals and building full-stack Dart applications. The workshop is divided into five parts that cover Hello World examples, integrating Google Maps, dynamic HTML, adding a server backend, and connecting to MongoDB. Each part includes tasks to complete and concepts to learn, such as the Dart project structure, writing unit tests, manipulating the DOM, making HTTP requests, and using the MongoDB Dart driver. The conclusion discusses why Dart may be better than JavaScript and considers if Dart has the potential to be the future for web development.
This document discusses how Redis can be used to solve various data and application scenarios for a social Q&A platform. It describes 6 scenarios including using Redis strings for counters, Redis lists for a message queue, Redis hashes for user activity tracking, Redis bits for feature flags, Redis sorted sets for a social wall, and Redis pub/sub for real-time monitoring. It provides examples of how Redis data structures map to each use case and discusses capabilities like performance, scalability and data consistency.
This document discusses refactoring Java code to Clojure using macros. It provides examples of refactoring Java code that uses method chaining to equivalent Clojure code using the threading macros (->> and -<>). It also discusses other Clojure features like type hints, the doto macro, and polyglot projects using Leiningen.
This document discusses ways to introduce functional programming concepts into Java code using existing Java 8 features, third-party libraries like Guava and LambdaJ, and by implementing common functional patterns and data structures yourself. It provides examples of using higher order functions, pure functions, recursion, and currying in Java code. It also summarizes capabilities of the Guava and LambdaJ libraries for functional programming in Java.
This document discusses continuous delivery, which is an agile methodology for frequently delivering incremental software changes to users. It involves fully automating the build, deployment, testing and release processes through a deployment pipeline. This reduces costs and risks while ensuring that quality software is delivered to users quickly. The document outlines various goals and best practices of continuous delivery, such as automating everything possible, testing excessively, and avoiding anti-patterns like code freezes or manual deployments. It also discusses tools that can help with continuous delivery and adopting this approach.
This document provides an introduction to infrastructure as code and DevOps. It discusses how infrastructure complexity has increased over time from mainframes to multi-tier applications to cloud computing. It also covers how separate development and operations teams can be merged into a unified DevOps team. Infrastructure as code is introduced as treating infrastructure like code by automating server provisioning, configuration, and changes using tools like Puppet, allowing infrastructure to be version controlled and changes to be tested. This enables continuous delivery of infrastructure updates alongside application code changes.
The document discusses various issues that can occur in multi-threaded applications and how thread dumps can help identify and diagnose them. It describes problems that can arise from I/O blocking, inefficient algorithms, lock contention, deadlocks, and non-thread-safe code. It provides examples like a HashMap causing 100% CPU usage. It also covers thread dump formats, tools for analyzing thread dumps, and questions that thread dumps may help answer about sporadic application behavior and performance problems.
This document discusses using multiple programming languages to build hybrid web applications. It describes how the author used Google Web Toolkit (GWT) and JavaScript to build applications, but encountered limitations with GWT. It then introduces Dart as an alternative to GWT that allows better integration with JavaScript through an event bridge pattern. This allows building applications with Dart and JavaScript components communicating through JSON messages. The document argues that a hybrid approach allows using the best languages for different application layers and reusing existing JavaScript libraries.
1) Polyglot or hybrid programming uses multiple programming languages on the client side, with JavaScript as the target platform. This allows leveraging the strengths of different languages while avoiding JavaScript's weaknesses like weak typing.
2) Frameworks like GWT and Dart compile other languages like Java and Dart respectively to JavaScript, allowing their use in web apps while preserving features like static typing. They interface with JavaScript via APIs.
3) An event bridge pattern allows different language parts to communicate asynchronously by publishing and subscribing to messages, avoiding direct interop and enabling clean separation of concerns.
This document discusses principles of code structural analysis. It covers package cohesion principles like release reuse equivalency and common closure principle. It also discusses package coupling principles like the acyclic dependencies principle and abstractness of a package. Class design principles like the SOLID principles of dependency inversion and interface segregation are also summarized. It provides an example of analyzing structure using metrics like package instability and introduces the tool Stan4j for structural analysis.
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsRosie Wells
Insight: In a landscape where traditional narrative structures are giving way to fragmented and non-linear forms of storytelling, there lies immense potential for creativity and exploration.
'Collapsing Narratives: Exploring Non-Linearity' is a micro report from Rosie Wells.
Rosie Wells is an Arts & Cultural Strategist uniquely positioned at the intersection of grassroots and mainstream storytelling.
Their work is focused on developing meaningful and lasting connections that can drive social change.
Please download this presentation to enjoy the hyperlinks!
This presentation by Yong Lim, Professor of Economic Law at Seoul National University School of Law, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
XP 2024 presentation: A New Look to Leadershipsamililja
Presentation slides from XP2024 conference, Bolzano IT. The slides describe a new view to leadership and combines it with anthro-complexity (aka cynefin).
This presentation by Tim Capel, Director of the UK Information Commissioner’s Office Legal Service, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
This presentation by Thibault Schrepel, Associate Professor of Law at Vrije Universiteit Amsterdam University, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by Professor Giuseppe Colangelo, Jean Monnet Professor of European Innovation Policy, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
This presentation by Professor Alex Robson, Deputy Chair of Australia’s Productivity Commission, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
The importance of sustainable and efficient computational practices in artificial intelligence (AI) and deep learning has become increasingly critical. This webinar focuses on the intersection of sustainability and AI, highlighting the significance of energy-efficient deep learning, innovative randomization techniques in neural networks, the potential of reservoir computing, and the cutting-edge realm of neuromorphic computing. This webinar aims to connect theoretical knowledge with practical applications and provide insights into how these innovative approaches can lead to more robust, efficient, and environmentally conscious AI systems.
Webinar Speaker: Prof. Claudio Gallicchio, Assistant Professor, University of Pisa
Claudio Gallicchio is an Assistant Professor at the Department of Computer Science of the University of Pisa, Italy. His research involves merging concepts from Deep Learning, Dynamical Systems, and Randomized Neural Systems, and he has co-authored over 100 scientific publications on the subject. He is the founder of the IEEE CIS Task Force on Reservoir Computing, and the co-founder and chair of the IEEE Task Force on Randomization-based Neural Networks and Learning Systems. He is an associate editor of IEEE Transactions on Neural Networks and Learning Systems (TNNLS).
Carrer goals.pptx and their importance in real lifeartemacademy2
Career goals serve as a roadmap for individuals, guiding them toward achieving long-term professional aspirations and personal fulfillment. Establishing clear career goals enables professionals to focus their efforts on developing specific skills, gaining relevant experience, and making strategic decisions that align with their desired career trajectory. By setting both short-term and long-term objectives, individuals can systematically track their progress, make necessary adjustments, and stay motivated. Short-term goals often include acquiring new qualifications, mastering particular competencies, or securing a specific role, while long-term goals might encompass reaching executive positions, becoming industry experts, or launching entrepreneurial ventures.
Moreover, having well-defined career goals fosters a sense of purpose and direction, enhancing job satisfaction and overall productivity. It encourages continuous learning and adaptation, as professionals remain attuned to industry trends and evolving job market demands. Career goals also facilitate better time management and resource allocation, as individuals prioritize tasks and opportunities that advance their professional growth. In addition, articulating career goals can aid in networking and mentorship, as it allows individuals to communicate their aspirations clearly to potential mentors, colleagues, and employers, thereby opening doors to valuable guidance and support. Ultimately, career goals are integral to personal and professional development, driving individuals toward sustained success and fulfillment in their chosen fields.
This presentation by Katharine Kemp, Associate Professor at the Faculty of Law & Justice at UNSW Sydney, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
This presentation by OECD, OECD Secretariat, was made during the discussion “Pro-competitive Industrial Policy” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/pcip.
This presentation was uploaded with the author’s consent.
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfBen Linders
Psychological safety in teams is important; team members must feel safe and able to communicate and collaborate effectively to deliver value. It’s also necessary to build long-lasting teams since things will happen and relationships will be strained.
But, how safe is a team? How can we determine if there are any factors that make the team unsafe or have an impact on the team’s culture?
In this mini-workshop, we’ll play games for psychological safety and team culture utilizing a deck of coaching cards, The Psychological Safety Cards. We will learn how to use gamification to gain a better understanding of what’s going on in teams. Individuals share what they have learned from working in teams, what has impacted the team’s safety and culture, and what has led to positive change.
Different game formats will be played in groups in parallel. Examples are an ice-breaker to get people talking about psychological safety, a constellation where people take positions about aspects of psychological safety in their team or organization, and collaborative card games where people work together to create an environment that fosters psychological safety.
2. Working as a consultant
• DevOps
• Test Automation
• Software Architecture (aka Microservices)
• Java Development
• Web Development (not JavaScript)
9. Steps to Deploy
• Generate SSH Certificate
• Provision Linux via Ansible
• Install dependencies via apt-get
• Download artefact from Artifactory via curl
• Start app as a service using systemd
• Think about switching to Docker later
10. Things to Consider
• Clustering – round-robin or
hash-based?
• Blue-green deployment
strategy?
• Should we take Kubernetes
or simply Docker Swarm?
VS
11.
12.
13.
14. Mission Impossible
1. Don’t spend any money on licenses
2. Automate using familiar tools
3. You have a Mac
4. Don’t think about Docker all the time
21. Ansible Core Concepts
• Works on SSH and Python
• Tasks (what to do)
• Playbook (aggregations of tasks)
• Inventory files (where to connect)
• Lots of configs, modules and plugins
• All written in YAML
https://www.ansible.com/