Microservices & Containerization
Microservices
Monolithic Architectures APP Tier DB Tier
Monolithic Architecture Applications are often born as small monoliths Evolve through Incremental growth Highly coupled Increasing complexity APP Tier DB Tier
Monolithic Architecture Over Time Gargantuan monsters Difficult to deploy Small changes → Many impacts Error prone / Unpredictable Onboarding time stretches Eventually impossible to scale . . . stagnation, fear, paralysis.
There is a better way . . .
Microservices An architectural approach to developing a single application as suite of small services Own their own Data Fault Isolated Easy to Monitor Microservices Small Autonomous Encapsulation Independently Deployable Aligned with Business Functionality
Microservice Advantages Facilitates DevOps Rapid Innovation Fault Isolation Ease of Monitoring Allow your teams to scale
How Big Should a “Micro”service be? Large number of services > Overhead Too few services → Monolithic problems
How Big Should a “Micro”service be? Rules of Thumb Small enough to have a working MVP build in two weeks No bigger than can be run by a “two-pizza” team? Small enough you can onboard a developer in a 3-weeks or less Not so small that you’re having to change two services together frequently
Breakout of the Microservices Buyer Seller Search Listing Bid on Item Create Listing Monitor Listing Bounded Context -- “Domain Driven Design” ; Low risk opportunities to breakout microservice Search Bid List Monitor
Containerization
But first a refresher on Virtualization . . . Servers became more and more powerful Machines could be emulated on other machines Possible to run multiple OSs on a single physical piece of hardware Made the cloud possible
Containerization Particular type of virtualization (aka OS virtualization) Underlying OS is shared by many containers Each container’s resources and “view” is limited Libraries, Dependencies, Environment Variables, etc. are included Can work in conjunction with virtualization
Comparison VMs Different OS for each instance Spin up in minutes Easy moved from one physical machine to another Large custom resource footprint (potentially need licenses) Containers Shared OS for multiple instances Spin up in seconds Easily moved from one VM or physical machine to another Small custom resource footprint
How does this differ from just running an application? Containers limited allocated resources (memory, compute, storage, access to peripherals, etc.). From their perspective, these are all the resources that exist on the current machine and they’re the only application running. Furthermore, all dependencies are packaged with the application. The filesystem is namespaced and “fork on write” is used for App specific copies of OS files. Share other libraries and binaries
Container Orchestration Container Engines Automated rollout / rollback Health monitoring Auto-scaling Declarative management Deploy anywhere (e.g. hybrid environments)
Microservices & Containerization
Microservices & Containerization Microservices - architectural design pattern Containers - deployment technology Natural, complementary fit . . . Smaller / less resource intensive processes Enforces loose coupling Independent deployability Ease of monitoring
Questions?
4100 Spring Valley Road Suite 308 Dallas, TX 75244 Texas 4100 Spring Valley Road Suite 308 Dallas, TX 75244 Tel: +1.469.374.0500 | Fax: +1.469.322.0490 Silicon Valley 1750 Meridian Avenue Suite 4105 San Jose, CA 95150 Tel: +1.510.519.9673 | Fax: +1.510.519.9673 India 3rd Floor, Revolution Mall, Above Big Bazaar, Kothrud, Pune, India 411 038 Tel: +91.20.67283222 | Fax: +91.20.67283222 sales@synerzip.com
500+ Dual-Shore 110+ Inc. 5000 10+ 50% DNA 2X Who is Synerzip Synerzip is your agile software product development partner 500+ strong team Dual-Shore matured delivery model 110+ product success stories Inc. 5000 awarded Inc 5000 6 years in a row 10+ years in business 50% savings from optimized delivery DNA a truly agile product development partner 2X accelerate product roadmap
QA Testing / Automation Partner in your growth DevOps Proof of Concept In a few short weeks, we'll deliver a defined scope of work while you experience what it's like working with Lean / Startup MVP We bridge the gap from idea to MVP using our lean approach to agile product development Offshore-Outsource Hybrid Architects and product managers work with you on-site and fully manage the development effort Accelerate Product Roadmap Quickly scale your engineering capacity for ongoing software product development Migration / Upgrade Use Synerzip's skilled technologists to decrease the effort and risk of transitioning to a new technology or platform. QA Testing / Automation
Leveraging Dual Shore Operations Operating As One Extended Team US Team: Customer + Architects India Team: Product Owner + Dev & QA Local team of architects and business analysts coordinate with you to understand product requirements Design a workable model for your requirement after consulting with the India team Enable a handshake between Program Manager (client side) and Product Owner (India team) Identify optimal setting for the project and set up a team / hire Understand the product, market, users, requirements, etc. and train developers Use best practices for developing the product in a dual-shore mode while adopting existing processes (client side) Why Dual Shore? Scalability: Efficiently scale when your business needs Resource: No shortage of skilled and ready resource Cost: More economic to build the product offshore
Proud moment… …100 more
Blockchain Application Development 101 Next Webinar Blockchain Application Development 101 Tuesday, April 10, 2018 at Noon CT presenter: Glenn Jones Global Product and R&D Executive, Sweetbridge, Inc.