Re: [openstack-dev] [Neutron][LBaaS] TLS capability - certificates data persistency

2014-07-23 Thread Stephen Balukoff
I'm willing to go with simpler code that gets us this feature faster, and
re-evaluating whether storing some extra data on certificates locally makes
significant performance gains later on.

First we need to get it working, then we need to make it work fast. :)

Stephen


On Tue, Jul 22, 2014 at 4:04 PM, Carlos Garza carlos.ga...@rackspace.com
wrote:


 On Jul 20, 2014, at 6:32 AM, Evgeny Fedoruk evge...@radware.com wrote:

  Hi folks,
 
  In a current version of TLS capabilities RST certificate
 SubjectCommonName and SubjectAltName information is cached in a database.
  This may be not necessary and here is why:
 
  1.   TLS containers are immutable, meaning once a container was
 associated to a listener and was validated, it’s not necessary to validate
 the container anymore.
  This is relevant for both, default container and containers used for SNI.
  2.   LBaaS front-end API can check if TLS containers ids were
 changed for a listener as part of an update operation. Validation of
 containers will be done for
  new containers only. This is stated in “Performance Impact” section of
 the RST, excepting the last statement that proposes persistency for SCN and
 SAN.
  3.   Any interaction with Barbican API for getting containers data
 will be performed via a common module API only. This module’s API is
 mentioned in
  “SNI certificates list management” section of the RST.
  4.   In case when driver really needs to extract certificate
 information prior to the back-end system provisioning, it will do it via
 the common module API.
  5.   Back-end provisioning system may cache any certificate data,
 except private key, in case of a specific need of the vendor.
 
  IMO, There is no real need to store certificates data in Neutron
 database and manage its life cycle.
  Does anyone sees a reason why caching certificates’ data in Neutron
 database is critical?

 Its not so much caching the certificate. Lets just say when an lb
 change comes into the API that wants to add an X509 then we need to parse
 the subjectNames and SubjectAltNames from the previous X509s which aren't
 available to us so we must grab them all from barbican over the rest
 interface. Like I said in an earlier email its a balancing act between
 Single Source of Truth vs how much lag were willing to deal with.



  Thank you,
  Evg
 
 
  ___
  OpenStack-dev mailing list
  OpenStack-dev@lists.openstack.org
  http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Stephen Balukoff
Blue Box Group, LLC
(800)613-4305 x807
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron][LBaaS] TLS capability - certificates data persistency

2014-07-22 Thread Samuel Bercovici
Stephen,

This will increase the complexity of the code since it will add managing the 
cache lifecycle in tandem with the barbican back end and the fact that 
containers may be shared by multiple listeners.
At this stage, I think that it serves us all to keep the code at this stage as 
small and simple as possible.

Let’s judge if presenting this information on the fly (ex: in the Web UI) 
becomes a performance issue and if it does, we can fix it then.

-Sam.


From: Stephen Balukoff [mailto:sbaluk...@bluebox.net]
Sent: Tuesday, July 22, 2014 3:43 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Neutron][LBaaS] TLS capability - certificates 
data persistency

Evgeny--

The only reason I see for storing certificate information in Neutron (and not 
private key information-- just the certificate) is to aid in presenting UI 
information to the user. Especially GUI users don't care about a certificate's 
UUID, they care about which hostnames it's valid for. Yes, this can be loaded 
on the fly whenever public certificate information is accessed, but the 
perception was that it would be a significant performance increase to cache it.

Stephen

On Sun, Jul 20, 2014 at 4:32 AM, Evgeny Fedoruk 
evge...@radware.commailto:evge...@radware.com wrote:
Hi folks,

In a current version of TLS capabilities RST certificate SubjectCommonName and 
SubjectAltName information is cached in a database.
This may be not necessary and here is why:


1.   TLS containers are immutable, meaning once a container was associated 
to a listener and was validated, it’s not necessary to validate the container 
anymore.
This is relevant for both, default container and containers used for SNI.

2.   LBaaS front-end API can check if TLS containers ids were changed for a 
listener as part of an update operation. Validation of containers will be done 
for
new containers only. This is stated in “Performance Impact” section of the RST, 
excepting the last statement that proposes persistency for SCN and SAN.

3.   Any interaction with Barbican API for getting containers data will be 
performed via a common module API only. This module’s API is mentioned in
“SNI certificates list management” section of the RST.

