This document discusses application lifecycle management (ALM) and tools used in the development process. It covers ALM areas like governance, development and operations. It describes ALM tools like JDeveloper, Ant, Maven, Hudson for continuous integration. It also discusses testing tools like JUnit, SQLUnit and debugging and logging tools in Oracle Database.
How To Use Selenium Successfully (Java Edition)Dave Haeffner
The document provides a 10 step guide to successfully using Selenium for automated testing. It begins by defining a test strategy and choosing a programming language. It then covers Selenium fundamentals like common actions and locator strategies. The next steps include writing the first test, making tests reusable and resilient, and packaging tests into a framework. It concludes by adding cross-browser execution and building an automated feedback loop through continuous integration. The goal is to write business-valuable tests that can run across browsers and be maintained by a team.
You've got your tests, your metrics, your database migrations and your system provisioning automated, but how can you deploy everything with a push of a button and not be scared something goes wrong? Welcome to the continuous PHP Pipeline. In this talk I take the code, the tests, the metrics and the provisioners and show you how you can have a continuous delivery pipeline setup based on certain criteria you define upfront, your code gets automatically deployed to staging or to production with all the arbitrary tasks along with it. Never get stressed again about deployments. Make deployments as easy as committing to your repository and get home on time to enjoy your well deserved weekend.
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.
Continuous Quality Assurance using Selenium WebDriverAOE
- Menta is a Selenium testing framework for PHP that provides components, page objects, and other features to help with test automation using Selenium WebDriver.
- It includes components for common tasks like assertions, waiting, taking screenshots. Page objects represent services offered by pages and allow interacting with pages.
- Menta manages Selenium sessions, provides configuration management, and supports features like events/observers, Sauce Labs integration, and perceptual diffs for test results. It aims to help with continuous testing.
Aleksandr Gutenev Lead Software Engineer, Consultant in GlobalLogic Kharkiv with 11+ years of professional experience. He is mainly focused on the development of desktop applications for Windows using Microsoft Visual Studio, Microsoft Windows SDK, Microsoft Windows DDK, and some other similar low-level technologies.
Aleksandr defined what post-mortem debugging is and in which cases it is necessary, discover the implementation of Custom Error Reporting, and explain how Windows Error Reporting can help you analyze the environment and error reports. Also, Aleksandr will talk about some limitations and alternatives to the review tools that can preferably be used during this kind of debugging.
This presentation by Aleksandr Gutenev was delivered at GlobalLogic Kharkiv C++ TechTalk #3 on March 26, 2019.
Video: https://youtu.be/BgRGcZTjrQA
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
Video recording: https://youtu.be/JyKZEiVCBto
Learn about the breaking changes that went into Java since Java 8 and tools to help you find migration issues when migrating from Java 8 to Java 11 and later.
How To Use Selenium Successfully (Java Edition)Dave Haeffner
The document provides a 10 step guide to successfully using Selenium for automated testing. It begins by defining a test strategy and choosing a programming language. It then covers Selenium fundamentals like common actions and locator strategies. The next steps include writing the first test, making tests reusable and resilient, and packaging tests into a framework. It concludes by adding cross-browser execution and building an automated feedback loop through continuous integration. The goal is to write business-valuable tests that can run across browsers and be maintained by a team.
You've got your tests, your metrics, your database migrations and your system provisioning automated, but how can you deploy everything with a push of a button and not be scared something goes wrong? Welcome to the continuous PHP Pipeline. In this talk I take the code, the tests, the metrics and the provisioners and show you how you can have a continuous delivery pipeline setup based on certain criteria you define upfront, your code gets automatically deployed to staging or to production with all the arbitrary tasks along with it. Never get stressed again about deployments. Make deployments as easy as committing to your repository and get home on time to enjoy your well deserved weekend.
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.
Continuous Quality Assurance using Selenium WebDriverAOE
- Menta is a Selenium testing framework for PHP that provides components, page objects, and other features to help with test automation using Selenium WebDriver.
- It includes components for common tasks like assertions, waiting, taking screenshots. Page objects represent services offered by pages and allow interacting with pages.
- Menta manages Selenium sessions, provides configuration management, and supports features like events/observers, Sauce Labs integration, and perceptual diffs for test results. It aims to help with continuous testing.
Aleksandr Gutenev Lead Software Engineer, Consultant in GlobalLogic Kharkiv with 11+ years of professional experience. He is mainly focused on the development of desktop applications for Windows using Microsoft Visual Studio, Microsoft Windows SDK, Microsoft Windows DDK, and some other similar low-level technologies.
Aleksandr defined what post-mortem debugging is and in which cases it is necessary, discover the implementation of Custom Error Reporting, and explain how Windows Error Reporting can help you analyze the environment and error reports. Also, Aleksandr will talk about some limitations and alternatives to the review tools that can preferably be used during this kind of debugging.
This presentation by Aleksandr Gutenev was delivered at GlobalLogic Kharkiv C++ TechTalk #3 on March 26, 2019.
Video: https://youtu.be/BgRGcZTjrQA
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
Video recording: https://youtu.be/JyKZEiVCBto
Learn about the breaking changes that went into Java since Java 8 and tools to help you find migration issues when migrating from Java 8 to Java 11 and later.
This document discusses migrating applications from Java 8 to later versions of Java such as Java 11 and Java 12. It outlines changes in the Java timeline including features added in versions 9 through 13. Major changes include modules, removed packages and methods, and behavior changes. The document recommends using scanning tools to analyze applications for migration issues and references additional resources on the Java migration.
San Francisco Java User Group presents Chris Bedford who talks about:
- How to write functional tests with Selenium (including explaining its IDE, architecture, RC, and alternatives like Canoo WebTest)
- How to set up Selenium testing for web apps in continuous integration using Maven, Ant, Cargo, etc.
- How to use Hudson for build server (brief overview)
January 12, 2010 in San Francisco, CA
http://www.sfjava.org/calendar/11982857/
Hosted by SUPINFO International University
Sponsored by TEKsystems, Guidewire Software, Sun, O'Reilly, JetBrains, and Marakana.
Video by Max Walker
Organized by Marakana
This document discusses continuous delivery of legacy applications. It begins with introductions and definitions of key terms like continuous delivery, legacy code, and types of testing. It then discusses challenges like refactoring legacy code without tests and proposes solutions like using Selenium for GUI testing and TestBox for unit testing. The document recommends strategies for continuous integration and delivery pipelines to enable one click deployments. It concludes by providing resources for learning more about topics like Cucumber and Selenium WebDriver.
30 Skills to Master to Become a Senior Software EngineerSean Coates
The document discusses 30 skills that software engineers should master to become senior engineers, including skills with programming languages like PHP, databases, SQL, HTML, CSS, JavaScript frameworks, build tools like Gulp, version control with Git, server-side frameworks like Laravel, object-relational mappers, and using database seeding and migrations. It emphasizes the importance of being well-rounded and having experience with both front-end and back-end technologies as well as tools that improve productivity and maintainability. Mastering these skills can lead to higher salaries, more leadership opportunities, and building more robust applications.
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
The document discusses open source tools that can be used in a continuous integration environment. It provides an overview of build tools like Ant and Maven, continuous integration servers, and how tools like Hudson and Archiva can help manage builds, artifacts, and the development process in an agile workflow.
Reusable Build Scripts for Managed Package Development (October 14, 2014)Salesforce Partners
The document discusses reusable build scripts called CumulusCI for automating managed package development workflows. It demonstrates setting up CumulusCI and configuring continuous integration with Codeship.io to automatically test a package called GrantLifecycleApp when code is pushed to GitHub. Key features of CumulusCI discussed include deploying to different orgs for different stages and allowing custom pre/post deployment hooks.
Optimizing deployment & dev ops with tfs 2013Kobi Moraz
Kobi Moraz is a principal ALM architect who will discuss optimizing deployments and DevOps with TFS 2013. He will cover the gap between development and operations, the problems with production deployments currently, and how the new release management features in Visual Studio 2013 and TFS 2013 can help. Release management can automate deployments to different environments like development, test, and production to improve coordination, provisioning, and deployments across teams. It provides full traceability of releases and integrates with TFS to track work items and source code changes associated with each release.
Devops is an approach that aims to increase an organization's ability to deliver applications and services at high velocity by combining cultural philosophies, practices, and tools that align development and operations teams. Under a DevOps model, development and operations teams work closely together across the entire application lifecycle from development through deployment to operations. They use automation, monitoring, and collaboration tools to accelerate delivery while improving quality and security. Popular DevOps tools include Git, Jenkins, Puppet, Chef, Ansible, Docker, and Nagios.
TAGS in short is a generic framework which has been specifically designed to cater to needs of any TFT client who seeks a low cost end-to-end automation solution using open source tools.
Synerzip is a software development partner that provides full software development lifecycle services including testing. They utilize a dual-shore model with experienced teams in the US and India to reduce costs by 50%. Synerzip follows agile development processes and best practices for testing such as test automation, test case management, and tracking bugs and metrics. They have experience delivering projects for clients across industries and technologies.
Devops with Python by Yaniv Cohen DevopShiftYaniv cohen
This document discusses implementing DevOps with Python using Ansible. It provides an agenda for the presentation including discussing DevOps hotspots, infrastructure as code with Ansible, continuous integration/continuous delivery (CI/CD) using TravisCI and CircleCI, and an open discussion on monitoring and automated tests. It then covers problems commonly faced, how DevOps solves these problems, and the expected benefits of adopting a DevOps culture including standardized environments, infrastructure as code, automated delivery, monitoring, and improved collaboration. It provides an overview of Ansible concepts like inventories, ad-hoc commands, modules, playbooks, roles, and templates. It also demonstrates writing a custom Python module for Ansible and using it in a playbook. Finally, it
Testing and DevOps Culture: Lessons LearnedLB Denker
This document discusses the speaker's background and experiences with software engineering practices. It covers his education in computational mathematics and computer science, past roles at Universal Instruments developing machine software and at Google and Etsy implementing DevOps practices. Key topics covered include the benefits of continuous integration, deployment and delivery; the importance of testing including test-driven development; and embracing interdependence between developers and other IT roles. Best practices are noted to be situational and relationships must be respected.
Session on evaluation of DevSecOps. This tutorial is made the very basic process of the DevOps cycle for the beginner level. So sometimes we won’t use very deep technical terms to understand.
The document discusses the Fn Project, an open-source serverless computing platform. It provides lessons learned from using serverless technologies, including issues with execution times, timeouts, and vendor lock-in. The Fn Project aims to address these issues by providing a platform that can be deployed anywhere and uses containers as primitives. It has components like the Fn CLI and Fn Server and supports building scalable and reliable functions.
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinMatt Tesauro
An overview of how to change security from a reactive part of the org to a collaborative part of the agile development process. Using concepts from agile and DevOps, how can applicaton security get as nimble as product development has become.
Modern HA applications in nowadays are developed with set of small focused and discrete Microservices. It's a trending concept and opens/solves questions like maintenance, scaling, live-deployments, security, fault-tolerance etc.
Viktor Turskyi "Effective NodeJS Application Development"Fwdays
For 15 years in development, I managed to take part in the creation of a large number of various projects. I have already made a number of talks on the working architecture of Web applications, but this is only part of the efficient development puzzle. We will consider the whole process from the start of the project to its launch in production. I’ll tell you how we approach the ideas of the “12 Factor App”, how we use the docker, discuss environment deployment issues, security issues, testing issues, discuss the nuances of SDLC and much more.
This webinar lays the foundation for your PHP app. If you have at least one year of PHP experience, this webinar explains these key building blocks for creating and maintaining enterprise-class applications, mobile services, and third-party libraries. It covers: what makes mission-critical PHP different? (including cloud-based solutions); how to maintain your PHP stack; how to ensure code security; and what to do when your system goes down?
Using AWS Well Architectured Framework for Software Architecture Evaluations ...Alexandr Savchenko
Event Lint: https://pages.awscloud.com/EMEA-field-OE-AWS-Cloud-Week-2020-reg-event.html
When you start thinking about innovations and prepare evaluations plan for AWS architecture, first of all you want to define answers to a lot of questions such as: “What methods should I use (interviews or automation tools)?”, “What questions should I ask and what categories should they cover?”, “Can I use some automation tools to define correct receipts?”, “What best practices should I recommend after evaluation and what will be the best way to implement these improvements?”.
AWS Well-Architecture Framework has answers to all of these questions and can help you to evaluate, build or improve your infrastructure and software architecture. It's a very important tool that will be useful in different phases of SDLC and you can use this on a regular basis.
This speech will expose principles of architecture evaluation using AWS WAF, show structure of framework, general design principles and common categories, materials which will help you learn this framework and AWS architecture more deeply.
- Microservices architecture breaks applications into small, independent services that focus on specific tasks and communicate over well-defined interfaces. This improves scalability, flexibility and allows for independent development and deployment of services.
- The architecture promotes separating concerns, with each small service handling a single "verb" of the application and teams owning service groups. Services are stateless and communicate asynchronously over lightweight protocols.
- Automating deployment through containerization allows for easy rollout of new versions with zero downtime and elastic scaling of services based on demand. Monitoring provides visibility into technical and business metrics of the distributed system.
The document discusses DevOps practices for TYPO3 projects. It defines DevOps as the confluence of development and operations. It highlights the importance of communication between different roles like developers, system administrators, and integrators. It also provides examples of tools and techniques that can be used at different stages of a TYPO3 project to facilitate DevOps practices, such as automated testing, deployment automation, and content synchronization.
This document discusses migrating applications from Java 8 to later versions of Java such as Java 11 and Java 12. It outlines changes in the Java timeline including features added in versions 9 through 13. Major changes include modules, removed packages and methods, and behavior changes. The document recommends using scanning tools to analyze applications for migration issues and references additional resources on the Java migration.
San Francisco Java User Group presents Chris Bedford who talks about:
- How to write functional tests with Selenium (including explaining its IDE, architecture, RC, and alternatives like Canoo WebTest)
- How to set up Selenium testing for web apps in continuous integration using Maven, Ant, Cargo, etc.
- How to use Hudson for build server (brief overview)
January 12, 2010 in San Francisco, CA
http://www.sfjava.org/calendar/11982857/
Hosted by SUPINFO International University
Sponsored by TEKsystems, Guidewire Software, Sun, O'Reilly, JetBrains, and Marakana.
Video by Max Walker
Organized by Marakana
This document discusses continuous delivery of legacy applications. It begins with introductions and definitions of key terms like continuous delivery, legacy code, and types of testing. It then discusses challenges like refactoring legacy code without tests and proposes solutions like using Selenium for GUI testing and TestBox for unit testing. The document recommends strategies for continuous integration and delivery pipelines to enable one click deployments. It concludes by providing resources for learning more about topics like Cucumber and Selenium WebDriver.
30 Skills to Master to Become a Senior Software EngineerSean Coates
The document discusses 30 skills that software engineers should master to become senior engineers, including skills with programming languages like PHP, databases, SQL, HTML, CSS, JavaScript frameworks, build tools like Gulp, version control with Git, server-side frameworks like Laravel, object-relational mappers, and using database seeding and migrations. It emphasizes the importance of being well-rounded and having experience with both front-end and back-end technologies as well as tools that improve productivity and maintainability. Mastering these skills can lead to higher salaries, more leadership opportunities, and building more robust applications.
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
The document discusses open source tools that can be used in a continuous integration environment. It provides an overview of build tools like Ant and Maven, continuous integration servers, and how tools like Hudson and Archiva can help manage builds, artifacts, and the development process in an agile workflow.
Reusable Build Scripts for Managed Package Development (October 14, 2014)Salesforce Partners
The document discusses reusable build scripts called CumulusCI for automating managed package development workflows. It demonstrates setting up CumulusCI and configuring continuous integration with Codeship.io to automatically test a package called GrantLifecycleApp when code is pushed to GitHub. Key features of CumulusCI discussed include deploying to different orgs for different stages and allowing custom pre/post deployment hooks.
Optimizing deployment & dev ops with tfs 2013Kobi Moraz
Kobi Moraz is a principal ALM architect who will discuss optimizing deployments and DevOps with TFS 2013. He will cover the gap between development and operations, the problems with production deployments currently, and how the new release management features in Visual Studio 2013 and TFS 2013 can help. Release management can automate deployments to different environments like development, test, and production to improve coordination, provisioning, and deployments across teams. It provides full traceability of releases and integrates with TFS to track work items and source code changes associated with each release.
Devops is an approach that aims to increase an organization's ability to deliver applications and services at high velocity by combining cultural philosophies, practices, and tools that align development and operations teams. Under a DevOps model, development and operations teams work closely together across the entire application lifecycle from development through deployment to operations. They use automation, monitoring, and collaboration tools to accelerate delivery while improving quality and security. Popular DevOps tools include Git, Jenkins, Puppet, Chef, Ansible, Docker, and Nagios.
TAGS in short is a generic framework which has been specifically designed to cater to needs of any TFT client who seeks a low cost end-to-end automation solution using open source tools.
Synerzip is a software development partner that provides full software development lifecycle services including testing. They utilize a dual-shore model with experienced teams in the US and India to reduce costs by 50%. Synerzip follows agile development processes and best practices for testing such as test automation, test case management, and tracking bugs and metrics. They have experience delivering projects for clients across industries and technologies.
Devops with Python by Yaniv Cohen DevopShiftYaniv cohen
This document discusses implementing DevOps with Python using Ansible. It provides an agenda for the presentation including discussing DevOps hotspots, infrastructure as code with Ansible, continuous integration/continuous delivery (CI/CD) using TravisCI and CircleCI, and an open discussion on monitoring and automated tests. It then covers problems commonly faced, how DevOps solves these problems, and the expected benefits of adopting a DevOps culture including standardized environments, infrastructure as code, automated delivery, monitoring, and improved collaboration. It provides an overview of Ansible concepts like inventories, ad-hoc commands, modules, playbooks, roles, and templates. It also demonstrates writing a custom Python module for Ansible and using it in a playbook. Finally, it
Testing and DevOps Culture: Lessons LearnedLB Denker
This document discusses the speaker's background and experiences with software engineering practices. It covers his education in computational mathematics and computer science, past roles at Universal Instruments developing machine software and at Google and Etsy implementing DevOps practices. Key topics covered include the benefits of continuous integration, deployment and delivery; the importance of testing including test-driven development; and embracing interdependence between developers and other IT roles. Best practices are noted to be situational and relationships must be respected.
Session on evaluation of DevSecOps. This tutorial is made the very basic process of the DevOps cycle for the beginner level. So sometimes we won’t use very deep technical terms to understand.
The document discusses the Fn Project, an open-source serverless computing platform. It provides lessons learned from using serverless technologies, including issues with execution times, timeouts, and vendor lock-in. The Fn Project aims to address these issues by providing a platform that can be deployed anywhere and uses containers as primitives. It has components like the Fn CLI and Fn Server and supports building scalable and reliable functions.
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinMatt Tesauro
An overview of how to change security from a reactive part of the org to a collaborative part of the agile development process. Using concepts from agile and DevOps, how can applicaton security get as nimble as product development has become.
Modern HA applications in nowadays are developed with set of small focused and discrete Microservices. It's a trending concept and opens/solves questions like maintenance, scaling, live-deployments, security, fault-tolerance etc.
Viktor Turskyi "Effective NodeJS Application Development"Fwdays
For 15 years in development, I managed to take part in the creation of a large number of various projects. I have already made a number of talks on the working architecture of Web applications, but this is only part of the efficient development puzzle. We will consider the whole process from the start of the project to its launch in production. I’ll tell you how we approach the ideas of the “12 Factor App”, how we use the docker, discuss environment deployment issues, security issues, testing issues, discuss the nuances of SDLC and much more.
This webinar lays the foundation for your PHP app. If you have at least one year of PHP experience, this webinar explains these key building blocks for creating and maintaining enterprise-class applications, mobile services, and third-party libraries. It covers: what makes mission-critical PHP different? (including cloud-based solutions); how to maintain your PHP stack; how to ensure code security; and what to do when your system goes down?
Using AWS Well Architectured Framework for Software Architecture Evaluations ...Alexandr Savchenko
Event Lint: https://pages.awscloud.com/EMEA-field-OE-AWS-Cloud-Week-2020-reg-event.html
When you start thinking about innovations and prepare evaluations plan for AWS architecture, first of all you want to define answers to a lot of questions such as: “What methods should I use (interviews or automation tools)?”, “What questions should I ask and what categories should they cover?”, “Can I use some automation tools to define correct receipts?”, “What best practices should I recommend after evaluation and what will be the best way to implement these improvements?”.
AWS Well-Architecture Framework has answers to all of these questions and can help you to evaluate, build or improve your infrastructure and software architecture. It's a very important tool that will be useful in different phases of SDLC and you can use this on a regular basis.
This speech will expose principles of architecture evaluation using AWS WAF, show structure of framework, general design principles and common categories, materials which will help you learn this framework and AWS architecture more deeply.
- Microservices architecture breaks applications into small, independent services that focus on specific tasks and communicate over well-defined interfaces. This improves scalability, flexibility and allows for independent development and deployment of services.
- The architecture promotes separating concerns, with each small service handling a single "verb" of the application and teams owning service groups. Services are stateless and communicate asynchronously over lightweight protocols.
- Automating deployment through containerization allows for easy rollout of new versions with zero downtime and elastic scaling of services based on demand. Monitoring provides visibility into technical and business metrics of the distributed system.
The document discusses DevOps practices for TYPO3 projects. It defines DevOps as the confluence of development and operations. It highlights the importance of communication between different roles like developers, system administrators, and integrators. It also provides examples of tools and techniques that can be used at different stages of a TYPO3 project to facilitate DevOps practices, such as automated testing, deployment automation, and content synchronization.
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows ServerWinOps Conf
Everyone knows that DevOps is not about technology – it is about culture and process. But some technologies make some certain processes and cultures difficult and other technologies makes them easy.
This session explores why and how Windows Server 2016 was developed with DevOps in mind and what this means to customers adopting a devops workflow.
This document discusses the software development lifecycle (SDLC) and DevOps. It provides an overview of the SDLC phases and Agile Scrum framework. It describes the need for DevOps by explaining problems that can occur when development and operations teams are separated. It proposes DevOps as a solution to automate software delivery and infrastructure changes through a cross-functional team and toolchain. The document outlines various tools used in a DevOps toolchain for version control, IDEs, project management, continuous integration, testing, security, collaboration and more. It concludes by discussing future plans to implement OpenStack, Docker and gain experience with Amazon Web Services.
ADDO_2020-Driving-Digital-Transformation-through-CloudOps-and-SRE.pdfPhil Johnson
This document provides an overview of a presentation on driving digital transformation through CloudOps and Site Reliability Engineering (SRE). The presentation discusses multi-cloud adoption within regulated industries, advocating for mature engineering practices with a focus on SRE, FinOps, GitOps, and DevSecOps. It also covers helping to develop cloud native products and services for enterprises and building sustainable digital capabilities.
Near real-time anomaly detection at Lyftmarkgrover
Near real-time anomaly detection at Lyft, by Mark Grover and Thomas Weise at Strata NY 2018.
https://conferences.oreilly.com/strata/strata-ny/public/schedule/detail/69155
The document discusses best practices for implementing DevSecOps for microservices architectures. It begins by defining microservices and explaining their advantages over monolithic architectures. It then covers challenges of microservices including communication between services, databases, testing, and deployment. The document recommends using a choreography pattern for asynchronous communication between loosely coupled services. It provides examples of event-driven architectures and deploying to Kubernetes. It also discusses technologies like Jenkins, Docker, Kubernetes, SonarQube, and Trivy that can help support continuous integration, deployment, and security in DevSecOps pipelines.
Transforming Product Development using OnePlan To Boost Efficiency and Innova...OnePlan Solutions
Ready to overcome challenges and drive innovation in your organization? Join us in our upcoming webinar where we discuss how to combat resource limitations, scope creep, and the difficulties of aligning your projects with strategic goals. Discover how OnePlan can revolutionize your product development processes, helping your team to innovate faster, manage resources more effectively, and deliver exceptional results.
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Paul Brebner
Closing talk for the Performance Engineering track at Community Over Code EU (Bratislava, Slovakia, June 5 2024) https://eu.communityovercode.org/sessions/2024/why-apache-kafka-clusters-are-like-galaxies-and-other-cosmic-kafka-quandaries-explored/ Instaclustr (now part of NetApp) manages 100s of Apache Kafka clusters of many different sizes, for a variety of use cases and customers. For the last 7 years I’ve been focused outwardly on exploring Kafka application development challenges, but recently I decided to look inward and see what I could discover about the performance, scalability and resource characteristics of the Kafka clusters themselves. Using a suite of Performance Engineering techniques, I will reveal some surprising discoveries about cosmic Kafka mysteries in our data centres, related to: cluster sizes and distribution (using Zipf’s Law), horizontal vs. vertical scalability, and predicting Kafka performance using metrics, modelling and regression techniques. These insights are relevant to Kafka developers and operators.
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
Nashik's top web development company, Upturn India Technologies, crafts innovative digital solutions for your success. Partner with us and achieve your goals
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...Luigi Fugaro
Vector databases are transforming how we handle data, allowing us to search through text, images, and audio by converting them into vectors. Today, we'll dive into the basics of this exciting technology and discuss its potential to revolutionize our next-generation AI applications. We'll examine typical uses for these databases and the essential tools
developers need. Plus, we'll zoom in on the advanced capabilities of vector search and semantic caching in Java, showcasing these through a live demo with Redis libraries. Get ready to see how these powerful tools can change the game!
Orca: Nocode Graphical Editor for Container OrchestrationPedro J. Molina
Tool demo on CEDI/SISTEDES/JISBD2024 at A Coruña, Spain. 2024.06.18
"Orca: Nocode Graphical Editor for Container Orchestration"
by Pedro J. Molina PhD. from Metadev
The Rising Future of CPaaS in the Middle East 2024Yara Milbes
Explore "The Rising Future of CPaaS in the Middle East in 2024" with this comprehensive PPT presentation. Discover how Communication Platforms as a Service (CPaaS) is transforming communication across various sectors in the Middle East.
The Comprehensive Guide to Validating Audio-Visual Performances.pdfkalichargn70th171
Ensuring the optimal performance of your audio-visual (AV) equipment is crucial for delivering exceptional experiences. AV performance validation is a critical process that verifies the quality and functionality of your AV setup. Whether you're a content creator, a business conducting webinars, or a homeowner creating a home theater, validating your AV performance is essential.
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
Photoshop Tutorial for Beginners (2024 Edition)alowpalsadig
Photoshop Tutorial for Beginners (2024 Edition)
Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."
Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
Photoshop Tutorial for Beginners (2024 Edition)Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
The importance of developing and designing programming in 2024
Programming design and development represents a vital step in keeping pace with technological advancements and meeting ever-changing market needs. This course is intended for anyone who wants to understand the fundamental importance of software development and design, whether you are a beginner or a professional seeking to update your knowledge.
Course objectives:
1. **Learn about the basics of software development:
- Understanding software development processes and tools.
- Identify the role of programmers and designers in software projects.
2. Understanding the software design process:
- Learn about the principles of good software design.
- Discussing common design patterns such as Object-Oriented Design.
3. The importance of user experience (UX) in modern software:
- Explore how user experience can improve software acceptance and usability.
- Tools and techniques to analyze and improve user experience.
4. Increase efficiency and productivity through modern development tools:
- Access to the latest programming tools and languages used in the industry.
- Study live examples of applications
Penify - Let AI do the Documentation, you write the Code.KrishnaveniMohan1
Penify automates the software documentation process for Git repositories. Every time a code modification is merged into "main", Penify uses a Large Language Model to generate documentation for the updated code. This automation covers multiple documentation layers, including InCode Documentation, API Documentation, Architectural Documentation, and PR documentation, each designed to improve different aspects of the development process. By taking over the entire documentation process, Penify tackles the common problem of documentation becoming outdated as the code evolves.
https://www.penify.dev/
Penify - Let AI do the Documentation, you write the Code.
Database Applications Lifecycle Management
1. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Database Applications Lifecycle
Management
Marcelo F. Ochoa
Oracle Ace Member
Fac. Cs. Exactas - UNICEN
2. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
What is ALM?
Application lifecycle management (ALM) is the
marriage of business management to software en-
gineering made possible by tools that facilitate and
integrate requirements management, architecture,
coding, testing, tracking, and release management.
Source Wikipedia
3. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
ALM Areas
Governance
Development
Operations
Idea Deployment End of Life
Source What is ALM--Chappell.pdf
4. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
ALM: Development
Governance
Development
Operations
Idea Deployment End of Life
SDLC, v1 SDLC, v2SDLC, v1
Maintenance
6. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Server Side Components
● PL/SQL
● Packages
● Procedures and Functions
● Triggers
● Object types
● Tables, Indexes and other
● XMLDB repository objects
● Java Code
● Package implementations
● Procedure and Function Implementations
● Trigger implementations
● Object Type implementations
● Common libraries
7. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
SCM tools
● Popular SCMs are integrated on all IDEs
● JDeveloper includes by default
● CVS (password based or public-private key based)
● SVN
● Dimension
● Perforce
● Team System VCS
● SQLDeveloper is based on JDeveloper core so it
enables similar list of SCM tools support
● Oracle Team Productivity Center is a good add-in
for free
● ALM tool requires that everybody on dev. team use JDeveloper
10. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Oracle Team Productivity
● Simple
● Free
● Integrated with JDeveloper
● Ready to use connectors:
● Bugzilla – defect tracking system
● JIRA – bug tracking, issue tracking and project management
● Microsoft Project Server – task management
● Tasks – built in Task repository to create and track team tasks
● Support hierarchies of teams and users
● Messaging with the team using XMPP
● Extensible framework and sample connector
15. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Design Tools
● JDeveloper
● Benefits
● Is good from the developer point of views
● Covers most of design objects required by developers
● Provides reverse engineering of schema objects
● Has a two way editor (Class Diagram <-> Java Source)
● Drawbacks
● Is not a powerful UML tool
● Is not possible to create live documents with diagram embedded
● Does not include all UML diagrams
17. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Development tools
● Editing tool support
● Code insight
● Code completion
● Refactoring
● Code assist
● Live code auditing
● Quick JavaDoc
● Debugger
● Profiling
● JUnit, Maven integration
● Database
● Forward and reverse modeling
● DB browsing and manipulation
● Execution, auto-trace and explain-plan
Important: For Java server side compile always using $ORACLE_HOME/jdk
18. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Compile, build, deploy
● Most of the IDE does this task
graphically
● Is good for novel developers
● Can do typical tasks
● Not good for off-shoring development
● Not good for cloud computing scenery
● Command line tools solved above problems
● Can do almost all tasks
● DBA and Sys admin loves this during deploy
● Is good for remote deployment
● Only a text terminal is necessary to run
● Ant and Maven are the kind of these tools
19. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Ant
● Tool designed to replace old tools such as make
● Multi-platform – Java based
● Extensible
● Tons of tasks to do everything you need
● Cover all the steps during:
● Compile
● Build
● Test
● Release management
● Deploy
● Also you can work with PLSQL and SQL*Plus
20. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Ant commons tasks
● Define your ORACLE_HOME
● Using SQL*Plus
● Other Oracle's external tools (using tasks)
● loadjava, dropjava
● NCOMP (10g)
● Retro-translator (JDK 1.5 Libraries running in 10g)
<property name="env" environment="env" value="env"/>
<property name="ORACLE_HOME" value="${env.ORACLE_HOME}"/>
<property name="SQLPlus" value="sqlplus"/>
.....
<target name="create-lucene-role">
<exec executable="${ORACLE_HOME}/bin/${SQLPlus}" dir="./db" failonerror="true">
<arg value="${dba.usr}/${dba.pwd}@${db.str} as sysdba"/>
<arg value="@create-lucene-role"/>
</exec>
</target>
22. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Maven
● Ant superset
● A project management framework
● Based on a Project Object Model (POM)
● Provided compile, test, assemble, install
● Maven's principles:
● Convention over configuration
● Standard directory layout for projects
● A single Maven producing a single output
● Standard naming convention
● Declarative execution (POM)
● Reuse build logic (plugins)
● Coherence organization of dependencies
● You can not build a component if the test stage fails
● If there isn't a plugin for your need Ant tasks can do
the job
25. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Testing, testing, testing...
● Include testing from the early
stage of the project
● Do client side test
● Do server side test
● PL/SQL code
● Server side (requires code installed at server side):
● SQLDeveloper
● utPLSQL
● PLUTO
● Client side (no server side requirements)
● SQLUnit (can be integrated with continuous integration servers)
● Ad-hoc (SQL files executed using SQL*Plus)
● Java Code
● JUnit
● Client Side
● Server Side
● Using real server side JDBC drivers
● Closed Security Manager
● Real OJVM memory manager
26. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Server side JUnit
● Installing JUnit
● Permission to use JUnit at server side
● Runner classes:
● junit.runner.OJVMTestSuiteLoader
● junit.textui.OJVMRunner
● junit.textui.XMLPrinter
<target name="load-extra-libs" depends="get-junit-jar,get-codec-jar">
<loadjava-with-public-synonym
login="${db.usr}/${db.pwd}@${db.str}"
file="lib/junit-3.8.2.jar"/>
<loadjava-with-public-synonym
login="${db.usr}/${db.pwd}@${db.str}"
file="lib/commons-codec-1.4.jar"/>
</target>
dbms_java.grant_permission('SCOTT','SYS:java.io.FilePermission', '/junit.properties', 'read' );
dbms_java.grant_permission('SCOTT','SYS:java.lang.RuntimePermission', 'getClassLoader', '' );
dbms_java.grant_permission('SCOTT','SYS:java.lang.RuntimePermission', 'accessDeclaredMembers', '' );
27. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Server side JUnit, running tests
● Define regression tests
● Running the test
create table lucene_regresion_tests (
method_or_class CHAR(1),
class_name VARCHAR2(400),
elapsed_time NUMBER(6,3),
result_status VARCHAR2(32),
result_count NUMBER,
failure_count NUMBER,
error_count NUMBER,
error_msg CLOB
)
insert into lucene_regresion_tests values ('c','org.apache.lucene.store.TestWindowsMMap',0.0,'-',0,0,0,'');
declare
result XMLType;
begin
for c in (select * from lucene_regresion_tests
where class_name like 'org.apache.lucene.%'
order by class_name) loop
result := XMLType(OJVMRunnerAsString(c.method_or_class,c.class_name));
commit;
update lucene_regresion_tests
set elapsed_time = result.extract('/junitreport/time/text()').getNumberVal(),
result_status = result.extract('/junitreport/result/@status').getStringVal(),
result_count = result.extract('/junitreport/result/@run_count').getNumberVal(),
failure_count = result.extract('/junitreport/result/failures/@failure_count').getNumberVal(),
error_count = result.extract('/junitreport/result/failures/@error_count').getNumberVal(),
error_msg = result.extract('/*').getClobVal()
where class_name = c.class_name;
commit;
end loop;
end;
28. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
SQLUnit (PL/SQL Testing)
● Define an Ant task
● Calling a test suite
<taskdef name="sqlunit" classname="net.sourceforge.sqlunit.ant.SqlunitTask">
<classpath>
<fileset dir="bin">
<include name="jdom-1.0.jar" />
<include name="log4j-1.2.16.jar" />
<include name="xercesImpl-2.9.1.jar" />
<include name="sqlunit-5.0.jar" />
</fileset>
</classpath>
</taskdef>
<target name="test-odi" description="Run Test on Domain Index functionality"
depends="init">
<sqlunit haltOnFailure="false" debug="false" logformat="default"
logfile="../../build/contrib/odi/test/sqlunit-test-odi.txt">
<fileset dir="db">
<include name="test*.xml" />
</fileset>
</sqlunit>
</target>
29. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
SQLUnit (test suite example)
<sqlunit>
<connection extern="db/sqlunit.properties" />
<setup>
<include file="db/schemaSourceSmall.sql" />
</setup>
<test name="Optimize index">
<call>
<stmt>{call LuceneDomainIndex.optimize(?)}</stmt>
<param id="1" type="VARCHAR">SOURCE_SMALL_LIDX</param>
</call>
<result/>
</test>
<test name="Count for type">
<call>
<stmt>{call
declare
cn NUMBER;
begin
select count(*) into cn from test_source_small where lcontains(text,?)>0;
if cn < 60 then
raise_application_error(-20101, 'Expected less than 60 rows found: ' || cn);
end if;
end
}</stmt>
<param id="1" type="VARCHAR" inout="in">type</param>
</call>
<result/>
</test>
....
<teardown>
<sql>
<stmt>drop table test_source_small</stmt>
</sql>
</teardown>
</sqlunit>
30. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Continuous integration
● Agile development requires short cycles
● Typically an Integration server talks with the SCM
server and does daily a compile,test,build pro-
cess
● Using Hudson CI
● Easy to execute: java -jar hudson.war
● Easy to configure using a web browser
● User friendly
● Multiple executions options
● Jobs triggering
● Multiple Notifications options
● Auto testing (Nunit, JUnit, Maven)
● Extensible +150 plugins
34. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Debugging
● Client side debugging
● Server side debugging
● Attaching to JPDA
● Listening for JPDA
java -client -agentlib:jdwp=transport=dt_socket,server=y,address=<port> <other Java options>
YourMainClass <program arguments>
SQL> grant DEBUG CONNECT SESSION, DEBUG ANY PROCEDURE, JAVADEBUGPRIV to SCOTT;
preparedstatement = this.conn
.prepareCall("{ call dbms_debug_jdwp.connect_tcp(?,?) }");
preparedstatement.setString(1, "localhost");
preparedstatement.setInt(2, 4000);
preparedstatement.execute();
preparedstatement = this.conn
.prepareCall("{ call dbms_debug_jdwp.disconnect }");
preparedstatement.execute();
35. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Logging
● Two options are for server side Java Code
● JDK Java Util Logging API
● Simple
● Included by default into the OJVM
● No extra jars
● Only one grant to use by regular users
Apache Log4J
● Powerful
● Requires log4j.jar uploaded
● Minimum grant required
dbms_java.grant_permission('SCOTT','SYS:java.util.logging.LoggingPermission', 'control', '' );
dbms_java.grant_permission( 'LOGROLE', 'SYS:java.lang.RuntimePermission', 'getClassLoader', '' );
dbms_java.grant_permission( 'LOGROLE', 'SYS:java.io.FilePermission', 'log/a.log', 'write' );
dbms_java.grant_permission( 'LOGROLE', 'SYS:java.io.FilePermission', 'log/b.log', 'write' );
loadjava -u JLIB_SCHEMA/JLIB_SCHEMA -r -v -s -g PUBLIC log4j-1.8.2.jar
loadjava -u JLIB_SCHEMA/JLIB_SCHEMA -r -v -g PUBLIC log4j.properties
36. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Log4J complex example
● Using Log4J to get unified logging
● Components:
● Server Side logging
● Middle tier application logging
● Unix syslogd
/etc/sysconfig/syslogd
/etc/rsyslog.conf
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-r"
# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd
# --------------
$AllowedSender UDP, 127.0.0.1, 192.0.2.0/24
37. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Log4J complex example
grants
log4j.properties:
# A1 should be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1's layout is a PatternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# Set options for appender named "A2".
# Appender "A2" will be a SyslogAppender
log4j.appender.A2=org.apache.log4j.net.SyslogAppender
log4j.appender.A2.SyslogHost=localhost
# Only warnings or above will be logged for the logger "SECURITY.access".
# Output will go to A1.
log4j.logger.SECURITY.access=WARN
# uncomment this if you want DBPrism debugging
log4j.logger.com.prism=DEBUG,A2
log4j.additivity.com.prism=false
dbms_java.grant_permission( 'CMSUSERROLE', 'SYS:java.net.SocketPermission', 'localhost', 'resolve' );
dbms_java.grant_permission( 'CMSUSERROLE', 'SYS:java.net.SocketPermission', 'localhost:1024-', 'listen,resolve' );
dbms_java.grant_permission( 'CMSUSERROLE', 'SYS:java.net.SocketPermission', 'loghost:514', 'connect,resolve' );
38. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Release management
● Always use release number on jar-files
● Follow Maven default three-digit
convention (e.g. 2.0.44)
● loadjava tool extract all .class from
jar and the relation with the
version is missing
● PL/SQL procedures and packages have no release
number inside the RDBMS.
● Try to use a dev. environment with same:
● Architecture
● OS version
● RDBMS version
as the production environment
39. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Backup, Restore
Upgrade, Downgrade
● Traditional backup-restore are not useful with
server side code
● A full backup will not work to downgrade an application
● Storing only code in one schema can be an option to use
traditional backup-restore tools
● XMLDB repository objects requires a custom backup
● A set of classes uploaded with loadjava can be
downgraded using:
● dropjava myapp-jar-1.1.0.jar
● loadjava myapp-jar-1.0.0.jar
but you need a repository like Maven to keep track all jar
version-ed
● If you need to know which version of PLSQL code is
currently used you could use SCM keywords such
as
● $Revision$, $Log$, $Author$, $Date$
40. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Summary
● From the developer perspective ALM requires us
● Choose the right tool for the precise job
● Use SCM to keep the changes of everything
● Develop, test and deploy using command line tools
● Follow release number for libraries
● Integrate logging to follow the application running
● Go Agile using CI
● Automatize all test
Remember:
● Write a test case is not a waste of time, a test is a time-
saving machine
42. Temperies (www.temperies.com) Safe, flexible and reliable outsourcing development services
Links
Wikipedia information about ALM
Oracle JDeveloper
Oracle Team Productivity Center
Apache Ant
Apache Maven
JUnit
SQLUnit
Hudson CI
Log4J
Lucene Domain Index