Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
830
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
19
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. dropwizardframework for developing ops-friendly, high-performance, RESTful web services
  • 2. обо мне● Андрей Панфилов● Java Developer● Проект: Velti
  • 3. история вопроса● распространенное мнение: java ==кровавый энтерпрайз● некоторым хочется легкости (не вущерб преимуществ java)● dropwizard -- легковесныйфреймворк для веб (Its an answer to thecomplexity of Java Web and Application Containers,which tend to be overkill for 90% of your use-cases.)
  • 4. об авторе● Coda Hale (codahale.com)● «I’m a software engineer in Berkeley,CA.»● Principal Software Developer(Microsoft), Infrastructure Architect(Yammer)
  • 5. определение● Dropwizard is a Java framework fordeveloping ops-friendly, high-performance, RESTful web services.● Основная идея: pulls together stable,mature libraries from the Javaecosystem into a simple, light-weightpackage.● Название: что такое dropwizard?
  • 6. комикс
  • 7. компоненты dropwizardа● Jetty for HTTP● Jersey for REST● Jackson for JSON● Metrics for metrics● Guava (highly optimized immutable data structures,speed up development)● Logback and slf4j for performant logging● Hibernate Validator (JSR-303)● Apache HttpClient and Jersey client (interaction withother web services)● JDBI or Hibernate● Liquibase● Freemarker or Mustache (simple template system)● Joda Time (handling dates and times)
  • 8. Jetty● Incredibly tuned embedded HTTP server.● Running your service as a simple process.● No PermGen issues● No application server configuration andmaintenance● No arcane deployment tools● No ClassLoader troubles● No hidden application logs● No trying to tune a single garbage collectorto work with multiple application workloads
  • 9. Jersey● JAX-RS (JSR 311: Java API for RESTfulWeb Services)● full-featured RESTful web framework● nothing beats in terms of features andperformance● allows to write clean, testable classes whichgracefully map HTTP requests to simpleJava objects● supports streaming output, matrix URIparameters, conditional GET requests● and much, much more
  • 10. Jackson● lightning fast● has a sophisticated object mapper● allows to export domain models directly
  • 11. Metrics● powerful toolkit of ways to measure thebehavior of critical components in yourproduction environment● with modules for common libraries like Jetty,Logback, Log4j, Apache HttpClient,Ehcache, JDBI, Jersey and reportingbackends like Ganglia and Graphite,Metrics provides you with full-stack visibility.
  • 12. helloworld
  • 13. helloworld
  • 14. helloworld
  • 15. helloworld
  • 16. helloworld
  • 17. helloworld
  • 18. helloworld
  • 19. сборка● Apache Maven● Fat JAR
  • 20. запуск приложенияjava -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world.yml
  • 21. лицензия● Apache License v2.0
  • 22. интересности● Отсутствие IoC● Optional:Optional<Integer> possible = Optional.of(5);possible.isPresent(); // returns truepossible.get(); // returns 5● Immutability
  • 23. SWOT● Strengths○ Provisioning○ Deployment○ Monitoring and Logging○ Alerting○ Tend to Service Oriented Architecture○ Loose Coupling● Weaknesses● Opportunities● Threats○ Support
  • 24. ссылки● dropwizard.codahale.com● github.com/codahale/dropwizard
  • 25. конецВопросы?