tooling matters - development tools
DESCRIPTION
Guest talk at the University Passau about some development tools used at tado° and in general.TRANSCRIPT
![Page 1: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/1.jpg)
Tooling MattersDevelopment Tooling
![Page 2: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/2.jpg)
Who am I?
Simon Dittlmannat tado° since 2013previous Payback, WISI, Mivitec...
Developer, DevOpPreferred Language: JS
Contact SimonDittlmann github.com/Pindar
![Page 3: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/3.jpg)
What’s tado°?
The app that controls your heating and saves energy.
With a Connector kit for your home.
![Page 4: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/4.jpg)
What are tools?
![Page 5: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/5.jpg)
What are tools?• a thing used to help perform a job: computers are an essential tool | the ability to write clearly is a tool of the trade.
![Page 6: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/6.jpg)
What are tools?• Computing:a piece of software that carries out a particular function, typically creating or modifying another program.
![Page 7: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/7.jpg)
Why tools?
![Page 8: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/8.jpg)
efficiency
![Page 9: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/9.jpg)
effectiveness
![Page 10: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/10.jpg)
Where?
![Page 11: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/11.jpg)
Everywhere!
To manage● Ideas● Feature Request● Requirements● Development● Deployment● Production
![Page 12: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/12.jpg)
How to choose?
![Page 13: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/13.jpg)
A tool should support the optimal process.
![Page 14: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/14.jpg)
A tool has to reduce the overall lead time and not
just a single step.
![Page 15: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/15.jpg)
A third party tool should be backed by a big community
![Page 16: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/16.jpg)
more details please!
![Page 17: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/17.jpg)
From an idea to production
Requirements Deployment
Development
natural language, charts
Puppet, JS, Bash
Idea / Feature Request
Zendesk, Sticky-Notes,Paper Chart
Google Apps
deployJS,Packer.io,Jenkins,AWS...
Production
Logstash,Cloudwatch,statsd, AWS...
Java, Groovy, JavaScript, C, Python, PHP, JSON, CoAP, HTTP, Cloudformation, Puppet
Git / Github, Gradle Grunt, Less-CLI,IDEA-IntelliJ, Vagrant, Rake, mvn, npm, Jenkins, Gem, Guard, Composer,Sticky-Notes, task-board, make, hangouts...
natural language
![Page 18: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/18.jpg)
Let’s take a closer look at DevOps
![Page 19: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/19.jpg)
Collaboration
● Google Hangout for quick chats● Google Apps for documentation (Office Suite)● Github to comment on Issues + Pull
Requests○ Powerful collaboration, code review, and code
management● Task Board
○ Sticky Notes
![Page 20: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/20.jpg)
Development / Debugging
● Git for source code versioning● Idea IntelliJ as an IDE● Sublime / VI(M) / Textmate etc. as text editor● Chrome Developer Tools for FE Debugging● Spring Boot, Yeoman to speed up
development setup● Vagrant to simulate environments and speed
up setups
![Page 21: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/21.jpg)
Build
● Gradle/Maven for Java build automation● Grunt for JS build automation● Composer for PHP build auto/dep mgmt● Rake for Puppet task management● Jenkins for Continuous Integration (CI)● Bower for Front End dependency mgmt● LESS-CLI to transform less to CSS
![Page 22: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/22.jpg)
Test / QA
● Spock-Specs to test Groovy/Java● CodeNarc validates Groovy code● Protractor to test AngularJS E2E● karma + PhantomJS for JS unit testing● JSHint validates JS code
![Page 23: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/23.jpg)
Deployment
● Packer.io to create AMIs (Amazon Machine Image) / Vagrant boxes
● AWS (Amazon Web Services) Cloudformation to describe the infrastructure
● AWS SDK + Custom Software to do the deployment
![Page 24: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/24.jpg)
Production
● Logstash for log file monitoring● Cloudwatch for performance monitoring● statsd to aggregate data points
![Page 25: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/25.jpg)
Logstash log shipping process
shipper(instance)
shipper (instance)
shipper(instance)
Queue(Redis)
indexing (elastic search)
processing (logstash)
kibana (JS-view)
Backup S3
Cluster
![Page 26: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/26.jpg)
Logstash
![Page 27: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/27.jpg)
Logstash
![Page 28: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/28.jpg)
CloudWatch
![Page 29: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/29.jpg)
Deployment Flow
Application
Infrastructure
Virtual Machine Deployment AWS
Grails, Java
Puppet
Cloudformation
deploy.js
aws sdk/cli
packer.iovagrant
jenkins
jenkins
CloudWatchLogstashStatsd
![Page 30: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/30.jpg)
QAps: we’re hiring!
![Page 31: Tooling Matters - Development tools](https://reader033.vdocuments.us/reader033/viewer/2022051612/54c64ad64a7959ee4e8b4613/html5/thumbnails/31.jpg)
Linkshttps://flic.kr/p/5YWuWkhttps://flic.kr/p/hKFpGEhttps://flic.kr/p/nAMMGQhttps://flic.kr/p/eKZUNhttps://flic.kr/p/cBM99w