What container platforms (PAAS) do you use? Do you host the PAAS on your own servers or do you use one of the bigger cloud providers to host the PAAS?
Hi John! In my company we deploy our APIs coded in Java Spring Framework in AWS elastic beanstalk service. It allows for us to get 2 or more availability zones if one of those gets down, and a very good scalability when there are thousands of requests per second.
We merge that technology with this architecture:
Simple Storage Service
Relational Database Service
Elastic Beanstalk (multiple EC2 instances with load balancers etc)
Hope this helps!
We have developed one https://www.datacol.io/ for us.
Datacol is a control layer on top of cloud(AWS/GCP), to provide Heroku like experience with power of Kubernetes under the hood.
It's also open source on github, you can give a try, let us know if you have question.
Thanks for the responses.
In my experience in both Cloud Foundry and Kubernetes are great for micro-services and web GUI apps pointing to a dedicated database server that is setup in the traditional way. Just as Rob pointed out.
I also believe for a startup micro-services are the way to build out your applications, because it allows you to focus on small incremental updates and to build out your MVP rather quickly. If you are doing that and trying to manage and scale the micro-services on a tradition server configuration it does become overwhelming. This is where container platforms really help. Also, I have found that running a Kubernetes platform can have similar costs to that of tradition servers, when you start factoring in load balancers and other VMs to get your application running.
I know that you can use Pivatol's Cloud Foundry deployment on AWS and they charge you about $2.70 / 128 Mb / month, which is definitely cheaper then going out an getting a AWS AMI stand alone server to run your application. However, running your own Pivotal Cloud Foundry PAAS on say AWS will required you to make an investment of $100,000 just for starters.
I also like these PAAS because they can be deployed on multiple AWS, GCP and Azure (cloud providers). As a developer I can now code to a PAAS platform and know that I can use any of the cloud providers to deploy my applications and they will run the same way.
I am new to container based application development and deployment and currently trying to learn and understand it through Docker. I think container based platforms and application development and deployment makes much more sense and is useful for micro-services based architecture rather than the monolithic architectures. It might be useful in monolithic applications but its true power is visible in a micros-service architecture where the complexity and configuration is much more compared to monolithic. So I believe the adoption of this technology by companies is based on the architecture used for developing the new software or what is the cost of moving the legacy apps from monolithic to micro-services. If companies can afford it I think container based apps are way to go. My this view is in response to your comment regarding " However, I have not seen smaller companies move to these container base platforms, it has been mainly the larger companies "
I am using http://bubble.is to develop a web-app version of my product idea. To get to an MVP and then run market tests to see if the idea is financially viable.
I am bootstrapping so reduced costs are a bonus.
I have an iOS developer ready if the idea is validated.
ps... looking for a cofounder, perhaps it might be a technically person
I am a consultant and have been using the container technologies for a few years in both small and large organizations. There are some major pros and cons and the project requirements can indicate which technology is really best. One major down side to container technology is how databases are hosted on the platform. Much care has to be taken by the team to ensure the database performs correctly in a fail-over scenario when hosted in a container. Also, scaling the number of worker processes on a traditional RDBMS is difficult if not impossible and the vast majority of use cases still call for an RDBMS for data consistency. The best use case of a PAAS I have seen so far been creating micro-services, gateways, web servers and some smaller support processes such as redis.
Otherwise, this answer is the same as every other tech question: What is the motivating factor that caused you to shift focus to a PAAS? Could you solve your problem just as easily with existing means? This goes for a small or large business.
Thanks for your responses.
I wanted to see how many smaller companies (or people) are using the container based environments (i.e. Kubernetes, Cloud Foundry, etc.). I have been working with these environments for several years and I believe they are the future of software development.
These platforms handle a lot of the items that I used to do manually, like setup load balancers and installing software (Tomcat, Jboss, etc) and in many ways they are self healing.
However, I have not seen smaller companies move to these container base platforms, it has been mainly the larger companies. It would seem that Kubernetes is the perfect platform for a startup. Thoughts?
@Shyam could you tell me more about your CLI tools. It looks like you are helping people setup Kubernetes environment and helping them manage the environments, it that correct?
I chose to deploy containers via docker-machine and handle the ssl/http frontend via traefix and storage via docker mounted virtual volumes. I didn't trust kubernetes to yet be vendor independent nor to be easy to set up in a dev laptop environment.
I was talking to one of my devops friends who works at BigCo this morning and he was confirming that the storage service under Kubernetes was causing him some heartache over vendor lockin and inability to self-host locally, so I feel somewhat vindicated in my choice.
I don't get location independence nor autoscaling with my approach, but for my early startup, quick development and cloud platform independence is more important to me than multi-location reliability or high scalability. I feel confident that I can transition to Kubernetes when the time comes, and let's face facts that storage/database scalability doesn't come for free with Kubernetes, so the real scaling work is always going to be storage engine design.
@John, Datacol doesn't actually manage the kubernetes cluster, but it provides a control layer on top of k8s API and other services to automate deployments on AWS and GCP.
kubernetes is managed by Cloud providers like GCP and AWS.
Datacol helps you create Heroku like infrastructure for deploying container-native applications on Google Cloud. It simplifies the process developers use to build, deploy and manage their applications in the cloud. We took more nimble approach with Datacol than other PaaS folks. It acts as a thin control layer and uses various managed services by cloud under the hood and exposes a developer friendly layer to quickly deploy apps.Datacol is installed into your own Google Cloud account and uses Container engine, Registry, CloudBuilder, and many other great GCP services under the hood but automates it all away to give you a better deployment experience. It uses Docker under the hood so if you want to customize anything (languages, dependencies, etc) you can simply add a Dockerfile to your project.
More : https://www.datacol.io/docs/quick-start/