How to structure a Kubernetes Project for a Web Application?
I like to create an app with kubernetes.
- I have api server, frontend server, a few scrapers and so on.
- I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
- I'd like to be able to deploy a single project, only the api for example or a specific scraper.
- Each app has a docker file and circle ci configuration for deploy
How should I structure my project?
Should each app be in it's own repository or should I use monorepo?
Where should I keep the k8s.yaml (since it relates to all projects)?
Where should I apply the k8s configurations? Should it happen on each deploy?
How can I config domain names for each service easily?
kubernetes gcloud
add a comment |
I like to create an app with kubernetes.
- I have api server, frontend server, a few scrapers and so on.
- I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
- I'd like to be able to deploy a single project, only the api for example or a specific scraper.
- Each app has a docker file and circle ci configuration for deploy
How should I structure my project?
Should each app be in it's own repository or should I use monorepo?
Where should I keep the k8s.yaml (since it relates to all projects)?
Where should I apply the k8s configurations? Should it happen on each deploy?
How can I config domain names for each service easily?
kubernetes gcloud
add a comment |
I like to create an app with kubernetes.
- I have api server, frontend server, a few scrapers and so on.
- I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
- I'd like to be able to deploy a single project, only the api for example or a specific scraper.
- Each app has a docker file and circle ci configuration for deploy
How should I structure my project?
Should each app be in it's own repository or should I use monorepo?
Where should I keep the k8s.yaml (since it relates to all projects)?
Where should I apply the k8s configurations? Should it happen on each deploy?
How can I config domain names for each service easily?
kubernetes gcloud
I like to create an app with kubernetes.
- I have api server, frontend server, a few scrapers and so on.
- I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
- I'd like to be able to deploy a single project, only the api for example or a specific scraper.
- Each app has a docker file and circle ci configuration for deploy
How should I structure my project?
Should each app be in it's own repository or should I use monorepo?
Where should I keep the k8s.yaml (since it relates to all projects)?
Where should I apply the k8s configurations? Should it happen on each deploy?
How can I config domain names for each service easily?
kubernetes gcloud
kubernetes gcloud
edited Nov 22 '18 at 18:14
dany L
31117
31117
asked Nov 22 '18 at 9:10
NaorNaor
9,87634117224
9,87634117224
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
There is some points:
I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
It's ok. as long as they are on different containers in same pod. multi container pods are accessible from each other with localhost address. and pods can see each other with DNS. (and yes half healthy means unhealthy)
How should I structure my project?
I use different repo for different container. but its ok for every pod = 1 repo.
Its easier to maintain this way, and you have separate CI/CD builds which ables you to update each app separately. Storing each Deployment manifest YAML file in the root of repo is a good idea. Because one Deployment means 1 app (one set of pods).
Where should I apply the k8s configurations? Should it happen on each deploy? How can I config domain names for each service easily?
In Deployment manifest file you can store configs in ENVs or use a config map. You dont need to use kubectl apply
for each deployment.
In your CI you can do this for each deploy:
- docker build -t {registry}:{version} .
- docker push {registry}:{version}
- kubectl set image deployment/{API_NAME} {containername}={registry}:{version} -n {NAMESPACE}
You need a reverse proxy in front of your APIs as a gateway, best option is Ingress which is easy to deploy and config. and it knows your pods.
Ingress config can be like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api
namespace: production
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.yourdomain.com
http:
paths:
- path: /application1
backend:
serviceName: app1-production
servicePort: 80
- path: /application2
backend:
serviceName: app2-production
servicePort: 80
or just use one subdomain per api, as you prefer.
Thanks! Where should I put the yaml for Ingress? In the same yaml file that define the project's pod? And if I don'tkubectl apply
in each deploy, how will it get published?
– Naor
Nov 22 '18 at 15:12
Suppose I have 2 repos for 2 projects - frontend and backend. They should be in the same pod. Where should I put k8s configurations?
– Naor
Nov 22 '18 at 15:26
I usually keep all deployments in a different repo named Kube-deployments.
– Nima Hashemi
Nov 23 '18 at 9:37
@Naor and kubectl set image do the job
– Nima Hashemi
Nov 23 '18 at 9:38
add a comment |
It really depends on your use case but I would advise certain practices for making life easier:
I'd like to put the api and the frontend in the same pod, and all the
scrapers in other pod.
Don't put more than one container in a same pod (unless it's a sidecar like conduit, istio, etc...) because it will be really tough to perform health checks on your pods (if one container is down and the other one is up, the pod is... half-healthy?)
I'd like to be able to deploy a single project, only the api for
example or a specific scraper.
Where should I keep the k8s.yaml (since it relates to all projects)?
Separate the yaml files to their own projects directories so that you can deploy them independently and for better readability.
Using a monorepo has it's advantages, the code is in one place, etc... But if you will have CI, as the repo gets bigger, your builds might become slower so you would either need to optimize (use build caching or such) or have a separate CI for each business domain or logical group you might have.
How should I structure my project?
Separate infrastructure from application so that if one day you want to switch from GCE to AWS or Azure and also for better readability.
Where should I apply the k8s configurations? Should it happen on each
deploy? How can I config domain names for each service easily?
Kubernetes has got a really extensive list of examples on all the ways you can inject configuration to your apps, this really depends on your use case.
You don't need to configure domain names for each service, only the ones that are exposed to the outside world. You can use an Ingress
object or a proxy.
The things you need to consider:
Logging - this is a very important topic because having scalable pods can be tricky business. I would really take my time to deploy some tight distributed logging.
Environments - Develop/Production or Develop/Staging/Production or ... ? Whatever you choose, make sure they have minimal differences and that each step can be easily deployable.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427333%2fhow-to-structure-a-kubernetes-project-for-a-web-application%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
There is some points:
I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
It's ok. as long as they are on different containers in same pod. multi container pods are accessible from each other with localhost address. and pods can see each other with DNS. (and yes half healthy means unhealthy)
How should I structure my project?
I use different repo for different container. but its ok for every pod = 1 repo.
Its easier to maintain this way, and you have separate CI/CD builds which ables you to update each app separately. Storing each Deployment manifest YAML file in the root of repo is a good idea. Because one Deployment means 1 app (one set of pods).
Where should I apply the k8s configurations? Should it happen on each deploy? How can I config domain names for each service easily?
In Deployment manifest file you can store configs in ENVs or use a config map. You dont need to use kubectl apply
for each deployment.
In your CI you can do this for each deploy:
- docker build -t {registry}:{version} .
- docker push {registry}:{version}
- kubectl set image deployment/{API_NAME} {containername}={registry}:{version} -n {NAMESPACE}
You need a reverse proxy in front of your APIs as a gateway, best option is Ingress which is easy to deploy and config. and it knows your pods.
Ingress config can be like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api
namespace: production
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.yourdomain.com
http:
paths:
- path: /application1
backend:
serviceName: app1-production
servicePort: 80
- path: /application2
backend:
serviceName: app2-production
servicePort: 80
or just use one subdomain per api, as you prefer.
Thanks! Where should I put the yaml for Ingress? In the same yaml file that define the project's pod? And if I don'tkubectl apply
in each deploy, how will it get published?
– Naor
Nov 22 '18 at 15:12
Suppose I have 2 repos for 2 projects - frontend and backend. They should be in the same pod. Where should I put k8s configurations?
– Naor
Nov 22 '18 at 15:26
I usually keep all deployments in a different repo named Kube-deployments.
– Nima Hashemi
Nov 23 '18 at 9:37
@Naor and kubectl set image do the job
– Nima Hashemi
Nov 23 '18 at 9:38
add a comment |
There is some points:
I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
It's ok. as long as they are on different containers in same pod. multi container pods are accessible from each other with localhost address. and pods can see each other with DNS. (and yes half healthy means unhealthy)
How should I structure my project?
I use different repo for different container. but its ok for every pod = 1 repo.
Its easier to maintain this way, and you have separate CI/CD builds which ables you to update each app separately. Storing each Deployment manifest YAML file in the root of repo is a good idea. Because one Deployment means 1 app (one set of pods).
Where should I apply the k8s configurations? Should it happen on each deploy? How can I config domain names for each service easily?
In Deployment manifest file you can store configs in ENVs or use a config map. You dont need to use kubectl apply
for each deployment.
In your CI you can do this for each deploy:
- docker build -t {registry}:{version} .
- docker push {registry}:{version}
- kubectl set image deployment/{API_NAME} {containername}={registry}:{version} -n {NAMESPACE}
You need a reverse proxy in front of your APIs as a gateway, best option is Ingress which is easy to deploy and config. and it knows your pods.
Ingress config can be like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api
namespace: production
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.yourdomain.com
http:
paths:
- path: /application1
backend:
serviceName: app1-production
servicePort: 80
- path: /application2
backend:
serviceName: app2-production
servicePort: 80
or just use one subdomain per api, as you prefer.
Thanks! Where should I put the yaml for Ingress? In the same yaml file that define the project's pod? And if I don'tkubectl apply
in each deploy, how will it get published?
– Naor
Nov 22 '18 at 15:12
Suppose I have 2 repos for 2 projects - frontend and backend. They should be in the same pod. Where should I put k8s configurations?
– Naor
Nov 22 '18 at 15:26
I usually keep all deployments in a different repo named Kube-deployments.
– Nima Hashemi
Nov 23 '18 at 9:37
@Naor and kubectl set image do the job
– Nima Hashemi
Nov 23 '18 at 9:38
add a comment |
There is some points:
I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
It's ok. as long as they are on different containers in same pod. multi container pods are accessible from each other with localhost address. and pods can see each other with DNS. (and yes half healthy means unhealthy)
How should I structure my project?
I use different repo for different container. but its ok for every pod = 1 repo.
Its easier to maintain this way, and you have separate CI/CD builds which ables you to update each app separately. Storing each Deployment manifest YAML file in the root of repo is a good idea. Because one Deployment means 1 app (one set of pods).
Where should I apply the k8s configurations? Should it happen on each deploy? How can I config domain names for each service easily?
In Deployment manifest file you can store configs in ENVs or use a config map. You dont need to use kubectl apply
for each deployment.
In your CI you can do this for each deploy:
- docker build -t {registry}:{version} .
- docker push {registry}:{version}
- kubectl set image deployment/{API_NAME} {containername}={registry}:{version} -n {NAMESPACE}
You need a reverse proxy in front of your APIs as a gateway, best option is Ingress which is easy to deploy and config. and it knows your pods.
Ingress config can be like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api
namespace: production
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.yourdomain.com
http:
paths:
- path: /application1
backend:
serviceName: app1-production
servicePort: 80
- path: /application2
backend:
serviceName: app2-production
servicePort: 80
or just use one subdomain per api, as you prefer.
There is some points:
I'd like to put the api and the frontend in the same pod, and all the scrapers in other pod.
It's ok. as long as they are on different containers in same pod. multi container pods are accessible from each other with localhost address. and pods can see each other with DNS. (and yes half healthy means unhealthy)
How should I structure my project?
I use different repo for different container. but its ok for every pod = 1 repo.
Its easier to maintain this way, and you have separate CI/CD builds which ables you to update each app separately. Storing each Deployment manifest YAML file in the root of repo is a good idea. Because one Deployment means 1 app (one set of pods).
Where should I apply the k8s configurations? Should it happen on each deploy? How can I config domain names for each service easily?
In Deployment manifest file you can store configs in ENVs or use a config map. You dont need to use kubectl apply
for each deployment.
In your CI you can do this for each deploy:
- docker build -t {registry}:{version} .
- docker push {registry}:{version}
- kubectl set image deployment/{API_NAME} {containername}={registry}:{version} -n {NAMESPACE}
You need a reverse proxy in front of your APIs as a gateway, best option is Ingress which is easy to deploy and config. and it knows your pods.
Ingress config can be like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api
namespace: production
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.yourdomain.com
http:
paths:
- path: /application1
backend:
serviceName: app1-production
servicePort: 80
- path: /application2
backend:
serviceName: app2-production
servicePort: 80
or just use one subdomain per api, as you prefer.
answered Nov 22 '18 at 10:26
Nima HashemiNima Hashemi
463
463
Thanks! Where should I put the yaml for Ingress? In the same yaml file that define the project's pod? And if I don'tkubectl apply
in each deploy, how will it get published?
– Naor
Nov 22 '18 at 15:12
Suppose I have 2 repos for 2 projects - frontend and backend. They should be in the same pod. Where should I put k8s configurations?
– Naor
Nov 22 '18 at 15:26
I usually keep all deployments in a different repo named Kube-deployments.
– Nima Hashemi
Nov 23 '18 at 9:37
@Naor and kubectl set image do the job
– Nima Hashemi
Nov 23 '18 at 9:38
add a comment |
Thanks! Where should I put the yaml for Ingress? In the same yaml file that define the project's pod? And if I don'tkubectl apply
in each deploy, how will it get published?
– Naor
Nov 22 '18 at 15:12
Suppose I have 2 repos for 2 projects - frontend and backend. They should be in the same pod. Where should I put k8s configurations?
– Naor
Nov 22 '18 at 15:26
I usually keep all deployments in a different repo named Kube-deployments.
– Nima Hashemi
Nov 23 '18 at 9:37
@Naor and kubectl set image do the job
– Nima Hashemi
Nov 23 '18 at 9:38
Thanks! Where should I put the yaml for Ingress? In the same yaml file that define the project's pod? And if I don't
kubectl apply
in each deploy, how will it get published?– Naor
Nov 22 '18 at 15:12
Thanks! Where should I put the yaml for Ingress? In the same yaml file that define the project's pod? And if I don't
kubectl apply
in each deploy, how will it get published?– Naor
Nov 22 '18 at 15:12
Suppose I have 2 repos for 2 projects - frontend and backend. They should be in the same pod. Where should I put k8s configurations?
– Naor
Nov 22 '18 at 15:26
Suppose I have 2 repos for 2 projects - frontend and backend. They should be in the same pod. Where should I put k8s configurations?
– Naor
Nov 22 '18 at 15:26
I usually keep all deployments in a different repo named Kube-deployments.
– Nima Hashemi
Nov 23 '18 at 9:37
I usually keep all deployments in a different repo named Kube-deployments.
– Nima Hashemi
Nov 23 '18 at 9:37
@Naor and kubectl set image do the job
– Nima Hashemi
Nov 23 '18 at 9:38
@Naor and kubectl set image do the job
– Nima Hashemi
Nov 23 '18 at 9:38
add a comment |
It really depends on your use case but I would advise certain practices for making life easier:
I'd like to put the api and the frontend in the same pod, and all the
scrapers in other pod.
Don't put more than one container in a same pod (unless it's a sidecar like conduit, istio, etc...) because it will be really tough to perform health checks on your pods (if one container is down and the other one is up, the pod is... half-healthy?)
I'd like to be able to deploy a single project, only the api for
example or a specific scraper.
Where should I keep the k8s.yaml (since it relates to all projects)?
Separate the yaml files to their own projects directories so that you can deploy them independently and for better readability.
Using a monorepo has it's advantages, the code is in one place, etc... But if you will have CI, as the repo gets bigger, your builds might become slower so you would either need to optimize (use build caching or such) or have a separate CI for each business domain or logical group you might have.
How should I structure my project?
Separate infrastructure from application so that if one day you want to switch from GCE to AWS or Azure and also for better readability.
Where should I apply the k8s configurations? Should it happen on each
deploy? How can I config domain names for each service easily?
Kubernetes has got a really extensive list of examples on all the ways you can inject configuration to your apps, this really depends on your use case.
You don't need to configure domain names for each service, only the ones that are exposed to the outside world. You can use an Ingress
object or a proxy.
The things you need to consider:
Logging - this is a very important topic because having scalable pods can be tricky business. I would really take my time to deploy some tight distributed logging.
Environments - Develop/Production or Develop/Staging/Production or ... ? Whatever you choose, make sure they have minimal differences and that each step can be easily deployable.
add a comment |
It really depends on your use case but I would advise certain practices for making life easier:
I'd like to put the api and the frontend in the same pod, and all the
scrapers in other pod.
Don't put more than one container in a same pod (unless it's a sidecar like conduit, istio, etc...) because it will be really tough to perform health checks on your pods (if one container is down and the other one is up, the pod is... half-healthy?)
I'd like to be able to deploy a single project, only the api for
example or a specific scraper.
Where should I keep the k8s.yaml (since it relates to all projects)?
Separate the yaml files to their own projects directories so that you can deploy them independently and for better readability.
Using a monorepo has it's advantages, the code is in one place, etc... But if you will have CI, as the repo gets bigger, your builds might become slower so you would either need to optimize (use build caching or such) or have a separate CI for each business domain or logical group you might have.
How should I structure my project?
Separate infrastructure from application so that if one day you want to switch from GCE to AWS or Azure and also for better readability.
Where should I apply the k8s configurations? Should it happen on each
deploy? How can I config domain names for each service easily?
Kubernetes has got a really extensive list of examples on all the ways you can inject configuration to your apps, this really depends on your use case.
You don't need to configure domain names for each service, only the ones that are exposed to the outside world. You can use an Ingress
object or a proxy.
The things you need to consider:
Logging - this is a very important topic because having scalable pods can be tricky business. I would really take my time to deploy some tight distributed logging.
Environments - Develop/Production or Develop/Staging/Production or ... ? Whatever you choose, make sure they have minimal differences and that each step can be easily deployable.
add a comment |
It really depends on your use case but I would advise certain practices for making life easier:
I'd like to put the api and the frontend in the same pod, and all the
scrapers in other pod.
Don't put more than one container in a same pod (unless it's a sidecar like conduit, istio, etc...) because it will be really tough to perform health checks on your pods (if one container is down and the other one is up, the pod is... half-healthy?)
I'd like to be able to deploy a single project, only the api for
example or a specific scraper.
Where should I keep the k8s.yaml (since it relates to all projects)?
Separate the yaml files to their own projects directories so that you can deploy them independently and for better readability.
Using a monorepo has it's advantages, the code is in one place, etc... But if you will have CI, as the repo gets bigger, your builds might become slower so you would either need to optimize (use build caching or such) or have a separate CI for each business domain or logical group you might have.
How should I structure my project?
Separate infrastructure from application so that if one day you want to switch from GCE to AWS or Azure and also for better readability.
Where should I apply the k8s configurations? Should it happen on each
deploy? How can I config domain names for each service easily?
Kubernetes has got a really extensive list of examples on all the ways you can inject configuration to your apps, this really depends on your use case.
You don't need to configure domain names for each service, only the ones that are exposed to the outside world. You can use an Ingress
object or a proxy.
The things you need to consider:
Logging - this is a very important topic because having scalable pods can be tricky business. I would really take my time to deploy some tight distributed logging.
Environments - Develop/Production or Develop/Staging/Production or ... ? Whatever you choose, make sure they have minimal differences and that each step can be easily deployable.
It really depends on your use case but I would advise certain practices for making life easier:
I'd like to put the api and the frontend in the same pod, and all the
scrapers in other pod.
Don't put more than one container in a same pod (unless it's a sidecar like conduit, istio, etc...) because it will be really tough to perform health checks on your pods (if one container is down and the other one is up, the pod is... half-healthy?)
I'd like to be able to deploy a single project, only the api for
example or a specific scraper.
Where should I keep the k8s.yaml (since it relates to all projects)?
Separate the yaml files to their own projects directories so that you can deploy them independently and for better readability.
Using a monorepo has it's advantages, the code is in one place, etc... But if you will have CI, as the repo gets bigger, your builds might become slower so you would either need to optimize (use build caching or such) or have a separate CI for each business domain or logical group you might have.
How should I structure my project?
Separate infrastructure from application so that if one day you want to switch from GCE to AWS or Azure and also for better readability.
Where should I apply the k8s configurations? Should it happen on each
deploy? How can I config domain names for each service easily?
Kubernetes has got a really extensive list of examples on all the ways you can inject configuration to your apps, this really depends on your use case.
You don't need to configure domain names for each service, only the ones that are exposed to the outside world. You can use an Ingress
object or a proxy.
The things you need to consider:
Logging - this is a very important topic because having scalable pods can be tricky business. I would really take my time to deploy some tight distributed logging.
Environments - Develop/Production or Develop/Staging/Production or ... ? Whatever you choose, make sure they have minimal differences and that each step can be easily deployable.
answered Nov 22 '18 at 9:42
Urosh T.Urosh T.
65711116
65711116
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427333%2fhow-to-structure-a-kubernetes-project-for-a-web-application%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown