Posts

Showing posts with the label performance

Quality and Performance

Image
If you ask any engineer or manager, they will tell you they want quality. No one would say they do not wish to have higher quality. The reality as human beings is that we always want the best. Now, what does quality means? How do we determine if something is of quality or not? How can we learn how to see problems and how can we make things better? Hopefully I will be able to address all these questions in this blog post. In the 1980s there was big quality movement driven by Lean and other methods. Today quality is often misunderstood and took into the the wrong lenses. If you don't understand what quality is, and how good looks like vs how bad looks like, you don't know what's going on, and you certainly cannot make it better. Perspective and vision are everything. This post is not about QA. Having QA also does not guarantee quality. Like security quality is everybody's job. 

Spring-Boot Native Image

Image
Spring Boot is the most popular java stack nowadays. New languages like Go and Rust are capable of creating a single binary, self-contained with all deps to run the application. This is great for deployment simplicity but also easier to maintain. As time pass we want to have fast bootup times and do more with less. The native solutions are fast since they are statically compiled for a target platform or OS(in the case of UniKernels). Java was designed to be better as time pass(Runtime) and optimizations kick in. However thats not ideal for Serverless applications. GraalVM changes that since allowing us to compile JVM applications(Java, Scala, Kotlin) to native applications. Today I want to share a simple Video + POC using a new project called Spring Boot Native which allows us to create native images to spring boot apps.  Native images have some challenges like Type Erause for C++ and Reflections in Java. So Let's get started!

Stress Test with Gatling

Image
Test is a very important part of software development. Everybody agree and some people(sadly not everybody yet) do lots of unit testing, some do integration tests other do some kind of UI testing as well. But thats not enought you are into SOA/microservice land. As much as you distribute your software you have way more wants to fail. Tests need to catch up, Stress test are something that unfortunately people dont do - sometimes they do but when they know that there is a scalability problem witch is sad. This practice of stress tests could be automated(it really should) or at least make sure you run periodically as far as i know Netflix does 2-3 times per week - because this is not just about scalability. Stress Tests are bigger than just how many users can i handle.