Let's try to adress some of their concerns:

- We need to move to a service-oriented infrastructure because Django is
> too monolithic


It depends on what your application does and what you're planning to do
with it in the future.  People are quick prescribe SOA as the end all way
to scale, but they tend to ignore the added complexity that comes with
building out and integrating smaller services.

 - It's too easy to write slow queries using the Django ORM


It's just as easy (arguably easier) to write slow queries using pure SQL or
any other ORM.  The ORM makes a lot of good decisions for mediocre
programmers (I'd put myself in that category).  If you're a great
programmer and have great programmers who really understand SQL, then
you're just as likely to get your ORM queries right as you are straight
SQL.

>
> - It's hard to hire Django engineers


Compared to what?  .NET or Java engineers?  Probably.  Harder than the
newest shiny javascript framework engineers? Probably not.  Django has
about as robust an  engineering population as Ruby/Rails does.  I don't
know what you'd convert to in order to make hiring easier.  All engineers
(especially good ones) are really hard to come by these days.  If you're
looking at outsourcing to Southwest Asia, then yes, the Django population
isn't as high as .NET/Java/PHP.  However, hiring challenges are most
typically defined by your location and your ability and/or willingness to
explore remote workers.

While Instagram and DISQUS use Django to service large numbers of people,
> they don't use it for any serious backend work


Reddit is also a large Django user.  All engineering decisions should be
made around what your particular needs are and what skills your team
possesses or is able to acquire.  Needs of an organization evolve over time
and the organizations adjust as they need to.

Many organizations start with a Python/Django or Ruby/Rails application to
build a product *quickly *which is what those stacks excel at.   A mantra
typically heard in the community is "don't optimize prematurely".  If
you're saying "man, we're going to hit a wall at 100,000 users", well you
need to get to 90,000 users first before worrying about 100,000.  Getting
the 90k users is the real hard part.

All this being said, your colleagues could be right to want to move off
Django.  We don't know much about your particular circumstances.

For more information on optimizing Django for scale, check out this book.
https://highperformancedjango.com/

Best of luck.

Bill




On Wed, Feb 3, 2016 at 10:30 AM, Joshua Pokotilow <jpokoti...@gmail.com>
wrote:

> At the startup where I work, we've written a lot of our server code in
> Django. So far, we've adopted a "build it fast" mentality, so we invested
> very little time in optimizing our code. A small amount of load testing has
> revealed our codebase / infrastructure as it stands today needs to run
> faster and support more users.
>
> We recently hired some new engineers who are extremely skeptical that we
> should optimize our existing code. Their main concerns are:
>
> - We need to move to a service-oriented infrastructure because Django is
> too monolithic (monolithic = technology lock-in & difficult to troubleshoot)
> - It's too easy to write slow queries using the Django ORM
> - It's hard to hire Django engineers
> - While Instagram and DISQUS use Django to service large numbers of
> people, they don't use it for any serious backend work
>
> After having worked with Django for the last 3 years, I'm a big believer
> in it, and I believe it would scale. To defend my position, I've pointed
> out to my colleagues that it's easy to identify bottlenecks with tools like
> the Django Debug Toolbar and Yet Another Django Profiler. With my
> colleagues present, I've isolated and fixed significant speed problems
> inside of a few hours. I don't believe the Django ORM is inherently bad,
> although I do think that coders who use it should Know What They're Doing.
> Finally, I've referenced blog entries that talk about how Instagram and
> Disqus use Django on the backend for backend-y tasks.
>
> Despite my best efforts, my colleagues are still pushing to have us
> rewrite large portions of our infrastructure as separate services before we
> try to fix them. For example, we have one slow REST endpoint that returns a
> boatload of user data, and so there's talk about using a new microservice
> for users in lieu of our existing Django models. Even if we are able to fix
> bottlenecks we encounter in a timely fashion, my colleagues fear that
> Django won't scale with the business.
>
> I'm writing this post to garner additional evidence that Django will
> scale. Anything compelling (and preferably not obvious) that would help
> shed some light on Django's ability to scale would be *greatly*
> appreciated, as it's very difficult for me to defend my position that
> Django is a viable long-term solution without solid evidence to back up my
> claims. It certainly doesn't help that I don't have any experience scaling
> Django myself!
>
> Thank you.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/83968c41-d415-4189-b33b-9f99b10b1c41%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/83968c41-d415-4189-b33b-9f99b10b1c41%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAP7uEDLi2S8G-_c7SZL_8gjTkzxdPAa5hLfnQ5euqS7wCjvYcg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to