Smart development environments
-
Upload
wojciech-sznapka -
Category
Technology
-
view
247 -
download
2
description
Transcript of Smart development environments
![Page 1: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/1.jpg)
Smart development
environmentS
![Page 2: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/2.jpg)
Szczyrk 27.10.2013
Wojciech Sznapka
PHPCon Pl
![Page 3: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/3.jpg)
![Page 4: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/4.jpg)
![Page 5: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/5.jpg)
Cześć!:)
![Page 6: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/6.jpg)
Hanys ze Ślůnska wito Wos
pierońsko piyknie
![Page 7: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/7.jpg)
Since 2006 regularly in a teams of developers
![Page 8: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/8.jpg)
Loves software craftsmanship,
sophisticated architectures, Big Data and automation
![Page 9: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/9.jpg)
Why a development environment needS care?
![Page 10: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/10.jpg)
Because mess frustrates people
![Page 11: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/11.jpg)
And repetitions leads to routine and are always
error prone
![Page 12: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/12.jpg)
Automation is always better than written process
![Page 13: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/13.jpg)
the verSion control
![Page 14: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/14.jpg)
GitHub private repositories
![Page 15: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/15.jpg)
![Page 16: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/16.jpg)
Every team member has his own fork
![Page 17: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/17.jpg)
He creates a feature branch related to the User Story from
Jira, he is working on
![Page 18: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/18.jpg)
He works on his own machine
![Page 19: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/19.jpg)
![Page 20: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/20.jpg)
After a series of commits to his feature branch he opens
a pull request
![Page 21: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/21.jpg)
Other devs review the code
and make comments
![Page 22: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/22.jpg)
pro tip: smaller pull request are easier to review
and maintain
![Page 23: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/23.jpg)
Developer fixes things and pushes again
![Page 24: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/24.jpg)
The responsible person merges pull request into
develop branch
![Page 25: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/25.jpg)
the code metricS
![Page 26: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/26.jpg)
Most of new projects are started based on Symfony
XSolve Edition
![Page 27: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/27.jpg)
![Page 28: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/28.jpg)
It contains standard build.xml for Ant
![Page 29: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/29.jpg)
There are around 28 targets
![Page 30: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/30.jpg)
Most important are:
![Page 31: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/31.jpg)
Most important are: » build - used to deploy
![Page 32: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/32.jpg)
Most important are: » build - used to deploy
» ci - run on Jenkins
![Page 33: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/33.jpg)
Most important are: » build — used to deploy
» ci — run on Jenkins
» cli — runs code sniffer, mess detector, copy paste detector on ClI to check curremt
status before committing
![Page 34: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/34.jpg)
Most important are: » build — used to deploy
» ci — run on Jenkins
» cli — runs code sniffer, mess detector, copy paste detector on ClI to check curremt
status before committing
» thresholds-check — to build PRs
![Page 35: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/35.jpg)
Code metrics are collected by Jenkins
and available there
![Page 36: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/36.jpg)
BuildS
![Page 37: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/37.jpg)
We build every change in develop branch
![Page 38: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/38.jpg)
Also we build every project in the morning to see
if passing time hasn’t affected the code :-)
![Page 39: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/39.jpg)
The third build goes for Pull Requests
![Page 40: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/40.jpg)
We’ve integrated Jenkins GitHub PR Builder
![Page 41: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/41.jpg)
It runs tests and checks if code metrics
warnings don’t exceed thresholds
![Page 42: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/42.jpg)
![Page 43: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/43.jpg)
![Page 44: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/44.jpg)
![Page 45: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/45.jpg)
This mechanisms helps us to not watch for code style
or obvious things during code reviews, but to focus on
what’s important
![Page 46: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/46.jpg)
deploymentS
![Page 47: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/47.jpg)
A standard servers structure:
![Page 48: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/48.jpg)
A standard servers structure: » development
![Page 49: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/49.jpg)
A standard servers structure: » development
» ci server
![Page 50: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/50.jpg)
A standard servers structure: » development
» ci server
» test server
![Page 51: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/51.jpg)
A standard servers structure: » development
» ci server
» test server
» stagagging (a.k.a. preview) server
![Page 52: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/52.jpg)
A standard servers structure: » development
» ci server
» test server
» stagagging (a.k.a. preview) server
» production
![Page 53: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/53.jpg)
We use launcher to update application on test
and stagging server
![Page 54: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/54.jpg)
launcher is our Silex based application that
launches ant tasks, triggered by github hook
![Page 55: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/55.jpg)
it updates test env for every change...
![Page 56: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/56.jpg)
... and staging for every new tag
![Page 57: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/57.jpg)
communication
![Page 58: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/58.jpg)
We use hipchat
![Page 59: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/59.jpg)
![Page 60: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/60.jpg)
it has a great and simple api
![Page 61: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/61.jpg)
and plenty of tools has built-in integration
![Page 62: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/62.jpg)
and plenty of tools has built-in integration
» Github
![Page 63: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/63.jpg)
and plenty of tools has built-in integration
» Github
» jira
![Page 64: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/64.jpg)
and plenty of tools has built-in integration
» Github
» jira
» jenkins
![Page 65: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/65.jpg)
and plenty of tools has built-in integration
» Github
» jira
» jenkins
» new relic
![Page 66: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/66.jpg)
and plenty of tools has built-in integration
» Github
» jira
» jenkins
» new relic
» zabbix
![Page 67: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/67.jpg)
also our internal tools uses hipchat api to notify
important facts
![Page 68: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/68.jpg)
of course we have github, jira, jenkins emails
notifications
![Page 69: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/69.jpg)
extraS
![Page 70: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/70.jpg)
Github-metrics
![Page 71: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/71.jpg)
it counts pull requests and commits per developer
across all repos and pushes it to hipchat every morning
at 10:00
![Page 72: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/72.jpg)
![Page 73: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/73.jpg)
xSolve developers metrics
![Page 74: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/74.jpg)
harvesters jenkins api to get number of violations
(or fixes) for every developer
![Page 75: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/75.jpg)
![Page 76: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/76.jpg)
Summary
![Page 77: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/77.jpg)
it requires a lot of effort to put all those tools
together
![Page 78: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/78.jpg)
even more work is required to maintain and keeps it
running
![Page 79: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/79.jpg)
But after some time it works gloriously
![Page 80: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/80.jpg)
teams don’t waste time on non-programming
work
![Page 81: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/81.jpg)
it’s way easier to introduce new team
members
![Page 82: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/82.jpg)
and you have a lot more time to think about solving world’s problems
![Page 83: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/83.jpg)
thank you
![Page 85: Smart development environments](https://reader034.fdocuments.in/reader034/viewer/2022042623/540c0f768d7f72da6a8b4907/html5/thumbnails/85.jpg)
Dołącz do nas!