4.   In case when driver really needs to extract certificate information 
prior to the back-end system provisioning, it will do it via the common module 
API.

5.   Back-end provisioning system may cache any certificate data, except 
private key, in case of a specific need of the vendor.

IMO, There is no real need to store certificates data in Neutron database and 
manage its life cycle.
Does anyone sees a reason why caching certificates’ data in Neutron database is 
critical?

Thank you,
Evg


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.orgmailto:OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



--
Stephen Balukoff
Blue Box Group, LLC
(800)613-4305 x807
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron][LBaaS] TLS capability - certificates data persistency

2014-07-22 Thread Brandon Logan
I agree with Sam.  We're under a strict timeline here and the simpler
the code the faster it will be implemented and reviewed.  Is there any
strong reason why this caching can't wait until K if it decided it is
really needed?

Thanks,
Brandon

On Tue, 2014-07-22 at 11:01 +, Samuel Bercovici wrote:
 Stephen,
 
  
 
 This will increase the complexity of the code since it will add
 managing the cache lifecycle in tandem with the barbican back end and
 the fact that containers may be shared by multiple listeners.
 
 At this stage, I think that it serves us all to keep the code at this
 stage as small and simple as possible.
 
  
 
 Let’s judge if presenting this information on the fly (ex: in the Web
 UI) becomes a performance issue and if it does, we can fix it then.
 
  
 
 -Sam.
 
  
 
  
 
 From: Stephen Balukoff [mailto:sbaluk...@bluebox.net] 
 Sent: Tuesday, July 22, 2014 3:43 AM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: Re: [openstack-dev] [Neutron][LBaaS] TLS capability -
 certificates data persistency
 
  
 
 Evgeny--
 
  
 
 
 The only reason I see for storing certificate information in Neutron
 (and not private key information-- just the certificate) is to aid in
 presenting UI information to the user. Especially GUI users don't care
 about a certificate's UUID, they care about which hostnames it's valid
 for. Yes, this can be loaded on the fly whenever public certificate
 information is accessed, but the perception was that it would be a
 significant performance increase to cache it.
 
 
  
 
 
 Stephen
 
 
  
 
 On Sun, Jul 20, 2014 at 4:32 AM, Evgeny Fedoruk evge...@radware.com
 wrote:
 
 Hi folks,
 
  
 
 In a current version of TLS capabilities RST certificate
 SubjectCommonName and SubjectAltName information is cached in a
 database.
 
 This may be not necessary and here is why:
 
  
 
 1.   TLS containers are immutable, meaning once a container was
 associated to a listener and was validated, it’s not necessary to
 validate the container anymore.
 This is relevant for both, default container and containers used for
 SNI.
 
 2.   LBaaS front-end API can check if TLS containers ids were
 changed for a listener as part of an update operation. Validation of
 containers will be done for
 new containers only. This is stated in “Performance Impact” section of
 the RST, excepting the last statement that proposes persistency for
 SCN and SAN.
 
 3.   Any interaction with Barbican API for getting containers data
 will be performed via a common module API only. This module’s API is
 mentioned in
 “SNI certificates list management” section of the RST.
 
 4.   In case when driver really needs to extract certificate
 information prior to the back-end system provisioning, it will do it
 via the common module API.
 
 5.   Back-end provisioning system may cache any certificate data,
 except private key, in case of a specific need of the vendor.
 
  
 
 IMO, There is no real need to store certificates data in Neutron
 database and manage its life cycle. 
 
 Does anyone sees a reason why caching certificates’ data in Neutron
 database is critical?
 
  
 
 Thank you,
 
 Evg
 
  
 
 
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 
 
 
 
  
 
 
 -- 
 Stephen Balukoff 
 Blue Box Group, LLC 
 (800)613-4305 x807 
 
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron][LBaaS] TLS capability - certificates data persistency

2014-07-22 Thread Carlos Garza

