Show notes
Links Mentioned in This Episode BigBinary on Twitter Kelsey on Twitter Rahul on Twitter Kubernetes Containerd CRI-O Spinnaker Jenkins Prometheus GrafanaTranscript[[[[[[[[[[[[[[[[So when it comes to that, some people will say, “Well, if I don’t have the ability operationally, to deal with the database in a, let’s say, containerized environment or where there’s a deployment orchestrator, I’m more used to managing a database in a static environment, where things don’t move around” then just leave your database where you are until you get comfortable enough that you can manage it in an orchestrator. This is less of a technology situation and more of your skill set. Do you have the ability to do this? If you don’t, then maybe it’s better to use something that’s fully managed, right?Everyone that uses a database isn’t necessarily a DBA, so if that’s you, then maybe RDS or Google Cloud SQL or a managed database offering is the best idea, because they know how to operate a database where maybe you don’t have the time to. So you really have to understand who the person is. If you know what you’re doing, and you know how to manage the database even when the orchestrator’s there, the volumes don’t change, right? You can use local storage with Kubernetes. You can decide to pin a specific container to a machine where the data lives. You can mount in network storage. You can use NFS, nothing changed between VMs and containers, other than in containers you have to be a little bit more explicit about what you want. But this, this is not a huge technology shift here, right? This is just a different way of interacting with the technology, so I think people need to understand; what are your capabilities? How great, good are your operations skills around managing data services? If it’s not that great, maybe that’s the last thing you want; to move into an orchestrator until you get comfortable.[[Once you understand the way that you want to work, maybe your cultural needs manual, approval before it can go to be deployed. Whenever you need, write it all down. Once you’re done, then you can start experimenting with a few tools, right? Grab some repository to check your coding that supports webhooks so you can trigger automated builds. Whatever tool you pick, Jenkins, Spinnaker, Cloud Builder, Worker, Travis CI, it doesn’t matter. At the end of the day, it’s pretty similar, even though in some steps and some order and if it fails, you’re going to try to notify people that the build or the deployment failed. So the tool to me is less interesting than “What do you want to do?” “What workflow do you want?” Not everybody wants the same workflow, not everyone has the same interface and not everyone has the same exact problems. But at a high level, checking code, build test, deploy, use data to tell you if everything is working ok and then rinse and repeat. That’s the pipeline.[I think we have HPA for CPU based auto-scaling, and we use auto-scaling, if I’m not wrong, it is not, available, but sometimes we need to scale our application based on other factors maybe on query process, request base so what we actually do is we write some other techniques, get the metrics count and we can use that without HPA and scale above that. I think this is reliable, but what do you suggest like, is there any other easy way to just auto-scale based on other metrics of pair of metrics instead of just HPA and if it is, when do we expect that, which day is it will come up?[[[[[[[[[So that idea of serverless is really taking fully managed all the way to the compute. I don’t want to see anything, just give me my workload. Now, if you have Kubernetes, you could decide that you want a serverless or you want functions on your cluster, right? So you want your developers to write a function and deploy it on Kubernetes. I mean, you could do that, but it’s just a different workflow then just creating the container yourself. In terms of the events, you may or may not have access to the same events that you have on a cloud provider, so I think things like Kubeless and all of those serverless frameworks, more of “How do I get a function and deploy it into my cluster” and they will just wrap it’ so it’s almost like a platform as a service. And then the events, where they proxy events through let’s say docker or something, is trying to give you some similar experience, but I think there is a difference between a fully-managed serverless platform and something you install on top of your cluster, right? They both have value, I’m not sure they’re 100% the same thing from a user experience perspective.[[It can solve your problem, if used wisely so I think there’s a lot of people who are not really thinking this through, not really making the right investments and learning about how to deal with microservices, and there’s this belief if you just go to microservices everything will get easier, or everything will get better and that isn’t true, you have to actually do things a certain way in order to leverage that particular architectural style and also, the reason behind the tweet is that monoliths are not necessarily bad right?I think most people don’t really consider that you can multiple monoliths and still not have a microservices platform. You can say “Hey, I have this one application, it’s for this particular product, I have another applicaton that is also a monolith that only does batch drops, right?” So that’s 2 different monoliths, they’re not necessarily microservies because you have 2 of them, you just have 2 monoliths. And it’s ok just have 2, you know, what we would consider monoliths, right? So a monolith in my opinion, in this case, would be it has its own authentication, maybe it even presents the UI, maybe it has some of the business logic all couple in to it for one purpose. The batch drop, on the other hand, may only deal with reading things from a cue and handle any authentication or parsing or even sending email based on the cue, so people look at that and say “Well, maybe you should just have a dedicated email service, versus having it into the batch drop” but to me, that’s just a matter of how you take multiple modules, either you can deploy them as one unit and call it a monolith, or you can break it up into many pieces and call it a services architecture, but I’m not so sure that most people are really understanding the challenges of dealing with microservices especially if they don’t have a good understanding of how to deal with a monolith.[[[

