22. Continuous Deployment A successful and repeatable methodology of deploying code continuously … Extending The traditional lifecycle So we have an Artifact accompanied by: Component & dependency analysis Test & coverage reports, Performance testing Let’s push it and get immediate feed back from our customer – he is the best / free QA resource + QA deployment UAT deployment Prod deployment ?!
26. Development needs 26 Supportive IDE’s Mature build frameworks Conventions Convention over configuration Dependency management Binary & component based development Local deployments of PSP’s
28. CM & RE 28 Automating CM best practices Private branches CI for private branches Auto merge promotions Built-in versioning mechanisms Supply flexible branching & modeling schemas Binary & Artifact repositories Support continues integration & testing Cloud continuous - auto deployment’s Provide automated & traceable release processes
29. Automation 29 Empower Dev, IT Operations & QA Executing / Enabling continuous deployment Defining & automating of deployment from Dev to Production Adjusting & Automating the deployment process
30. CI implementation - for the team continuous cloud Node Group-windows-ci-agents Artifact / Binary Repository Proxy continuousIntegration Server Node Group linux-ci-agents QA- & Automation cloud UAT / PROD like cloud Delivery Jmeater / Jsystem UAT / PRODservers Node Group-linux-QA Node Group-linux-QA Acceptance testing
31. Continuous Deployment 31 Fast turnovers eq. agility Small(er) Changes eq. Smaller Risks More redundant Achievable via automation
32. Customer Story 32 Company with continues build with unit test for component (Hudson plug-in) Manual QA test sanity and integration Manual installation of server and plug-ins
34. Solution Create installable package that contain all the set of plug-ins Automate installation and sanity test. We choose Hudson as build manager: Maven as build scripts Nexus as artifact repository Virtual box for private cloud Added runtime module – Hudson + tomcat + plug-in => deploy it to Nexus Job ruining on Windows based VM which runs selenium tests Hudson picks up all reports and exposes in the UI 34
35. A real life Use Case 35 Continuous Create Runtime Deploy
Manual & Repetitive tasksDevelopmentQAOPSWhat do we automate ? – Everything, development, build, deployment …How can automation help ? - Who automates ? - parties participating in automationWhen do we automate ? – an open question for the last slide
People & DemandsClient demands are changingWe are all clients within and out the organizationpeople are changing = usTechnologies are changingOrganizations are changingPeople & DemandsTechnologiesOrganizations
Business processesAutomate repetitive time consuming tasks
All parties in the organizationWe are changing thus we are the leaders of the change
Now – if we want our customer to stay we need to make necessary adjustments
Are there things we can do betterHow are our executionsWe have lessons learned do we apply them into out processes or just keep having these meetings? Voer & overContinuousbuilds => continues testing => continuous deploymentWe have virtualization / Grid => lets take them to the EXTREAME – stretch our abilitiesImprove collaborationRevise & Reuse processesUtilize existing assetsImprove collaboration across teams & divisions
DevelopmentQAConfiguration Management / Release managementThere is Something missing in here …
Working together end 2 end delivering continuous valueAutomation is a set of processes, methods and systems for communication, collaboration and integration between departments for Development (Applications/Software Engineering), Technology Operations and Quality Assurance (QA). It relates to the emerging understanding of the interdependence of development and operations in meeting a business' goal to producing timely software products and servicesOps are “left behind”Decision takers / risk assent done in late stages Dev, QA, CM, OPS
The funnel driving modules / features from Development through QA & CM to Operations
There are quite a fewShort overview will follow …
The key to automation – nothing without X testingUnit testing – short and to the pointDo not mix-up with system / integration testing’
Tests your code as part of a bigger systemDevelopers better aware of the bigger picture
GUIUsabilityPerformanceOS’sInstaller(s) and more …Jsystem / QTP – QA role
Missing data
BuildGenerate reportsQuick Feedback to DevProve continuous stability
BuildGenerate reportsQuick Feedback to DevProve continuous stability
As described in Eishay’s (smith) presentationsWe have atested module / component ready for deployment
The range of technologies available in each layer are big how do we choose – criteria based on Answers CI’s needs SCM “easy merging” - gitOne mainline – subversion We saw the ability of utlizing SVN’s capabilities and Git powerful merging in previous presentationBuild Tools Ant – free style all the way …Maven - xml based, fixed lifecycle expandable via pluginsGradle, Buildr – very much like Maven in terms of dependency mangmnet language driven Auto builder - Continuous builds CM & developer (multiple views) = hudsonSupport / extend support of our build toolOn submit / scheduledAutomatic deploymnet via promotions vs separate “out of context builds” in other Auto Builders (mentioned above)Cloud integration (ssh, libvirt, pre post vm actions)
The range of technologies available in each layer are big how do we choose – criteria based on Answers CI’s needs SCM “easy merging” - gitOne mainline – subversion We saw the ability of utlizing SVN’s capabilities and Git powerful merging in previous presentationBuild Tools Ant – free style all the way …Maven - xml based, fixed lifecycle expandable via pluginsGradle, Buildr – very much like Maven in terms of dependency mangmnet language driven Auto builder - Continuous builds CM & developer (multiple views) = hudsonSupport / extend support of our build toolOn submit / scheduledAutomatic deploymnet via promotions vs separate “out of context builds” in other Auto Builders (mentioned above)Cloud integration (ssh, libvirt, pre post vm actions)
שלום קוראים לי איתיואני ידגים לכם את מה שחגי דיבר עד עכשיואוטומציה של התהליכים בתוך ארגוןלצורך ההדגמה מדובר בחברת מוצר שמיצרת Distrebution of hudson Build manager אני יציג תהליך של בנית PluginPromotedSimplePluginהרחבה של hudson promote pluginיצירת ditrebution of hudson in servletcontiner (tomcat)With the promoted pluginלצורך זה אני ישתמש בHudson – build managerNexus – artifatreporitoryMaven – build scripts
שלום קוראים לי איתיואני ידגים לכם את מה שחגי דיבר עד עכשיואוטומציה של התהליכים בתוך ארגוןלצורך ההדגמה מדובר בחברת מוצר שמיצרת Distrebution of hudson Build manager אני יציג תהליך של בנית PluginPromotedSimplePluginהרחבה של hudson promote pluginיצירת ditrebution of hudson in servletcontiner (tomcat)With the promoted pluginלצורך זה אני ישתמש בHudson – build managerNexus – artifatreporitoryMaven – build scripts
The key to automation – nothing without X testingUnit testing – short and to the pointDo not mix-up with system / integration testing’