On Jul 20, 2014, at 6:32 AM, Evgeny Fedoruk evge...@radware.com wrote:

 Hi folks,
  
 In a current version of TLS capabilities RST certificate SubjectCommonName 
 and SubjectAltName information is cached in a database.
 This may be not necessary and here is why:
  
 1.   TLS containers are immutable, meaning once a container was 
 associated to a listener and was validated, it’s not necessary to validate 
 the container anymore.
 This is relevant for both, default container and containers used for SNI.
 2.   LBaaS front-end API can check if TLS containers ids were changed for 
 a listener as part of an update operation. Validation of containers will be 
 done for
 new containers only. This is stated in “Performance Impact” section of the 
 RST, excepting the last statement that proposes persistency for SCN and SAN.
 3.   Any interaction with Barbican API for getting containers data will 
 be performed via a common module API only. This module’s API is mentioned in
 “SNI certificates list management” section of the RST.
 4.   In case when driver really needs to extract certificate information 
 prior to the back-end system provisioning, it will do it via the common 
 module API.
 5.   Back-end provisioning system may cache any certificate data, except 
 private key, in case of a specific need of the vendor.
  
 IMO, There is no real need to store certificates data in Neutron database and 
 manage its life cycle.
 Does anyone sees a reason why caching certificates’ data in Neutron database 
 is critical?

Its not so much caching the certificate. Lets just say when an lb change 
comes into the API that wants to add an X509 then we need to parse the 
subjectNames and SubjectAltNames from the previous X509s which aren't available 
to us so we must grab them all from barbican over the rest interface. Like I 
said in an earlier email its a balancing act between Single Source of Truth 
vs how much lag were willing to deal with.



 Thank you,
 Evg
 
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron][LBaaS] TLS capability - certificates data persistency

2014-07-21 Thread Stephen Balukoff
Evgeny--

The only reason I see for storing certificate information in Neutron (and
not private key information-- just the certificate) is to aid in presenting
UI information to the user. Especially GUI users don't care about a
certificate's UUID, they care about which hostnames it's valid for. Yes,
this can be loaded on the fly whenever public certificate information is
accessed, but the perception was that it would be a significant performance
increase to cache it.

Stephen


On Sun, Jul 20, 2014 at 4:32 AM, Evgeny Fedoruk evge...@radware.com wrote:

  Hi folks,



 In a current version of TLS capabilities RST certificate SubjectCommonName
 and SubjectAltName information is cached in a database.

 This may be not necessary and here is why:



 1.   TLS containers are immutable, meaning once a container was
 associated to a listener and was validated, it’s not necessary to validate
 the container anymore.
 This is relevant for both, default container and containers used for SNI.

 2.   LBaaS front-end API can check if TLS containers ids were changed
 for a listener as part of an update operation. Validation of containers
 will be done for
 new containers only. This is stated in “Performance Impact” section of the
 RST, excepting the last statement that proposes persistency for SCN and SAN.

 3.   Any interaction with Barbican API for getting containers data
 will be performed via a common module API only. This module’s API is
 mentioned in
 “SNI certificates list management” section of the RST.

 4.   In case when driver really needs to extract certificate
 information prior to the back-end system provisioning, it will do it via
 the common module API.

 5.   Back-end provisioning system may cache any certificate data,
 except private key, in case of a specific need of the vendor.



 IMO, There is no real need to store certificates data in Neutron database
 and manage its life cycle.

 Does anyone sees a reason why caching certificates’ data in Neutron
 database is critical?



 Thank you,

 Evg




 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




-- 
Stephen Balukoff
Blue Box Group, LLC
(800)613-4305 x807
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [Neutron][LBaaS] TLS capability - certificates data persistency

2014-07-20 Thread Evgeny Fedoruk
Hi folks,

In a current version of TLS capabilities RST certificate SubjectCommonName and 
SubjectAltName information is cached in a database.
This may be not necessary and here is why:


1.   TLS containers are immutable, meaning once a container was associated 
to a listener and was validated, it's not necessary to validate the container 
anymore.
This is relevant for both, default container and containers used for SNI.

2.   LBaaS front-end API can check if TLS containers ids were changed for a 
listener as part of an update operation. Validation of containers will be done 
for
new containers only. This is stated in Performance Impact section of the RST, 
excepting the last statement that proposes persistency for SCN and SAN.

3.   Any interaction with Barbican API for getting containers data will be 
performed via a common module API only. This module's API is mentioned in
SNI certificates list management section of the RST.

4.   In case when driver really needs to extract certificate information 
prior to the back-end system provisioning, it will do it via the common module 
API.

5.   Back-end provisioning system may cache any certificate data, except 
private key, in case of a specific need of the vendor.

IMO, There is no real need to store certificates data in Neutron database and 
manage its life cycle.
Does anyone sees a reason why caching certificates' data in Neutron database is 
critical?

Thank you,
Evg


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev